diff options
Diffstat (limited to 'recipes-core/usb-rndis')
-rw-r--r-- | recipes-core/usb-rndis/files/busybox-dhcpd.service | 12 | ||||
-rw-r--r-- | recipes-core/usb-rndis/files/start-rndis.sh | 19 | ||||
-rw-r--r-- | recipes-core/usb-rndis/files/udhcpd-usb-rndis.conf (renamed from recipes-core/usb-rndis/files/udhcpd.conf) | 0 | ||||
-rw-r--r-- | recipes-core/usb-rndis/files/usb-rndis.rules | 2 | ||||
-rw-r--r-- | recipes-core/usb-rndis/files/usb-rndis.service | 7 | ||||
-rw-r--r-- | recipes-core/usb-rndis/usb-rndis-systemd.bb | 15 |
6 files changed, 26 insertions, 29 deletions
diff --git a/recipes-core/usb-rndis/files/busybox-dhcpd.service b/recipes-core/usb-rndis/files/busybox-dhcpd.service deleted file mode 100644 index 5bcaecb..0000000 --- a/recipes-core/usb-rndis/files/busybox-dhcpd.service +++ /dev/null @@ -1,12 +0,0 @@ -[Unit] -Description=Dynamic Host Configuration Protocol (DHCP), busybox provided -After=syslog.target -After=network.target - -[Service] -Type=forking -ExecStart=/usr/sbin/udhcpd - -[Install] -WantedBy=basic.target -Alias=dhcpd.service diff --git a/recipes-core/usb-rndis/files/start-rndis.sh b/recipes-core/usb-rndis/files/start-rndis.sh index 3548722..a3b4e00 100644 --- a/recipes-core/usb-rndis/files/start-rndis.sh +++ b/recipes-core/usb-rndis/files/start-rndis.sh @@ -1,8 +1,15 @@ #!/bin/sh - # configures the usb gadget to provide rnidis, -# sets the IP addr of the newly created interface -echo 0 > /sys/class/android_usb/android0/enable -echo rndis > /sys/class/android_usb/android0/functions -echo 1 > /sys/class/android_usb/android0/enable -ifconfig rndis0 192.168.11.2 +case "$1" in + start) + echo 0 > /sys/class/android_usb/android0/enable + echo rndis > /sys/class/android_usb/android0/functions + echo 1 > /sys/class/android_usb/android0/enable + ;; + + stop) + echo 0 > /sys/class/android_usb/android0/enable + ;; +esac + +exit 0 diff --git a/recipes-core/usb-rndis/files/udhcpd.conf b/recipes-core/usb-rndis/files/udhcpd-usb-rndis.conf index 62a016a..62a016a 100644 --- a/recipes-core/usb-rndis/files/udhcpd.conf +++ b/recipes-core/usb-rndis/files/udhcpd-usb-rndis.conf diff --git a/recipes-core/usb-rndis/files/usb-rndis.rules b/recipes-core/usb-rndis/files/usb-rndis.rules new file mode 100644 index 0000000..938e46d --- /dev/null +++ b/recipes-core/usb-rndis/files/usb-rndis.rules @@ -0,0 +1,2 @@ +#when a host connects over rndis, give the rnids0 NIC a IP address and up it +SUBSYSTEM=="android_usb", ATTR{state}=="CONFIGURED", RUN+="/bin/sh -c '/sbin/ifconfig rndis0 192.168.11.2/24 ; /usr/sbin/udhcpd -S /etc/udhcpd-usb-rndis.conf' " diff --git a/recipes-core/usb-rndis/files/usb-rndis.service b/recipes-core/usb-rndis/files/usb-rndis.service index 5166082..6592ad7 100644 --- a/recipes-core/usb-rndis/files/usb-rndis.service +++ b/recipes-core/usb-rndis/files/usb-rndis.service @@ -1,15 +1,14 @@ +#also consult /etc/udev/ruldes.d/usb-rndis.rules [Unit] Description=Set the USB gadget to RNDIS Documentation=http://permalink.gmane.org/gmane.linux.usb.general/56244 DefaultDependencies=no -After=dhcpd.service -Wants=dhcpd.service [Service] Type=oneshot RemainAfterExit=yes -ExecStart=/usr/bin/start-rndis.sh -ExecStop=echo 0 > /sys/class/android_usb/android0/enable +ExecStart=/usr/bin/start-rndis.sh start +ExecStop=/usr/bin/start-rndis.sh stop [Install] WantedBy=basic.target diff --git a/recipes-core/usb-rndis/usb-rndis-systemd.bb b/recipes-core/usb-rndis/usb-rndis-systemd.bb index 47bf921..b2cc2ce 100644 --- a/recipes-core/usb-rndis/usb-rndis-systemd.bb +++ b/recipes-core/usb-rndis/usb-rndis-systemd.bb @@ -1,7 +1,7 @@ SECTION = "network" DESCRIPTION = "RNDIS usb client configuration and startup" RDEPENDS_${PN} = "" -# The license is meant for this recipe and the files it installes. +# The license is meant for this recipe and the files it installs. # RNDIS is part of the kernel, udhcpd is part of busybox LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58" @@ -15,16 +15,17 @@ inherit allarch systemd SRC_URI = " \ file://start-rndis.sh \ file://usb-rndis.service \ - file://busybox-dhcpd.service \ - file://udhcpd.conf " + file://usb-rndis.rules \ + file://udhcpd-usb-rndis.conf " do_install() { - install -d ${D}/${sysconfdir} ${D}/${bindir} - install -m 0755 ${WORKDIR}/start-rndis.sh ${D}/${bindir} - install -m 0644 ${WORKDIR}/udhcpd.conf ${D}/${sysconfdir}/ + install -d ${D}/${sysconfdir}/udev/rules.d ${D}/${bindir} + install -m 0755 ${WORKDIR}/start-rndis.sh ${D}/${bindir}/ + install -m 0644 ${WORKDIR}/usb-rndis.rules ${D}/${sysconfdir}/udev/rules.d/ + install -m 0644 ${WORKDIR}/udhcpd-usb-rndis.conf ${D}/${sysconfdir}/ } NATIVE_SYSTEMD_SUPPORT = "1" SYSTEMD_PACKAGES = "${PN}" -SYSTEMD_SERVICE_${PN} = "usb-rndis.service busybox-dhcpd.service " +SYSTEMD_SERVICE_${PN} = "usb-rndis.service" |