From eccd2f8735a01853e0c389ae2b67aea7526b94ab Mon Sep 17 00:00:00 2001 From: Miguel Fuertes Date: Fri, 10 Oct 2025 19:57:22 +0200 Subject: [PATCH] only one board --- msm89xx/image/msm8916.mk | 11 -- msm89xx/patches-6.12/801-add-sp970-dts.patch | 56 ---------- .../803-add-dts-to-makefile.patch | 12 --- packages/configs-sp970/Makefile | 58 ---------- .../files/luci-app-tailscale-1.2.6-r1.apk | Bin 9085 -> 0 bytes packages/configs-sp970/files/mcfg_sw.mbn | Bin 8344 -> 0 bytes packages/configs-sp970/files/uci_defaults | 33 ------ packages/configs-sp970/files/uim_selection | 100 ------------------ .../files/msm-firmware-dumper.init | 2 +- .../files/msm-firmware-dumper.sh | 4 +- readme.md | 34 +++--- sp970_diffconfig | 92 ---------------- 12 files changed, 16 insertions(+), 386 deletions(-) delete mode 100644 msm89xx/patches-6.12/801-add-sp970-dts.patch delete mode 100644 msm89xx/patches-6.12/803-add-dts-to-makefile.patch delete mode 100644 packages/configs-sp970/Makefile delete mode 100644 packages/configs-sp970/files/luci-app-tailscale-1.2.6-r1.apk delete mode 100644 packages/configs-sp970/files/mcfg_sw.mbn delete mode 100644 packages/configs-sp970/files/uci_defaults delete mode 100644 packages/configs-sp970/files/uim_selection delete mode 100644 sp970_diffconfig diff --git a/msm89xx/image/msm8916.mk b/msm89xx/image/msm8916.mk index f1d4810..0d0f205 100644 --- a/msm89xx/image/msm8916.mk +++ b/msm89xx/image/msm8916.mk @@ -39,15 +39,4 @@ define Device/yiming-uz801v3 endef TARGET_DEVICES += yiming-uz801v3 -define Device/generic-sp970 - $(Device/msm8916) - DEVICE_VENDOR := Generic - DEVICE_MODEL := SP970 - FILESYSTEMS := squashfs - DEVICE_PACKAGES := configs-sp970 wpad-basic-wolfssl rmtfs uci-usb-gadget \ - block-mount f2fs-tools prepare-rootfs-data \ - msm-firmware-dumper -endef -TARGET_DEVICES += generic-sp970 - endif diff --git a/msm89xx/patches-6.12/801-add-sp970-dts.patch b/msm89xx/patches-6.12/801-add-sp970-dts.patch deleted file mode 100644 index cd82198..0000000 --- a/msm89xx/patches-6.12/801-add-sp970-dts.patch +++ /dev/null @@ -1,56 +0,0 @@ -diff --git a/arch/arm64/boot/dts/qcom/msm8916-generic-sp970.dts b/arch/arm64/boot/dts/qcom/msm8916-generic-sp970.dts -new file mode 100644 -index 000000000000..222222222222 ---- /dev/null -+++ b/arch/arm64/boot/dts/qcom/msm8916-generic-sp970.dts -@@ -0,0 +1,50 @@ -+// SPDX-License-Identifier: GPL-2.0-only -+ -+/dts-v1/; -+ -+#include "msm8916-ufi.dtsi" -+ -+/ { -+ model = "Generic SP970 4G LTE WiFi Modem"; -+ compatible = "generic,sp970", "qcom,msm8916"; -+}; -+ -+/* Reset button (active low) */ -+&button_restart { -+ gpios = <&tlmm 107 GPIO_ACTIVE_LOW>; -+}; -+ -+/* RGB LEDs */ -+&led_r { -+ gpios = <&tlmm 9 GPIO_ACTIVE_HIGH>; -+}; -+ -+&led_g { -+ gpios = <&tlmm 10 GPIO_ACTIVE_HIGH>; -+}; -+ -+&led_b { -+ gpios = <&tlmm 28 GPIO_ACTIVE_HIGH>; -+}; -+ -+/* Pinctrl for button and LEDs */ -+&button_default { -+ pins = "gpio107"; -+ bias-pull-up; -+}; -+ -+&gpio_leds_default { -+ pins = "gpio9", "gpio10", "gpio28"; -+}; -+ -+/* Sleep clock aligned to the typical 32.768 kHz crystal */ -+&sleep_clk { -+ clock-frequency = <32768>; -+}; -+ -+/* WCN3660B WiFi/BT - Add critical XO clock */ -+&wcnss_iris { -+ compatible = "qcom,wcn3660b"; -+ clocks = <&rpmcc RPM_SMD_RF_CLK2>; -+ clock-names = "xo"; -+}; diff --git a/msm89xx/patches-6.12/803-add-dts-to-makefile.patch b/msm89xx/patches-6.12/803-add-dts-to-makefile.patch deleted file mode 100644 index 32871ab..0000000 --- a/msm89xx/patches-6.12/803-add-dts-to-makefile.patch +++ /dev/null @@ -1,12 +0,0 @@ -Index: linux-6.12.50/arch/arm64/boot/dts/qcom/Makefile -=================================================================== ---- linux-6.12.50.orig/arch/arm64/boot/dts/qcom/Makefile -+++ linux-6.12.50/arch/arm64/boot/dts/qcom/Makefile -@@ -59,6 +59,7 @@ dtb-$(CONFIG_ARCH_QCOM) += msm8916-wingt - dtb-$(CONFIG_ARCH_QCOM) += msm8916-wingtech-wt86528.dtb - dtb-$(CONFIG_ARCH_QCOM) += msm8916-wingtech-wt88047.dtb - dtb-$(CONFIG_ARCH_QCOM) += msm8916-yiming-uz801v3.dtb -+dtb-$(CONFIG_ARCH_QCOM) += msm8916-generic-sp970.dtb - dtb-$(CONFIG_ARCH_QCOM) += msm8929-wingtech-wt82918hd.dtb - dtb-$(CONFIG_ARCH_QCOM) += msm8939-huawei-kiwi.dtb - dtb-$(CONFIG_ARCH_QCOM) += msm8939-longcheer-l9100.dtb diff --git a/packages/configs-sp970/Makefile b/packages/configs-sp970/Makefile deleted file mode 100644 index a47ba49..0000000 --- a/packages/configs-sp970/Makefile +++ /dev/null @@ -1,58 +0,0 @@ - -include $(TOPDIR)/rules.mk - -PKG_NAME:=configs-sp970 -PKG_VERSION:=1.0 - -PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) - -include $(INCLUDE_DIR)/package.mk - -define Package/$(PKG_NAME) - SECTION:=Utilities - CATEGORY:=Utilities - TITLE:=Defaults Setting For sp970 - DEPENDS:=+PACKAGE_luci:luci-proto-modemmanager -endef - -# (Opcional) Descripción -define Package/$(PKG_NAME)/description -Tweaks y defaults para sp970, incluyendo limpieza de feeds APK problemáticos. -endef - -define Build/Configure -endef - -define Build/Compile -endef - -# Instala ficheros de configuración y payload que ya tenías -define Package/$(PKG_NAME)/install - $(INSTALL_DIR) $(1)/etc/uci-defaults - $(INSTALL_BIN) ./files/uci_defaults $(1)/etc/uci-defaults/99-default-config - - $(INSTALL_DIR) $(1)/root/ - $(INSTALL_DATA) ./files/luci-app-tailscale*.apk $(1)/root/ - - $(INSTALL_DIR) $(1)/etc/init.d - $(INSTALL_BIN) ./files/uim_selection $(1)/etc/init.d/ - - $(INSTALL_DIR) $(1)/lib/firmware - $(INSTALL_DATA) ./files/mcfg_sw.mbn $(1)/lib/firmware/MCFG_SW.MBN -endef - -define Package/$(PKG_NAME)/postinst -#!/bin/sh -set -e -FILE="/etc/apk/repositories.d/distfeeds.list" -ROOT="$${IPKG_INSTROOT:-/}" -TARGET_FILE="$$ROOT$$FILE" - -if [ -f "$$TARGET_FILE" ]; then - sed -i '\|/targets/msm89xx/msm8916/packages|d' "$$TARGET_FILE" || true -fi - -exit 0 -endef - -$(eval $(call BuildPackage,$(PKG_NAME))) diff --git a/packages/configs-sp970/files/luci-app-tailscale-1.2.6-r1.apk b/packages/configs-sp970/files/luci-app-tailscale-1.2.6-r1.apk deleted file mode 100644 index 726f159b4d9b2d5d3708c8f4bbd1d5b18e22995f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9085 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 diff --git a/packages/configs-sp970/files/mcfg_sw.mbn b/packages/configs-sp970/files/mcfg_sw.mbn deleted file mode 100644 index 65270cfeb6046201f498e893fae5eb49faf7faf0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8344 zcmb<-^>JflWMqH=CLjaGGl2@S0BI8j1qNmY4VW?%dJ2Na4rdAgSy0>o5(Kds6qrCX z*n9;L9|C3oDG+7@Vvt>^X%j18<`9RT~A`ZiUfvnie0G}-@9x2iT=GgdmrP~JSsUF0;3@?8Umvs zFd71*Aut*OqaiRF0;3@?8UmvsFd71*AwW?G_&U3}GXrPjLG$jCK-?_M!eGSkfC}Z7K_$ExKuZN+JZ~`111Q1;#0wcL7(fQchXnb6Bp4YX qhBC1*m@z(JWaeUUNli;E%_-3h4rc+*`ZGq%;$>ikr~zvC24VmQ/dev/null || true -sed -i 's/"device": "eth0"/"device": "br-lan"/g' /etc/board.json - -# Commit all changes -uci commit - -# Apply network and wireless configuration -wifi reload -/etc/init.d/network restart - -exit 0 diff --git a/packages/configs-sp970/files/uim_selection b/packages/configs-sp970/files/uim_selection deleted file mode 100644 index f31062e..0000000 --- a/packages/configs-sp970/files/uim_selection +++ /dev/null @@ -1,100 +0,0 @@ -#!/bin/sh /etc/rc.common - -# This script tries to automatically configure UIM application for Qualcomm QMI -# modems with more than one sim slot. - -# Adapted from pmOS: -# https://gitlab.com/postmarketOS/pmaports/-/blob/master/modem/msm-modem/msm-modem-uim-selection.initd - -eend() { echo $@; } -veinfo() { echo $@; } -ewarn() { echo $@; } - -# Must run after rmtfs but before ModemManager -START=30 - -start() { - case "$(cat /sys/devices/soc0/machine)" in - APQ*) - eend 0 'Skipping SIM configuration on APQ SoC.' - return 0 - esac - - # libqmi must be present to use this script. - if ! [ -x "$(command -v qmicli)" ] - then - eend 1 'qmicli is not installed.' - return 1 - fi - - # Prepare a qmicli command with desired modem path. - # The modem may appear after some delay, wait for it. - count=0 - while [ -z "$QMICLI_MODEM" ] && [ "$count" -lt "45" ] - do - # Check if legacy rpmsg exported device exists. - if [ -e "/dev/modem" ] - then - QMICLI_MODEM="qmicli --silent -d /dev/modem" - veinfo "Using /dev/modem" - # Check if the qmi device from wwan driver exists. - elif [ -e "/dev/wwan0qmi0" ] - then - # Using --device-open-qmi flag as we may have libqmi - # version that can't automatically detect the type yet. - QMICLI_MODEM="qmicli --silent -d /dev/wwan0qmi0 --device-open-qmi" - veinfo "Using /dev/wwan0qmi0" - # Check if QRTR is available for new devices. - elif qmicli --silent -pd qrtr://0 --uim-noop > /dev/null - then - QMICLI_MODEM="qmicli --silent -pd qrtr://0" - veinfo "Using qrtr://0" - fi - sleep 1 - count=$((count+1)) - done - veinfo "Waited $count seconds for modem device to appear" - - if [ -z "$QMICLI_MODEM" ] - then - eend 2 'No modem available.' - return 2 - fi - - QMI_CARDS=$($QMICLI_MODEM --uim-get-card-status) - - # Fail if all slots are empty but wait a bit for the sim to appear. - count=0 - while ! printf "%s" "$QMI_CARDS" | grep -Fq "Card state: 'present'" - do - if [ "$count" -ge "$sim_wait_time" ] - then - eend 4 "No sim detected after $sim_wait_time seconds." - return 4 - fi - - sleep 1 - count=$((count+1)) - QMI_CARDS=$($QMICLI_MODEM --uim-get-card-status) - done - veinfo "Waited $count seconds for modem to come up" - - # Clear the selected application in case the modem is in a bugged state - if ! printf "%s" "$QMI_CARDS" | grep -Fq "Primary GW: session doesn't exist" - then - ewarn 'Application was already selected.' - $QMICLI_MODEM --uim-change-provisioning-session='activate=no,session-type=primary-gw-provisioning' > /dev/null - fi - - # Extract first available slot number and AID for usim application - # on it. This should select proper slot out of two if only one UIM is - # present or select the first one if both slots have UIM's in them. - FIRST_PRESENT_SLOT=$(printf "%s" "$QMI_CARDS" | grep "Card state: 'present'" -m1 -B1 | head -n1 | cut -c7-7) - FIRST_PRESENT_AID=$(printf "%s" "$QMI_CARDS" | grep "usim (2)" -m1 -A3 | tail -n1 | awk '{print $1}') - - veinfo "Selecting $FIRST_PRESENT_AID on slot $FIRST_PRESENT_SLOT" - - # Finally send the new configuration to the modem. - $QMICLI_MODEM --uim-change-provisioning-session="slot=$FIRST_PRESENT_SLOT,activate=yes,session-type=primary-gw-provisioning,aid=$FIRST_PRESENT_AID" > /dev/null - eend $? -} diff --git a/packages/msm-firmware-dumper/files/msm-firmware-dumper.init b/packages/msm-firmware-dumper/files/msm-firmware-dumper.init index 79a0a07..867b620 100644 --- a/packages/msm-firmware-dumper/files/msm-firmware-dumper.init +++ b/packages/msm-firmware-dumper/files/msm-firmware-dumper.init @@ -27,7 +27,7 @@ start() { logger -t "$NAME" "Starting firmware dump" - if $PROG; then + if FLAG="$FLAG" $PROG; then logger -t "$NAME" "Firmware dump successful, rebooting" sleep 1 reboot diff --git a/packages/msm-firmware-dumper/files/msm-firmware-dumper.sh b/packages/msm-firmware-dumper/files/msm-firmware-dumper.sh index 20a1995..81bc98e 100644 --- a/packages/msm-firmware-dumper/files/msm-firmware-dumper.sh +++ b/packages/msm-firmware-dumper/files/msm-firmware-dumper.sh @@ -5,10 +5,10 @@ # env var to override the MCFG relative path within modem/persist. set -e -FLAG="/lib/firmware/DUMPED" +DEFAULT_FLAG="/lib/firmware/DUMPED" DEFAULT_MCFG_PATH="image/modem_pr/mcfg/configs/mcfg_sw/generic/common/default/default" -MARKER="${MSM_DUMPER_FLAG_FILE:-$DEFAULT_MARKER}" +MARKER="${FLAG:-$DEFAULT_FLAG}" [ -f "$MARKER" ] && exit 0 log() { logger -t msm-fw-dumper "$*"; } diff --git a/readme.md b/readme.md index b4da679..623a9a7 100644 --- a/readme.md +++ b/readme.md @@ -1,6 +1,6 @@ ![OpenWrt logo](https://raw.githubusercontent.com/openwrt/openwrt/refs/heads/main/include/logo.png) -Modern OpenWrt build targeting the msm8916 platform (uz801 and sp970 Chineese 4g Dongles) with full modem and USB gadget support. +Modern OpenWrt build targeting the UZ801v3 LTE dongle with full modem and USB gadget support. ## Table of Contents @@ -55,15 +55,14 @@ OpenWrt Project is a Linux operating system targeting embedded devices. Instead ## Building 1. Enter the build environment: -```shell +``` cd devenv docker compose run --rm builder ``` 2. Configure and build: -```shell -cp /repo/uz801_diffconfig .config -# cp /repo/sp970_diffconfig .config +``` +cp /repo/diffconfig .config echo "# CONFIG_SIGNED_PACKAGES is not set" >> .config # Optional: disable signature verification make defconfig make -j$(nproc) @@ -74,30 +73,24 @@ make -j$(nproc) ### Flashing from OEM Firmware 1. **Install EDL tool**: https://github.com/bkerler/edl -2. **Enter EDL mode**: - - **UZ801**: See [PostmarketOS wiki guide](https://wiki.postmarketos.org/wiki/Zhihe_series_LTE_dongles_(generic-zhihe)#How_to_enter_flash_mode) - - **SP970**: Via [EDL cable](https://wiki.bananahackers.net/en/guides/boot/edl/cable). Shorting GND and DATA pins in USB cable. +2. **Enter EDL mode**: See [PostmarketOS wiki guide](https://wiki.postmarketos.org/wiki/Zhihe_series_LTE_dongles_(generic-zhihe)#How_to_enter_flash_mode) + 3. **Backup original firmware**: - ```shell - edl rf backup.bin - ``` + ``` + edl rf backup.bin + ``` 4. **Flash OpenWrt**: - ```shell - ./openwrt-msm89xx-msm8916-yiming-uz801v3-flash.sh - # ./openwrt-msm89xx-msm8916-generic-sp970-flash.sh - ``` + ``` + ./openwrt-msm89xx-msm8916-yiming-uz801v3-flash.sh + ``` > The script automatically backs up device-specific partitions, flashes the firmware, and restores critical data. ### Accessing Boot Modes -**UZ801**: - **Fastboot mode**: Insert device while holding the button - **EDL mode**: Boot to fastboot first, then execute: `fastboot oem reboot-edl` -**SP970**: -- The only other mode you can enter is **EDL Mode**. To do so just short usb's `gnd` the data pin closest to it. - ## Troubleshooting ### No Network / Modem Stuck at Searching @@ -151,5 +144,4 @@ The modem requires region-specific MCFG configuration files. - **[@lkiuyu](https://github.com/lkiuyu/immortalwrt)** - MSM8916 support, patches, and OpenStick feeds - **[@Mio-sha512](https://github.com/Mio-sha512/OpenStick-Builder)** - USB gadget and firmware loader concepts - **[@AlienWolfX](https://github.com/AlienWolfX/UZ801-USB_MODEM/wiki/Troubleshooting)** - Carrier policy troubleshooting guide -- **[@gw826943555](https://github.com/gw826943555/luci-app-tailscale) & [@asvow](https://github.com/asvow)** - Tailscale LuCI application -- **[@HandsomeMod](https://github.com/HandsomeMod/linux-msm/blob/main/arch/arm64/boot/dts/qcom/msm8916-handsome-openstick-sp970.dts)** - Base for the `sp970` dts. +- **[@gw826943555](https://github.com/gw826943555/luci-app-tailscale) & [@asvow](https://github.com/asvow)** - Tailscale LuCI application \ No newline at end of file diff --git a/sp970_diffconfig b/sp970_diffconfig deleted file mode 100644 index 08b8ef6..0000000 --- a/sp970_diffconfig +++ /dev/null @@ -1,92 +0,0 @@ -CONFIG_TARGET_msm89xx=y -CONFIG_TARGET_msm89xx_msm8916=y -CONFIG_TARGET_msm89xx_msm8916_DEVICE_generic-sp970=y -CONFIG_LIBQMI_COLLECTION_BASIC=y -CONFIG_LIBQMI_WITH_MBIM_QMUX=y -CONFIG_LIBQMI_WITH_QRTR_GLIB=y -CONFIG_MODEMMANAGER_WITH_MBIM=y -CONFIG_MODEMMANAGER_WITH_NETIFD=y -CONFIG_MODEMMANAGER_WITH_QMI=y -CONFIG_MODEMMANAGER_WITH_QRTR=y -CONFIG_PACKAGE_bash=y -CONFIG_PACKAGE_cgi-io=y -CONFIG_PACKAGE_dbus=y -CONFIG_PACKAGE_glib2=y -CONFIG_PACKAGE_ip-tiny=y -CONFIG_PACKAGE_kmod-crypto-kpp=y -CONFIG_PACKAGE_kmod-crypto-lib-chacha20=y -CONFIG_PACKAGE_kmod-crypto-lib-chacha20poly1305=y -CONFIG_PACKAGE_kmod-crypto-lib-curve25519=y -CONFIG_PACKAGE_kmod-crypto-lib-poly1305=y -CONFIG_PACKAGE_kmod-tun=y -CONFIG_PACKAGE_kmod-udptunnel4=y -CONFIG_PACKAGE_kmod-udptunnel6=y -CONFIG_PACKAGE_kmod-wireguard=y -CONFIG_PACKAGE_ledcontrol=y -CONFIG_PACKAGE_libattr=y -CONFIG_PACKAGE_libdbus=y -CONFIG_PACKAGE_libexpat=y -CONFIG_PACKAGE_libfdisk=y -CONFIG_PACKAGE_libffi=y -CONFIG_PACKAGE_libiwinfo=y -CONFIG_PACKAGE_libiwinfo-data=y -CONFIG_PACKAGE_liblua=y -CONFIG_PACKAGE_liblucihttp=y -CONFIG_PACKAGE_liblucihttp-lua=y -CONFIG_PACKAGE_liblucihttp-ucode=y -CONFIG_PACKAGE_libmbim=y -CONFIG_PACKAGE_libmount=y -CONFIG_PACKAGE_libncurses=y -CONFIG_PACKAGE_libpcre2=y -CONFIG_PACKAGE_libqmi=y -CONFIG_PACKAGE_libqrtr-glib=y -CONFIG_PACKAGE_libreadline=y -CONFIG_PACKAGE_libubus-lua=y -CONFIG_PACKAGE_lsblk=y -CONFIG_PACKAGE_lua=y -CONFIG_PACKAGE_luci=y -CONFIG_PACKAGE_luci-app-firewall=y -CONFIG_PACKAGE_luci-app-package-manager=y -CONFIG_PACKAGE_luci-app-usb-gadget=y -CONFIG_PACKAGE_luci-base=y -CONFIG_PACKAGE_luci-lib-base=y -CONFIG_PACKAGE_luci-lib-ip=y -CONFIG_PACKAGE_luci-lib-json=y -CONFIG_PACKAGE_luci-lib-jsonc=y -CONFIG_PACKAGE_luci-lib-nixio=y -CONFIG_PACKAGE_luci-lib-uqr=y -CONFIG_PACKAGE_luci-light=y -CONFIG_PACKAGE_luci-lua-runtime=y -CONFIG_PACKAGE_luci-mod-admin-full=y -CONFIG_PACKAGE_luci-mod-network=y -CONFIG_PACKAGE_luci-mod-rpc=y -CONFIG_PACKAGE_luci-mod-status=y -CONFIG_PACKAGE_luci-mod-system=y -CONFIG_PACKAGE_luci-proto-ipv6=y -CONFIG_PACKAGE_luci-proto-modemmanager=y -CONFIG_PACKAGE_luci-proto-ppp=y -CONFIG_PACKAGE_luci-proto-wireguard=y -CONFIG_PACKAGE_luci-theme-bootstrap=y -CONFIG_PACKAGE_modemmanager=y -CONFIG_PACKAGE_mount-utils=y -CONFIG_PACKAGE_mtools=y -CONFIG_PACKAGE_nano=y -CONFIG_PACKAGE_resize2fs=y -CONFIG_PACKAGE_resolveip=y -CONFIG_PACKAGE_rpcd=y -CONFIG_PACKAGE_rpcd-mod-file=y -CONFIG_PACKAGE_rpcd-mod-iwinfo=y -CONFIG_PACKAGE_rpcd-mod-luci=y -CONFIG_PACKAGE_rpcd-mod-rrdns=y -CONFIG_PACKAGE_rpcd-mod-ucode=y -CONFIG_PACKAGE_sfdisk=y -CONFIG_PACKAGE_terminfo=y -CONFIG_PACKAGE_tune2fs=y -CONFIG_PACKAGE_ucode-mod-html=y -CONFIG_PACKAGE_ucode-mod-log=y -CONFIG_PACKAGE_ucode-mod-lua=y -CONFIG_PACKAGE_ucode-mod-math=y -CONFIG_PACKAGE_uhttpd=y -CONFIG_PACKAGE_uhttpd-mod-ubus=y -CONFIG_PACKAGE_wireguard-tools=y -# CONFIG_TARGET_ROOTFS_EXT4FS is not set