[meta-ti] [PATCH] udhcpd: Fixes and new udev rule

Joel A Fernandes joelagnel at ti.com
Fri Nov 11 06:51:47 PST 2011


This moves the logic to configure and start dhcp to a udev rule which
is a better place than a systemd service

Also fixes a bug where stopping and starting network service would
cause dhcp to fail.

Signed-off-by: Joel A Fernandes <joelagnel at ti.com>
---
 recipes-ti/beagleboard/gadget-init.bb              |    6 ++++--
 .../gadget-init/g-ether-start-service.sh           |    1 -
 .../gadget-init/network-gadget-init.service        |    3 +--
 recipes-ti/beagleboard/gadget-init/udhcpd.rules    |    2 ++
 4 files changed, 7 insertions(+), 5 deletions(-)
 create mode 100644 recipes-ti/beagleboard/gadget-init/udhcpd.rules

diff --git a/recipes-ti/beagleboard/gadget-init.bb b/recipes-ti/beagleboard/gadget-init.bb
index 8ddefaa..0d4682e 100644
--- a/recipes-ti/beagleboard/gadget-init.bb
+++ b/recipes-ti/beagleboard/gadget-init.bb
@@ -1,6 +1,6 @@
 DESCRIPTION = "Units to initialize usb gadgets"
 
-PR = "r10"
+PR = "r11"
 
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58"
@@ -15,6 +15,7 @@ SRC_URI = "file://storage-gadget-init.service \
            file://99-hokey-pokey.rules \
            file://hokey-pokey.sh \
            file://bone-gmass-eject.rules \
+           file://udhcpd.rules \
            file://g-storage-reinsert.sh \
            file://g-ether-start-service.sh \
            file://g-ether-load.sh \
@@ -50,7 +51,8 @@ FILES_${PN}-storage = "${base_libdir}/systemd/system/storage-gadget-init.service
 FILES_${PN}-network = "${base_libdir}/systemd/system/network-gadget-init.service \
                        ${base_libdir}/systemd/system/basic.target.wants/network-gadget-init.service \
                        ${bindir}/g-ether-load.sh \
-                       ${bindir}/g-ether-start-service.sh"
+                       ${bindir}/g-ether-start-service.sh \
+                       ${sysconfdir}/udev/rules.d/udhcpd.rules"
 
 FILES_${PN}-udhcpd = "${base_libdir}/systemd/system/udhcpd.service \
                       ${base_libdir}/systemd/system/basic.target.wants/udhcpd.service \
diff --git a/recipes-ti/beagleboard/gadget-init/g-ether-start-service.sh b/recipes-ti/beagleboard/gadget-init/g-ether-start-service.sh
index 2db16c2..076a5fe 100755
--- a/recipes-ti/beagleboard/gadget-init/g-ether-start-service.sh
+++ b/recipes-ti/beagleboard/gadget-init/g-ether-start-service.sh
@@ -6,6 +6,5 @@ then
 	then
 		/bin/systemctl stop storage-gadget-init.service
 		/bin/systemctl start network-gadget-init.service
-		/bin/systemctl start udhcpd.service
 	fi
 fi
diff --git a/recipes-ti/beagleboard/gadget-init/network-gadget-init.service b/recipes-ti/beagleboard/gadget-init/network-gadget-init.service
index 1e22627..0ee2914 100644
--- a/recipes-ti/beagleboard/gadget-init/network-gadget-init.service
+++ b/recipes-ti/beagleboard/gadget-init/network-gadget-init.service
@@ -4,8 +4,7 @@ Conflicts=storage-gadget-init.service
 
 [Service]
 RemainAfterExit=yes
-ExecStartPre=/usr/bin/g-ether-load.sh
-ExecStart=/sbin/ifconfig usb0 192.168.7.2 netmask 255.255.255.252
+ExecStart=/usr/bin/g-ether-load.sh
 ExecStop=/sbin/rmmod g_ether
 
 [Install]
diff --git a/recipes-ti/beagleboard/gadget-init/udhcpd.rules b/recipes-ti/beagleboard/gadget-init/udhcpd.rules
new file mode 100644
index 0000000..db65f9a
--- /dev/null
+++ b/recipes-ti/beagleboard/gadget-init/udhcpd.rules
@@ -0,0 +1,2 @@
+SUBSYSTEM=="net",ACTION=="add",KERNEL=="usb0",RUN+="/sbin/ifconfig usb0 192.168.7.2 netmask 255.255.255.252",RUN+="/bin/systemctl start udhcpd.service"
+SUBSYSTEM=="net",ACTION=="remove",KERNEL=="usb0",RUN+="/bin/systemctl stop udhcpd.service"
-- 
1.7.4.1




More information about the meta-ti mailing list