fix bonding and eth0 hw addr

This commit is contained in:
Alfonso Gamboa 2022-07-31 15:20:32 -07:00
parent 7d86567615
commit bb0fb39253
5 changed files with 33 additions and 28 deletions

View File

@ -18,3 +18,7 @@ if [ -d /lib/modules ]; then
echo "Mount kernel modules in /lib" echo "Mount kernel modules in /lib"
mount --bind /opt/wz_mini/lib/modules /lib/modules mount --bind /opt/wz_mini/lib/modules /lib/modules
fi fi
echo "Replace hostname"
echo $CUSTOM_HOSTNAME > /opt/wz_mini/etc/hostname
mount --bind /opt/wz_mini/etc/hostname /etc/hostname

View File

@ -2,7 +2,7 @@
source /opt/wz_mini/etc/rc.common source /opt/wz_mini/etc/rc.common
wait_for_wlan_ip wait_for_wlan_wpa
cat /sys/class/net/wlan0/address | tr '[:lower:]' '[:upper:]' > /opt/wz_mini/tmp/wlan0_mac cat /sys/class/net/wlan0/address | tr '[:lower:]' '[:upper:]' > /opt/wz_mini/tmp/wlan0_mac
echo "store original mac" echo "store original mac"

View File

@ -15,12 +15,6 @@ elif [[ "$ENABLE_USB_DIRECT" == "true" ]] || [[ "$ENABLE_USB_RNDIS" == "true" ]]
ALT_IFACE=usb0 ALT_IFACE=usb0
fi fi
if [[ "$ENABLE_USB_ETH_ORIGINAL_MAC" == "true" ]]; then
CONFIG="inet addr"
else
CONFIG="HWaddr"
fi
#Set the correct GPIO for the audio driver (T31 only) #Set the correct GPIO for the audio driver (T31 only)
if [ -f /opt/wz_mini/tmp/.HL_PAN2 ]; then if [ -f /opt/wz_mini/tmp/.HL_PAN2 ]; then
GPIO=7 GPIO=7
@ -30,10 +24,20 @@ fi
wait_for_wlan() { wait_for_wlan() {
while true; do while true; do
if ifconfig wlan0 | grep "$CONFIG"; then if ifconfig wlan0 | grep "HWaddr"; then
break break
fi fi
echo "Network not ready yet, try again in 5 seconds" echo "Network HW not ready yet, try again in 5 seconds"
sleep 5
done
}
wait_for_wlan_wpa() {
while true; do
if [ -e /tmp/wpa_supplicant.conf ]; then
break
fi
echo "wpa_supplicant not initialized yet, try again in 5 seconds"
sleep 5 sleep 5
done done
} }

View File

@ -5,24 +5,19 @@ source /opt/wz_mini/wz_mini.conf
alternate_iface() { alternate_iface() {
wait_for_wlan
if ! [[ "$BONDING_ENABLED" == "true" ]]; then
if [[ "$ENABLE_USB_ETH" == "true" ]] || [[ "$ENABLE_USB_DIRECT" == "true" ]] || [[ "$ENABLE_USB_RNDIS" == "true" ]]; then if [[ "$ENABLE_USB_ETH" == "true" ]] || [[ "$ENABLE_USB_DIRECT" == "true" ]] || [[ "$ENABLE_USB_RNDIS" == "true" ]]; then
wait_for_wlan_wpa
##Fool iCamera by renaming the hardline interface to wlan0 ##Fool iCamera by renaming the hardline interface to wlan0
echo "Renaming interfaces" echo "Renaming interfaces"
ifconfig $ALT_IFACE down ifconfig $ALT_IFACE down
ifconfig wlan0 down ifconfig wlan0 down
/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
/opt/wz_mini/bin/busybox ip link set $ALT_IFACE name wlan0 /opt/wz_mini/bin/busybox ip link set $ALT_IFACE name wlan0
ifconfig wlan0 up
pkill udhcpc
udhcpc -i wlan0 -x hostname:$CUSTOM_HOSTNAME -p /var/run/udhcpc.pid -b
if [ -f /opt/wz_mini/tmp/.T20 ]; then if [ -f /opt/wz_mini/tmp/.T20 ]; 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
@ -32,7 +27,9 @@ if ! [[ "$BONDING_ENABLED" == "true" ]]; then
else else
echo "No alternate iface enabled" echo "No alternate iface enabled"
fi fi
fi
} }
alternate_iface & if ! [[ "$BONDING_ENABLED" == "true" ]]; then
alternate_iface &
fi

View File

@ -7,8 +7,8 @@ set -x
bonding_setup() { bonding_setup() {
#we need to wait until wlan0 is up #we need to wait until wlan0 is up with the modified HWaddr
wait_for_wlan wait_for_wlan_wpa
##Fool iCamera by renaming the hardline interface to wlan0 ##Fool iCamera by renaming the hardline interface to wlan0
@ -27,7 +27,7 @@ bonding_setup() {
if [[ "$BONDING_PRIMARY_INTERFACE" == "wlan0" ]]; then if [[ "$BONDING_PRIMARY_INTERFACE" == "wlan0" ]]; then
/opt/wz_mini/bin/busybox ip link set $BONDING_PRIMARY_INTERFACE name wlanold /opt/wz_mini/bin/busybox ip link set $BONDING_PRIMARY_INTERFACE name wlanold
/opt/wz_mini/bin/busybox ip addr flush dev wlanold /opt/wz_mini/bin/busybox ip addr flush dev wlanold
primary_interface="wlanold" BONDING_PRIMARY_INTERFACE="wlanold"
# Because we just changed the name of the primary interface, we need to # Because we just changed the name of the primary interface, we need to
# tell the bonding driver about the name change as well. # tell the bonding driver about the name change as well.
echo "$BONDING_PRIMARY_INTERFACE" > /sys/devices/virtual/net/bond0/bonding/primary echo "$BONDING_PRIMARY_INTERFACE" > /sys/devices/virtual/net/bond0/bonding/primary
@ -35,7 +35,7 @@ bonding_setup() {
if [[ "$BONDING_SECONDARY_INTERFACE" == "wlan0" ]]; then if [[ "$BONDING_SECONDARY_INTERFACE" == "wlan0" ]]; then
/opt/wz_mini/bin/busybox ip link set $BONDING_SECONDARY_INTERFACE name wlanold /opt/wz_mini/bin/busybox ip link set $BONDING_SECONDARY_INTERFACE name wlanold
/opt/wz_mini/bin/busybox ip addr flush dev wlanold /opt/wz_mini/bin/busybox ip addr flush dev wlanold
secondary_interface="wlanold" BONDING_SECONDARY_INTERFACE="wlanold"
fi fi
# Enslave the Ethernet and Original Wifi interfaces # Enslave the Ethernet and Original Wifi interfaces