diff --git a/general/overlay/etc/init.d/S30wireless b/general/overlay/etc/init.d/S30wireless deleted file mode 100755 index e0ffdabc..00000000 --- a/general/overlay/etc/init.d/S30wireless +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -dev=$(fw_printenv -n wlandev) -mac=$(fw_printenv -n wlanaddr) -wlan=/etc/wireless -netif=/etc/network/interfaces.d - -if [ "$1" = "start" ] && [ ! -z "$dev" ]; then - if $wlan/usb "$dev" || $wlan/modem "$dev" || $wlan/sdio "$dev"; then - grep -q "static" $netif/eth0 || cp -f $wlan/interfaces/* $netif - fi -fi - -if [ "$1" = "start" ] && [ ! -z "$mac" ]; then - ip link set dev wlan0 address "$mac" -fi diff --git a/general/overlay/etc/init.d/S40network b/general/overlay/etc/init.d/S40network new file mode 100755 index 00000000..60fdccb6 --- /dev/null +++ b/general/overlay/etc/init.d/S40network @@ -0,0 +1,41 @@ +#!/bin/sh +dev=$(fw_printenv -n wlandev) +mac=$(fw_printenv -n wlanmac) + +set_wireless() { + path=/etc/wireless + if $path/usb "$dev" || $path/modem "$dev" || $path/sdio "$dev"; then + ifup wlan0 + fi + + if [ -n "$mac" ]; then + ip link set dev wlan0 address "$mac" + fi +} + +case "$1" in + start) + echo "Starting network..." + ifup -a + [ -n "$dev" ] && set_wireless && file="-i /etc/wireless/interfaces/eth0" + ifup eth0 $file + ;; + + stop) + echo "Stopping network..." + ifdown -a + [ -n "$dev" ] && ifdown wlan0 + ifdown eth0 + ;; + + restart|reload) + "$0" stop + "$0" start + ;; + + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 +esac + +exit $? diff --git a/general/overlay/etc/network/interfaces.d/eth0 b/general/overlay/etc/network/interfaces.d/eth0 index 055f7695..d2cd4306 100644 --- a/general/overlay/etc/network/interfaces.d/eth0 +++ b/general/overlay/etc/network/interfaces.d/eth0 @@ -1,7 +1,2 @@ -auto eth0 iface eth0 inet dhcp hwaddress ether $(fw_printenv -n ethaddr || echo 00:00:23:34:45:66) - #udhcpc_opts -O search -O ntpsrv -O hostname - #pre-up echo -e "nameserver 77.88.8.8\nnameserver 8.8.4.4\n" >/tmp/resolv.conf - #pre-up echo -e "server 0.time.openipc.org iburst\nserver 1.time.openipc.org iburst\nserver 2.time.openipc.org iburst\nserver 3.time.openipc.org iburst" >/tmp/ntp.conf - #up /usr/sbin/ntpd -N -q diff --git a/general/overlay/etc/network/interfaces.d/wlan0 b/general/overlay/etc/network/interfaces.d/wlan0 index cc9f06c1..7bce98b9 100644 --- a/general/overlay/etc/network/interfaces.d/wlan0 +++ b/general/overlay/etc/network/interfaces.d/wlan0 @@ -1,5 +1,5 @@ iface wlan0 inet dhcp - pre-up wpa_passphrase "$(fw_printenv -n wlanssid || echo OpenIPC)" "$(fw_printenv -n wlanpass || echo OpenIPC12345)" > /tmp/wpa_supplicant.conf - pre-up sed -i '2i \\tscan_ssid=1' /tmp/wpa_supplicant.conf - pre-up wpa_supplicant -D nl80211,wext -i wlan0 -c /tmp/wpa_supplicant.conf -B + pre-up wpa_passphrase "$(fw_printenv -n wlanssid)" "$(fw_printenv -n wlanpass)" > /tmp/wpa_supplicant.conf + pre-up sed -i 's/#psk.*/scan_ssid=1/g' /tmp/wpa_supplicant.conf + pre-up wpa_supplicant -B -i wlan0 -D nl80211,wext -c /tmp/wpa_supplicant.conf post-down killall -q wpa_supplicant diff --git a/general/overlay/etc/profile b/general/overlay/etc/profile index 3d927b96..59dc712a 100644 --- a/general/overlay/etc/profile +++ b/general/overlay/etc/profile @@ -46,7 +46,7 @@ set_fullname() { } show_wlan() { - grep -r '$1..=' /etc/wireless | cut -d '"' -f 4 + grep -r '$1..=' /etc/wireless | cut -d '"' -f 4 | sort | grep -e $(fw_printenv -n soc) -e generic } # Source configuration files from /etc/profile.d diff --git a/general/overlay/etc/wireless/interfaces/eth0 b/general/overlay/etc/wireless/interfaces/eth0 index 4bbd4542..0f75b509 100644 --- a/general/overlay/etc/wireless/interfaces/eth0 +++ b/general/overlay/etc/wireless/interfaces/eth0 @@ -1,4 +1,3 @@ -auto eth0 iface eth0 inet static address 192.168.2.10 netmask 255.255.255.0 diff --git a/general/overlay/etc/wireless/interfaces/wlan0 b/general/overlay/etc/wireless/interfaces/wlan0 deleted file mode 100644 index a879a5df..00000000 --- a/general/overlay/etc/wireless/interfaces/wlan0 +++ /dev/null @@ -1,6 +0,0 @@ -auto wlan0 -iface wlan0 inet dhcp - pre-up wpa_passphrase "$(fw_printenv -n wlanssid || echo OpenIPC)" "$(fw_printenv -n wlanpass || echo OpenIPC12345)" > /tmp/wpa_supplicant.conf - pre-up sed -i '2i \\tscan_ssid=1' /tmp/wpa_supplicant.conf - pre-up wpa_supplicant -D nl80211,wext -i wlan0 -c /tmp/wpa_supplicant.conf -B - post-down killall -q wpa_supplicant diff --git a/general/overlay/etc/wireless/modem b/general/overlay/etc/wireless/modem index 335ed76b..74c5c8a7 100755 --- a/general/overlay/etc/wireless/modem +++ b/general/overlay/etc/wireless/modem @@ -1,6 +1,7 @@ #!/bin/sh set_gpio() { + test -e /sys/class/gpio/gpio$1 && echo $1 > /sys/class/gpio/unexport echo $1 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio$1/direction echo $2 > /sys/class/gpio/gpio$1/value diff --git a/general/overlay/etc/wireless/sdio b/general/overlay/etc/wireless/sdio index 6446c90c..277641d1 100755 --- a/general/overlay/etc/wireless/sdio +++ b/general/overlay/etc/wireless/sdio @@ -1,6 +1,7 @@ #!/bin/sh set_gpio() { + test -e /sys/class/gpio/gpio$1 && echo $1 > /sys/class/gpio/unexport echo $1 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio$1/direction echo $2 > /sys/class/gpio/gpio$1/value diff --git a/general/overlay/etc/wireless/usb b/general/overlay/etc/wireless/usb index 6d02d9c2..ab307a6f 100755 --- a/general/overlay/etc/wireless/usb +++ b/general/overlay/etc/wireless/usb @@ -1,6 +1,7 @@ #!/bin/sh set_gpio() { + test -e /sys/class/gpio/gpio$1 && echo $1 > /sys/class/gpio/unexport echo $1 > /sys/class/gpio/export echo out > /sys/class/gpio/gpio$1/direction echo $2 > /sys/class/gpio/gpio$1/value