26 (edytowany przez Payti 2024-02-07 15:34:06)

Odp: BPi-R3 i modem LTE

BPI-R3 dla slotu modemu Mini PCIe ma tylko jedną linię PCIEe do modemu LTE i pracuje jako USB2.0. Ogólnie to wystarcza bo trudno o pełne 1Gbps na LTE-A, 400Mbit/s to już jest i tak nieźle ... Ja w swoim miejscu mam transfery rzędu ok. 100-120Mbit/s DL i 50 Mbit/s UL, przy agregacji do 4 pasm, także jak będzie chodził na takich prędkościach to jest dla mnie ok.

Banana Pi BPI-R3 + SFP GPON ONT Nokia G-010S-A + LTE FIBOCOM L860-GL-16 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Xiaomi AX3600 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Xiaomi AX3000T (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
All OpenWRT compilations from ASU by @Cezary

27

Odp: BPi-R3 i modem LTE

A tego się nie spodziewałem , że BPI-R3 na slocie m.2 ma tylko USB2.0....

28

Odp: BPi-R3 i modem LTE

https://wiki.banana-pi.org/Banana_Pi_BPI-R3 i pierwsze zdjęcie z gniazdami

29 (edytowany przez Payti 2026-03-13 13:05:58)

Odp: BPi-R3 i modem LTE

Ok, modem Fibocom L860-GL odpalony w BPI-R3. Startuje po starcie automatycznie i bangla spoko, musiałem też dołożyć wpisywanie PIN'a do xmm.sh. Agregacja pasm działa. Jak potestuję docelowo to dam osiągalne prędkości. Na razie podaję zawartości zmodyfikowanych skryptów i plików. Skrypty 3ginfo-lite @IceG działają dla tego modemu bardzo dobrze.

/lib/netifd/proto/xmm.sh

#!/bin/sh

. /lib/functions.sh
. /lib/functions/network.sh
. ../netifd-proto.sh
init_proto "$@"


proto_xmm_init_config() {
    no_device=1
    available=1
    proto_config_add_string "device:device"
    proto_config_add_string "apn"
    proto_config_add_string "pdp"
    proto_config_add_string "delay"
    proto_config_add_string "username"
    proto_config_add_string "password"
    proto_config_add_string "auth"
    proto_config_add_string "pincode"
    proto_config_add_defaults
}

proto_xmm_setup() {
    local interface="$1"
    local devname devpath hwaddr ip4addr ip4mask dns1 dns2 defroute lladdr
    local name ifname proto extendprefix auth username password
    local device ifname auth username password apn pdp pincode delay $PROTO_DEFAULT_OPTIONS
    json_get_vars device ifname auth username password apn pdp pincode delay $PROTO_DEFAULT_OPTIONS
    [ "$metric" = "" ] && metric="0"
    [ -z $ifname ] && {
        devname=$(basename $device)
        case "$devname" in
            *ttyACM*)
                echo "Setup xmm interface $interface with port ${device}"
                devpath="$(readlink -f /sys/class/tty/$devname/device)"
                echo "Found path $devpath"
                hwaddr="$(ls -1 $devpath/../*/net/*/*address*)"
                for h in $hwaddr; do
                    if [ "$(cat ${h})" = "00:00:11:12:13:14" ]; then
                        ifname=$(echo ${h} | awk -F [\/] '{print $(NF-1)}')
                    fi
                done
            ;;
        esac
    }

    [ -n "$ifname" ] && {
        echo "Found interface $ifname"
    } || {
        echo "The interface could not be found."
        proto_notify_error "$interface" NO_IFACE
        proto_set_available "$interface" 0
        return 1
    }
    pdp=$(echo $pdp | awk '{print toupper($0)}')
    [ "$pdp" = "IP" -o "$pdp" = "IPV6" -o "$pdp" = "IPV4V6" ] || pdp="IP"
    echo "Setting up $ifname"
    [ -n "$delay" ] && sleep "$delay" || sleep 5
    [ -n "$username" ] && [ -n "$password" ] && {
        echo "Using auth type is: $auth"
        case $auth in
            pap) AUTH=1 ;;
            chap) AUTH=2 ;;
            *) AUTH=0 ;;
        esac
        AUTH=$AUTH USER=$username PASS=$password gcom -d "$device" -s /etc/gcom/xmm-auth.gcom >/dev/null 2>&1
    }
    PINCODE=$pincode gcom -d $device -s /etc/gcom/setpin.gcom >/dev/null 2>&1
    APN=$apn PDP=$pdp  gcom -d $device -s /etc/gcom/xmm-connect.gcom >/dev/null 2>&1
    proto_init_update "$ifname" 1
    proto_add_data
    proto_close_data
    DATA=$(gcom -d $device -s /etc/gcom/xmm-config.gcom)
    ip4addr=$(echo "$DATA" | awk -F [,] '/^\+CGPADDR/{gsub("\r|\"", ""); print $2}') >/dev/null 2>&1
    lladdr=$(echo "$DATA" | awk -F [,] '/^\+CGPADDR/{gsub("\r|\"", ""); print $3}') >/dev/null 2>&1
    ns=$(echo "$DATA" | awk -F [,] '/^\+XDNS: /{gsub("\r|\"",""); print $2" "$3}' | sed 's/^[[:space:]]//g')
    dns1=$(echo "$ns" | grep -v "0.0.0.0" | tail -1)
    if ! [ $ip4addr ]; then
        proto_notify_error "$interface" CONFIGURE_FAILED
        return 1
    fi
    
    case $ip4addr in
        *FE80*)
            lladdr=$ip4addr
            ip4addr=""
        ;;
        *)
            ip4mask=24
            defroute=$(echo $ip4addr | awk -F [.] '{print $1"."$2"."$3".1"}')
        ;;
    esac
    proto_set_keep 1
    ip link set dev $ifname arp off
    echo "PDP type is: $pdp"
    [ "$pdp" = "IP" -o "$pdp" = "IPV4V6" ] && {
        if ! [ "$(echo $ip4addr | grep 0.0.0.0)" ]; then
            echo "Set IPv4 address: ${ip4addr}/${ip4mask}"
            proto_add_ipv4_address $ip4addr $ip4mask
            proto_add_ipv4_route "0.0.0.0" 0 $defroute $ip4addr
        else
            echo "Failed to configure interface"
            proto_notify_error "$interface" CONFIGURE_FAILED
            return 1
        fi
        if ! [ "$(echo $dns1 | grep 0.0.0.0)" ]; then
            proto_add_dns_server "$dns1"
            echo "Using IPv4 DNS: $dns1"
        fi
        proto_add_data
        proto_close_data
        proto_send_update "$interface"
    
    }
    [ "$pdp" = "IPV6" -o "$pdp" = "IPV4V6" ] && {
        ip -6 address add ${lladdr}/64 dev $ifname >/dev/null 2>&1
        json_init
        json_add_string name "${interface}_6"
        json_add_string ifname "@$interface"
        json_add_string proto "dhcpv6"
        json_add_string extendprefix 1
        proto_add_dynamic_defaults
        json_close_object
        ubus call network add_dynamic "$(json_dump)"
    }
}

proto_xmm_teardown() {
    local interface="$1"
    local device
    device=$(uci -q get network.$interface.device)
    gcom -d $device -s /etc/gcom/xmm-disconnect.gcom >/dev/null 2>&1
    echo "Modem $device disconnected"
    proto_kill_command "$interface"
}

add_protocol xmm

/etc/gcom/xmm-auth

opengt
 set com 115200n81
 set comecho off
 set senddelay 0.02
 waitquiet 0.2 0.2

 send "AT+XGAUTH=1,"
 send $env("AUTH")
 send ",\""
 send $env("USER")
 send "\",\""
 send $env("PASS")
 send "\"^m"
 get 1 "" $s
 print $s

/etc/gcom/xmm-config

opengt
 set com 115200n81
 set comecho off
 set senddelay 0.02
 waitquiet 0.2 0.2

 send "AT+CGPADDR=0^m"
 get 1 "" $s
 print $s

 send "AT+XDNS?^m"
 get 1 "" $s
 print $s

/etc/gcom/xmm-connect

opengt
 set com 115200n81
 set comecho off
 set senddelay 0.02
 waitquiet 0.2 0.2

 send "AT+CMEE=2^m"
 get 1 "" $s
 print $s
 send "AT+COPS=0^m"
 get 1 "" $s
 print $s
 send "AT+CGPIAF=1,0,0,0^m"
 get 1 "" $s
 print $s
 send "AT+XDNS=0,1^m"
 get 1 "" $s
 print $s
 send "AT+CGDCONT=0,\""
 get 1 "" $s
 print $s
 send $env("PDP")
 send "\",\""
 send $env("APN")
 send "\"^m"
 get 1 "" $s
 print $s
 send "AT+CGPADDR=0^m"

 send "AT+XDATACHANNEL=1,1,\"/USBCDC/2\",\"/USBHS/NCM/0\",1,0^m"
 get 1 "" $s
 print $s
 send "AT+CGDATA=\"M-RAW_IP\",0^m"
 get 1 "" $s
 print $s

/etc/gcom/xmm-disconnect

opengt
 set com 115200n81
 set comecho off
 set senddelay 0.02
 waitquiet 0.2 0.2

 send "AT+CGACT=0^m"
 get 1 "" $s
 print $s
 send "AT+XDATACHANNEL=0^m"
 get 1 "" $s
 print $s

Trzeba dodać ręcznie DNS'y do konfiga (dla kart SIM z Orange), bo nie dostaje z sieci -> interfejs: wan_lte

/etc/config/network

config interface 'wan_lte'
    option proto 'xmm'
    option device '/dev/ttyACM0'
    option pincode '1234'
    option apn 'internet'
    option auth 'auto'
    option pdp 'ip'
    option delay '10'
    list dns '8.8.8.8'
    list dns '8.8.4.4'

/etc/config/xmm-modem

config xmm-modem
    option device '/dev/ttyACM0'
    option apn 'internet'
    option pdp 'ip'
    option enable '1'
    option pincode '1234'

w LuCi:
https://imgur.com/SjL0EBB

Banana Pi BPI-R3 + SFP GPON ONT Nokia G-010S-A + LTE FIBOCOM L860-GL-16 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Xiaomi AX3600 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Xiaomi AX3000T (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
All OpenWRT compilations from ASU by @Cezary

30 (edytowany przez Cezary 2024-02-08 17:25:23)

Odp: BPi-R3 i modem LTE

Pokaż jeszcze raz

sh -x /usr/share/3ginfo-lite/3ginfo.sh 

jak masz agregację. I dodatkowo

sms_tool -d /dev/ttyACM0 at "AT+XCCINFO=1;+XCCINFO?"
Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

31

Odp: BPi-R3 i modem LTE

sh -x /usr/share/3ginfo-lite/3ginfo.sh

root@Banana_Pi_BPI-R3:~# sh -x /usr/share/3ginfo-lite/3ginfo.sh
+ RES=/usr/share/3ginfo-lite
+ /usr/share/3ginfo-lite/detect.sh
uci: Entry not found
+ DEVICE=/dev/ttyACM2
+ '[' -z /dev/ttyACM2 ]
+ O=
+ '[' -e /usr/bin/sms_tool ]
+ sms_tool -D -d /dev/ttyACM2 at 'AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?'
+ O='AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?
+CPIN: READY

+CSQ: 11,5

+COPS: 0,0,"Orange",7

+COPS: 0,2,"26003",7

+CREG: 2,6,"CF78","03893234",7

'K
+ uci -q get '3ginfo.@3ginfo[0].network'
+ SECT=wan_lte
+ SUB=@
+ '[[' wan_lte '==' '*@*' ]]
+ uci -q get '3ginfo.@3ginfo[0].network'
+ SEC=wan_lte
+ '[' -z wan_lte ]
+ CONN_TIME=-
+ RX=-
+ TX=-
+ ifstatus wan_lte
+ grep '"up": true'
+ NETUP='       "up": true,'
+ '[' -n '      "up": true,' ]
+ uci -q -P /var/state/ get network.wan_lte.connect_time
+ CT=
+ '[' -z ]
+ ifstatus wan_lte
+ xargs
+ awk '-F[:,]' '/uptime/ {print $2}'
+ CT=728
+ '[' '!' -z 728 ]
+ expr 728 / 60 / 60 / 24
+ D=0
+ expr 728 / 60 / 60 '%' 24
+ H=0
+ expr 728 / 60 '%' 60
+ M=12
+ expr 728 '%' 60
+ S=8
+ printf '%dd, %02d:%02d:%02d' 0 0 12 8
+ CONN_TIME='0d, 00:12:08'
+ ifstatus wan_lte
+ awk '-F"' '/l3_device/ {print $4}'
+ IFACE=eth2
+ '[' -n eth2 ]
+ ifconfig eth2
+ awk '-F[()]' '/bytes/ {printf "%s",$2}'
+ RX='5.3 MiB'
+ ifconfig eth2
+ awk '-F[()]' '/bytes/ {printf "%s",$4}'
+ TX='530.4 KiB'
+ echo 'AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?
+CPIN: READY

+CSQ: 11,5

+COPS: 0,0,"Orange",7

+COPS: 0,2,"26003",7

+CREG: 2,6,"CF78","03893234",7

'K
+ awk '-F[, ]' '/^\+CSQ/ {print $2}'
+ CSQ=11
+ '[' x11 '=' x ]
+ '[' 11 -ge 0 -a 11 -le 31 ]
+ CSQ_PER=35
+ COPS=
+ COPS_MCC=
+ COPS_MNC=
+ echo 'AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?
+CPIN: READY

+CSQ: 11,5

+COPS: 0,0,"Orange",7

+COPS: 0,2,"26003",7

+CREG: 2,6,"CF78","03893234",7

'K
+ awk '-F["]' '/^\+COPS: .,2/ {print $2}'
+ COPS_NUM=26003
+ '[' -n 26003 ]
+ COPS_MCC=260
+ COPS_MNC=03
+ '[' -z  ]
+ echo 'AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?
+CPIN: READY

+CSQ: 11,5

+COPS: 0,0,"Orange",7

+COPS: 0,2,"26003",7

+CREG: 2,6,"CF78","03893234",7

'K
+ awk '-F["]' '/^\+COPS: .,0/ {print $2}'
+ COPS=Orange
+ '[' -z Orange ]
+ echo Orange
+ sed ':s;s/\(\<\S*\>\)\(.*\)\<\1\>/\1\2/g;ts'
+ COPZ=Orange
+ echo Orange
+ awk '{for(i=1;i<=NF;i++){ $i=toupper(substr($i,1,1)) substr($i,2) }}1'
+ COPS=Orange
+ sms_tool -d /dev/ttyACM2 at 'AT+COPS?'
+ sed -n 2p
+ cut -d '"' -f2
+ tr -d '\r'
+ isp=26003
+ isp_num='260 03'
+ isp_numws=26003
+ '[[' Orange '=' '260 03' '||' Orange '=' 26003 ]]
+ LOCATIONFILE=/tmp/location
+ '[' -e /tmp/location ]
+ touch /tmp/location
+ cat /tmp/location
+ LOC=Poland
+ '[' -n Poland ]
+ cat /tmp/location
+ LOC=Poland
+ echo 'AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?
+CPIN: READY

+CSQ: 11,5

+COPS: 0,0,"Orange",7

+COPS: 0,2,"26003",7

+CREG: 2,6,"CF78","03893234",7

'K
+ + xargsawk
 '-F[, ]' '/^\+CPIN:/ {print $0;exit}'
+ T='+CPIN: READY'
+ '[' -n '+CPIN: READY' ]
+ '[' '+CPIN: READY' '=' '+CPIN: READY' ]
+ echo 'AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?
+CPIN: READY

+CSQ: 11,5

+COPS: 0,0,"Orange",7

+COPS: 0,2,"26003",7

+CREG: 2,6,"CF78","03893234",7

'K
+ awk '-F[, ]' '/^\+CME ERROR:/ {print $0;exit}'
+ T=
+ '[' -n  ]
+ echo 'AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?
+CPIN: READY

+CSQ: 11,5

+COPS: 0,0,"Orange",7

+COPS: 0,2,"26003",7

+CREG: 2,6,"CF78","03893234",7

'K
+ awk '-F[,]' '/^\+CREG/ {gsub(/[[:space:]"]+/,"");printf "T=\"%d\";LAC_HEX=\"%X\";CID_HEX=\"%X\";LAC_DEC=\"%d\";CID_DEC=\"%d\";MODE_NUM=\"%d\"", $2, "0x"$3, "0x"$4, "0x"$3, "0x"$4, $5}'
+ eval 'T="6";LAC_HEX="CF78";CID_HEX="3893234";LAC_DEC="53112";CID_DEC="59322932";MODE_NUM="7"'
+ T=6
+ LAC_HEX=CF78
+ CID_HEX=3893234
+ LAC_DEC=53112
+ CID_DEC=59322932
+ MODE_NUM=7
+ REG=6
+ '[' -z 7 ]
+ '[' x7 '=' x0 ]
+ MODE=LTE
+ sms_tool -d /dev/ttyACM2 at at+cereg
' OTX='at+cereg
' echo 'at+cereg
+ + awksed '-F[,]' 's/[^A-F0-9]//g' '/^\+CEREG/ {printf "%s", toupper($3)}'

