wifi works!
This commit is contained in:
1 parent
b24faa4b30
commit
3fc9362a91
3 files changed
+106
-2
No files matched your search
@@ -33,6 +33,9 @@ define Package/$(PKG_NAME)/install
|
||||
|
||||
$(INSTALL_DIR) $(1)/root/
|
||||
$(INSTALL_BIN) ./files/luci-app-tailscale*.apk $(1)/root/
|
||||
|
||||
$(INSTALL_DIR) $(1)/etc/init.d
|
||||
$(INSTALL_BIN) ./files/uim_selection $(1)/etc/init.d/
|
||||
endef
|
||||
|
||||
define Package/$(PKG_NAME)/postinst
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
#!/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 $?
|
||||
}
|
||||
+3
-2
@@ -1,7 +1,7 @@
|
||||
CONFIG_TARGET_msm89xx=y
|
||||
CONFIG_TARGET_msm89xx_msm8916=y
|
||||
CONFIG_TARGET_msm89xx_msm8916_DEVICE_generic-sp970=y
|
||||
CONFIG_LIBQMI_COLLECTION_BASIC=y
|
||||
CONFIG_LIBQMI_COLLECTION_FULL=y
|
||||
CONFIG_LIBQMI_WITH_MBIM_QMUX=y
|
||||
CONFIG_LIBQMI_WITH_QRTR_GLIB=y
|
||||
CONFIG_MODEMMANAGER_WITH_MBIM=y
|
||||
@@ -47,7 +47,6 @@ 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
|
||||
@@ -71,6 +70,7 @@ CONFIG_PACKAGE_modemmanager=y
|
||||
CONFIG_PACKAGE_mount-utils=y
|
||||
CONFIG_PACKAGE_mtools=y
|
||||
CONFIG_PACKAGE_nano=y
|
||||
CONFIG_PACKAGE_qmi-utils=y
|
||||
CONFIG_PACKAGE_resize2fs=y
|
||||
CONFIG_PACKAGE_resolveip=y
|
||||
CONFIG_PACKAGE_rpcd=y
|
||||
@@ -88,5 +88,6 @@ CONFIG_PACKAGE_ucode-mod-lua=y
|
||||
CONFIG_PACKAGE_ucode-mod-math=y
|
||||
CONFIG_PACKAGE_uhttpd=y
|
||||
CONFIG_PACKAGE_uhttpd-mod-ubus=y
|
||||
CONFIG_PACKAGE_uz801-tweaks=y
|
||||
CONFIG_PACKAGE_wireguard-tools=y
|
||||
# CONFIG_TARGET_ROOTFS_EXT4FS is not set
|
||||
Reference in new issue
Block a user