Index: src/scripts/mod_for_test_scripts/100setupTestingInterface |
diff --git a/src/scripts/mod_for_test_scripts/100setupTestingInterface b/src/scripts/mod_for_test_scripts/100setupTestingInterface |
index 2712cdfce1cf75047d68f1be77d133df7ba61ec4..f5b84961150f6f7708529fdd39c452ba33c08d31 100755 |
--- a/src/scripts/mod_for_test_scripts/100setupTestingInterface |
+++ b/src/scripts/mod_for_test_scripts/100setupTestingInterface |
@@ -4,54 +4,63 @@ |
# Use of this source code is governed by a BSD-style license that can be |
# found in the LICENSE file. |
-echo "Configuring for eth1 backchannel" |
+echo "Configuring for backchannel network device" |
+ |
+testif=eth_test |
# Prevent connman from taking control of the backchannel network device. |
ORIG_CONF=${ROOT_FS_DIR}/etc/init/connman.conf |
TEMP_CONF=${ORIG_CONF}.tmp |
-sed 's/connmand -W/connmand -I eth1 -W/' ${ORIG_CONF} > ${TEMP_CONF} |
+sed "s/connmand -W/connmand -I ${testif} -W/" ${ORIG_CONF} > ${TEMP_CONF} |
mv -f ${TEMP_CONF} ${ORIG_CONF} |
# Arrange to run dhclient on the backchannel device but without |
# installing the default route, and stashing said route away for later |
# installation as a host route. |
-cat > ${ROOT_FS_DIR}/etc/udev/rules.d/50-backchannel-eth1.rules <<EOF |
+cat > ${ROOT_FS_DIR}/etc/udev/rules.d/50-backchannel-network.rules <<EOF |
KERNEL=="eth*", SUBSYSTEMS=="usb", ACTION=="add", RUN+="/sbin/backchannel-setup %k" |
-KERNEL=="eth1", SUBSYSTEMS=="usb", ACTION=="remove", RUN+="kill \$(cat /var/run/dhclient-%k.pid)" |
+KERNEL=="${testif}", SUBSYSTEMS=="usb", ACTION=="remove", RUN+="kill \$(cat /var/run/dhclient-%k.pid)" |
EOF |
cat > ${ROOT_FS_DIR}/sbin/backchannel-setup <<EOF |
#!/bin/sh |
-if [ -f /var/run/dhclient-eth1.pid ]; then |
+testif=${testif} |
+ |
+if [ ! -f /mnt/stateful_partition/etc/enable_backchannel_network ]; then |
+ # This mechanism has to be explicitly enabled on the device. |
+ exit |
+fi |
+ |
+if [ -f /var/run/dhclient-\${testif}.pid ]; then |
# Something else is already going on - perhaps a second |
# USB Ethernet device has been inserted. Let's not mess with it. |
exit |
fi |
-if [ "\$1" != "eth1" ]; then |
+if [ "\$1" != "\${testif}" ]; then |
initctl stop connman |
- # \$1 is the current name of the backchannel device. Swap it with eth1. |
- if ifconfig eth1 > /dev/null 2>&1; then |
- orig_eth1_mac=\$(ifconfig eth1 | awk '/HWaddr/ {print \$5}') |
- ifconfig eth1 down # must be down for nameif to work |
- nameif eth_tmp \${orig_eth1_mac} |
+ # \$1 is the current name of the backchannel device. Swap it with testif. |
+ if ifconfig \${testif} > /dev/null 2>&1; then |
+ orig_mac=\$(ifconfig \${testif} | awk '/HWaddr/ {print \$5}') |
+ ifconfig \${testif} down # must be down for nameif to work |
+ nameif eth_tmp \${orig_mac} |
fi |
bdev_mac=\$(ifconfig \$1 | awk '/HWaddr/ {print \$5}') |
ifconfig \$1 down # must be down for nameif to work |
- nameif eth1 \${bdev_mac} |
- if [ -n "\${orig_eth1_mac}" ]; then |
- nameif \$1 \${orig_eth1_mac} |
+ nameif \${testif} \${bdev_mac} |
+ if [ -n "\${orig_mac}" ]; then |
+ nameif \$1 \${orig_mac} |
fi |
initctl start connman |
fi |
# Bring up the backchannel interface |
-dhclient -q -pf /var/run/dhclient-eth1.pid \\ |
- -lf /var/run/dhclient-eth1.leases \\ |
+dhclient -q -pf /var/run/dhclient-\${testif}.pid \\ |
+ -lf /var/run/dhclient-\${testif}.leases \\ |
-cf /etc/dhclient-backchannel.conf \\ |
-sf /sbin/dhclient-backchannel-script \\ |
- eth1 |
+ \${testif} |
EOF |
chmod +x ${ROOT_FS_DIR}/sbin/backchannel-setup |