Add wpa_supplicant daemon that works properly for the wlanold interface.

With this addition, the bonding now works correctly.
Ethernet is used when available/connected, and will fallback to Wifi when not.
As soon as Ethernet does become available again, the bonding will switch to it as priority.
This commit is contained in:
Scott Kilau 2022-06-14 22:52:17 -05:00
parent 2736fc299d
commit 9d78ea2ea6

View File

@ -64,43 +64,49 @@ rename_interface() {
##Fool iCamera by renaming the hardline interface to wlan0 ##Fool iCamera by renaming the hardline interface to wlan0
echo "renaming interfaces" echo "renaming interfaces"
# Bring all interfaces down # Bring all interfaces down
ifconfig $1 down ifconfig $1 down
ifconfig wlan0 down ifconfig wlan0 down
ifconfig bond0 down ifconfig bond0 down
# Rename the real wlan0 interface # Rename the real wlan0 interface
/opt/wz_mini/bin/busybox ip link set wlan0 name wlanold /opt/wz_mini/bin/busybox ip link set wlan0 name wlanold
/opt/wz_mini/bin/busybox ip addr flush dev wlanold /opt/wz_mini/bin/busybox ip addr flush dev wlanold
# Have to bring bond0 up to be able to bond our slaves. # Have to bring bond0 up to be able to bond our slaves.
/opt/wz_mini/bin/busybox ip link set bond0 up /opt/wz_mini/bin/busybox ip link set bond0 up
# Enslave the Ethernet and Original Wifi interfaces # Enslave the Ethernet and Original Wifi interfaces
# under the Bonding interface. # under the Bonding interface.
/opt/wz_mini/tmp/.bin/ifenslave bond0 eth0 wlanold /opt/wz_mini/tmp/.bin/ifenslave bond0 eth0 wlanold
# Have to bring bond0 down to be rename the interface # Have to bring bond0 down to be rename the interface
/opt/wz_mini/bin/busybox ip link set bond0 down /opt/wz_mini/bin/busybox ip link set bond0 down
# Name the bond0 interface to be the "new" wlan0 interface # Name the bond0 interface to be the "new" wlan0 interface
/opt/wz_mini/bin/busybox ip link set bond0 name wlan0 /opt/wz_mini/bin/busybox ip link set bond0 name wlan0
# Bring the newly renamed wlan0 back up # Bring the newly renamed wlan0 back up
eth_wlan_up eth_wlan_up
} }
eth_wlan_up() { eth_wlan_up() {
##Run DHCP client, and bind mount our fake wpa_cli.sh to fool iCamera ##Run DHCP client, and bind mount our fake wpa_cli.sh to fool iCamera
ifconfig wlan0 up ifconfig wlan0 up
pkill udhcpc pkill udhcpc
udhcpc -i wlan0 -x hostname:$HOSTNAME -p /var/run/udhcpc.pid -b udhcpc -i wlan0 -x hostname:$HOSTNAME -p /var/run/udhcpc.pid -b
# Kill any existing wpa_supplicant that might be running
# and spawn our own instead
/opt/wz_mini/bin/busybox killall wpa_supplicant
wpa_supplicant -D nl80211 -i wlanold -c /tmp/wpa_supplicant.conf -B -s
if [[ "$V2" == "true" ]]; then if [[ "$V2" == "true" ]]; then
mount -o bind /opt/wz_mini/bin/wpa_cli.sh /system/bin/wpa_cli mount -o bind /opt/wz_mini/bin/wpa_cli.sh /system/bin/wpa_cli
else else
mount -o bind /opt/wz_mini/bin/wpa_cli.sh /bin/wpa_cli mount -o bind /opt/wz_mini/bin/wpa_cli.sh /bin/wpa_cli
fi fi
break break
} }
@ -244,8 +250,8 @@ if [[ "$ENABLE_USB_ETH" == "true" ]]; then
insmod $KMOD_PATH/kernel/drivers/net/usb/$i.ko insmod $KMOD_PATH/kernel/drivers/net/usb/$i.ko
done done
# Insert the bonding driver when running Ethernet # Insert the bonding driver when running Ethernet
insmod $KMOD_PATH/kernel/drivers/net/bonding.ko mode=active-backup miimon=100 downdelay=5000 updelay=5000 primary=eth0 insmod $KMOD_PATH/kernel/drivers/net/bonding/bonding.ko mode=active-backup miimon=100 downdelay=5000 updelay=5000 primary=eth0
swap_enable swap_enable