From c366b45ec90f228aa83e298cbda1470243ed49b1 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Sat, 24 Jul 2021 22:45:08 +0800 Subject: [PATCH] ipq806x: fix Linksys E8350 web sysupgrade --- package/firmware/quantenna/Makefile | 5 +- .../quantenna/files/lib/wifi/quantenna.sh | 9 ++- .../quantenna/files/qtn-firmware.defaults | 2 +- .../firmware/quantenna/files/qtn-utils.init | 11 +-- .../firmware/quantenna/files/qtn-wifi.init | 70 ------------------- .../base-files/lib/upgrade/platform.sh | 5 +- 6 files changed, 19 insertions(+), 83 deletions(-) delete mode 100644 package/firmware/quantenna/files/qtn-wifi.init diff --git a/package/firmware/quantenna/Makefile b/package/firmware/quantenna/Makefile index 8795bda99..19fd1257c 100644 --- a/package/firmware/quantenna/Makefile +++ b/package/firmware/quantenna/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2020 OpenWrt.org +# Copyright (C) 2021 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=quantenna PKG_VERSION:=37.3.2.44 -PKG_RELEASE:=6 +PKG_RELEASE:=8 PKG_MAINTAINER:=lean @@ -54,7 +54,6 @@ define Package/qtn-utils/install $(INSTALL_BIN) $(PKG_BUILD_DIR)/qcsapi_sockrpc $(1)/usr/sbin/ ln -s /tmp/qcsapi_target_ip.conf $(1)/etc $(INSTALL_BIN) ./files/qtn-utils.init $(1)/etc/init.d/qtn-utils - $(INSTALL_BIN) ./files/qtn-wifi.init $(1)/etc/init.d/qtn-wifi endef define Package/qtn-firmware diff --git a/package/firmware/quantenna/files/lib/wifi/quantenna.sh b/package/firmware/quantenna/files/lib/wifi/quantenna.sh index 77d5024af..0adb65640 100644 --- a/package/firmware/quantenna/files/lib/wifi/quantenna.sh +++ b/package/firmware/quantenna/files/lib/wifi/quantenna.sh @@ -25,15 +25,18 @@ detect_quantenna() { set wireless.radio${devidx}.type=quantenna set wireless.radio${devidx}.channel=${channel:-36} set wireless.radio${devidx}.hwmode=11ac + set wireless.radio${devidx}.band=5g + set wireless.radio${devidx}.htmode=VHT80 set wireless.radio${devidx}.phy=${phy} - set wireless.radio${devidx}.disabled=1 + set wireless.radio${devidx}.disabled=0 set wireless.default_radio${devidx}=wifi-iface set wireless.default_radio${devidx}.device=radio${devidx} set wireless.default_radio${devidx}.network=lan set wireless.default_radio${devidx}.mode=ap - set wireless.default_radio${devidx}.ssid=OpenWrt - set wireless.default_radio${devidx}.encryption=none + set wireless.default_radio${devidx}.ssid=OpenWrt-5G + set wireless.default_radio${devidx}.encryption=psk2+ccmp + set wireless.default_radio${devidx}.key=12345678 EOF uci -q commit wireless } diff --git a/package/firmware/quantenna/files/qtn-firmware.defaults b/package/firmware/quantenna/files/qtn-firmware.defaults index b9e78f45a..fac5dca11 100644 --- a/package/firmware/quantenna/files/qtn-firmware.defaults +++ b/package/firmware/quantenna/files/qtn-firmware.defaults @@ -1,7 +1,7 @@ #!/bin/sh # no need for tftp service if the Quantenna module is PCIe connected -[ "$(basename "$(readlink /sys/class/net/$(uci -q get network.qtn.ifname)/device/driver)")" = "qtnfmac_pcie" ] && exit 0 +[ "$(basename "$(readlink /sys/class/net/host0/device/driver)")" = "qdpc_host" ] && exit 0 uci -q get dhcp.qtn_rgmii >/dev/null && exit 0 touch /etc/config/dhcp diff --git a/package/firmware/quantenna/files/qtn-utils.init b/package/firmware/quantenna/files/qtn-utils.init index cf462ed99..9233f12af 100644 --- a/package/firmware/quantenna/files/qtn-utils.init +++ b/package/firmware/quantenna/files/qtn-utils.init @@ -7,12 +7,13 @@ START=19 USE_PROCD=1 start_service() { - local ifname=$(uci get network.qtn.ifname) - local ipaddr=$(uci get network.qtn.ipaddr) + ifconfig host0 1.1.1.1 netmask 255.255.255.252 up + local ifname="host0" + local ipaddr="1.1.1.1" local hex_ip=$(printf "0x%02x%02x%02x%02x" $(echo $ipaddr | tr . \ )) - eval "$(ipcalc.sh $ipaddr $(uci get network.qtn.netmask) 2)" - echo "$START" >/tmp/qcsapi_target_ip.conf + eval "$(ipcalc.sh $ipaddr 255.255.255.252 2)" + echo "1.1.1.2" > /tmp/qcsapi_target_ip.conf # work around Quatenna vlan bug - pop bogus tags from arp and ip packets for 1.1.1.1 tc qdisc add dev $ifname handle ffff: ingress @@ -29,7 +30,7 @@ start_service() { } stop_service() { - local ifname=$(uci get network.qtn.ifname) + local ifname="host0" tc filter del dev $ifname ingress tc qdisc del dev $ifname ingress diff --git a/package/firmware/quantenna/files/qtn-wifi.init b/package/firmware/quantenna/files/qtn-wifi.init deleted file mode 100644 index 9f38ca95a..000000000 --- a/package/firmware/quantenna/files/qtn-wifi.init +++ /dev/null @@ -1,70 +0,0 @@ -#!/bin/sh /etc/rc.common - -START=99 -STOP=10 - -NAME=qtn-wifi - -start() -{ -########################################### -### 5G Quantenna wifi ### -### INITIALIZATION part - do not edit ### -########################################### -# run automatically on start-up modprobe qdpc-host -COUNT=0 -WIFI_INIT=`dmesg |grep -c "Connection established with Target BBIC4 board"` -while [ "$WIFI_INIT" = "0" ] ;do - sleep 1 - WIFI_INIT=`dmesg |grep -c "Connection established with Target BBIC4 board"` - let COUNT+=1 - if [ "$COUNT" -gt 60 ];then - logger "Error 1 in 5G wifi pcie2 firmware initialization" - exit 1 - break - fi -done - -# start wifi configuration and start wifi -ifconfig host0 1.1.1.1 netmask 255.255.255.252 up -echo "1.1.1.2" > /tmp/qcsapi_target_ip.conf -wifi config -uci set wireless.radio1.disabled=0 -uci commit -wifi -sleep 5 -####################################### -### END 5g wifi initialization part ### -####################################### - - - -########################################### -### WIFI CONFIGURATION ### -### edit below this line on your taste ### -########################################### -SSID="OpenWrt-5G" -WPAPASS="12345678" -CHANNEL="149" -TXPOWER=22 - -WIFIDEV=`qcsapi_sockrpc get_primary_interface` -qcsapi_sockrpc get_primary_interface -qcsapi_sockrpc get_regulatory_region "$WIFIDEV" -qcsapi_sockrpc set_regulatory_region "$WIFIDEV" us -qcsapi_sockrpc get_scs_report "$WIFIDEV" all -qcsapi_sockrpc get_channel "$WIFIDEV" -qcsapi_sockrpc set_channel "$WIFIDEV" "$CHANNEL" -qcsapi_sockrpc set_bw "$WIFIDEV" 80 -qcsapi_sockrpc get_tx_power "$WIFIDEV" "$CHANNEL" -qcsapi_sockrpc set_tx_power "$WIFIDEV" "$CHANNEL" "$TXPOWER" -qcsapi_sockrpc -u -q set_option "$WIFIDEV" 802_11h 1 - -qcsapi_sockrpc set_ssid "$WIFIDEV" "$SSID" -qcsapi_sockrpc set_beacon "$WIFIDEV" 11i # WPA2 AES only -qcsapi_sockrpc set_option "$WIFIDEV" SSID_broadcast 1 -qcsapi_sockrpc set_WPA_authentication_mode "$WIFIDEV" PSKAuthentication -qcsapi_sockrpc set_WPA_encryption_modes "$WIFIDEV" AESEncryption -qcsapi_sockrpc set_passphrase "$WIFIDEV" 0 "$WPAPASS" - -} \ No newline at end of file diff --git a/target/linux/ipq806x/base-files/lib/upgrade/platform.sh b/target/linux/ipq806x/base-files/lib/upgrade/platform.sh index 666bb1199..a5a081298 100644 --- a/target/linux/ipq806x/base-files/lib/upgrade/platform.sh +++ b/target/linux/ipq806x/base-files/lib/upgrade/platform.sh @@ -12,7 +12,6 @@ platform_do_upgrade() { case "$(board_name)" in askey,rt4230w-rev6 |\ compex,wpq864 |\ - linksys,e8350-v1 |\ netgear,d7800 |\ netgear,r7500 |\ netgear,r7500v2 |\ @@ -22,6 +21,10 @@ platform_do_upgrade() { qcom,ipq8064-ap161) nand_do_upgrade "$1" ;; + linksys,e8350-v1) + fwtool -q -t -i /dev/null "$1" + nand_do_upgrade "$1" + ;; asrock,g10) asrock_upgrade_prepare nand_do_upgrade "$1"