summaryrefslogtreecommitdiff
path: root/recipes-core/usb-rndis/files
diff options
context:
space:
mode:
authorMax Krummenacher <max.krummenacher@toradex.com>2012-12-07 16:41:13 +0100
committerMax Krummenacher <max.krummenacher@toradex.com>2012-12-07 16:41:13 +0100
commit8620d5f60113438cdece64566e34e105486b2688 (patch)
tree6fb3223db8e18c19471865a8e0e071cb9bf8e516 /recipes-core/usb-rndis/files
parent16383f57fbb972a2587bfe156a27fd3eb112a087 (diff)
usb-rndis: make sure the interface is up when a host connects
Diffstat (limited to 'recipes-core/usb-rndis/files')
-rw-r--r--recipes-core/usb-rndis/files/busybox-dhcpd.service12
-rw-r--r--recipes-core/usb-rndis/files/start-rndis.sh19
-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.rules2
-rw-r--r--recipes-core/usb-rndis/files/usb-rndis.service7
5 files changed, 18 insertions, 22 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