[PATCH] uqmi: fix network registration loop

Florian Eckert fe at dev.tdt.de
Wed Apr 21 10:06:46 BST 2021



On 2021-04-20 08:20, Florian Eckert wrote:
> On 2021-04-19 19:46, thomas.richard at kontron.com wrote:
>> From: Thomas Richard <thomas.richard at kontron.com>
>> 
>> Instrumenting qmi.sh script with following patch, some errors are 
>> visible.
>> --- a/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh
>> +++ b/package/network/utils/uqmi/files/lib/netifd/proto/qmi.sh
>> @@ -29,6 +29,7 @@ proto_qmi_init_config() {
>>  }
>> 
>>  proto_qmi_setup() {
>> +       set -x
>>         local interface="$1"
>>         local dataformat connstat plmn_mode mcc mnc
>>         local device apn auth username password pincode delay modes 
>> pdptype
>> @@ -224,6 +225,8 @@ proto_qmi_setup() {
>>                 fi
>>         done
>> 
>> +       registration=$(uqmi -s -d "$device" --get-serving-system)
>> +
>>         [ -n "$modes" ] && uqmi -s -d "$device" --set-network-modes
>> "$modes" > /dev/null 2>&1
>> 
>>         echo "Starting network $interface"
>> 
>> During the boot of the system, modem could not start automatically its
>> network registration.
>> netifd: wan (9235): + echo 'Waiting for network registration'
>> netifd: wan (9235): Waiting for network registration
>> netifd: wan (9235): + local 'registration_timeout=0'
>> netifd: wan (9235): + uqmi -s -d /dev/cdc-wdm1 --get-serving-system
>> netifd: wan (9235): + grep '"searching"'
>> netifd: wan (9235): + uqmi -s -d /dev/cdc-wdm1 --get-serving-system
>> netifd: wan (9235): +
>> registration='{"registration":"not_registered","plmn_mcc":208,"plmn_mnc":20,"plmn_description":"","roaming":true}'
>> netifd: wan (9235): + '[' -n  ]
>> netifd: wan (9235): + echo 'Starting network wan'
>> 
>> As the while loop checks only "searching" pattern, uqmi.sh script
>> quits searching loop and continues whereas the modem is not registered
>> 
>> Other issue, after X seconds modem stop searching.
>> netifd: wan (9213): + uqmi -s -d /dev/cdc-wdm0 --get-serving-system
>> netifd: wan (9213): + grep '"searching"'
>> netifd: wan (9213): + '[' -e /dev/cdc-wdm0 ]
>> netifd: wan (9213): + '[' 3 -lt 0 -o 0 '=' 0 ]
>> netifd: wan (9213): + let registration_timeout++
>> netifd: wan (9213): + sleep 1
>> netifd: wan (9213): + uqmi -s -d /dev/cdc-wdm0 --get-serving-system
>> netifd: wan (9213): + grep '"searching"'
>> netifd: wan (9213): + uqmi -s -d /dev/cdc-wdm0 --get-serving-system
>> netifd: wan (9213): + registration='{"registration":"not_registered"}'
>> netifd: wan (9213): + '[' -n  ]
>> netifd: wan (9213): + echo 'Starting network wan'
>> netifd: wan (9213): Starting network wan
>> 
>> If registration_timeout is not expired, registration can be restarted
>> 
>> Signed-off-by: Thomas Richard <thomas.richard at kontron.com>

Tested-by: Florian Eckert <fe at dev.tdt.de>

Works as expected.
Thanks!



More information about the openwrt-devel mailing list