summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Agner <stefan.agner@toradex.com>2015-04-30 10:10:28 +0200
committerMax Krummenacher <max.krummenacher@toradex.com>2015-05-12 10:06:07 +0200
commit0264a6f71c9b6be59d6d3ac691ac31656a7004f6 (patch)
treeadd7484c263cc9181727f1987453d9221ce831fa
parent3c94266f8c2bc8694e5dcdf5031ed28de0a9583f (diff)
usb-rndis-systemd: remove RNDIS interface/udhcp setup
Since we use networkd now for RNDIS network interface setup now, we can remove the custom part which starts up the RNDIS device and sets up a DHCP server.
-rw-r--r--recipes-core/usb-rndis/files/start-rndis.sh4
-rw-r--r--recipes-core/usb-rndis/files/tegra/udhcpd-usb-rndis.conf117
-rw-r--r--recipes-core/usb-rndis/files/tegra/usb-rndis-udhcpd.service9
-rw-r--r--recipes-core/usb-rndis/files/tegra/usb-rndis.rules2
-rw-r--r--recipes-core/usb-rndis/files/udhcpd-usb-rndis.conf117
-rw-r--r--recipes-core/usb-rndis/usb-rndis-systemd.bb48
6 files changed, 21 insertions, 276 deletions
diff --git a/recipes-core/usb-rndis/files/start-rndis.sh b/recipes-core/usb-rndis/files/start-rndis.sh
index ae6448b..e226bbe 100644
--- a/recipes-core/usb-rndis/files/start-rndis.sh
+++ b/recipes-core/usb-rndis/files/start-rndis.sh
@@ -2,9 +2,7 @@
# configures the usb gadget to provide rnidis,
case "$1" in
start)
- /sbin/modprobe g_ether dev_addr=00:14:2d:ff:ff:ff host_addr=00:14:2d:ff:ff:fe ; \
- sleep 1 && /sbin/ip address add 192.168.11.2/24 dev usb0; /sbin/ip link set usb0 up \
- && /usr/sbin/udhcpd -S /etc/udhcpd-usb-rndis.conf
+ /sbin/modprobe g_ether dev_addr=00:14:2d:ff:ff:ff host_addr=00:14:2d:ff:ff:fe
;;
stop)
diff --git a/recipes-core/usb-rndis/files/tegra/udhcpd-usb-rndis.conf b/recipes-core/usb-rndis/files/tegra/udhcpd-usb-rndis.conf
deleted file mode 100644
index bf69097..0000000
--- a/recipes-core/usb-rndis/files/tegra/udhcpd-usb-rndis.conf
+++ /dev/null
@@ -1,117 +0,0 @@
-# Sample udhcpd configuration file (/etc/udhcpd.conf)
-# Values shown are defaults
-
-# The start and end of the IP lease block
-start 192.168.11.1
-end 192.168.11.1
-
-# The interface that udhcpd will use
-interface rndis0
-
-# The maximum number of leases (includes addresses reserved
-# by OFFER's, DECLINE's, and ARP conflicts). Will be corrected
-# if it's bigger than IP lease block, but it ok to make it
-# smaller than lease block.
-max_leases 1
-
-# The amount of time that an IP will be reserved (leased to nobody)
-# if a DHCP decline message is received (seconds)
-#decline_time 3600
-
-# The amount of time that an IP will be reserved
-# if an ARP conflict occurs (seconds)
-#conflict_time 3600
-
-# How long an offered address is reserved (seconds)
-#offer_time 60
-
-# If client asks for lease below this value, it will be rounded up
-# to this value (seconds)
-#min_lease 60
-
-# The location of the pid file
-#pidfile /var/run/udhcpd.pid
-
-# The location of the leases file
-# As we want to service a point to point connection over USB:
-# do not use a persistent file
-lease_file /var/run/udhcpd-rndis.leases
-
-# The time period at which udhcpd will write out leases file.
-# If this is 0, udhcpd will never automatically write leases file.
-# Specified in seconds.
-#auto_time 7200
-
-# Every time udhcpd writes a leases file, the below script will be called
-#notify_file # default: no script
-#notify_file dumpleases # useful for debugging
-
-# The following are bootp specific options
-# next server to use in bootstrap
-#siaddr 192.168.0.22 # default: 0.0.0.0 (none)
-# tftp server name
-#sname zorak # default: none
-# tftp file to download (e.g. kernel image)
-#boot_file /var/nfs_root # default: none
-
-# Static leases map
-#static_lease 00:60:08:11:CE:4E 192.168.0.54
-#static_lease 00:60:08:11:CE:3E 192.168.0.44
-
-# The remainder of options are DHCP options and can be specified with the
-# keyword 'opt' or 'option'. If an option can take multiple items, such
-# as the dns option, they can be listed on the same line, or multiple
-# lines.
-# Examples:
-#opt dns 192.168.10.2 192.168.10.10
-option subnet 255.255.255.0
-#opt router 192.168.10.2
-#opt wins 192.168.10.10
-#option dns 129.219.13.81 # appended to above DNS servers for a total of 3
-option domain usb_local
-option lease 864000 # default: 10 days
-#option msstaticroutes 10.0.0.0/8 10.127.0.1 # single static route
-#option staticroutes 10.0.0.0/8 10.127.0.1, 10.11.12.0/24 10.11.12.1
-# Arbitrary option in hex form:
-#option 0x08 01020304 # option 8: "cookie server IP addr: 1.2.3.4"
-
-# Currently supported options (for more info, see options.c):
-#opt lease NUM
-#opt subnet IP
-#opt broadcast IP
-#opt router IP_LIST
-#opt ipttl NUM
-#opt mtu NUM
-#opt hostname STRING # client's hostname
-#opt domain STRING # client's domain suffix
-#opt search STRING_LIST # search domains
-#opt nisdomain STRING
-#opt timezone NUM # (localtime - UTC_time) in seconds. signed
-#opt tftp STRING # tftp server name
-#opt bootfile STRING # tftp file to download (e.g. kernel image)
-#opt bootsize NUM # size of that file
-#opt rootpath STRING # (NFS) path to mount as root fs
-#opt wpad STRING
-#opt serverid IP # default: server's IP
-#opt message STRING # error message (udhcpd sends it on success too)
-#opt vlanid NUM # 802.1P VLAN ID
-#opt vlanpriority NUM # 802.1Q VLAN priority
-# Options specifying server(s)
-#opt dns IP_LIST
-#opt wins IP_LIST
-#opt nissrv IP_LIST
-#opt ntpsrv IP_LIST
-#opt lprsrv IP_LIST
-#opt swapsrv IP
-# Options specifying routes
-#opt routes IP_PAIR_LIST
-#opt staticroutes STATIC_ROUTES # RFC 3442 classless static route option
-#opt msstaticroutes STATIC_ROUTES # same, using MS option number
-# Obsolete options, no longer supported
-#opt logsrv IP_LIST # 704/UDP log server (not syslog!)
-#opt namesrv IP_LIST # IEN 116 name server, obsolete (August 1979!!!)
-#opt cookiesrv IP_LIST # RFC 865 "quote of the day" server, rarely (never?) used
-#opt timesrv IP_LIST # RFC 868 time server, rarely (never?) used
-# TODO: in development
-#opt userclass STRING # RFC 3004. set of LASCII strings. "I am a printer" etc
-#opt sipserv STRING LIST # RFC 3361. flag byte, then: 0: domain names, 1: IP addrs \ No newline at end of file
diff --git a/recipes-core/usb-rndis/files/tegra/usb-rndis-udhcpd.service b/recipes-core/usb-rndis/files/tegra/usb-rndis-udhcpd.service
deleted file mode 100644
index 3762198..0000000
--- a/recipes-core/usb-rndis/files/tegra/usb-rndis-udhcpd.service
+++ /dev/null
@@ -1,9 +0,0 @@
-[Unit]
-Description=dhcp deamon for rndis NIC, meant to be started from udev rule
-
-[Service]
-ExecStart=/usr/sbin/udhcpd -fS /etc/udhcpd-usb-rndis.conf
-
-[Install]
-WantedBy=multi-user.target
-
diff --git a/recipes-core/usb-rndis/files/tegra/usb-rndis.rules b/recipes-core/usb-rndis/files/tegra/usb-rndis.rules
deleted file mode 100644
index 1f3475e..0000000
--- a/recipes-core/usb-rndis/files/tegra/usb-rndis.rules
+++ /dev/null
@@ -1,2 +0,0 @@
-#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/ip address add 192.168.11.2/24 dev rndis0; /sbin/ip link set rndis0 up' ",TAG+="systemd",ENV{SYSTEMD_WANTS}="usb-rndis-udhcpd.service"
diff --git a/recipes-core/usb-rndis/files/udhcpd-usb-rndis.conf b/recipes-core/usb-rndis/files/udhcpd-usb-rndis.conf
deleted file mode 100644
index ea0c0ea..0000000
--- a/recipes-core/usb-rndis/files/udhcpd-usb-rndis.conf
+++ /dev/null
@@ -1,117 +0,0 @@
-# Sample udhcpd configuration file (/etc/udhcpd.conf)
-# Values shown are defaults
-
-# The start and end of the IP lease block
-start 192.168.11.1
-end 192.168.11.1
-
-# The interface that udhcpd will use
-interface usb0
-
-# The maximum number of leases (includes addresses reserved
-# by OFFER's, DECLINE's, and ARP conflicts). Will be corrected
-# if it's bigger than IP lease block, but it ok to make it
-# smaller than lease block.
-max_leases 1
-
-# The amount of time that an IP will be reserved (leased to nobody)
-# if a DHCP decline message is received (seconds)
-#decline_time 3600
-
-# The amount of time that an IP will be reserved
-# if an ARP conflict occurs (seconds)
-#conflict_time 3600
-
-# How long an offered address is reserved (seconds)
-#offer_time 60
-
-# If client asks for lease below this value, it will be rounded up
-# to this value (seconds)
-#min_lease 60
-
-# The location of the pid file
-#pidfile /var/run/udhcpd.pid
-
-# The location of the leases file
-# As we want to service a point to point connection over USB:
-# do not use a persistent file
-lease_file /var/run/udhcpd-rndis.leases
-
-# The time period at which udhcpd will write out leases file.
-# If this is 0, udhcpd will never automatically write leases file.
-# Specified in seconds.
-#auto_time 7200
-
-# Every time udhcpd writes a leases file, the below script will be called
-#notify_file # default: no script
-#notify_file dumpleases # useful for debugging
-
-# The following are bootp specific options
-# next server to use in bootstrap
-#siaddr 192.168.0.22 # default: 0.0.0.0 (none)
-# tftp server name
-#sname zorak # default: none
-# tftp file to download (e.g. kernel image)
-#boot_file /var/nfs_root # default: none
-
-# Static leases map
-#static_lease 00:60:08:11:CE:4E 192.168.0.54
-#static_lease 00:60:08:11:CE:3E 192.168.0.44
-
-# The remainder of options are DHCP options and can be specified with the
-# keyword 'opt' or 'option'. If an option can take multiple items, such
-# as the dns option, they can be listed on the same line, or multiple
-# lines.
-# Examples:
-#opt dns 192.168.10.2 192.168.10.10
-option subnet 255.255.255.0
-#opt router 192.168.10.2
-#opt wins 192.168.10.10
-#option dns 129.219.13.81 # appended to above DNS servers for a total of 3
-option domain usb_local
-option lease 864000 # default: 10 days
-#option msstaticroutes 10.0.0.0/8 10.127.0.1 # single static route
-#option staticroutes 10.0.0.0/8 10.127.0.1, 10.11.12.0/24 10.11.12.1
-# Arbitrary option in hex form:
-#option 0x08 01020304 # option 8: "cookie server IP addr: 1.2.3.4"
-
-# Currently supported options (for more info, see options.c):
-#opt lease NUM
-#opt subnet IP
-#opt broadcast IP
-#opt router IP_LIST
-#opt ipttl NUM
-#opt mtu NUM
-#opt hostname STRING # client's hostname
-#opt domain STRING # client's domain suffix
-#opt search STRING_LIST # search domains
-#opt nisdomain STRING
-#opt timezone NUM # (localtime - UTC_time) in seconds. signed
-#opt tftp STRING # tftp server name
-#opt bootfile STRING # tftp file to download (e.g. kernel image)
-#opt bootsize NUM # size of that file
-#opt rootpath STRING # (NFS) path to mount as root fs
-#opt wpad STRING
-#opt serverid IP # default: server's IP
-#opt message STRING # error message (udhcpd sends it on success too)
-#opt vlanid NUM # 802.1P VLAN ID
-#opt vlanpriority NUM # 802.1Q VLAN priority
-# Options specifying server(s)
-#opt dns IP_LIST
-#opt wins IP_LIST
-#opt nissrv IP_LIST
-#opt ntpsrv IP_LIST
-#opt lprsrv IP_LIST
-#opt swapsrv IP
-# Options specifying routes
-#opt routes IP_PAIR_LIST
-#opt staticroutes STATIC_ROUTES # RFC 3442 classless static route option
-#opt msstaticroutes STATIC_ROUTES # same, using MS option number
-# Obsolete options, no longer supported
-#opt logsrv IP_LIST # 704/UDP log server (not syslog!)
-#opt namesrv IP_LIST # IEN 116 name server, obsolete (August 1979!!!)
-#opt cookiesrv IP_LIST # RFC 865 "quote of the day" server, rarely (never?) used
-#opt timesrv IP_LIST # RFC 868 time server, rarely (never?) used
-# TODO: in development
-#opt userclass STRING # RFC 3004. set of LASCII strings. "I am a printer" etc
-#opt sipserv STRING LIST # RFC 3361. flag byte, then: 0: domain names, 1: IP addrs \ No newline at end of file
diff --git a/recipes-core/usb-rndis/usb-rndis-systemd.bb b/recipes-core/usb-rndis/usb-rndis-systemd.bb
index d229123..1ea8090 100644
--- a/recipes-core/usb-rndis/usb-rndis-systemd.bb
+++ b/recipes-core/usb-rndis/usb-rndis-systemd.bb
@@ -2,54 +2,46 @@ SECTION = "network"
SUMMARY = "RNDIS usb client configuration and startup"
RDEPENDS_${PN} = ""
# The license is meant for this recipe and the files it installs.
-# RNDIS is part of the kernel, udhcpd is part of busybox
+# RNDIS is part of the kernel, systemd-networkd is part of systemd
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"
PR = "r1"
# Tegra Kernels:
-# The kernel provides with CONFIG_USB_G_ANDROID a composite gadget driver among other with RNDIS functionality.
-# Others:
-# The kernel provides with CONFIG_USB_ETH_RNDIS a USB gadget driver which provides RNDIS functionality.
-
-# This package contains systemd files to configure RNDIS at startup, configures a fix IP localy and provides a dhcp server on the new interface.
-# Local IP is 192.168.11.2, remote IP is 192.168.11.1
+# The kernel provides with CONFIG_USB_G_ANDROID a composite gadget driver
+# among other with RNDIS functionality.
+# i.MX6 Kernels:
+# The kernel provides with CONFIG_USB_ETH_RNDIS an USB gadget driver which
+# provides RNDIS functionality.
+# Vybrid Kernels:
+# The kernel provides with CONFIG_USB_CONFIGFS_RNDIS an USB gadget driver
+# which provides RNDIS functionality. RNDIS needs to be configured and
+# enabled through configfs, which is done by libusbg (usbg.service)
+
+# This package contains systemd files to configure RNDIS at startup (Tegra
+# and i.MX6), configures a fix IP locally and provides a DHCP server using
+# systemd-networkd
+# Local IP is 192.168.11.1, remote IP is 192.168.11.2
inherit allarch systemd
-SRC_URI_COMMON = " \
+SRC_URI = " \
file://start-rndis.sh \
file://usb-rndis.service \
- file://udhcpd-usb-rndis.conf \
-"
-
-SRC_URI = " \
- ${SRC_URI_COMMON} \
-"
-
-SRC_URI_tegra = " \
- ${SRC_URI_COMMON} \
- file://usb-rndis.rules \
- file://usb-rndis-udhcpd.service \
"
do_install() {
- install -d ${D}/${sysconfdir} ${D}/${bindir}
+ install -d ${D}/${bindir}
install -m 0755 ${WORKDIR}/start-rndis.sh ${D}/${bindir}/
- install -m 0644 ${WORKDIR}/udhcpd-usb-rndis.conf ${D}/${sysconfdir}/
install -d ${D}${systemd_unitdir}/system/
install -m 0644 ${WORKDIR}/usb-rndis.service ${D}${systemd_unitdir}/system
}
-do_install_append_tegra() {
- install -d ${D}/${sysconfdir}/udev/rules.d
- install -m 0644 ${WORKDIR}/usb-rndis.rules ${D}/${sysconfdir}/udev/rules.d
- install -m 0644 ${WORKDIR}/usb-rndis-udhcpd.service ${D}${systemd_unitdir}/system
-}
-
-FILES_${PN} += "${systemd_unitdir}/system"
+FILES_${PN} += " \
+ ${systemd_unitdir}/system \
+"
NATIVE_SYSTEMD_SUPPORT = "1"
SYSTEMD_PACKAGES = "${PN}"