From 77e42882310fdd5925bbeb7799f28ffd141d2ece Mon Sep 17 00:00:00 2001 From: Joel A Fernandes Date: Fri, 11 Nov 2011 08:51:47 -0600 Subject: [PATCH] udhcpd: Fixes and new udev rule 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 Signed-off-by: Koen Kooi --- recipes-ti/beagleboard/gadget-init.bb | 6 ++++-- recipes-ti/beagleboard/gadget-init/g-ether-start-service.sh | 1 - .../beagleboard/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 8ddefaa2..0d4682ef 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 2db16c26..076a5fe8 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 1e226272..0ee29147 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 00000000..db65f9ac --- /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"