+ TAC=
+ '[' x '!=' x ]
+ TAC=-
+ TAC_HEX=-
+ uci -q get '3ginfo.@3ginfo[0].device'
+ CONF_DEVICE=/dev/ttyACM2
+ echo x/dev/ttyACM2
+ grep -q 192.168.
+ '[' -e /usr/bin/sms_tool ]
+ REGOK=0
+ '[' x6 '=' x1 ]
+ '[' x6 '=' x5 ]
+ getdevicevendorproduct /dev/ttyACM2
+ basename /dev/ttyACM2
+ devname=ttyACM2
+ readlink -f /sys/class/tty/ttyACM2/device
+ devpath=/sys/devices/platform/soc/11200000.usb/usb1/1-1/1-1.1/1-1.1:1.4
+ T=/sys/devices/platform/soc/11200000.usb/usb1/1-1/1-1.1
+ cat /sys/devices/platform/soc/11200000.usb/usb1/1-1/1-1.1/idVendor
+ cat /sys/devices/platform/soc/11200000.usb/usb1/1-1/1-1.1/idProduct
+ echo usb/8087095a
+ VIDPID=usb/8087095a
+ '[' -e /usr/share/3ginfo-lite/modem/usb/8087095a ]
+ cat /tmp/sysinfo/board_name
+ . /usr/share/3ginfo-lite/modem/usb/8087095a
+ sms_tool -d /dev/ttyACM2 at 'at+xlec?;+rsrp?;+rsrq?;+xmci=1'
+ O='at+xlec?;+rsrp?;+rsrq?;+xmci=1
+XLEC: 0,2,3,3,BAND_LTE_3,20,0,0,0

+RSRP: 326,1749,-92.00,326,6200,-108.00


+RSRQ: 326,1749,-11.00,326,6200,-12.-50


+XMCI: 4,260,03,"0xCF78","0x03893234","0x0146","0x000006D5","0x00004D25","0xFFFFFFFF",49,19,58,"0x00000014","0x00000000"

+XMCI: 5,000,000,"0xFFFE","0xFFFFFFFF","0x0146","0x00001838","0xFFFFFFFF","0xFFFFFFFF",33,15,255,"0x7FFFFFFF","0x00000000"
'
+ echo 'at+xlec?;+rsrp?;+rsrq?;+xmci=1
+XLEC: 0,2,3,3,BAND_LTE_3,20,0,0,0

+RSRP: 326,1749,-92.00,326,6200,-108.00


+RSRQ: 326,1749,-11.00,326,6200,-12.-50


+XMCI: 4,260,03,"0xCF78","0x03893234","0x0146","0x000006D5","0x00004D25","0xFFFFFFFF",49,19,58,"0x00000014","0x00000000"

+XMCI: 5,000,000,"0xFFFE","0xFFFFFFFF","0x0146","0x00001838","0xFFFFFFFF","0xFFFFFFFF",33,15,255,"0x7FFFFFFF","0x00000000"
'
+ + awkawk -F -F '[:_]' '[:,]' '/\+XLEC:/{gsub("\r",""); print $4}' '{print $1}'

+ T=3
+ '[' -n 3 ]
+ band 3
+ echo -n B3
+ echo ' (1800 MHz)'
+ MODE='LTE B3 (1800 MHz)'
+ echo 'at+xlec?;+rsrp?;+rsrq?;+xmci=1
+XLEC: 0,2,3,3,BAND_LTE_3,20,0,0,0

+RSRP: 326,1749,-92.00,326,6200,-108.00


+RSRQ: 326,1749,-11.00,326,6200,-12.-50


+XMCI: 4,260,03,"0xCF78","0x03893234","0x0146","0x000006D5","0x00004D25","0xFFFFFFFF",49,19,58,"0x00000014","0x00000000"

+XMCI: 5,000,000,"0xFFFE","0xFFFFFFFF","0x0146","0x00001838","0xFFFFFFFF","0xFFFFFFFF",33,15,255,"0x7FFFFFFF","0x00000000"
'
+ awk -F '[:,]' '/\+RSRP:/{printf "%.0f\n", $4}'
+ RSRP=-92
+ echo 'at+xlec?;+rsrp?;+rsrq?;+xmci=1
+XLEC: 0,2,3,3,BAND_LTE_3,20,0,0,0

+RSRP: 326,1749,-92.00,326,6200,-108.00


+RSRQ: 326,1749,-11.00,326,6200,-12.-50


+XMCI: 4,260,03,"0xCF78","0x03893234","0x0146","0x000006D5","0x00004D25","0xFFFFFFFF",49,19,58,"0x00000014","0x00000000"

+XMCI: 5,000,000,"0xFFFE","0xFFFFFFFF","0x0146","0x00001838","0xFFFFFFFF","0xFFFFFFFF",33,15,255,"0x7FFFFFFF","0x00000000"
'
+ awk -F '[:,]' '/\+XLEC:/{gsub("\r","",$4); print $4}'
+ BWDL=3
+ NP=50
+ echo -92 50
+ awk '{printf "%.0f\n", (($1+10*log(12*$2)/log(10))+113)/2}'
+ CSQ=24
+ '[' x24 '=' x ]
+ '[' 24 -ge 0 -a 24 -le 31 ]
+ CSQ_PER=77
+ RSSI=-65
+ echo 'at+xlec?;+rsrp?;+rsrq?;+xmci=1
+XLEC: 0,2,3,3,BAND_LTE_3,20,0,0,0

+RSRP: 326,1749,-92.00,326,6200,-108.00


+RSRQ: 326,1749,-11.00,326,6200,-12.-50


+XMCI: 4,260,03,"0xCF78","0x03893234","0x0146","0x000006D5","0x00004D25","0xFFFFFFFF",49,19,58,"0x00000014","0x00000000"

+XMCI: 5,000,000,"0xFFFE","0xFFFFFFFF","0x0146","0x00001838","0xFFFFFFFF","0xFFFFFFFF",33,15,255,"0x7FFFFFFF","0x00000000"
'
+ awk -F '[:,]' '/\+RSRQ:/{printf "%.0f\n", $4}'
+ RSRQ=-11
+ echo 'at+xlec?;+rsrp?;+rsrq?;+xmci=1
+XLEC: 0,2,3,3,BAND_LTE_3,20,0,0,0

+RSRP: 326,1749,-92.00,326,6200,-108.00


+RSRQ: 326,1749,-11.00,326,6200,-12.-50


+XMCI: 4,260,03,"0xCF78","0x03893234","0x0146","0x000006D5","0x00004D25","0xFFFFFFFF",49,19,58,"0x00000014","0x00000000"

+XMCI: 5,000,000,"0xFFFE","0xFFFFFFFF","0x0146","0x00001838","0xFFFFFFFF","0xFFFFFFFF",33,15,255,"0x7FFFFFFF","0x00000000"
'
+ awk -F '[:,]' '/\+XMCI: 4/{gsub(/"/,""); printf "%.0f\n", $13/4+5}'
+ SINR=20
+ echo 'at+xlec?;+rsrp?;+rsrq?;+xmci=1
+XLEC: 0,2,3,3,BAND_LTE_3,20,0,0,0

+RSRP: 326,1749,-92.00,326,6200,-108.00


+RSRQ: 326,1749,-11.00,326,6200,-12.-50


+XMCI: 4,260,03,"0xCF78","0x03893234","0x0146","0x000006D5","0x00004D25","0xFFFFFFFF",49,19,58,"0x00000014","0x00000000"

+XMCI: 5,000,000,"0xFFFE","0xFFFFFFFF","0x0146","0x00001838","0xFFFFFFFF","0xFFFFFFFF",33,15,255,"0x7FFFFFFF","0x00000000"
'
+ awk -F '[:,]' '/\+XLEC:/{print $3}'
+ LTE_Cx=2
+ LTE_CA=1
+ '[' -n LTE_CA ]
+ echo 'at+xlec?;+rsrp?;+rsrq?;+xmci=1
+XLEC: 0,2,3,3,BAND_LTE_3,20,0,0,0

+RSRP: 326,1749,-92.00,326,6200,-108.00


+RSRQ: 326,1749,-11.00,326,6200,-12.-50


+XMCI: 4,260,03,"0xCF78","0x03893234","0x0146","0x000006D5","0x00004D25","0xFFFFFFFF",49,19,58,"0x00000014","0x00000000"

+XMCI: 5,000,000,"0xFFFE","0xFFFFFFFF","0x0146","0x00001838","0xFFFFFFFF","0xFFFFFFFF",33,15,255,"0x7FFFFFFF","0x00000000"
'
+ awk -F '[:,]' '/\+RSRP:/{print $6}'
+ CAx=6200
+ echo 'at+xlec?;+rsrp?;+rsrq?;+xmci=1
+XLEC: 0,2,3,3,BAND_LTE_3,20,0,0,0

+RSRP: 326,1749,-92.00,326,6200,-108.00


+RSRQ: 326,1749,-11.00,326,6200,-12.-50


+XMCI: 4,260,03,"0xCF78","0x03893234","0x0146","0x000006D5","0x00004D25","0xFFFFFFFF",49,19,58,"0x00000014","0x00000000"

+XMCI: 5,000,000,"0xFFFE","0xFFFFFFFF","0x0146","0x00001838","0xFFFFFFFF","0xFFFFFFFF",33,15,255,"0x7FFFFFFF","0x00000000"
'
+ awk -F '[:,]' '/\+XLEC:/{gsub("\r",""); print $4" "$5}'
+ BWCx='3 3'
+ CA_BAND=
+ convertchannel 6200
+ band 20
+ echo -n B20
+ echo ' (800 MHz)'
+ BAND='B20 (800 MHz)'
+ CA_BAND=' / B20 (800 MHz)'
+ CABANDx=,20
+ band 3
+ echo -n B3
+ echo ' (1800 MHz)'
+ MODE='LTE-A | B3 (1800 MHz) / B20 (800 MHz)'
+ echo ,20
+ sed 's/ //g'
+ awk -F '[,]' '/\,/{print $2" "}'
+ S1=20
+ echo ,20
+ + awksed 's/ //g'
 -F '[,]' '/\,/{print $3" "}'
+ S2=
+ echo ,20
+ awk -F '[,]' '/\,/{print $4" "}'
+ sed 's/ //g'
+ S3=
+ echo ,20
+ sed 's/ //g'
+ awk -F '[,]' '/\,/{print $5" "}'
+ S4=
+ BWCA=0
+ BWCA_INFO=
+ T5=10
+ BWCA=10
+ '[[' -z ]]
+ BWCA_INFO=10
+ T5=10
+ BWCA=20
+ '[[' -z 10 ]]
+ BWCA_INFO=10,10
+ echo 10,10
+ awk -F '[,]' '/\,/{print $2" "}'
+ BW1='10 '
+ echo 10,10
+ awk -F '[,]' '/\,/{print $3" "}'
+ BW2=' '
+ echo 10,10
+ awk -F '[,]' '/\,/{print $4" "}'
+ BW3=' '
+ echo 10,10
+ awk -F '[,]' '/\,/{print $5" "}'
+ BW4=' '
+ echo 'at+xlec?;+rsrp?;+rsrq?;+xmci=1
+XLEC: 0,2,3,3,BAND_LTE_3,20,0,0,0

+RSRP: 326,1749,-92.00,326,6200,-108.00


+RSRQ: 326,1749,-11.00,326,6200,-12.-50


+XMCI: 4,260,03,"0xCF78","0x03893234","0x0146","0x000006D5","0x00004D25","0xFFFFFFFF",49,19,58,"0x00000014","0x00000000"

+XMCI: 5,000,000,"0xFFFE","0xFFFFFFFF","0x0146","0x00001838","0xFFFFFFFF","0xFFFFFFFF",33,15,255,"0x7FFFFFFF","0x00000000"
'
+ awk -F '[:,]' '/\+XLEC:/{gsub("\r",""); print $4" "}'
+ T2='3 '
+ T4=10
+ '[' -n 10 ]
+ band 3
+ echo -n B3
+ echo ' (1800 MHz)'
+ PBAND='B3 (1800 MHz) @10 MHz'
+ echo 'at+xlec?;+rsrp?;+rsrq?;+xmci=1
+XLEC: 0,2,3,3,BAND_LTE_3,20,0,0,0

+RSRP: 326,1749,-92.00,326,6200,-108.00


+RSRQ: 326,1749,-11.00,326,6200,-12.-50


+XMCI: 4,260,03,"0xCF78","0x03893234","0x0146","0x000006D5","0x00004D25","0xFFFFFFFF",49,19,58,"0x00000014","0x00000000"

+XMCI: 5,000,000,"0xFFFE","0xFFFFFFFF","0x0146","0x00001838","0xFFFFFFFF","0xFFFFFFFF",33,15,255,"0x7FFFFFFF","0x00000000"
'
+ awk '-F[,:]' '/^\+RSRP:/ {print $2}'
+ PCI=' 326'
+ echo 'at+xlec?;+rsrp?;+rsrq?;+xmci=1
+XLEC: 0,2,3,3,BAND_LTE_3,20,0,0,0

+RSRP: 326,1749,-92.00,326,6200,-108.00


+RSRQ: 326,1749,-11.00,326,6200,-12.-50


+XMCI: 4,260,03,"0xCF78","0x03893234","0x0146","0x000006D5","0x00004D25","0xFFFFFFFF",49,19,58,"0x00000014","0x00000000"

+XMCI: 5,000,000,"0xFFFE","0xFFFFFFFF","0x0146","0x00001838","0xFFFFFFFF","0xFFFFFFFF",33,15,255,"0x7FFFFFFF","0x00000000"
'
+ awk '-F[,:]' '/^\+RSRP:/ {print $3}'
+ EARFCN=1749
+ '[' -n 20 ]
+ band 20
+ echo -n B20
+ echo ' (800 MHz)'
+ S1BAND='B20 (800 MHz) @10  MHz'
+ echo 'at+xlec?;+rsrp?;+rsrq?;+xmci=1
+XLEC: 0,2,3,3,BAND_LTE_3,20,0,0,0

+RSRP: 326,1749,-92.00,326,6200,-108.00


+RSRQ: 326,1749,-11.00,326,6200,-12.-50


+XMCI: 4,260,03,"0xCF78","0x03893234","0x0146","0x000006D5","0x00004D25","0xFFFFFFFF",49,19,58,"0x00000014","0x00000000"

+XMCI: 5,000,000,"0xFFFE","0xFFFFFFFF","0x0146","0x00001838","0xFFFFFFFF","0xFFFFFFFF",33,15,255,"0x7FFFFFFF","0x00000000"
'
+ awk '-F[,:]' '/^\+RSRP:/ {print $5}'
+ S1PCI=326
+ echo 'at+xlec?;+rsrp?;+rsrq?;+xmci=1
+XLEC: 0,2,3,3,BAND_LTE_3,20,0,0,0

+RSRP: 326,1749,-92.00,326,6200,-108.00


+RSRQ: 326,1749,-11.00,326,6200,-12.-50


+XMCI: 4,260,03,"0xCF78","0x03893234","0x0146","0x000006D5","0x00004D25","0xFFFFFFFF",49,19,58,"0x00000014","0x00000000"

+XMCI: 5,000,000,"0xFFFE","0xFFFFFFFF","0x0146","0x00001838","0xFFFFFFFF","0xFFFFFFFF",33,15,255,"0x7FFFFFFF","0x00000000"
'
+ awk '-F[,:]' '/^\+RSRP:/ {print $6}'
+ S1EARFCN=6200
+ '[' -n  ]
+ '[' -n  ]
+ '[' -n  ]
+ '[[' 'LTE-A | B3 (1800 MHz) / B20 (800 MHz)' '!=' '*LTE-A*' ]]
+ echo LTE-A '|' B3 '(1800' 'MHz)' / B20 '(800' 'MHz)'
+ sed s,/,+,
+ MODE='LTE-A | B3 (1800 MHz) + B20 (800 MHz)'
+ sms_tool -d /dev/ttyACM2 at 'AT+GTPKGVER?'
+ xargs
+ FWA='AT+GTPKGVER? +GTPKGVER: 18600.5001.00.35.01.46_7000.03.001.005'
+ echo 'AT+GTPKGVER? +GTPKGVER: 18600.5001.00.35.01.46_7000.03.001.005'
+ cut -d : -f2
+ xargs
+ FW=18600.5001.00.35.01.46_7000.03.001.005
+ sms_tool -d /dev/ttyACM2 at 'AT+GMM?'
+ xargs
+ MDL='AT+GMM? +GMM: L860 LTE Module,L860'
+ echo 'AT+GMM? +GMM: L860 LTE Module,L860'+ cut
 -d : -f2
+ cut -d , -f1+
awk '-F"' '{print $1}'
+ MODELM=' L860 LTE Module'
+ sms_tool -d /dev/ttyACM2 at AT+CGMI
+ xargs
+ MODELF='AT+CGMI Fibocom'
+ echo L860 LTE Module
+ MODELMCUT='L860 LTE Module'
+ echo AT+CGMI Fibocom
+ sed 's/AT+CGMI //'
+ MODELFCUT=Fibocom
+ MODEL='Fibocom L860 LTE Module'
+ sms_tool -d /dev/ttyACM2 at 'AT+MTSM=1'
+ xargs
+ TC='AT+MTSM=1 +MTSM: 45'
+ echo 'AT+MTSM=1 +MTSM: 45'
+ awk '-F[:,]' '/\+MTSM:/{print $2}'
+ T=' 45'
+ '[' -n ' 45' ]
+ TEMP=' 45 &deg;C'
+ sms_tool -d /dev/ttyACM2 at AT+CGSN
+ xargs
+ O='AT+CGSN 867921031075525'
+ echo 'AT+CGSN 867921031075525'
+ sed 's/AT+CGSN //'
+ NR_I=867921031075525
+ '[' -n 867921031075525 ]
+ NR_IMEI=867921031075525
+ sms_tool -d /dev/ttyACM2 at AT+CIMI
+ xargs
+ O='AT+CIMI 260038778378091'
+ echo 'AT+CIMI 260038778378091'
+ sed 's/AT+CIMI //'
+ NR_C=260038778378091
+ '[' -n 260038778378091 ]
+ NR_IMSI=260038778378091
+ sms_tool -d /dev/ttyACM2 at AT+CCID
+ O='AT+CCID
+CCID: 8948031438783780916F
'
+ echo 'AT+CCID
+CCID: 8948031438783780916F
'
+ xargs
+ awk -F '[:]' '/^\+CCID: /{print $2}'
+ NR_D=8948031438783780916F
+ '[' -n 8948031438783780916F ]
+ NR_ICCID=8948031438783780916F
+ cat /sys/kernel/debug/usb/devices
+ PV='
T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480  MxCh= 2
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev= 5.15
S:  Manufacturer=Linux 5.15.139 xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=11200000.usb
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=480  MxCh= 4
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1a40 ProdID=0101 Rev= 1.11
S:  Product=USB 2.0 Hub
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   1 Ivl=256ms

