Spitz Firmware upgrade to 4.4.6 killed my cellular connections

I mean, I can setup a wireless net on the router and manually set my desktop Ip/mask and it will not connect no matter what I try. I have some network experience, I may be rusty but still, I’ve tried.

Hi,larrs110. If you are willing to adopt my solution, can you enter the x3000 terminal to modify this file? and set the pincode and redial in manual setup.see whether it works?
File path: /lib/netifd/proto/qcm.sh

I am somewhat rusty on terminal. Would the following be correct

ssh access
Via luci, in System/Admin set int to LAN , save & Reset
ssh password@192.168.8.1

cd /path/to/your/directory
Manually enter **** for $pincode
What element is the ‘Redial’ and what do I change exactly on this ?
Exit ~ sudo reboot

secondly, the router has 2 sims, so would that follow that I enter pin1 and pin2 on that line of code
That is just a manual overwrite and not actually a command I have to enter to change the pin/s ?

Hi YQ24. I appreciate ur suggestion but how might I DLoad/Upload a stable version like 4.4.3 maybe. There appear to be a number of issues not just with the 5G connections but with wifi also. It really needs a fresh flash of the firmware I think.

Hi,larrs110,after modifying the file, use this manual setup to reconnect to the cellular network.See whether it works?


I am familar with manual pin entry on gui. But I am having trouble connecting on ssh to the box. I did ask some questions above on command line instructions, can u advise. I need some help here please
It will not accept the password…
larjones@laurences-iMac ~ % ssh Hak******@192.168.8.1
The authenticity of host ‘192.168.8.1 (192.168.8.1)’ can’t be established.
ED25519 key fingerprint is SHA256:S0u9ShrpAFlG14GjQQO1OFb4OHXR/2**********.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added ‘192.168.8.1’ (ED25519) to the list of known hosts.

I said YES but…

Hi,larrs110. use the root username

your highlighted section does not exist as you show it but further down under i/raw_ip and no option for pincodes. There are other pincode elements but I am not a code guy and better I let you look at the file.
proto_qcm_setup() {
local interface=“$1”
local devpath=“”
local devname=“”

local device ifname  apn pincode ifname auth username password  node $PROTO_DEFAULT_OPTIONS mtu band_enable band_list apn_use date
json_get_vars device ifname apn pincode auth username password  node $PROTO_DEFAULT_OPTIONS mtu	band_enable band_list apn_use date
local ipv6=`uci get glipv6.globals.enabled 2>/dev/null`

if [ -f "/proc/gl-hw-info/build-in-modem" ];then
	. /lib/functions/modem.sh
	[ "$apn_use" = "" ] && {
		apn_use=`check_apn`
		if [ "$apn_use" = "0" ];then
			echo "The apn does not get."
			sleep 1
			return 1
		elif [ "$apn_use" = "-1" ];then
			echo "SIM not ready"
		fi
	}
	modem_AT_set_roaming
	modem_AT_set_band
	modem_AT_lock_cell_tower
	modem_AT_set_apn
fi

# fix_tmobile_dial

case $auth in
"PAP") auth=1 ;;
"CHAP") auth=2 ;;
"PAP or CHAP") auth=3 ;;
"PAP/CHAP") auth=3 ;;
*) auth=0 ;;
esac

if [ -n "$node" ];then
	devpath="$(find  /sys/devices/ -name "$node" 2>/dev/null)"
	devname="$(find "$devpath" -name  "cdc-wdm*" 2>/dev/null)"
	devname="$(basename "$devname")"