T:  Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#=  3 Spd=480  MxCh= 0
D:  Ver= 2.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=8087 ProdID=095a Rev= 3.50
S:  Manufacturer=Intel Corp.
S:  Product=MODEM + 2 CDC-ACM + 3 CDC-NCM + SS
S:  SerialNumber=004999010640000:004999010640000:004999010640000:004999010640000
C:* #Ifs=13 Cfg#= 1 Atr=e0 MxPwr=100mA
A:  FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=02 Prot=01
A:  FirstIf#= 2 IfCount= 2 Cls=02(comm.) Sub=02 Prot=00
A:  FirstIf#= 4 IfCount= 2 Cls=02(comm.) Sub=02 Prot=00
A:  FirstIf#= 6 IfCount= 2 Cls=02(comm.) Sub=0d Prot=00
A:  FirstIf#= 8 IfCount= 2 Cls=02(comm.) Sub=0d Prot=00
A:  FirstIf#=10 IfCount= 2 Cls=02(comm.) Sub=0d Prot=00
I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=cdc_acm
E:  Ad=81(I) Atr=03(Int.) MxPS=  64 Ivl=1ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=02 Prot=00 Driver=cdc_acm
E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=00 Driver=cdc_acm
E:  Ad=83(I) Atr=03(Int.) MxPS=  64 Ivl=1ms
I:* If#= 3 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=02 Prot=00 Driver=cdc_acm
E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 4 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=00 Driver=cdc_acm
E:  Ad=85(I) Atr=03(Int.) MxPS=  64 Ivl=1ms
I:* If#= 5 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=02 Prot=00 Driver=cdc_acm
E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 6 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0d Prot=00 Driver=cdc_ncm
E:  Ad=87(I) Atr=03(Int.) MxPS=  64 Ivl=1ms
I:  If#= 7 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm
I:* If#= 7 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm
E:  Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=08(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 8 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0d Prot=00 Driver=cdc_ncm
E:  Ad=89(I) Atr=03(Int.) MxPS=  64 Ivl=1ms
I:  If#= 9 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm
I:* If#= 9 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm
E:  Ad=8a(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=0a(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#=10 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0d Prot=00 Driver=cdc_ncm
E:  Ad=8b(I) Atr=03(Int.) MxPS=  64 Ivl=1ms
I:  If#=11 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm
I:* If#=11 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm
E:  Ad=8c(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=0c(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#=12 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=01 Prot=00 Driver=(none)
E:  Ad=8d(I) Atr=03(Int.) MxPS=   4 Ivl=125us

T:  Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=10000 MxCh= 1
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 3.10 Cls=09(hub  ) Sub=00 Prot=03 MxPS= 9 #Cfgs=  1
P:  Vendor=1d6b ProdID=0003 Rev= 5.15
S:  Manufacturer=Linux 5.15.139 xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=11200000.usb
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms'
+ awk '-FVendor=8087 ProdID=07f9' '{print $2}'
+ echo T: 'Bus=01' 'Lev=00' 'Prnt=00' 'Port=00' 'Cnt=00' 'Dev#=' 1 'Spd=480' 'MxCh=' 2 B: 'Alloc=' 0/800 us '(' '0%),' '#Int=' 0, '#Iso=' 0 D: 'Ver=' 2.00 'Cls=09(hub' ')' 'Sub=00' 'Prot=01' 'MxPS=64' '#Cfgs=' 1 P: 'Vendor=1d6b' 'ProdID=0002' 'Rev=' 5.15 S: 'Manufacturer=Linux' 5.15.139 xhci-hcd S: 'Product=xHCI' Host Controller S: 'SerialNumber=11200000.usb' 'C:*' '#Ifs=' 1 'Cfg#=' 1 'Atr=e0' 'MxPwr=' 0mA 'I:*' 'If#=' 0 'Alt=' 0 '#EPs=' 1 'Cls=09(hub' ')' 'Sub=00' 'Prot=00' 'Driver=hub' E: 'Ad=81(I)' 'Atr=03(Int.)' 'MxPS=' 4 'Ivl=256ms' T: 'Bus=01' 'Lev=01' 'Prnt=01' 'Port=00' 'Cnt=01' 'Dev#=' 2 'Spd=480' 'MxCh=' 4 D: 'Ver=' 2.00 'Cls=09(hub' ')' 'Sub=00' 'Prot=01' 'MxPS=64' '#Cfgs=' 1 P: 'Vendor=1a40' 'ProdID=0101' 'Rev=' 1.11 S: 'Product=USB' 2.0 Hub 'C:*' '#Ifs=' 1 'Cfg#=' 1 'Atr=e0' 'MxPwr=100mA' 'I:*' 'If#=' 0 'Alt=' 0 '#EPs=' 1 'Cls=09(hub' ')' 'Sub=00' 'Prot=00' 'Driver=hub' E: 'Ad=81(I)' 'Atr=03(Int.)' 'MxPS=' 1 'Ivl=256ms' T: 'Bus=01' 'Lev=02' 'Prnt=02' 'Port=00' 'Cnt=01' 'Dev#=' 3 'Spd=480' 'MxCh=' 0 D: 'Ver=' 2.10 'Cls=ef(misc' ')' 'Sub=02' 'Prot=01' 'MxPS=64' '#Cfgs=' 1 P: 'Vendor=8087' 'ProdID=095a' 'Rev=' 3.50 S: 'Manufacturer=Intel' Corp. S: 'Product=MODEM' + 2 CDC-ACM + 3 CDC-NCM + SS S: 'SerialNumber=004999010640000:004999010640000:004999010640000:004999010640000' 'C:*' '#Ifs=13' 'Cfg#=' 1 'Atr=e0' 'MxPwr=100mA' A: 'FirstIf#=' 0 'IfCount=' 2 'Cls=02(comm.)' 'Sub=02' 'Prot=01' A: 'FirstIf#=' 2 'IfCount=' 2 'Cls=02(comm.)' 'Sub=02' 'Prot=00' A: 'FirstIf#=' 4 'IfCount=' 2 'Cls=02(comm.)' 'Sub=02' 'Prot=00' A: 'FirstIf#=' 6 'IfCount=' 2 'Cls=02(comm.)' 'Sub=0d' 'Prot=00' A: 'FirstIf#=' 8 'IfCount=' 2 'Cls=02(comm.)' 'Sub=0d' 'Prot=00' A: 'FirstIf#=10' 'IfCount=' 2 'Cls=02(comm.)' 'Sub=0d' 'Prot=00' 'I:*' 'If#=' 0 'Alt=' 0 '#EPs=' 1 'Cls=02(comm.)' 'Sub=02' 'Prot=01' 'Driver=cdc_acm' E: 'Ad=81(I)' 'Atr=03(Int.)' 'MxPS=' 64 'Ivl=1ms' 'I:*' 'If#=' 1 'Alt=' 0 '#EPs=' 2 'Cls=0a(data' ')' 'Sub=02' 'Prot=00' 'Driver=cdc_acm' E: 'Ad=82(I)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' E: 'Ad=02(O)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' 'I:*' 'If#=' 2 'Alt=' 0 '#EPs=' 1 'Cls=02(comm.)' 'Sub=02' 'Prot=00' 'Driver=cdc_acm' E: 'Ad=83(I)' 'Atr=03(Int.)' 'MxPS=' 64 'Ivl=1ms' 'I:*' 'If#=' 3 'Alt=' 0 '#EPs=' 2 'Cls=0a(data' ')' 'Sub=02' 'Prot=00' 'Driver=cdc_acm' E: 'Ad=84(I)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' E: 'Ad=04(O)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' 'I:*' 'If#=' 4 'Alt=' 0 '#EPs=' 1 'Cls=02(comm.)' 'Sub=02' 'Prot=00' 'Driver=cdc_acm' E: 'Ad=85(I)' 'Atr=03(Int.)' 'MxPS=' 64 'Ivl=1ms' 'I:*' 'If#=' 5 'Alt=' 0 '#EPs=' 2 'Cls=0a(data' ')' 'Sub=02' 'Prot=00' 'Driver=cdc_acm' E: 'Ad=86(I)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' E: 'Ad=06(O)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' 'I:*' 'If#=' 6 'Alt=' 0 '#EPs=' 1 'Cls=02(comm.)' 'Sub=0d' 'Prot=00' 'Driver=cdc_ncm' E: 'Ad=87(I)' 'Atr=03(Int.)' 'MxPS=' 64 'Ivl=1ms' I: 'If#=' 7 'Alt=' 0 '#EPs=' 0 'Cls=0a(data' ')' 'Sub=00' 'Prot=01' 'Driver=cdc_ncm' 'I:*' 'If#=' 7 'Alt=' 1 '#EPs=' 2 'Cls=0a(data' ')' 'Sub=00' 'Prot=01' 'Driver=cdc_ncm' E: 'Ad=88(I)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' E: 'Ad=08(O)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' 'I:*' 'If#=' 8 'Alt=' 0 '#EPs=' 1 'Cls=02(comm.)' 'Sub=0d' 'Prot=00' 'Driver=cdc_ncm' E: 'Ad=89(I)' 'Atr=03(Int.)' 'MxPS=' 64 'Ivl=1ms' I: 'If#=' 9 'Alt=' 0 '#EPs=' 0 'Cls=0a(data' ')' 'Sub=00' 'Prot=01' 'Driver=cdc_ncm' 'I:*' 'If#=' 9 'Alt=' 1 '#EPs=' 2 'Cls=0a(data' ')' 'Sub=00' 'Prot=01' 'Driver=cdc_ncm' E: 'Ad=8a(I)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' E: 'Ad=0a(O)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' 'I:*' 'If#=10' 'Alt=' 0 '#EPs=' 1 'Cls=02(comm.)' 'Sub=0d' 'Prot=00' 'Driver=cdc_ncm' E: 'Ad=8b(I)' 'Atr=03(Int.)' 'MxPS=' 64 'Ivl=1ms' I: 'If#=11' 'Alt=' 0 '#EPs=' 0 'Cls=0a(data' ')' 'Sub=00' 'Prot=01' 'Driver=cdc_ncm' 'I:*' 'If#=11' 'Alt=' 1 '#EPs=' 2 'Cls=0a(data' ')' 'Sub=00' 'Prot=01' 'Driver=cdc_ncm' E: 'Ad=8c(I)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' E: 'Ad=0c(O)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' 'I:*' 'If#=12' 'Alt=' 0 '#EPs=' 1 'Cls=ff(vend.)' 'Sub=01' 'Prot=00' 'Driver=(none)' E: 'Ad=8d(I)' 'Atr=03(Int.)' 'MxPS=' 4 'Ivl=125us' T: 'Bus=02' 'Lev=00' 'Prnt=00' 'Port=00' 'Cnt=00' 'Dev#=' 1 'Spd=10000' 'MxCh=' 1 B: 'Alloc=' 0/800 us '(' '0%),' '#Int=' 0, '#Iso=' 0 D: 'Ver=' 3.10 'Cls=09(hub' ')' 'Sub=00' 'Prot=03' 'MxPS=' 9 '#Cfgs=' 1 P: 'Vendor=1d6b' 'ProdID=0003' 'Rev=' 5.15 S: 'Manufacturer=Linux' 5.15.139 xhci-hcd S: 'Product=xHCI' Host Controller S: 'SerialNumber=11200000.usb' 'C:*' '#Ifs=' 1 'Cfg#=' 1 'Atr=e0' 'MxPwr=' 0mA 'I:*' 'If#=' 0 'Alt=' 0 '#EPs=' 1 'Cls=09(hub' ')' 'Sub=00' 'Prot=00' 'Driver=hub' E: 'Ad=81(I)' 'Atr=03(Int.)' 'MxPS=' 4 'Ivl=256ms'
+ PVCAX=
+ echo
+ cut -c-2453
+ PVCA=
+ awk '-FVendor=8087 ProdID=095a' '{print $2}'
+ echo T: 'Bus=01' 'Lev=00' 'Prnt=00' 'Port=00' 'Cnt=00' 'Dev#=' 1 'Spd=480' 'MxCh=' 2 B: 'Alloc=' 0/800 us '(' '0%),' '#Int=' 0, '#Iso=' 0 D: 'Ver=' 2.00 'Cls=09(hub' ')' 'Sub=00' 'Prot=01' 'MxPS=64' '#Cfgs=' 1 P: 'Vendor=1d6b' 'ProdID=0002' 'Rev=' 5.15 S: 'Manufacturer=Linux' 5.15.139 xhci-hcd S: 'Product=xHCI' Host Controller S: 'SerialNumber=11200000.usb' 'C:*' '#Ifs=' 1 'Cfg#=' 1 'Atr=e0' 'MxPwr=' 0mA 'I:*' 'If#=' 0 'Alt=' 0 '#EPs=' 1 'Cls=09(hub' ')' 'Sub=00' 'Prot=00' 'Driver=hub' E: 'Ad=81(I)' 'Atr=03(Int.)' 'MxPS=' 4 'Ivl=256ms' T: 'Bus=01' 'Lev=01' 'Prnt=01' 'Port=00' 'Cnt=01' 'Dev#=' 2 'Spd=480' 'MxCh=' 4 D: 'Ver=' 2.00 'Cls=09(hub' ')' 'Sub=00' 'Prot=01' 'MxPS=64' '#Cfgs=' 1 P: 'Vendor=1a40' 'ProdID=0101' 'Rev=' 1.11 S: 'Product=USB' 2.0 Hub 'C:*' '#Ifs=' 1 'Cfg#=' 1 'Atr=e0' 'MxPwr=100mA' 'I:*' 'If#=' 0 'Alt=' 0 '#EPs=' 1 'Cls=09(hub' ')' 'Sub=00' 'Prot=00' 'Driver=hub' E: 'Ad=81(I)' 'Atr=03(Int.)' 'MxPS=' 1 'Ivl=256ms' T: 'Bus=01' 'Lev=02' 'Prnt=02' 'Port=00' 'Cnt=01' 'Dev#=' 3 'Spd=480' 'MxCh=' 0 D: 'Ver=' 2.10 'Cls=ef(misc' ')' 'Sub=02' 'Prot=01' 'MxPS=64' '#Cfgs=' 1 P: 'Vendor=8087' 'ProdID=095a' 'Rev=' 3.50 S: 'Manufacturer=Intel' Corp. S: 'Product=MODEM' + 2 CDC-ACM + 3 CDC-NCM + SS S: 'SerialNumber=004999010640000:004999010640000:004999010640000:004999010640000' 'C:*' '#Ifs=13' 'Cfg#=' 1 'Atr=e0' 'MxPwr=100mA' A: 'FirstIf#=' 0 'IfCount=' 2 'Cls=02(comm.)' 'Sub=02' 'Prot=01' A: 'FirstIf#=' 2 'IfCount=' 2 'Cls=02(comm.)' 'Sub=02' 'Prot=00' A: 'FirstIf#=' 4 'IfCount=' 2 'Cls=02(comm.)' 'Sub=02' 'Prot=00' A: 'FirstIf#=' 6 'IfCount=' 2 'Cls=02(comm.)' 'Sub=0d' 'Prot=00' A: 'FirstIf#=' 8 'IfCount=' 2 'Cls=02(comm.)' 'Sub=0d' 'Prot=00' A: 'FirstIf#=10' 'IfCount=' 2 'Cls=02(comm.)' 'Sub=0d' 'Prot=00' 'I:*' 'If#=' 0 'Alt=' 0 '#EPs=' 1 'Cls=02(comm.)' 'Sub=02' 'Prot=01' 'Driver=cdc_acm' E: 'Ad=81(I)' 'Atr=03(Int.)' 'MxPS=' 64 'Ivl=1ms' 'I:*' 'If#=' 1 'Alt=' 0 '#EPs=' 2 'Cls=0a(data' ')' 'Sub=02' 'Prot=00' 'Driver=cdc_acm' E: 'Ad=82(I)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' E: 'Ad=02(O)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' 'I:*' 'If#=' 2 'Alt=' 0 '#EPs=' 1 'Cls=02(comm.)' 'Sub=02' 'Prot=00' 'Driver=cdc_acm' E: 'Ad=83(I)' 'Atr=03(Int.)' 'MxPS=' 64 'Ivl=1ms' 'I:*' 'If#=' 3 'Alt=' 0 '#EPs=' 2 'Cls=0a(data' ')' 'Sub=02' 'Prot=00' 'Driver=cdc_acm' E: 'Ad=84(I)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' E: 'Ad=04(O)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' 'I:*' 'If#=' 4 'Alt=' 0 '#EPs=' 1 'Cls=02(comm.)' 'Sub=02' 'Prot=00' 'Driver=cdc_acm' E: 'Ad=85(I)' 'Atr=03(Int.)' 'MxPS=' 64 'Ivl=1ms' 'I:*' 'If#=' 5 'Alt=' 0 '#EPs=' 2 'Cls=0a(data' ')' 'Sub=02' 'Prot=00' 'Driver=cdc_acm' E: 'Ad=86(I)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' E: 'Ad=06(O)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' 'I:*' 'If#=' 6 'Alt=' 0 '#EPs=' 1 'Cls=02(comm.)' 'Sub=0d' 'Prot=00' 'Driver=cdc_ncm' E: 'Ad=87(I)' 'Atr=03(Int.)' 'MxPS=' 64 'Ivl=1ms' I: 'If#=' 7 'Alt=' 0 '#EPs=' 0 'Cls=0a(data' ')' 'Sub=00' 'Prot=01' 'Driver=cdc_ncm' 'I:*' 'If#=' 7 'Alt=' 1 '#EPs=' 2 'Cls=0a(data' ')' 'Sub=00' 'Prot=01' 'Driver=cdc_ncm' E: 'Ad=88(I)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' E: 'Ad=08(O)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' 'I:*' 'If#=' 8 'Alt=' 0 '#EPs=' 1 'Cls=02(comm.)' 'Sub=0d' 'Prot=00' 'Driver=cdc_ncm' E: 'Ad=89(I)' 'Atr=03(Int.)' 'MxPS=' 64 'Ivl=1ms' I: 'If#=' 9 'Alt=' 0 '#EPs=' 0 'Cls=0a(data' ')' 'Sub=00' 'Prot=01' 'Driver=cdc_ncm' 'I:*' 'If#=' 9 'Alt=' 1 '#EPs=' 2 'Cls=0a(data' ')' 'Sub=00' 'Prot=01' 'Driver=cdc_ncm' E: 'Ad=8a(I)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' E: 'Ad=0a(O)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' 'I:*' 'If#=10' 'Alt=' 0 '#EPs=' 1 'Cls=02(comm.)' 'Sub=0d' 'Prot=00' 'Driver=cdc_ncm' E: 'Ad=8b(I)' 'Atr=03(Int.)' 'MxPS=' 64 'Ivl=1ms' I: 'If#=11' 'Alt=' 0 '#EPs=' 0 'Cls=0a(data' ')' 'Sub=00' 'Prot=01' 'Driver=cdc_ncm' 'I:*' 'If#=11' 'Alt=' 1 '#EPs=' 2 'Cls=0a(data' ')' 'Sub=00' 'Prot=01' 'Driver=cdc_ncm' E: 'Ad=8c(I)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' E: 'Ad=0c(O)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' 'I:*' 'If#=12' 'Alt=' 0 '#EPs=' 1 'Cls=ff(vend.)' 'Sub=01' 'Prot=00' 'Driver=(none)' E: 'Ad=8d(I)' 'Atr=03(Int.)' 'MxPS=' 4 'Ivl=125us' T: 'Bus=02' 'Lev=00' 'Prnt=00' 'Port=00' 'Cnt=00' 'Dev#=' 1 'Spd=10000' 'MxCh=' 1 B: 'Alloc=' 0/800 us '(' '0%),' '#Int=' 0, '#Iso=' 0 D: 'Ver=' 3.10 'Cls=09(hub' ')' 'Sub=00' 'Prot=03' 'MxPS=' 9 '#Cfgs=' 1 P: 'Vendor=1d6b' 'ProdID=0003' 'Rev=' 5.15 S: 'Manufacturer=Linux' 5.15.139 xhci-hcd S: 'Product=xHCI' Host Controller S: 'SerialNumber=11200000.usb' 'C:*' '#Ifs=' 1 'Cfg#=' 1 'Atr=e0' 'MxPwr=' 0mA 'I:*' 'If#=' 0 'Alt=' 0 '#EPs=' 1 'Cls=09(hub' ')' 'Sub=00' 'Prot=00' 'Driver=hub' E: 'Ad=81(I)' 'Atr=03(Int.)' 'MxPS=' 4 'Ivl=256ms'
+ PVCBX=' Rev= 3.50 S: Manufacturer=Intel Corp. S: Product=MODEM + 2 CDC-ACM + 3 CDC-NCM + SS S: SerialNumber=004999010640000:004999010640000:004999010640000:004999010640000 C:* #Ifs=13 Cfg#= 1 Atr=e0 MxPwr=100mA A: FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=02 Prot=01 A: FirstIf#= 2 IfCount= 2 Cls=02(comm.) Sub=02 Prot=00 A: FirstIf#= 4 IfCount= 2 Cls=02(comm.) Sub=02 Prot=00 A: FirstIf#= 6 IfCount= 2 Cls=02(comm.) Sub=0d Prot=00 A: FirstIf#= 8 IfCount= 2 Cls=02(comm.) Sub=0d Prot=00 A: FirstIf#=10 IfCount= 2 Cls=02(comm.) Sub=0d Prot=00 I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=cdc_acm E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=02 Prot=00 Driver=cdc_acm E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 2 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=00 Driver=cdc_acm E: Ad=83(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I:* If#= 3 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=02 Prot=00 Driver=cdc_acm E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 4 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=00 Driver=cdc_acm E: Ad=85(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I:* If#= 5 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=02 Prot=00 Driver=cdc_acm E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 6 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0d Prot=00 Driver=cdc_ncm E: Ad=87(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I: If#= 7 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm I:* If#= 7 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm E: Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=08(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 8 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0d Prot=00 Driver=cdc_ncm E: Ad=89(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I: If#= 9 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm I:* If#= 9 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm E: Ad=8a(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=0a(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#=10 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0d Prot=00 Driver=cdc_ncm E: Ad=8b(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I: If#=11 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm I:* If#=11 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm E: Ad=8c(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=0c(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#=12 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=01 Prot=00 Driver=(none) E: Ad=8d(I) Atr=03(Int.) MxPS= 4 Ivl=125us T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=10000 MxCh= 1 B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 3.10 Cls=09(hub ) Sub=00 Prot=03 MxPS= 9 #Cfgs= 1 P: Vendor=1d6b ProdID=0003 Rev= 5.15 S: Manufacturer=Linux 5.15.139 xhci-hcd S: Product=xHCI Host Controller S: SerialNumber=11200000.usb C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl=256ms'
+ echo ' Rev= 3.50 S: Manufacturer=Intel Corp. S: Product=MODEM + 2 CDC-ACM + 3 CDC-NCM + SS S: SerialNumber=004999010640000:004999010640000:004999010640000:004999010640000 C:* #Ifs=13 Cfg#= 1 Atr=e0 MxPwr=100mA A: FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=02 Prot=01 A: FirstIf#= 2 IfCount= 2 Cls=02(comm.) Sub=02 Prot=00 A: FirstIf#= 4 IfCount= 2 Cls=02(comm.) Sub=02 Prot=00 A: FirstIf#= 6 IfCount= 2 Cls=02(comm.) Sub=0d Prot=00 A: FirstIf#= 8 IfCount= 2 Cls=02(comm.) Sub=0d Prot=00 A: FirstIf#=10 IfCount= 2 Cls=02(comm.) Sub=0d Prot=00 I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=cdc_acm E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=02 Prot=00 Driver=cdc_acm E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 2 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=00 Driver=cdc_acm E: Ad=83(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I:* If#= 3 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=02 Prot=00 Driver=cdc_acm E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 4 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=00 Driver=cdc_acm E: Ad=85(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I:* If#= 5 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=02 Prot=00 Driver=cdc_acm E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 6 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0d Prot=00 Driver=cdc_ncm E: Ad=87(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I: If#= 7 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm I:* If#= 7 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm E: Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=08(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 8 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0d Prot=00 Driver=cdc_ncm E: Ad=89(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I: If#= 9 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm I:* If#= 9 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm E: Ad=8a(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=0a(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#=10 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0d Prot=00 Driver=cdc_ncm E: Ad=8b(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I: If#=11 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm I:* If#=11 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm E: Ad=8c(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=0c(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#=12 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=01 Prot=00 Driver=(none) E: Ad=8d(I) Atr=03(Int.) MxPS= 4 Ivl=125us T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=10000 MxCh= 1 B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 3.10 Cls=09(hub ) Sub=00 Prot=03 MxPS= 9 #Cfgs= 1 P: Vendor=1d6b ProdID=0003 Rev= 5.15 S: Manufacturer=Linux 5.15.139 xhci-hcd S: Product=xHCI Host Controller S: SerialNumber=11200000.usb C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl=256ms'+
cut -c-2453
+ PVCB=' Rev= 3.50 S: Manufacturer=Intel Corp. S: Product=MODEM + 2 CDC-ACM + 3 CDC-NCM + SS S: SerialNumber=004999010640000:004999010640000:004999010640000:004999010640000 C:* #Ifs=13 Cfg#= 1 Atr=e0 MxPwr=100mA A: FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=02 Prot=01 A: FirstIf#= 2 IfCount= 2 Cls=02(comm.) Sub=02 Prot=00 A: FirstIf#= 4 IfCount= 2 Cls=02(comm.) Sub=02 Prot=00 A: FirstIf#= 6 IfCount= 2 Cls=02(comm.) Sub=0d Prot=00 A: FirstIf#= 8 IfCount= 2 Cls=02(comm.) Sub=0d Prot=00 A: FirstIf#=10 IfCount= 2 Cls=02(comm.) Sub=0d Prot=00 I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=cdc_acm E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=02 Prot=00 Driver=cdc_acm E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 2 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=00 Driver=cdc_acm E: Ad=83(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I:* If#= 3 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=02 Prot=00 Driver=cdc_acm E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 4 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=00 Driver=cdc_acm E: Ad=85(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I:* If#= 5 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=02 Prot=00 Driver=cdc_acm E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 6 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0d Prot=00 Driver=cdc_ncm E: Ad=87(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I: If#= 7 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm I:* If#= 7 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm E: Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=08(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 8 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0d Prot=00 Driver=cdc_ncm E: Ad=89(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I: If#= 9 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm I:* If#= 9 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm E: Ad=8a(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=0a(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#=10 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0d Prot=00 Driver=cdc_ncm E: Ad=8b(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I: If#=11 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm I:* If#=11 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm E: Ad=8c(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=0c(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#=12 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=01 Prot=00 Driver=(none) E: Ad=8d(I) Atr=03(Int.) MxPS= 4 Iv'
+ '[' -n  ]
+ '[' -n ' Rev= 3.50 S: Manufacturer=Intel Corp. S: Product=MODEM + 2 CDC-ACM + 3 CDC-NCM + SS S: SerialNumber=004999010640000:004999010640000:004999010640000:004999010640000 C:* #Ifs=13 Cfg#= 1 Atr=e0 MxPwr=100mA A: FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=02 Prot=01 A: FirstIf#= 2 IfCount= 2 Cls=02(comm.) Sub=02 Prot=00 A: FirstIf#= 4 IfCount= 2 Cls=02(comm.) Sub=02 Prot=00 A: FirstIf#= 6 IfCount= 2 Cls=02(comm.) Sub=0d Prot=00 A: FirstIf#= 8 IfCount= 2 Cls=02(comm.) Sub=0d Prot=00 A: FirstIf#=10 IfCount= 2 Cls=02(comm.) Sub=0d Prot=00 I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=cdc_acm E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=02 Prot=00 Driver=cdc_acm E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 2 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=00 Driver=cdc_acm E: Ad=83(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I:* If#= 3 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=02 Prot=00 Driver=cdc_acm E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 4 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=00 Driver=cdc_acm E: Ad=85(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I:* If#= 5 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=02 Prot=00 Driver=cdc_acm E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 6 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0d Prot=00 Driver=cdc_ncm E: Ad=87(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I: If#= 7 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm I:* If#= 7 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm E: Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=08(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 8 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0d Prot=00 Driver=cdc_ncm E: Ad=89(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I: If#= 9 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm I:* If#= 9 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm E: Ad=8a(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=0a(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#=10 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0d Prot=00 Driver=cdc_ncm E: Ad=8b(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I: If#=11 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm I:* If#=11 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm E: Ad=8c(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=0c(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#=12 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=01 Prot=00 Driver=(none) E: Ad=8d(I) Atr=03(Int.) MxPS= 4 Iv' ]
+ PROTO=ncm
+ cat
{
"connt":"0d, 00:12:08",
"conntx":"530.4 KiB",
"connrx":"5.3 MiB",
"modem":"Fibocom L860 LTE Module",
"mtemp":" 45 &deg;C",
"firmware":"18600.5001.00.35.01.46_7000.03.001.005",
"cport":"/dev/ttyACM2",
"protocol":"ncm",
"csq":"24",
"signal":"77",
"operator_name":"Orange",
"operator_mcc":"260",
"operator_mnc":"03",
"location":"Poland",
"mode":"LTE-A | B3 (1800 MHz) + B20 (800 MHz)",
"registration":"6",
"simslot":"",
"imei":"867921031075525",
"imsi":"260038778378091",
"iccid":"8948031438783780916F",
"lac_dec":"53112",
"lac_hex":"CF78",
"tac_dec":"",
"tac_hex":"-",
"tac_h":"",
"tac_d":"",
"cid_dec":"59322932",
"cid_hex":"3893234",
"pci":" 326",
"earfcn":"1749",
"pband":"B3 (1800 MHz) @10 MHz",
"s1band":"B20 (800 MHz) @10  MHz",
"s1pci":"326",
"s1earfcn":"6200",
"s2band":"",
"s2pci":"",
"s2earfcn":"",
"s3band":"",
"s3pci":"",
"s3earfcn":"",
"s4band":"",
"s4pci":"",
"s4earfcn":"",
"rsrp":"-92",
"rsrq":"-11",
"rssi":"-65",
"sinr":"20"
}
+ exit 0
root@Banana_Pi_BPI-R3:~#

sms_tool -d /dev/ttyACM0 at "AT+XCCINFO=1;+XCCINFO?"

root@Banana_Pi_BPI-R3:~# sms_tool -d /dev/ttyACM0 at "AT+XCCINFO=1;+XCCINFO?"
AT+XCCINFO=1;+XCCINFO?
+XCCINFO: 1,260,03,"03893234",3,103,"FFFF",1,"FF","CF78",0,0,0,0,0,0,0,0

root@Banana_Pi_BPI-R3:~#
Banana Pi BPI-R3 + SFP GPON ONT Nokia G-010S-A + LTE FIBOCOM L860-GL-16 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Xiaomi AX3600 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Xiaomi AX3000T (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
All OpenWRT compilations from ASU by @Cezary

32

Odp: BPi-R3 i modem LTE

Zastanawia mnie ta "6" w statusie. No nic, ten modem zawsze był z tych "dziwnych".

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

33

Odp: BPi-R3 i modem LTE

Ta SIM'ka jest bez połączeń głosowych, może to temu ...

Banana Pi BPI-R3 + SFP GPON ONT Nokia G-010S-A + LTE FIBOCOM L860-GL-16 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Xiaomi AX3600 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Xiaomi AX3000T (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
All OpenWRT compilations from ASU by @Cezary

34 (edytowany przez Payti 2024-02-09 13:07:15)

Odp: BPi-R3 i modem LTE

Na kompilacji testowej BPI-R3 snapschot'a z kernelem 6.1.64 @Cezarego -> https://dl.eko.one.pl/test/bananapi-rpi … k/filogic/
modem działa także poprawnie na nowszym kernelu.

Banana Pi BPI-R3 + SFP GPON ONT Nokia G-010S-A + LTE FIBOCOM L860-GL-16 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Xiaomi AX3600 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Xiaomi AX3000T (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
All OpenWRT compilations from ASU by @Cezary

35 (edytowany przez Payti 2024-03-02 21:45:17)

Odp: BPi-R3 i modem LTE

Trochę przydatnych komend AT dla modemów Fibocom L860-GL poniżej.

Co najważniejsze, można rebootować sam modem komendą: AT+CFUN=15

By the way, regarding FCC unlock, I found a normal command, not nvm:
AT+GTFCCLOCKMODEUNLOCK

View software version. Shows the firmware version and the installed vendor:
AT+GTPKGVER?

View IMEI
AT+CGSN?

SIM card status
at+cpin?

Shows the presence of SIM cards in
AT+GTSIMINIT trays?

SIM slot readiness state
at@uicc:get_card_state()

Active SIM slot: 0-first (prymary), 1-second (secondary)
AT+CSUS?

SIM capabilities
at@uicc:get_sim_capabilities()

SIM card test: primary and secondary
at@uicc:testanysimprimary()
at@uicc:testanysimsecondary()

Temperature check
AT+MTSM=1

Switching modem operating modes. *In modern firmware there are only a few active modes: 0.10 - NCM, 7 - MBIM (860 only via PCI line), 11 - NCM (but with other pid/vid - Intel). Don't believe me? Check it out for yourself! Switch all modes one by one and see the system logs, how and with which ports the modem is presented to the device.
NCM
at@nvm:cal_usbmode.num=0

NCM
at@nvm:cal_usbmode.num=10

Save the selected mode
at@store_nvm(cal_usbmode)

Reboot the modem
AT+CFUN=15

View enabled bands
at+xact?

Enable only a specific band. For example b7 - will be 107, b20 - 120
at+xact=2,,,10x

Unblock all LTE bands
at+xact=2,,,0

View active aggregation
at+xlec?

View metrics. Two commands are entered: the first enables the second
at@emac:enable_metric_config( )
at@emac:ul_dl_modulation_metric_status( )

Find out which band is participating in the UL. With a working ULCA there will be two of them.
at@errc:pcell_scell_ul_band_bw_info( )

Find out on which carriers the MIMO mode works
at@errc:pcell_scell_mimoLayer_status( )

Antenna metrics
at@errc:pcell_scell_measurement_info( )

Display available aggregation combinations, according to the selected bands *When ULCA is enabled, there will be combinations like: 7 CC +BWCS-7, where the main thing is CC, meaning: a pair of adjacent carriers in B7, and for an uplink - these two carriers in B7 simultaneously
at@sic:ca_info(0)

Information on antenna ports (0) - brief, (1) - expanded
at@xrf:get_antenna_port(1)

Prohibiting any aggregation
at@sic:ca_disable(0)

Restoring the possibility of aggregation
at@sic:ca_restore(0)

In theory, this command can control the combination itself - in what order the carriers will go. However, this command is only for minor carriers.
at@xrs:ca_config()??
ca_config(ul_ca_enable,scell_band_1,scell_earfcn_1,scell_band_2,scell_earfcn_2,scell_band_3,scell_earfcn_3,scell_band_4,scell_earfcn_4,scell_mimo) [%d %u %u %u %u ... %u~0 %u~0 %u~0 %u ~0 %qu~0] AL=PRODUCTION/test/sec
Configure carrier aggregation for LTE.

Displays active modem services.
at@sysmon:info_print()??
info_print() [] AL=PRODUCTION/test/sec
Print event collector table command

This command can be used to enable or disable services. For example, Watchdog. In theory, it’s not fucking needed on Kinetics, because... The original Kinetic will reboot the modem itself. But this can also be done using the modem itself.
at@sysmon:entity_enable()??
entity_enable($entity_name , $enable) [%s[16] %d] AL=PRODUCTION/test/sec
Enable or disable a Sysmon entity. Using a star '*' as entity name will proceed all of them.
Examples:
at@sysmon:entity_enable("Pow NK",1) -> will enable "Pow NK" entity.
at@sysmon:entity_enable("*",0) -> will disable all entities.

This command sets values for each of the services
at@sysmon:set_supervisors_durations()??
set_supervisors_durations($entity_name , $duration_for_supervisor) [%s[16] %d] AL=PRODUCTION/test/sec
The command will set the supervisors durations
use: at@sysmon:set_supervisors_durations("entity_name", Duration)
entity_name valid_range(in ticks )
IUI 1-7800
Bottom Half 1-26000
Watchdog 1-780000000
Timer_CB_LPRT 1-52000
Timer_CB_HPRT 1-520

Will show the protocol used to connect the modem: USB 1.0/2.0/3.0
at@usbmwtestfw:usb_get_enum_speed()

There are perverts who watch iptv multicast using lte traffic. There is a small bonus for them. It seems like this command enables 256QAM for multicast traffic:
at@nvm:dyn_cps.instance[0].lte_caps.dl_256qam_mbms_support=1
at@nvm:store_nvm(dyn_cps)

Switching SIM cards:
second slot
at@nvm:dyn_cps_dssa_prsrv.msim_config.ps_pref_slot= 1
at@nvm:store_nvm(dyn_cps_dssa_prsrv)

first slot
at@nvm:dyn_cps_dssa_prsrv.msim_config.ps_pref_slot=0
at@nvm:store_nvm(dyn_cps_dssa_prsrv)

*Does not work on all firmware! On new software versions higher than 18601...16.11 (HP) and 18601...16.12 (Lenovo), switching is not arbeiten. The exception is 18601...16.48 (HP)
On more recent firmware, a change in SIM slots was found by nufrog


Find out PCI ERRFCH and signal level on all carriers,participating in aggregationwhich the modem “hears”:
AT+RSRP?
(PCI, EARFCN, signal level,...)

Locking the carrier frequency
at@sic:freq_lock(0,3,band,1,EARFCN,PCI)
where 0 is a constant; 3- rat (LTE); Band - either 7 or 107 is indicated; 1 - allow / 0 disable fixation; EARFCN and PCI are specified in decimal notation.
Afterwards a restart is required. For Kinetic, a reboot is not needed, just distort the connection at+cfun=4
at+cfun=15
The modem will reboot and, if everything was done correctly, connect to the operator at the frequency specified. To enable aggregation (if it did not pull itself up on its own), you just need to enter the command to disable committing, nothing more, you no longer need to reboot.
at@sic:freq_lock(0,3,band,0,EARFCN,PCI)
*Does not work on KeenOS 3.9.x-4.0.x. As soon as they fix it, I'll remove it.
It looks like it won't be fixed and the crutch needs to be laid out. We enter a command to fix the carrier and change the state of any unused band to the opposite, i.e. If it was turned on, then turn it off and vice versa. The connection will restart on the selected carrier, and aggregation will be improved as a bonus. I can’t help but note that if the SIM card is installed in the second slot, then the command works without on/off bands. For some, even without the additional command at+cfun=4, it just happens after a while. The aggregation itself is also tightened.

You should probably post the command itself as it is:
at@sic:freq_lock()??
freq_lock($sim_id $rat $band $inter_frequency_lock_enable $frequency $psc_pci) [%qu %qu %qu %qu %lu %hu] AL=PRODUCTION/test/sec
Command to set the frequency lock configuration, which shall be used in UE to register to a PLMN particular to the frequency info provided by the user


Find out the modem ID version (hwid)
at@hwid:ver_hwid_get_id(6)

#dec_convert to hex
0000_0
1135_46F
1208_4B8
1209_4B9
1210_4BA
1242_4DA
1243_4DB
1244_4DC
1246_4DE
1257_4E9
1258_4EA
1259_4EB
1272_4F8
1273_4F9
1274_4FA
1275_4FB
1276_4FC
1277_4FD
1278_4FE
1279_4FF
1319_527
1384_568
1385_569
1390_56E
1391_56F
1392_570
1393_571
1630_65E
1631_65F
1632_660
1687_697
1688_698
1689_699
1690_69A
9999_270F

Dostępne są także modowane firmware na forum 4PDA z obsługą agregacji w upload: UL_CA.
Jak dotrze przejściowka na USB, to może wrzucę taki i zrobię testy.

Banana Pi BPI-R3 + SFP GPON ONT Nokia G-010S-A + LTE FIBOCOM L860-GL-16 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Xiaomi AX3600 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Xiaomi AX3000T (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
All OpenWRT compilations from ASU by @Cezary

36 (edytowany przez Payti 2024-03-05 23:21:58)

Odp: BPi-R3 i modem LTE

Trochę nowych info.
Flashowałem modem do wersji firmware z forum 4PDA z ULCA: 18601.5001.00.01.16.12_5003.13.001.011
Stał się w teraz wersją:  Fibocom L860-GL-16

Podsyłam wyniki komend:

sh -x /usr/share/3ginfo-lite/3ginfo.sh 

sms_tool -d /dev/ttyACM0 at "AT+XCCINFO=1;+XCCINFO?"

Po nawiązaniu połączenia i z agregacją jest teraz:

root@BananaPi_BPi-R3 /root [#]# sms_tool -d /dev/ttyACM0 at "AT+XCCINFO=1;+XCCINFO?"
AT+XCCINFO=1;+XCCINFO?
+XCCINFO: 1,260,03,"03893234",3,103,"FFFF",1,"FF","CF78",0,0,0,0,0,0,0,0

root@BananaPi_BPi-R3 /root [#]# sh -x /usr/share/3ginfo-lite/3ginfo.sh
+ RES=/usr/share/3ginfo-lite
+ /usr/share/3ginfo-lite/detect.sh
uci: Entry not found
+ DEVICE=/dev/ttyACM2
+ '[' -z /dev/ttyACM2 ]
+ O=
+ '[' -e /usr/bin/sms_tool ]
+ sms_tool -D -d /dev/ttyACM2 at 'AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?'
+ O='AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?
+CPIN: READY

+CSQ: 6,3

+COPS: 0,0,"Orange",7

+COPS: 0,2,"26003",7

+CREG: 2,1,"CF78","03893234",7

'K
+ uci -q get '3ginfo.@3ginfo[0].network'
+ SECT=wan_lte
+ SUB=@
+ '[[' wan_lte '==' '*@*' ]]
+ uci -q get '3ginfo.@3ginfo[0].network'
+ SEC=wan_lte
+ '[' -z wan_lte ]
+ CONN_TIME=-
+ RX=-
+ TX=-
+ ifstatus wan_lte
+ grep '"up": true'
+ NETUP='       "up": true,'
+ '[' -n '      "up": true,' ]
+ uci -q -P /var/state/ get network.wan_lte.connect_time
+ CT=
+ '[' -z ]
+ ifstatus wan_lte
+ + awk '-F[:,]' '/uptime/ {print $2}'
xargs
+ CT=429
+ '[' '!' -z 429 ]
+ expr 429 / 60 / 60 / 24
+ D=0
+ expr 429 / 60 / 60 '%' 24
+ H=0
+ expr 429 / 60 '%' 60
+ M=7
+ expr 429 '%' 60
+ S=9
+ printf '%dd, %02d:%02d:%02d' 0 0 7 9
+ CONN_TIME='0d, 00:07:09'
+ ifstatus wan_lte
+ awk '-F"' '/l3_device/ {print $4}'
+ IFACE=eth2
+ '[' -n eth2 ]
+ ifconfig eth2
+ awk '-F[()]' '/bytes/ {printf "%s",$2}'
+ RX='2.7 MiB'
+ ifconfig eth2
+ awk '-F[()]' '/bytes/ {printf "%s",$4}'
+ TX='346.4 KiB'
+ echo 'AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?
+CPIN: READY

+CSQ: 6,3

+COPS: 0,0,"Orange",7

+COPS: 0,2,"26003",7

+CREG: 2,1,"CF78","03893234",7

'K
+ awk '-F[, ]' '/^\+CSQ/ {print $2}'
+ CSQ=6
+ '[' x6 '=' x ]
+ '[' 6 -ge 0 -a 6 -le 31 ]
+ CSQ_PER=19
+ COPS=
+ COPS_MCC=
+ COPS_MNC=
+ echo 'AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?
+CPIN: READY

+CSQ: 6,3

+COPS: 0,0,"Orange",7

+COPS: 0,2,"26003",7

+CREG: 2,1,"CF78","03893234",7

'K
+ awk '-F["]' '/^\+COPS: .,2/ {print $2}'
+ COPS_NUM=26003
+ '[' -n 26003 ]
+ COPS_MCC=260
+ COPS_MNC=03
+ '[' -z  ]
+ echo 'AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?
+CPIN: READY

+CSQ: 6,3

+COPS: 0,0,"Orange",7

+COPS: 0,2,"26003",7

+CREG: 2,1,"CF78","03893234",7

'K
+ awk '-F["]' '/^\+COPS: .,0/ {print $2}'
+ COPS=Orange
+ '[' -z Orange ]
+ echo Orange
+ sed ':s;s/\(\<\S*\>\)\(.*\)\<\1\>/\1\2/g;ts'
+ COPZ=Orange
+ echo Orange
+ awk '{for(i=1;i<=NF;i++){ $i=toupper(substr($i,1,1)) substr($i,2) }}1'
+ COPS=Orange
+ sms_tool -d /dev/ttyACM2 at 'AT+COPS?'
+ sed -n 2p
+ tr -d '\r'
+ cut -d '"' -f2
+ isp=26003
+ isp_num='260 03'
+ isp_numws=26003
+ '[[' Orange '=' '260 03' '||' Orange '=' 26003 ]]
+ LOCATIONFILE=/tmp/location
+ '[' -e /tmp/location ]
+ touch /tmp/location
+ cat /tmp/location
+ LOC=Poland
+ '[' -n Poland ]
+ cat /tmp/location
+ LOC=Poland
+ echo 'AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?
+CPIN: READY