else
	devname="$(basename "$device")"

	if [ ${devname/mhi//} == $devname ];then
		devpath="$(readlink -f /sys/class/usbmisc/$devname/device/)"
		bus="$(basename "$devpath"|cut -d ':' -f 1)"
	else
		devpath="$(readlink -f /sys/class/net/rmnet_mhi0/device)"
		bus="$(basename $(dirname "$devpath"))"
	fi
fi

if [ -n "$node" ];then
	#fix config
	[ "$devname" = "$(basename "$device")" ] || {
		[ -n "$devname" ] && uci set network."$interface".device="/dev/${devname}" && uci commit
	}
fi

device="$(readlink -f $device)"
[ -c "$device" ] || {
	echo "The specified control device does not exist"
	proto_notify_error "$interface" NO_DEVICE
	proto_set_available "$interface" 0
	return 1
}

ifname="$( ls "$devpath"/net )"
dataformat="$(uqmi -t 3000 -s -d "$device" --wda-get-data-format)"
if [ "$dataformat" = '"raw-ip"' ]; then
	if [ -f /sys/class/net/$ifname/qmi/raw_ip ];then
		echo "Y" > /sys/class/net/$ifname/qmi/raw_ip
	else
		echo "Device only supports raw-ip mode but is missing this required driver attribute: /sys/class/net/$ifname/qmi/raw_ip"
	fi
elif [ -n "`echo "$dataformat" | grep Failed`" ];then
	echo "Failed to connect to service"
	return 1
else
	if [ -f /sys/class/net/$ifname/qmi/raw_ip ];then
		echo "N" > /sys/class/net/$ifname/qmi/raw_ip
	else
		echo "Device only supports 802.3 mode but is missing this required driver attribute: /sys/class/net/$ifname/qmi/raw_ip"
	fi
fi

#apn_use=1
#profile_id=$(uci -q get network.$interface.id)
#if [ -n "$profile_id" ]; then
#apn_use=$(uci -q get apnprofile.$profile_id.apn_use)
#fi
pdp_type='-4'
bus_str=$(echo $interface|cut -d '_' -f 2)
if [ ${#bus_str} -eq 1 ]; then
	modem_bus=$(echo $INTERFACE | sed 's/modem_//g' | sed 's/_/-/' | sed 's/_/./')
else
	modem_bus="$(get_modem_bus)"
fi
if [ "$ipv6" = "1" ]; then
	pdp_type='-4 -6'
	if [ "$apn_use" != "" ]; then
		[ -n "$modem_bus" ] && gl_modem -B $modem_bus AT AT+CGDCONT=$apn_use,\"IPV4V6\"
	fi
fi

[ -z "$apn" ] && {
	username=""
	password=""
	auth=""
}

[ -z "$username" ] && {
	password=""
	auth=""
}

[ -n "$mtu" ] && {
	echo "Setting MTU to $mtu"
	/sbin/ip link set dev $ifname mtu $mtu
}

if [ "$apn_use" != "-1" ];then
	if [ "$apn_use" != "" ]; then
		pdp_type='-4 -6'
		proto_run_command "$interface" qcm ${pdp_type:=-4 -6} \
			${cid:=-n $apn_use} \
			${apn:+-s $apn} \
			${username:+ $username} \
			${password:+ $password} \
			${auth:+ $auth} \
			${pincode:+-p $pincode}
	else
		proto_run_command "$interface" qcm ${pdp_type:=-4 -6} \
			${apn:+-s $apn} \
			${username:+ $username} \
			${password:+ $password} \
			${auth:+ $auth} \
			${pincode:+-p $pincode}
	fi
else
	proto_run_command "$interface" qcm ${pdp_type:=-4 -6}
fi

# proto_run_command "$interface" qcm ${apn:+-s $apn} \
# 		${username:+ $username} \
# 		${password:+ $password} \
# 		${auth:+ $auth} \
# 		${pincode:+-p $pincode}

    proto_init_update "$ifname" 1                                                                                     
    proto_set_keep 1                                                                                     
    proto_send_update "$interface"

time=`date '+%s'`
json_init
json_add_string name "${interface}_4"
json_add_string ifname "@$interface"
json_add_string proto "dhcp"
json_add_string date "$time"
proto_add_dynamic_defaults
ubus call network add_dynamic "$(json_dump)"

(sleep 3;path=`find  /sys/devices/ -name 'link_state'`;[ -n $path ] && echo "0x1" > $path) &
return 0

}

proto_qcm_teardown() {
local path=find /sys/devices/ -name 'link_state'
echo 0x0 > $path
local interface=“$1”
proto_kill_command “$interface”
}

[ -n “$INCLUDE_ONLY” ] || {
add_protocol qcm

Hi,larrs110. Have you added highlighted content to the file?Has the cellular network started working now?

Im sorry, but do you not read my replies ? I want to reiterate that this attempt to fix the cellular connection may yield a result but the router has several issues and the real fix is to have the firmware reinstalled, possibly to an earlier stable version. There has to be a workaround for this and again I beg the question. Going back to the amended file, are you working on a different version, not 4.4.6 as the file I sent you does not compare directly ?

If it is convenient for you,you could share with gl.inet_support via cloud platform.I will check it remotly.

Looks like there is miscomms between you two. @YQ24 wants you to ADD the highlighted area to the code, not modify the pincode var in the highlighted block. But yeah would be better if the highlighted code was being copy pasted into here instead taking a screenshot…

OK. Thx spitzuser. I did exactly that and replaced the pincode variable with the pin number, and it did not work. But I am not a coder so the chances of me creating that section and getting it right are slim. I hit reset firmware in system, Delete & Reboot once again so I am back to square one. Please someone please advise. Again I ask, is there a way in Luci for me to download and reinstall a more stable version like say 4.4.3 ?

Don’t change the variables. Only place the highlighted code between the lines.

local ipv6=uci get glipv6.globals.enabled 2>/dev/null

HERE

if [ -f “/proc/gl-hw-info/build-in-modem” ];then

Save file and enter your PIN in the GUI.

You can download 4.4.3 from GL.iNet download center and do a downgrade via GUI, like shown above in RVer’s reply

would you believe it, I somehow missed KVers reply and did so now and downgraded to 4.4.3 and IT WORKS again. Many many thanks Spitzuser and to all that helped get me back on. Appreciated. Laurence

1 Like