+CSQ: 6,3

+COPS: 0,0,"Orange",7

+COPS: 0,2,"26003",7

+CREG: 2,1,"CF78","03893234",7

'K
+ xargs
+ awk '-F[, ]' '/^\+CPIN:/ {print $0;exit}'
+ T='+CPIN: READY'
+ '[' -n '+CPIN: READY' ]
+ '[' '+CPIN: READY' '=' '+CPIN: READY' ]
+ echo 'AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?
+CPIN: READY

+CSQ: 6,3

+COPS: 0,0,"Orange",7

+COPS: 0,2,"26003",7

+CREG: 2,1,"CF78","03893234",7

'K
+ awk '-F[, ]' '/^\+CME ERROR:/ {print $0;exit}'
+ T=
+ '[' -n  ]
+ echo 'AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?
+CPIN: READY

+CSQ: 6,3

+COPS: 0,0,"Orange",7

+COPS: 0,2,"26003",7

+CREG: 2,1,"CF78","03893234",7

'K
+ awk '-F[,]' '/^\+CREG/ {gsub(/[[:space:]"]+/,"");printf "T=\"%d\";LAC_HEX=\"%X\";CID_HEX=\"%X\";LAC_DEC=\"%d\";CID_DEC=\"%d\";MODE_NUM=\"%d\"", $2, "0x"$3, "0x"$4, "0x"$3, "0x"$4, $5}'
+ eval 'T="1";LAC_HEX="CF78";CID_HEX="3893234";LAC_DEC="53112";CID_DEC="59322932";MODE_NUM="7"'
+ T=1
+ LAC_HEX=CF78
+ CID_HEX=3893234
+ LAC_DEC=53112
+ CID_DEC=59322932
+ MODE_NUM=7
+ REG=1
+ '[' -z 7 ]
+ '[' x7 '=' x0 ]
+ MODE=LTE
+ sms_tool -d /dev/ttyACM2 at at+cereg
' OTX='at+cereg
' echo 'at+cereg
+ + sedawk 's/[^A-F0-9]//g' '-F[,]' '/^\+CEREG/ {printf "%s", toupper($3)}'

+ TAC=
+ '[' x '!=' x ]
+ TAC=-
+ TAC_HEX=-
+ uci -q get '3ginfo.@3ginfo[0].device'
+ CONF_DEVICE=/dev/ttyACM2
+ echo x/dev/ttyACM2
+ grep -q 192.168.
+ '[' -e /usr/bin/sms_tool ]
+ REGOK=0
+ '[' x1 '=' x1 ]
+ REGOK=1
+ getdevicevendorproduct /dev/ttyACM2
+ basename /dev/ttyACM2
+ devname=ttyACM2
+ readlink -f /sys/class/tty/ttyACM2/device
+ devpath=/sys/devices/platform/soc/11200000.usb/usb1/1-1/1-1.1/1-1.1:1.4
+ T=/sys/devices/platform/soc/11200000.usb/usb1/1-1/1-1.1
+ cat /sys/devices/platform/soc/11200000.usb/usb1/1-1/1-1.1/idVendor
+ cat /sys/devices/platform/soc/11200000.usb/usb1/1-1/1-1.1/idProduct
+ echo usb/8087095a
+ VIDPID=usb/8087095a
+ '[' -e /usr/share/3ginfo-lite/modem/usb/8087095a ]
+ cat /tmp/sysinfo/board_name
+ . /usr/share/3ginfo-lite/modem/usb/8087095a
+ sms_tool -d /dev/ttyACM2 at 'at+xlec?;+rsrp?;+rsrq?;+xmci=1'
+ O='at+xlec?;+rsrp?;+rsrq?;+xmci=1
+XLEC: 0,2,3,3,BAND_LTE_3,20,0,0,0

+RSRP: 326,1749,-99.00,326,6200,-108.00


+RSRQ: 326,1749,-11.00,326,6200,-10.00


+XMCI: 4,260,03,"0xCF78","0x03893234","0x0146","0x000006D5","0x00004D25","0xFFFFFFFF",42,19,50,"0x00000014","0x00000000"

+XMCI: 5,000,000,"0xFFFE","0xFFFFFFFF","0x0146","0x00001838","0xFFFFFFFF","0xFFFFFFFF",33,20,255,"0x7FFFFFFF","0x00000000"
'
+ echo 'at+xlec?;+rsrp?;+rsrq?;+xmci=1
+XLEC: 0,2,3,3,BAND_LTE_3,20,0,0,0

+RSRP: 326,1749,-99.00,326,6200,-108.00


+RSRQ: 326,1749,-11.00,326,6200,-10.00


+XMCI: 4,260,03,"0xCF78","0x03893234","0x0146","0x000006D5","0x00004D25","0xFFFFFFFF",42,19,50,"0x00000014","0x00000000"

+XMCI: 5,000,000,"0xFFFE","0xFFFFFFFF","0x0146","0x00001838","0xFFFFFFFF","0xFFFFFFFF",33,20,255,"0x7FFFFFFF","0x00000000"
'
+ awk -F '[:_]' '/\+XLEC:/{gsub("\r",""); print $4}'
+ awk -F '[:,]' '{print $1}'
+ T=3
+ '[' -n 3 ]
+ band 3
+ echo -n B3
+ echo ' (1800 MHz)'
+ MODE='LTE B3 (1800 MHz)'
+ echo 'at+xlec?;+rsrp?;+rsrq?;+xmci=1
+XLEC: 0,2,3,3,BAND_LTE_3,20,0,0,0

+RSRP: 326,1749,-99.00,326,6200,-108.00


+RSRQ: 326,1749,-11.00,326,6200,-10.00


+XMCI: 4,260,03,"0xCF78","0x03893234","0x0146","0x000006D5","0x00004D25","0xFFFFFFFF",42,19,50,"0x00000014","0x00000000"

+XMCI: 5,000,000,"0xFFFE","0xFFFFFFFF","0x0146","0x00001838","0xFFFFFFFF","0xFFFFFFFF",33,20,255,"0x7FFFFFFF","0x00000000"
'
+ awk -F '[:,]' '/\+RSRP:/{printf "%.0f\n", $4}'
+ RSRP=-99
+ echo 'at+xlec?;+rsrp?;+rsrq?;+xmci=1
+XLEC: 0,2,3,3,BAND_LTE_3,20,0,0,0

+RSRP: 326,1749,-99.00,326,6200,-108.00


+RSRQ: 326,1749,-11.00,326,6200,-10.00


+XMCI: 4,260,03,"0xCF78","0x03893234","0x0146","0x000006D5","0x00004D25","0xFFFFFFFF",42,19,50,"0x00000014","0x00000000"

+XMCI: 5,000,000,"0xFFFE","0xFFFFFFFF","0x0146","0x00001838","0xFFFFFFFF","0xFFFFFFFF",33,20,255,"0x7FFFFFFF","0x00000000"
'
+ awk -F '[:,]' '/\+XLEC:/{gsub("\r","",$4); print $4}'
+ BWDL=3
+ NP=50
+ echo -99 50
+ awk '{printf "%.0f\n", (($1+10*log(12*$2)/log(10))+113)/2}'
+ CSQ=21
+ '[' x21 '=' x ]
+ '[' 21 -ge 0 -a 21 -le 31 ]
+ CSQ_PER=67
+ RSSI=-71
+ echo 'at+xlec?;+rsrp?;+rsrq?;+xmci=1
+XLEC: 0,2,3,3,BAND_LTE_3,20,0,0,0

+RSRP: 326,1749,-99.00,326,6200,-108.00


+RSRQ: 326,1749,-11.00,326,6200,-10.00


+XMCI: 4,260,03,"0xCF78","0x03893234","0x0146","0x000006D5","0x00004D25","0xFFFFFFFF",42,19,50,"0x00000014","0x00000000"

+XMCI: 5,000,000,"0xFFFE","0xFFFFFFFF","0x0146","0x00001838","0xFFFFFFFF","0xFFFFFFFF",33,20,255,"0x7FFFFFFF","0x00000000"
'
+ awk -F '[:,]' '/\+RSRQ:/{printf "%.0f\n", $4}'
+ RSRQ=-11
+ echo 'at+xlec?;+rsrp?;+rsrq?;+xmci=1
+XLEC: 0,2,3,3,BAND_LTE_3,20,0,0,0

+RSRP: 326,1749,-99.00,326,6200,-108.00


+RSRQ: 326,1749,-11.00,326,6200,-10.00


+XMCI: 4,260,03,"0xCF78","0x03893234","0x0146","0x000006D5","0x00004D25","0xFFFFFFFF",42,19,50,"0x00000014","0x00000000"

+XMCI: 5,000,000,"0xFFFE","0xFFFFFFFF","0x0146","0x00001838","0xFFFFFFFF","0xFFFFFFFF",33,20,255,"0x7FFFFFFF","0x00000000"
'
+ awk -F '[:,]' '/\+XMCI: 4/{gsub(/"/,""); printf "%.0f\n", $13/4+5}'
+ SINR=18
+ echo 'at+xlec?;+rsrp?;+rsrq?;+xmci=1
+XLEC: 0,2,3,3,BAND_LTE_3,20,0,0,0

+RSRP: 326,1749,-99.00,326,6200,-108.00


+RSRQ: 326,1749,-11.00,326,6200,-10.00


+XMCI: 4,260,03,"0xCF78","0x03893234","0x0146","0x000006D5","0x00004D25","0xFFFFFFFF",42,19,50,"0x00000014","0x00000000"

+XMCI: 5,000,000,"0xFFFE","0xFFFFFFFF","0x0146","0x00001838","0xFFFFFFFF","0xFFFFFFFF",33,20,255,"0x7FFFFFFF","0x00000000"
'
+ awk -F '[:,]' '/\+XLEC:/{print $3}'
+ LTE_Cx=2
+ LTE_CA=1
+ '[' -n LTE_CA ]
+ echo 'at+xlec?;+rsrp?;+rsrq?;+xmci=1
+XLEC: 0,2,3,3,BAND_LTE_3,20,0,0,0

+RSRP: 326,1749,-99.00,326,6200,-108.00


+RSRQ: 326,1749,-11.00,326,6200,-10.00


+XMCI: 4,260,03,"0xCF78","0x03893234","0x0146","0x000006D5","0x00004D25","0xFFFFFFFF",42,19,50,"0x00000014","0x00000000"

+XMCI: 5,000,000,"0xFFFE","0xFFFFFFFF","0x0146","0x00001838","0xFFFFFFFF","0xFFFFFFFF",33,20,255,"0x7FFFFFFF","0x00000000"
'
+ awk -F '[:,]' '/\+RSRP:/{print $6}'
+ CAx=6200
+ echo 'at+xlec?;+rsrp?;+rsrq?;+xmci=1
+XLEC: 0,2,3,3,BAND_LTE_3,20,0,0,0

+RSRP: 326,1749,-99.00,326,6200,-108.00


+RSRQ: 326,1749,-11.00,326,6200,-10.00


+XMCI: 4,260,03,"0xCF78","0x03893234","0x0146","0x000006D5","0x00004D25","0xFFFFFFFF",42,19,50,"0x00000014","0x00000000"

+XMCI: 5,000,000,"0xFFFE","0xFFFFFFFF","0x0146","0x00001838","0xFFFFFFFF","0xFFFFFFFF",33,20,255,"0x7FFFFFFF","0x00000000"
'
+ awk -F '[:,]' '/\+XLEC:/{gsub("\r",""); print $4" "$5}'
+ BWCx='3 3'
+ CA_BAND=
+ convertchannel 6200
+ band 20
+ echo -n B20
+ echo ' (800 MHz)'
+ BAND='B20 (800 MHz)'
+ CA_BAND=' / B20 (800 MHz)'
+ CABANDx=,20
+ band 3
+ echo -n B3
+ echo ' (1800 MHz)'
+ MODE='LTE-A | B3 (1800 MHz) / B20 (800 MHz)'
+ echo ,20
+ awk -F '[,]'+  '/\,/{print $2" "}'sed
 's/ //g'
+ S1=20
+ echo ,20
+ awk -F '[,]' '/\,/{print $3" "}'
+ sed 's/ //g'
+ S2=
+ echo ,20
+ awk -F '[,]' '/\,/{print $4" "}'
+ sed 's/ //g'
+ S3=
+ echo ,20
+ awk -F+  '[,]'sed '/\,/{print $5" "}' 's/ //g'

+ S4=
+ BWCA=0
+ BWCA_INFO=
+ T5=10
+ BWCA=10
+ '[[' -z ]]
+ BWCA_INFO=10
+ T5=10
+ BWCA=20
+ '[[' -z 10 ]]
+ BWCA_INFO=10,10
+ echo 10,10
+ awk -F '[,]' '/\,/{print $2" "}'
+ BW1='10 '
+ echo 10,10
+ awk -F '[,]' '/\,/{print $3" "}'
+ BW2=' '
+ echo 10,10
+ awk -F '[,]' '/\,/{print $4" "}'
+ BW3=' '
+ echo 10,10
+ awk -F '[,]' '/\,/{print $5" "}'
+ BW4=' '
+ echo 'at+xlec?;+rsrp?;+rsrq?;+xmci=1
+XLEC: 0,2,3,3,BAND_LTE_3,20,0,0,0

+RSRP: 326,1749,-99.00,326,6200,-108.00


+RSRQ: 326,1749,-11.00,326,6200,-10.00


+XMCI: 4,260,03,"0xCF78","0x03893234","0x0146","0x000006D5","0x00004D25","0xFFFFFFFF",42,19,50,"0x00000014","0x00000000"

+XMCI: 5,000,000,"0xFFFE","0xFFFFFFFF","0x0146","0x00001838","0xFFFFFFFF","0xFFFFFFFF",33,20,255,"0x7FFFFFFF","0x00000000"
'
+ awk -F '[:,]' '/\+XLEC:/{gsub("\r",""); print $4" "}'
+ T2='3 '
+ T4=10
+ '[' -n 10 ]
+ band 3
+ echo -n B3
+ echo ' (1800 MHz)'
+ PBAND='B3 (1800 MHz) @10 MHz'
+ echo 'at+xlec?;+rsrp?;+rsrq?;+xmci=1
+XLEC: 0,2,3,3,BAND_LTE_3,20,0,0,0

+RSRP: 326,1749,-99.00,326,6200,-108.00


+RSRQ: 326,1749,-11.00,326,6200,-10.00


+XMCI: 4,260,03,"0xCF78","0x03893234","0x0146","0x000006D5","0x00004D25","0xFFFFFFFF",42,19,50,"0x00000014","0x00000000"

+XMCI: 5,000,000,"0xFFFE","0xFFFFFFFF","0x0146","0x00001838","0xFFFFFFFF","0xFFFFFFFF",33,20,255,"0x7FFFFFFF","0x00000000"
'
+ awk '-F[,:]' '/^\+RSRP:/ {print $2}'
+ PCI=' 326'
+ echo 'at+xlec?;+rsrp?;+rsrq?;+xmci=1
+XLEC: 0,2,3,3,BAND_LTE_3,20,0,0,0

+RSRP: 326,1749,-99.00,326,6200,-108.00


+RSRQ: 326,1749,-11.00,326,6200,-10.00


+XMCI: 4,260,03,"0xCF78","0x03893234","0x0146","0x000006D5","0x00004D25","0xFFFFFFFF",42,19,50,"0x00000014","0x00000000"

+XMCI: 5,000,000,"0xFFFE","0xFFFFFFFF","0x0146","0x00001838","0xFFFFFFFF","0xFFFFFFFF",33,20,255,"0x7FFFFFFF","0x00000000"
'
+ awk '-F[,:]' '/^\+RSRP:/ {print $3}'
+ EARFCN=1749
+ '[' -n 20 ]
+ band 20
+ echo -n B20
+ echo ' (800 MHz)'
+ S1BAND='B20 (800 MHz) @10  MHz'
+ echo 'at+xlec?;+rsrp?;+rsrq?;+xmci=1
+XLEC: 0,2,3,3,BAND_LTE_3,20,0,0,0

+RSRP: 326,1749,-99.00,326,6200,-108.00


+RSRQ: 326,1749,-11.00,326,6200,-10.00


+XMCI: 4,260,03,"0xCF78","0x03893234","0x0146","0x000006D5","0x00004D25","0xFFFFFFFF",42,19,50,"0x00000014","0x00000000"

+XMCI: 5,000,000,"0xFFFE","0xFFFFFFFF","0x0146","0x00001838","0xFFFFFFFF","0xFFFFFFFF",33,20,255,"0x7FFFFFFF","0x00000000"
'
+ awk '-F[,:]' '/^\+RSRP:/ {print $5}'
+ S1PCI=326
+ echo 'at+xlec?;+rsrp?;+rsrq?;+xmci=1
+XLEC: 0,2,3,3,BAND_LTE_3,20,0,0,0

+RSRP: 326,1749,-99.00,326,6200,-108.00


+RSRQ: 326,1749,-11.00,326,6200,-10.00


+XMCI: 4,260,03,"0xCF78","0x03893234","0x0146","0x000006D5","0x00004D25","0xFFFFFFFF",42,19,50,"0x00000014","0x00000000"

+XMCI: 5,000,000,"0xFFFE","0xFFFFFFFF","0x0146","0x00001838","0xFFFFFFFF","0xFFFFFFFF",33,20,255,"0x7FFFFFFF","0x00000000"
'
+ awk '-F[,:]' '/^\+RSRP:/ {print $6}'
+ S1EARFCN=6200
+ '[' -n  ]
+ '[' -n  ]
+ '[' -n  ]
+ '[[' 'LTE-A | B3 (1800 MHz) / B20 (800 MHz)' '!=' '*LTE-A*' ]]
+ echo LTE-A '|' B3 '(1800' 'MHz)' / B20 '(800' 'MHz)'
+ sed s,/,+,
+ MODE='LTE-A | B3 (1800 MHz) + B20 (800 MHz)'
+ sms_tool -d /dev/ttyACM2 at 'AT+GTPKGVER?'
+ xargs
+ FWA='AT+GTPKGVER? +GTPKGVER: 18601.5001.00.01.16.12_5003.13.001.011'
+ echo 'AT+GTPKGVER? +GTPKGVER: 18601.5001.00.01.16.12_5003.13.001.011'
+ cut -d : -f2
+ xargs
+ FW=18601.5001.00.01.16.12_5003.13.001.011
+ sms_tool -d /dev/ttyACM2 at 'AT+GMM?'
+ xargs
+ MDL='AT+GMM? +GMM: L860-GL-16 LTE Module,L860-GL-16'
+ echo 'AT+GMM? +GMM: L860-GL-16 LTE Module,L860-GL-16'
+ cut -d : -f2
+ cut -d , -f1
+ awk '-F"' '{print $1}'
+ MODELM=' L860-GL-16 LTE Module'
+ sms_tool -d /dev/ttyACM2 at AT+CGMI
+ xargs
+ MODELF='AT+CGMI Fibocom'
+ echo L860-GL-16 LTE Module
+ MODELMCUT='L860-GL-16 LTE Module'
+ echo AT+CGMI Fibocom
+ sed 's/AT+CGMI //'
+ MODELFCUT=Fibocom
+ MODEL='Fibocom L860-GL-16 LTE Module'
+ sms_tool -d /dev/ttyACM2 at 'AT+MTSM=1'
+ xargs
+ TC='AT+MTSM=1 +MTSM: 53'
+ echo 'AT+MTSM=1 +MTSM: 53'
+ awk '-F[:,]' '/\+MTSM:/{print $2}'
+ T=' 53'
+ '[' -n ' 53' ]
+ TEMP=' 53 &deg;C'
+ sms_tool -d /dev/ttyACM2 at AT+CGSN
+ xargs
+ O='AT+CGSN 867921031075525'
+ echo 'AT+CGSN 867921031075525'
+ sed 's/AT+CGSN //'
+ NR_I=867921031075525
+ '[' -n 867921031075525 ]
+ NR_IMEI=867921031075525
+ sms_tool -d /dev/ttyACM2 at AT+CIMI
+ xargs
+ O='AT+CIMI 260038778378091'
+ echo 'AT+CIMI 260038778378091'
+ sed 's/AT+CIMI //'
+ NR_C=260038778378091
+ '[' -n 260038778378091 ]
+ NR_IMSI=260038778378091
+ sms_tool -d /dev/ttyACM2 at AT+CCID
+ O='AT+CCID
+CCID: 8948031438783780916F
'
+ echo 'AT+CCID
+CCID: 8948031438783780916F
'
+ + xargsawk
 -F '[:]' '/^\+CCID: /{print $2}'
+ NR_D=8948031438783780916F
+ '[' -n 8948031438783780916F ]
+ NR_ICCID=8948031438783780916F
+ cat /sys/kernel/debug/usb/devices
+ PV='
T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480  MxCh= 2
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev= 6.01
S:  Manufacturer=Linux 6.1.78 xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=11200000.usb
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=480  MxCh= 4
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=1a40 ProdID=0101 Rev= 1.11
S:  Product=USB 2.0 Hub
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   1 Ivl=256ms

T:  Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#=  5 Spd=480  MxCh= 0
D:  Ver= 2.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=8087 ProdID=095a Rev= 3.50
S:  Manufacturer=Intel Corp.
S:  Product=MODEM + 2 CDC-ACM + 3 CDC-NCM + SS
S:  SerialNumber=004999010640000:004999010640000:004999010640000:004999010640000
C:* #Ifs=13 Cfg#= 1 Atr=e0 MxPwr=100mA
A:  FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=02 Prot=01
A:  FirstIf#= 2 IfCount= 2 Cls=02(comm.) Sub=02 Prot=00
A:  FirstIf#= 4 IfCount= 2 Cls=02(comm.) Sub=02 Prot=00
A:  FirstIf#= 6 IfCount= 2 Cls=02(comm.) Sub=0d Prot=00
A:  FirstIf#= 8 IfCount= 2 Cls=02(comm.) Sub=0d Prot=00
A:  FirstIf#=10 IfCount= 2 Cls=02(comm.) Sub=0d Prot=00
I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=cdc_acm
E:  Ad=81(I) Atr=03(Int.) MxPS=  64 Ivl=1ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=02 Prot=00 Driver=cdc_acm
E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=00 Driver=cdc_acm
E:  Ad=83(I) Atr=03(Int.) MxPS=  64 Ivl=1ms
I:* If#= 3 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=02 Prot=00 Driver=cdc_acm
E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 4 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=00 Driver=cdc_acm
E:  Ad=85(I) Atr=03(Int.) MxPS=  64 Ivl=1ms
I:* If#= 5 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=02 Prot=00 Driver=cdc_acm
E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 6 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0d Prot=00 Driver=cdc_ncm
E:  Ad=87(I) Atr=03(Int.) MxPS=  64 Ivl=1ms
I:  If#= 7 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm
I:* If#= 7 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm
E:  Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=08(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 8 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0d Prot=00 Driver=cdc_ncm
E:  Ad=89(I) Atr=03(Int.) MxPS=  64 Ivl=1ms
I:  If#= 9 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm
I:* If#= 9 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm
E:  Ad=8a(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=0a(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#=10 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0d Prot=00 Driver=cdc_ncm
E:  Ad=8b(I) Atr=03(Int.) MxPS=  64 Ivl=1ms
I:  If#=11 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm
I:* If#=11 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm
E:  Ad=8c(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=0c(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#=12 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=01 Prot=00 Driver=(none)
E:  Ad=8d(I) Atr=03(Int.) MxPS=   4 Ivl=125us

T:  Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=10000 MxCh= 1
B:  Alloc=  0/800 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 3.10 Cls=09(hub  ) Sub=00 Prot=03 MxPS= 9 #Cfgs=  1
P:  Vendor=1d6b ProdID=0003 Rev= 6.01
S:  Manufacturer=Linux 6.1.78 xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=11200000.usb
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms'
+ awk '-FVendor=8087 ProdID=07f9' '{print $2}'
+ echo T: 'Bus=01' 'Lev=00' 'Prnt=00' 'Port=00' 'Cnt=00' 'Dev#=' 1 'Spd=480' 'MxCh=' 2 B: 'Alloc=' 0/800 us '(' '0%),' '#Int=' 0, '#Iso=' 0 D: 'Ver=' 2.00 'Cls=09(hub' ')' 'Sub=00' 'Prot=01' 'MxPS=64' '#Cfgs=' 1 P: 'Vendor=1d6b' 'ProdID=0002' 'Rev=' 6.01 S: 'Manufacturer=Linux' 6.1.78 xhci-hcd S: 'Product=xHCI' Host Controller S: 'SerialNumber=11200000.usb' 'C:*' '#Ifs=' 1 'Cfg#=' 1 'Atr=e0' 'MxPwr=' 0mA 'I:*' 'If#=' 0 'Alt=' 0 '#EPs=' 1 'Cls=09(hub' ')' 'Sub=00' 'Prot=00' 'Driver=hub' E: 'Ad=81(I)' 'Atr=03(Int.)' 'MxPS=' 4 'Ivl=256ms' T: 'Bus=01' 'Lev=01' 'Prnt=01' 'Port=00' 'Cnt=01' 'Dev#=' 2 'Spd=480' 'MxCh=' 4 D: 'Ver=' 2.00 'Cls=09(hub' ')' 'Sub=00' 'Prot=01' 'MxPS=64' '#Cfgs=' 1 P: 'Vendor=1a40' 'ProdID=0101' 'Rev=' 1.11 S: 'Product=USB' 2.0 Hub 'C:*' '#Ifs=' 1 'Cfg#=' 1 'Atr=e0' 'MxPwr=100mA' 'I:*' 'If#=' 0 'Alt=' 0 '#EPs=' 1 'Cls=09(hub' ')' 'Sub=00' 'Prot=00' 'Driver=hub' E: 'Ad=81(I)' 'Atr=03(Int.)' 'MxPS=' 1 'Ivl=256ms' T: 'Bus=01' 'Lev=02' 'Prnt=02' 'Port=00' 'Cnt=01' 'Dev#=' 5 'Spd=480' 'MxCh=' 0 D: 'Ver=' 2.10 'Cls=ef(misc' ')' 'Sub=02' 'Prot=01' 'MxPS=64' '#Cfgs=' 1 P: 'Vendor=8087' 'ProdID=095a' 'Rev=' 3.50 S: 'Manufacturer=Intel' Corp. S: 'Product=MODEM' + 2 CDC-ACM + 3 CDC-NCM + SS S: 'SerialNumber=004999010640000:004999010640000:004999010640000:004999010640000' 'C:*' '#Ifs=13' 'Cfg#=' 1 'Atr=e0' 'MxPwr=100mA' A: 'FirstIf#=' 0 'IfCount=' 2 'Cls=02(comm.)' 'Sub=02' 'Prot=01' A: 'FirstIf#=' 2 'IfCount=' 2 'Cls=02(comm.)' 'Sub=02' 'Prot=00' A: 'FirstIf#=' 4 'IfCount=' 2 'Cls=02(comm.)' 'Sub=02' 'Prot=00' A: 'FirstIf#=' 6 'IfCount=' 2 'Cls=02(comm.)' 'Sub=0d' 'Prot=00' A: 'FirstIf#=' 8 'IfCount=' 2 'Cls=02(comm.)' 'Sub=0d' 'Prot=00' A: 'FirstIf#=10' 'IfCount=' 2 'Cls=02(comm.)' 'Sub=0d' 'Prot=00' 'I:*' 'If#=' 0 'Alt=' 0 '#EPs=' 1 'Cls=02(comm.)' 'Sub=02' 'Prot=01' 'Driver=cdc_acm' E: 'Ad=81(I)' 'Atr=03(Int.)' 'MxPS=' 64 'Ivl=1ms' 'I:*' 'If#=' 1 'Alt=' 0 '#EPs=' 2 'Cls=0a(data' ')' 'Sub=02' 'Prot=00' 'Driver=cdc_acm' E: 'Ad=82(I)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' E: 'Ad=02(O)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' 'I:*' 'If#=' 2 'Alt=' 0 '#EPs=' 1 'Cls=02(comm.)' 'Sub=02' 'Prot=00' 'Driver=cdc_acm' E: 'Ad=83(I)' 'Atr=03(Int.)' 'MxPS=' 64 'Ivl=1ms' 'I:*' 'If#=' 3 'Alt=' 0 '#EPs=' 2 'Cls=0a(data' ')' 'Sub=02' 'Prot=00' 'Driver=cdc_acm' E: 'Ad=84(I)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' E: 'Ad=04(O)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' 'I:*' 'If#=' 4 'Alt=' 0 '#EPs=' 1 'Cls=02(comm.)' 'Sub=02' 'Prot=00' 'Driver=cdc_acm' E: 'Ad=85(I)' 'Atr=03(Int.)' 'MxPS=' 64 'Ivl=1ms' 'I:*' 'If#=' 5 'Alt=' 0 '#EPs=' 2 'Cls=0a(data' ')' 'Sub=02' 'Prot=00' 'Driver=cdc_acm' E: 'Ad=86(I)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' E: 'Ad=06(O)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' 'I:*' 'If#=' 6 'Alt=' 0 '#EPs=' 1 'Cls=02(comm.)' 'Sub=0d' 'Prot=00' 'Driver=cdc_ncm' E: 'Ad=87(I)' 'Atr=03(Int.)' 'MxPS=' 64 'Ivl=1ms' I: 'If#=' 7 'Alt=' 0 '#EPs=' 0 'Cls=0a(data' ')' 'Sub=00' 'Prot=01' 'Driver=cdc_ncm' 'I:*' 'If#=' 7 'Alt=' 1 '#EPs=' 2 'Cls=0a(data' ')' 'Sub=00' 'Prot=01' 'Driver=cdc_ncm' E: 'Ad=88(I)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' E: 'Ad=08(O)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' 'I:*' 'If#=' 8 'Alt=' 0 '#EPs=' 1 'Cls=02(comm.)' 'Sub=0d' 'Prot=00' 'Driver=cdc_ncm' E: 'Ad=89(I)' 'Atr=03(Int.)' 'MxPS=' 64 'Ivl=1ms' I: 'If#=' 9 'Alt=' 0 '#EPs=' 0 'Cls=0a(data' ')' 'Sub=00' 'Prot=01' 'Driver=cdc_ncm' 'I:*' 'If#=' 9 'Alt=' 1 '#EPs=' 2 'Cls=0a(data' ')' 'Sub=00' 'Prot=01' 'Driver=cdc_ncm' E: 'Ad=8a(I)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' E: 'Ad=0a(O)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' 'I:*' 'If#=10' 'Alt=' 0 '#EPs=' 1 'Cls=02(comm.)' 'Sub=0d' 'Prot=00' 'Driver=cdc_ncm' E: 'Ad=8b(I)' 'Atr=03(Int.)' 'MxPS=' 64 'Ivl=1ms' I: 'If#=11' 'Alt=' 0 '#EPs=' 0 'Cls=0a(data' ')' 'Sub=00' 'Prot=01' 'Driver=cdc_ncm' 'I:*' 'If#=11' 'Alt=' 1 '#EPs=' 2 'Cls=0a(data' ')' 'Sub=00' 'Prot=01' 'Driver=cdc_ncm' E: 'Ad=8c(I)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' E: 'Ad=0c(O)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' 'I:*' 'If#=12' 'Alt=' 0 '#EPs=' 1 'Cls=ff(vend.)' 'Sub=01' 'Prot=00' 'Driver=(none)' E: 'Ad=8d(I)' 'Atr=03(Int.)' 'MxPS=' 4 'Ivl=125us' T: 'Bus=02' 'Lev=00' 'Prnt=00' 'Port=00' 'Cnt=00' 'Dev#=' 1 'Spd=10000' 'MxCh=' 1 B: 'Alloc=' 0/800 us '(' '0%),' '#Int=' 0, '#Iso=' 0 D: 'Ver=' 3.10 'Cls=09(hub' ')' 'Sub=00' 'Prot=03' 'MxPS=' 9 '#Cfgs=' 1 P: 'Vendor=1d6b' 'ProdID=0003' 'Rev=' 6.01 S: 'Manufacturer=Linux' 6.1.78 xhci-hcd S: 'Product=xHCI' Host Controller S: 'SerialNumber=11200000.usb' 'C:*' '#Ifs=' 1 'Cfg#=' 1 'Atr=e0' 'MxPwr=' 0mA 'I:*' 'If#=' 0 'Alt=' 0 '#EPs=' 1 'Cls=09(hub' ')' 'Sub=00' 'Prot=00' 'Driver=hub' E: 'Ad=81(I)' 'Atr=03(Int.)' 'MxPS=' 4 'Ivl=256ms'
+ PVCAX=
+ echo
+ cut -c-2453
+ PVCA=
+ awk '-FVendor=8087 ProdID=095a' '{print $2}'
+ echo T: 'Bus=01' 'Lev=00' 'Prnt=00' 'Port=00' 'Cnt=00' 'Dev#=' 1 'Spd=480' 'MxCh=' 2 B: 'Alloc=' 0/800 us '(' '0%),' '#Int=' 0, '#Iso=' 0 D: 'Ver=' 2.00 'Cls=09(hub' ')' 'Sub=00' 'Prot=01' 'MxPS=64' '#Cfgs=' 1 P: 'Vendor=1d6b' 'ProdID=0002' 'Rev=' 6.01 S: 'Manufacturer=Linux' 6.1.78 xhci-hcd S: 'Product=xHCI' Host Controller S: 'SerialNumber=11200000.usb' 'C:*' '#Ifs=' 1 'Cfg#=' 1 'Atr=e0' 'MxPwr=' 0mA 'I:*' 'If#=' 0 'Alt=' 0 '#EPs=' 1 'Cls=09(hub' ')' 'Sub=00' 'Prot=00' 'Driver=hub' E: 'Ad=81(I)' 'Atr=03(Int.)' 'MxPS=' 4 'Ivl=256ms' T: 'Bus=01' 'Lev=01' 'Prnt=01' 'Port=00' 'Cnt=01' 'Dev#=' 2 'Spd=480' 'MxCh=' 4 D: 'Ver=' 2.00 'Cls=09(hub' ')' 'Sub=00' 'Prot=01' 'MxPS=64' '#Cfgs=' 1 P: 'Vendor=1a40' 'ProdID=0101' 'Rev=' 1.11 S: 'Product=USB' 2.0 Hub 'C:*' '#Ifs=' 1 'Cfg#=' 1 'Atr=e0' 'MxPwr=100mA' 'I:*' 'If#=' 0 'Alt=' 0 '#EPs=' 1 'Cls=09(hub' ')' 'Sub=00' 'Prot=00' 'Driver=hub' E: 'Ad=81(I)' 'Atr=03(Int.)' 'MxPS=' 1 'Ivl=256ms' T: 'Bus=01' 'Lev=02' 'Prnt=02' 'Port=00' 'Cnt=01' 'Dev#=' 5 'Spd=480' 'MxCh=' 0 D: 'Ver=' 2.10 'Cls=ef(misc' ')' 'Sub=02' 'Prot=01' 'MxPS=64' '#Cfgs=' 1 P: 'Vendor=8087' 'ProdID=095a' 'Rev=' 3.50 S: 'Manufacturer=Intel' Corp. S: 'Product=MODEM' + 2 CDC-ACM + 3 CDC-NCM + SS S: 'SerialNumber=004999010640000:004999010640000:004999010640000:004999010640000' 'C:*' '#Ifs=13' 'Cfg#=' 1 'Atr=e0' 'MxPwr=100mA' A: 'FirstIf#=' 0 'IfCount=' 2 'Cls=02(comm.)' 'Sub=02' 'Prot=01' A: 'FirstIf#=' 2 'IfCount=' 2 'Cls=02(comm.)' 'Sub=02' 'Prot=00' A: 'FirstIf#=' 4 'IfCount=' 2 'Cls=02(comm.)' 'Sub=02' 'Prot=00' A: 'FirstIf#=' 6 'IfCount=' 2 'Cls=02(comm.)' 'Sub=0d' 'Prot=00' A: 'FirstIf#=' 8 'IfCount=' 2 'Cls=02(comm.)' 'Sub=0d' 'Prot=00' A: 'FirstIf#=10' 'IfCount=' 2 'Cls=02(comm.)' 'Sub=0d' 'Prot=00' 'I:*' 'If#=' 0 'Alt=' 0 '#EPs=' 1 'Cls=02(comm.)' 'Sub=02' 'Prot=01' 'Driver=cdc_acm' E: 'Ad=81(I)' 'Atr=03(Int.)' 'MxPS=' 64 'Ivl=1ms' 'I:*' 'If#=' 1 'Alt=' 0 '#EPs=' 2 'Cls=0a(data' ')' 'Sub=02' 'Prot=00' 'Driver=cdc_acm' E: 'Ad=82(I)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' E: 'Ad=02(O)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' 'I:*' 'If#=' 2 'Alt=' 0 '#EPs=' 1 'Cls=02(comm.)' 'Sub=02' 'Prot=00' 'Driver=cdc_acm' E: 'Ad=83(I)' 'Atr=03(Int.)' 'MxPS=' 64 'Ivl=1ms' 'I:*' 'If#=' 3 'Alt=' 0 '#EPs=' 2 'Cls=0a(data' ')' 'Sub=02' 'Prot=00' 'Driver=cdc_acm' E: 'Ad=84(I)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' E: 'Ad=04(O)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' 'I:*' 'If#=' 4 'Alt=' 0 '#EPs=' 1 'Cls=02(comm.)' 'Sub=02' 'Prot=00' 'Driver=cdc_acm' E: 'Ad=85(I)' 'Atr=03(Int.)' 'MxPS=' 64 'Ivl=1ms' 'I:*' 'If#=' 5 'Alt=' 0 '#EPs=' 2 'Cls=0a(data' ')' 'Sub=02' 'Prot=00' 'Driver=cdc_acm' E: 'Ad=86(I)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' E: 'Ad=06(O)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' 'I:*' 'If#=' 6 'Alt=' 0 '#EPs=' 1 'Cls=02(comm.)' 'Sub=0d' 'Prot=00' 'Driver=cdc_ncm' E: 'Ad=87(I)' 'Atr=03(Int.)' 'MxPS=' 64 'Ivl=1ms' I: 'If#=' 7 'Alt=' 0 '#EPs=' 0 'Cls=0a(data' ')' 'Sub=00' 'Prot=01' 'Driver=cdc_ncm' 'I:*' 'If#=' 7 'Alt=' 1 '#EPs=' 2 'Cls=0a(data' ')' 'Sub=00' 'Prot=01' 'Driver=cdc_ncm' E: 'Ad=88(I)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' E: 'Ad=08(O)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' 'I:*' 'If#=' 8 'Alt=' 0 '#EPs=' 1 'Cls=02(comm.)' 'Sub=0d' 'Prot=00' 'Driver=cdc_ncm' E: 'Ad=89(I)' 'Atr=03(Int.)' 'MxPS=' 64 'Ivl=1ms' I: 'If#=' 9 'Alt=' 0 '#EPs=' 0 'Cls=0a(data' ')' 'Sub=00' 'Prot=01' 'Driver=cdc_ncm' 'I:*' 'If#=' 9 'Alt=' 1 '#EPs=' 2 'Cls=0a(data' ')' 'Sub=00' 'Prot=01' 'Driver=cdc_ncm' E: 'Ad=8a(I)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' E: 'Ad=0a(O)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' 'I:*' 'If#=10' 'Alt=' 0 '#EPs=' 1 'Cls=02(comm.)' 'Sub=0d' 'Prot=00' 'Driver=cdc_ncm' E: 'Ad=8b(I)' 'Atr=03(Int.)' 'MxPS=' 64 'Ivl=1ms' I: 'If#=11' 'Alt=' 0 '#EPs=' 0 'Cls=0a(data' ')' 'Sub=00' 'Prot=01' 'Driver=cdc_ncm' 'I:*' 'If#=11' 'Alt=' 1 '#EPs=' 2 'Cls=0a(data' ')' 'Sub=00' 'Prot=01' 'Driver=cdc_ncm' E: 'Ad=8c(I)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' E: 'Ad=0c(O)' 'Atr=02(Bulk)' 'MxPS=' 512 'Ivl=0ms' 'I:*' 'If#=12' 'Alt=' 0 '#EPs=' 1 'Cls=ff(vend.)' 'Sub=01' 'Prot=00' 'Driver=(none)' E: 'Ad=8d(I)' 'Atr=03(Int.)' 'MxPS=' 4 'Ivl=125us' T: 'Bus=02' 'Lev=00' 'Prnt=00' 'Port=00' 'Cnt=00' 'Dev#=' 1 'Spd=10000' 'MxCh=' 1 B: 'Alloc=' 0/800 us '(' '0%),' '#Int=' 0, '#Iso=' 0 D: 'Ver=' 3.10 'Cls=09(hub' ')' 'Sub=00' 'Prot=03' 'MxPS=' 9 '#Cfgs=' 1 P: 'Vendor=1d6b' 'ProdID=0003' 'Rev=' 6.01 S: 'Manufacturer=Linux' 6.1.78 xhci-hcd S: 'Product=xHCI' Host Controller S: 'SerialNumber=11200000.usb' 'C:*' '#Ifs=' 1 'Cfg#=' 1 'Atr=e0' 'MxPwr=' 0mA 'I:*' 'If#=' 0 'Alt=' 0 '#EPs=' 1 'Cls=09(hub' ')' 'Sub=00' 'Prot=00' 'Driver=hub' E: 'Ad=81(I)' 'Atr=03(Int.)' 'MxPS=' 4 'Ivl=256ms'
+ PVCBX=' Rev= 3.50 S: Manufacturer=Intel Corp. S: Product=MODEM + 2 CDC-ACM + 3 CDC-NCM + SS S: SerialNumber=004999010640000:004999010640000:004999010640000:004999010640000 C:* #Ifs=13 Cfg#= 1 Atr=e0 MxPwr=100mA A: FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=02 Prot=01 A: FirstIf#= 2 IfCount= 2 Cls=02(comm.) Sub=02 Prot=00 A: FirstIf#= 4 IfCount= 2 Cls=02(comm.) Sub=02 Prot=00 A: FirstIf#= 6 IfCount= 2 Cls=02(comm.) Sub=0d Prot=00 A: FirstIf#= 8 IfCount= 2 Cls=02(comm.) Sub=0d Prot=00 A: FirstIf#=10 IfCount= 2 Cls=02(comm.) Sub=0d Prot=00 I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=cdc_acm E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=02 Prot=00 Driver=cdc_acm E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 2 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=00 Driver=cdc_acm E: Ad=83(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I:* If#= 3 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=02 Prot=00 Driver=cdc_acm E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 4 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=00 Driver=cdc_acm E: Ad=85(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I:* If#= 5 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=02 Prot=00 Driver=cdc_acm E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 6 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0d Prot=00 Driver=cdc_ncm E: Ad=87(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I: If#= 7 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm I:* If#= 7 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm E: Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=08(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 8 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0d Prot=00 Driver=cdc_ncm E: Ad=89(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I: If#= 9 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm I:* If#= 9 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm E: Ad=8a(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=0a(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#=10 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0d Prot=00 Driver=cdc_ncm E: Ad=8b(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I: If#=11 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm I:* If#=11 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm E: Ad=8c(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=0c(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#=12 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=01 Prot=00 Driver=(none) E: Ad=8d(I) Atr=03(Int.) MxPS= 4 Ivl=125us T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=10000 MxCh= 1 B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 3.10 Cls=09(hub ) Sub=00 Prot=03 MxPS= 9 #Cfgs= 1 P: Vendor=1d6b ProdID=0003 Rev= 6.01 S: Manufacturer=Linux 6.1.78 xhci-hcd S: Product=xHCI Host Controller S: SerialNumber=11200000.usb C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl=256ms'
+ echo ' Rev= 3.50 S: Manufacturer=Intel Corp. S: Product=MODEM + 2 CDC-ACM + 3 CDC-NCM + SS S: SerialNumber=004999010640000:004999010640000:004999010640000:004999010640000 C:* #Ifs=13 Cfg#= 1 Atr=e0 MxPwr=100mA A: FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=02 Prot=01 A: FirstIf#= 2 IfCount= 2 Cls=02(comm.) Sub=02 Prot=00 A: FirstIf#= 4 IfCount= 2 Cls=02(comm.) Sub=02 Prot=00 A: FirstIf#= 6 IfCount= 2 Cls=02(comm.) Sub=0d Prot=00 A: FirstIf#= 8 IfCount= 2 Cls=02(comm.) Sub=0d Prot=00 A: FirstIf#=10 IfCount= 2 Cls=02(comm.) Sub=0d Prot=00 I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=cdc_acm E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=02 Prot=00 Driver=cdc_acm E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 2 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=00 Driver=cdc_acm E: Ad=83(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I:* If#= 3 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=02 Prot=00 Driver=cdc_acm E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 4 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=00 Driver=cdc_acm E: Ad=85(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I:* If#= 5 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=02 Prot=00 Driver=cdc_acm E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 6 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0d Prot=00 Driver=cdc_ncm E: Ad=87(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I: If#= 7 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm I:* If#= 7 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm E: Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=08(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 8 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0d Prot=00 Driver=cdc_ncm E: Ad=89(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I: If#= 9 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm I:* If#= 9 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm E: Ad=8a(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=0a(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#=10 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0d Prot=00 Driver=cdc_ncm E: Ad=8b(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I: If#=11 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm I:* If#=11 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm E: Ad=8c(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=0c(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#=12 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=01 Prot=00 Driver=(none) E: Ad=8d(I) Atr=03(Int.) MxPS= 4 Ivl=125us T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=10000 MxCh= 1 B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0 D: Ver= 3.10 Cls=09(hub ) Sub=00 Prot=03 MxPS= 9 #Cfgs= 1 P: Vendor=1d6b ProdID=0003 Rev= 6.01 S: Manufacturer=Linux 6.1.78 xhci-hcd S: Product=xHCI Host Controller S: SerialNumber=11200000.usb C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 0mA I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub E: Ad=81(I) Atr=03(Int.) MxPS= 4 Ivl=256ms'
+ cut -c-2453
+ PVCB=' Rev= 3.50 S: Manufacturer=Intel Corp. S: Product=MODEM + 2 CDC-ACM + 3 CDC-NCM + SS S: SerialNumber=004999010640000:004999010640000:004999010640000:004999010640000 C:* #Ifs=13 Cfg#= 1 Atr=e0 MxPwr=100mA A: FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=02 Prot=01 A: FirstIf#= 2 IfCount= 2 Cls=02(comm.) Sub=02 Prot=00 A: FirstIf#= 4 IfCount= 2 Cls=02(comm.) Sub=02 Prot=00 A: FirstIf#= 6 IfCount= 2 Cls=02(comm.) Sub=0d Prot=00 A: FirstIf#= 8 IfCount= 2 Cls=02(comm.) Sub=0d Prot=00 A: FirstIf#=10 IfCount= 2 Cls=02(comm.) Sub=0d Prot=00 I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=cdc_acm E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=02 Prot=00 Driver=cdc_acm E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 2 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=00 Driver=cdc_acm E: Ad=83(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I:* If#= 3 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=02 Prot=00 Driver=cdc_acm E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 4 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=00 Driver=cdc_acm E: Ad=85(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I:* If#= 5 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=02 Prot=00 Driver=cdc_acm E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 6 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0d Prot=00 Driver=cdc_ncm E: Ad=87(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I: If#= 7 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm I:* If#= 7 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm E: Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=08(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 8 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0d Prot=00 Driver=cdc_ncm E: Ad=89(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I: If#= 9 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm I:* If#= 9 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm E: Ad=8a(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=0a(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#=10 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0d Prot=00 Driver=cdc_ncm E: Ad=8b(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I: If#=11 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm I:* If#=11 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm E: Ad=8c(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=0c(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#=12 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=01 Prot=00 Driver=(none) E: Ad=8d(I) Atr=03(Int.) MxPS= 4 Iv'
+ '[' -n  ]
+ '[' -n ' Rev= 3.50 S: Manufacturer=Intel Corp. S: Product=MODEM + 2 CDC-ACM + 3 CDC-NCM + SS S: SerialNumber=004999010640000:004999010640000:004999010640000:004999010640000 C:* #Ifs=13 Cfg#= 1 Atr=e0 MxPwr=100mA A: FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=02 Prot=01 A: FirstIf#= 2 IfCount= 2 Cls=02(comm.) Sub=02 Prot=00 A: FirstIf#= 4 IfCount= 2 Cls=02(comm.) Sub=02 Prot=00 A: FirstIf#= 6 IfCount= 2 Cls=02(comm.) Sub=0d Prot=00 A: FirstIf#= 8 IfCount= 2 Cls=02(comm.) Sub=0d Prot=00 A: FirstIf#=10 IfCount= 2 Cls=02(comm.) Sub=0d Prot=00 I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=cdc_acm E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=02 Prot=00 Driver=cdc_acm E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 2 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=00 Driver=cdc_acm E: Ad=83(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I:* If#= 3 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=02 Prot=00 Driver=cdc_acm E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 4 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=00 Driver=cdc_acm E: Ad=85(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I:* If#= 5 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=02 Prot=00 Driver=cdc_acm E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 6 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0d Prot=00 Driver=cdc_ncm E: Ad=87(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I: If#= 7 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm I:* If#= 7 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm E: Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=08(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#= 8 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0d Prot=00 Driver=cdc_ncm E: Ad=89(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I: If#= 9 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm I:* If#= 9 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm E: Ad=8a(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=0a(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#=10 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0d Prot=00 Driver=cdc_ncm E: Ad=8b(I) Atr=03(Int.) MxPS= 64 Ivl=1ms I: If#=11 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm I:* If#=11 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm E: Ad=8c(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms E: Ad=0c(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms I:* If#=12 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=01 Prot=00 Driver=(none) E: Ad=8d(I) Atr=03(Int.) MxPS= 4 Iv' ]
+ PROTO=ncm
+ cat
{
"connt":"0d, 00:07:09",
"conntx":"346.4 KiB",
"connrx":"2.7 MiB",
"modem":"Fibocom L860-GL-16 LTE Module",
"mtemp":" 53 &deg;C",
"firmware":"18601.5001.00.01.16.12_5003.13.001.011",
"cport":"/dev/ttyACM2",
"protocol":"ncm",
"csq":"21",
"signal":"67",
"operator_name":"Orange",
"operator_mcc":"260",
"operator_mnc":"03",
"location":"Poland",
"mode":"LTE-A | B3 (1800 MHz) + B20 (800 MHz)",
"registration":"1",
"simslot":"",
"imei":"867921031075525",
"imsi":"260038778378091",
"iccid":"8948031438783780916F",
"lac_dec":"53112",
"lac_hex":"CF78",
"tac_dec":"",
"tac_hex":"-",
"tac_h":"",
"tac_d":"",
"cid_dec":"59322932",
"cid_hex":"3893234",
"pci":" 326",
"earfcn":"1749",
"pband":"B3 (1800 MHz) @10 MHz",
"s1band":"B20 (800 MHz) @10  MHz",
"s1pci":"326",
"s1earfcn":"6200",
"s2band":"",
"s2pci":"",
"s2earfcn":"",
"s3band":"",
"s3pci":"",
"s3earfcn":"",
"s4band":"",
"s4pci":"",
"s4earfcn":"",
"rsrp":"-99",
"rsrq":"-11",
"rssi":"-71",
"sinr":"18"
}
+ exit 0
root@BananaPi_BPi-R3 /root [#]#

@IceG dałbyś rade zrobić do niego profil do modemband na podstawie tych info ?
Czy podesłać coś jeszcze?

@Cezary teraz +CREG zgłasza: 2,1 i bez problemu dostaje DNS'y z sieci.

Pozdr,

Banana Pi BPI-R3 + SFP GPON ONT Nokia G-010S-A + LTE FIBOCOM L860-GL-16 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Xiaomi AX3600 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Xiaomi AX3000T (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
All OpenWRT compilations from ASU by @Cezary

37 (edytowany przez IceG 2024-03-06 05:23:40)

Odp: BPi-R3 i modem LTE

Payti napisał/a:


@IceG dałbyś rade zrobić do niego profil do modemband na podstawie tych info ?
Czy podesłać coś jeszcze?

@Payti a to teraz nie bangla? Widze ze  Vendor=8087 ProdID=095a sie dla tego modemu nie zmienil, powinno go normalnie wykrywac i dzialac (chyba ze ze zmiana wersji/nazwy/rewizji modemu zmienily sie tez polecenia do zmiany pasm lub obslugiwane pasma).

Używasz moich pakietów/obrazów z github?
Chcesz abym dalej je rozwijał i tworzył nowe?
Postaw kawę

38 (edytowany przez Payti 2024-03-06 19:19:51)

Odp: BPi-R3 i modem LTE

@IceG na tym profilu 8087095a oczywiście działa, jedynie wyświetla się po staremu (bez '-16') w nazwie w zakładce dot. wyboru pasm, no i ta wersja L860-GL-16 ma kilka pasm mniej albo więcej w obsłudze plus ma UL CA.

Banana Pi BPI-R3 + SFP GPON ONT Nokia G-010S-A + LTE FIBOCOM L860-GL-16 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Xiaomi AX3600 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Xiaomi AX3000T (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
All OpenWRT compilations from ASU by @Cezary

39 (edytowany przez Cezary 2024-03-06 07:09:10)

Odp: BPi-R3 i modem LTE

1. Nazwa modem jest zakodowana na stałe  w kodzie. Można ja czytać z modemu (i w sumie tak jest robione) jak Ci to bardzo przeszkadza, ale nie można tego zrobić dla wszystkich modemów bo niektóre zwracają całkiem bzdurne nazwy

W Twoim przypadku było by to "Fibocom L860-GL-16 LTE Module" lub "Fibocom L860-GL-16" (zależy jak interpretować dane) bo taka nazwa wychodzi z poleceń.

2. Listę domyślnych pasm też mam zakodowaną na stałe. Jeżeli nikt nie znajdzie polecenia do odczytu domyślnych pasm to zostaje tylko taka metoda.

Zmieniając soft nie zmieniłeś sprzętu, nie więc liczba pasm obsługiwanych sprzętowo się nie zmieniła. Co najwyżej jeżeli niektóre są poblokowane to znów muszę wiedzieć jakim poleceniem to odczytać. Nie mogę zmniejszyć listy pasm dla innych 860 z oczywistego powodu

No a że ma UL CA to już nie kwestia modemband tylko samego odczytywania parametrów przez 3ginfo. Jak wiesz jak to odczytać.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

40 (edytowany przez Payti 2024-03-06 19:05:57)

Odp: BPi-R3 i modem LTE

Spoko, w zasadzie to jak jest teraz w niczym nie przeszkadza, jedynie dla celów porządkowych można by zrobić warunek w profilu, że jeśli wykryje modem i jest z nazwą 'Fibocom L860-GL-16' to tak go zaprezentuje.

Z tego co udało mi się ustalić to polecenie dla tej wersji modemu odczytu pasm się nie zmieniło.

Dla poprzedniego L860-GL były pasma obsługiwane po odczycie: 1 2 3 4 5 7 8 12 13 14 17 18 19 20 25 26 28 29 30 32 38 39 40 41 42 46 66

Dla tego L860-GL-16 są pasma obsługiwane po odczycie: 1 2 3 4 5 7 8 12 13 14 17 18 19 20 25 26 28 29 30 32 34 38 39 40 41 42 43 46 48 66 71

Rzecz jasna dla UL CA nie ma żadnych konfiguracji - działa automatycnie UL 2CA jeśli BTS obsługuje.

AT+XACT? zwraca aktualnie dla L860-GL-16:

AT+XACT?
+XACT: 4,2,1,1,2,4,5,8,101,102,103,104,105,107,108,112,113,114,117,118,119,120,125,126,128,129,130,132,134,138,139,140,141,142,143,146,148,166,171

Pozdr,

Banana Pi BPI-R3 + SFP GPON ONT Nokia G-010S-A + LTE FIBOCOM L860-GL-16 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Xiaomi AX3600 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Xiaomi AX3000T (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
All OpenWRT compilations from ASU by @Cezary

41 (edytowany przez Cezary 2024-03-06 18:59:24)

Odp: BPi-R3 i modem LTE

Masz info w poleceniach że UL CA działa?

PS. No masz i 71 i 48 i 34. Te same pasma.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

42 (edytowany przez Payti 2024-03-06 19:13:24)

Odp: BPi-R3 i modem LTE

Poprawiłem poprzez edycję profilu rozpoznawanie nazwy modemu getinfo i pasm getsupportedbands, ale nie wiem jak poprawić funkcję getbands. Luknij proszę ...

_DEVICE=/dev/ttyACM2

getinfo() {
    O=$(sms_tool -d $_DEVICE at "at+gmm")
    if echo "$O" | grep -q "L850"; then
        _NAME="Fibocom L850-GL"
    fi
    if echo "$O" | grep -q "L860-GL"; then
        _NAME="Fibocom L860-GL"
    fi
    if echo "$O" | grep -q "L860-GL-16"; then
        _NAME="Fibocom L860-GL-16"
    fi
    echo "$_NAME"
}

getsupportedbands() {
    O=$(sms_tool -d $_DEVICE at "at+gmm")
    if echo "$O" | grep -q "L850"; then
        _DEFAULT_LTE_BANDS="1 2 3 4 5 7 8 11 12 13 17 18 19 20 21 26 28 29 30 38 39 40 41 66"
    fi
    if echo "$O" | grep -q "L860-GL"; then
        _DEFAULT_LTE_BANDS="1 2 3 4 5 7 8 12 13 14 17 18 19 20 25 26 28 29 30 32 38 39 40 41 42 46 66"
    fi
    if echo "$O" | grep -q "L860-GL-16"; then
        _DEFAULT_LTE_BANDS="1 2 3 4 5 7 8 12 13 14 17 18 19 20 25 26 28 29 30 32 34 38 39 40 41 42 43 46 48 66 71"
    fi
    echo "$_DEFAULT_LTE_BANDS"
}

getbands() {
# +XACT: 4,2,1,1,2,4,5,8,101,102,103,104,105,107,108,112,113,114,117,118,119,120,125,126,128,129,130,132,138,139,140,141,142,146,166

    O=$(sms_tool -d $_DEVICE at "at+xact?")
    BANDS=$(echo "$O" | awk -F: '/^\+XACT:/{gsub(","," ");print $2}')
    for BAND in $BANDS; do
        if [ $BAND -gt 100 ] && [ $BAND -lt 200 ]; then
            echo -n "$((BAND - 100)) "
        fi
    done
    echo ""
}

setbands() {
    BANDS="$1"

    T=""
    if [ "$BANDS" = "default" ]; then
        T="0"
    else
        for BAND in $BANDS; do
            case $BAND in
                ''|*[!0-9]*) continue ;;
            esac
            [ -n "$T" ] && T="${T},"
            T="${T}$((BAND + 100))"
        done
    fi

    if [ -n "$T" ]; then
        O=$(sms_tool -d $_DEVICE at "at+xact?")
        MODE=$(echo "$O" | awk -F[:,] '{print $2}' | xargs)
        sms_tool -d $_DEVICE at "at+xact=$MODE,,,$T"
    fi
}
Banana Pi BPI-R3 + SFP GPON ONT Nokia G-010S-A + LTE FIBOCOM L860-GL-16 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Xiaomi AX3600 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Xiaomi AX3000T (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
All OpenWRT compilations from ASU by @Cezary

43

Odp: BPi-R3 i modem LTE

Nie poprawiasz getbands. Jest przecież dobrze.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

44

Odp: BPi-R3 i modem LTE

Ok, w takim razie wszystko jest ok.

Banana Pi BPI-R3 + SFP GPON ONT Nokia G-010S-A + LTE FIBOCOM L860-GL-16 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Xiaomi AX3600 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Xiaomi AX3000T (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
All OpenWRT compilations from ASU by @Cezary

45

Odp: BPi-R3 i modem LTE

Uzupełnię modemband żeby uwzględnić l860-gl-16.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

46

Odp: BPi-R3 i modem LTE

Super ...

Banana Pi BPI-R3 + SFP GPON ONT Nokia G-010S-A + LTE FIBOCOM L860-GL-16 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Xiaomi AX3600 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Xiaomi AX3000T (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
All OpenWRT compilations from ASU by @Cezary

47

Odp: BPi-R3 i modem LTE

@Payti Korzystasz z przejściówki mpcie do m2?
Próbuje uruchomić L860-GL na BPI-R3 ale przez mój adapter usb do m2 nie czyta karty sim.

48

Odp: BPi-R3 i modem LTE

Tak korzystam.
Taka z Ali działa u mnie bez kłopotów --> https://pl.aliexpress.com/item/10050030 … pt=glo2pol
Modem stabilny jak skała ...

Pozdr,

Banana Pi BPI-R3 + SFP GPON ONT Nokia G-010S-A + LTE FIBOCOM L860-GL-16 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Xiaomi AX3600 (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
Xiaomi AX3000T (OpenWrt 25.12-SNAPSHOT, kernel 6.12.71)
All OpenWRT compilations from ASU by @Cezary

49

Odp: BPi-R3 i modem LTE

Dzięki wielkie, zamówiłem i będę testował jak dojdzie adapter.