Open 4IceG opened 10 months ago
Hi @riccardoferti ,
I moved your post to a new thread. We can try to add support for this modem.
First, show the output of the commands:
cat /sys/kernel/debug/usb/devices
sms_tool -d /dev/wwan0at0 at "at^ca_info?"
sms_tool -d /dev/wwan0at0 at "at^debug?"
@4IceG
cat /sys/kernel/debug/usb/devices
No USB devices available, but:
cat /sys/kernel/debug/mhi/mhi0/devices
mhi0: type: Controller dev_wake: 0
LOOPBACK: type: Transfer dev_wake: 0 channels: 0(UL)/1(DL)
DIAG: type: Transfer dev_wake: 0 channels: 4(UL)/5(DL)
MBIM: type: Transfer dev_wake: 0 channels: 12(UL)/13(DL)
DUN: type: Transfer dev_wake: 0 channels: 32(UL)/33(DL)
IP_HW0_MBIM: type: Transfer dev_wake: 0 channels: 100(UL)/101(DL)
sms_tool -d /dev/wwan0at0 at "at^ca_info?"
LTE serving information :
PCC info: Band is LTE_B3, Band_width is 20.0 MHz
SCC1 info: Band is LTE_B20, Band_width is 10.0 MHz
SCC2 info: Band is LTE_B7, Band_width is 15.0 MHz
PCC info: Band is NR5G_N78, Band_width is 80.0 MHz
sms_tool -d /dev/wwan0at0 at "at^debug?"
RAT:LTE+NR
mcc:222,mnc:10
lte_cell_id:19403297
lte_tac:43083
lte_tx_pwr:NA
lte_ant_rsrp:rx_diversity:3 (-94.1dBm,-103.5dBm,NA,NA)
pcell: lte_band:3 lte_band_width:20.0MHz
channel:1850 pci:389
lte_rsrp:-93.0dBm,rsrq:-12.7dB
lte_rssi:-55.9dBm,lte_snr:1.0dB
scell: lte_band:20 lte_band_width:10.0MHz
channel:6400 pci:230
lte_rsrp:-84.2dBm,rsrq:-11.9dB
lte_rssi:-64.6dBm,lte_snr:NA
scell: lte_band:7 lte_band_width:15.0MHz
channel:3025 pci:53
lte_rsrp:-97.1dBm,rsrq:-11.6dB
lte_rssi:-77.5dBm,lte_snr:NA
scell: lte_band:1 lte_band_width:15.0MHz
channel:525 pci:168
lte_rsrp:-93.2dBm,rsrq:-12.0dB
lte_rssi:-73.4dBm,lte_snr:NA
nr_band:n78
nr_band_width:80.0MHz
nr_channel:643296
nr_pci:736
nr_rsrp:-98dBm rx_diversity: 15 (-110.1dBm,-98.0dBm,-103.9dBm,-103.8dBm)
nr_rsrq:-11dB
nr_snr:21.0dB
@obsy Cezary masz moze pomysl jak zidentyfikowac w systemie takie modemy, aby je potem przypisac do skryptow?
Same wyniki tez sa ciekawe, dwa pasma glowne.. 5G komplikuje znow skrypty.
Kod nie jest przystosowany do innych urządzeń niż usb. Albo robisz nowe obejście tak jak zrobiłeś dla np. hilinka albo trzeba sporo zmodyfikować główny kod żeby wykrywał też urządzenia pci. Przydał by się bezpośredni dostęp do takiego modemu.
@riccardoferti
Could you show also
ls -al /dev/*
@riccardoferti
Could you show also
ls -al /dev/*
crw------- 1 root root 5, 1 Dec 29 00:42 /dev/console
crw------- 1 root root 10, 125 Dec 29 00:42 /dev/cpu_dma_latency
crw------- 1 root root 29, 0 Dec 29 00:42 /dev/fb0
lrwxrwxrwx 1 root root 13 Dec 29 00:42 /dev/fd -> /proc/self/fd
crw-rw-rw- 1 root root 1, 7 Dec 29 00:42 /dev/full
crw------- 1 root root 10, 228 Dec 29 00:42 /dev/hpet
crw------- 1 root root 10, 183 Dec 29 00:42 /dev/hwrng
crw------- 1 root root 89, 0 Dec 29 00:42 /dev/i2c-0
crw------- 1 root root 89, 1 Dec 29 00:42 /dev/i2c-1
crw------- 1 root root 89, 2 Dec 29 00:42 /dev/i2c-2
crw------- 1 root root 89, 3 Dec 29 00:42 /dev/i2c-3
crw------- 1 root root 89, 4 Dec 29 00:42 /dev/i2c-4
crw------- 1 root root 89, 5 Dec 29 00:42 /dev/i2c-5
crw------- 1 root root 1, 11 Dec 29 00:42 /dev/kmsg
srw-rw-rw- 1 root root 0 Dec 29 00:42 /dev/log
crw------- 1 root root 10, 237 Dec 29 00:42 /dev/loop-control
brw------- 1 root root 7, 0 Dec 29 00:42 /dev/loop0
brw------- 1 root root 7, 1 Dec 29 00:42 /dev/loop1
brw------- 1 root root 7, 2 Dec 29 00:42 /dev/loop2
brw------- 1 root root 7, 3 Dec 29 00:42 /dev/loop3
brw------- 1 root root 7, 4 Dec 29 00:42 /dev/loop4
brw------- 1 root root 7, 5 Dec 29 00:42 /dev/loop5
brw------- 1 root root 7, 6 Dec 29 00:42 /dev/loop6
brw------- 1 root root 7, 7 Dec 29 00:42 /dev/loop7
crw-rw-rw- 1 root root 1, 3 Dec 29 00:42 /dev/null
crw------- 1 root root 10, 144 Dec 29 00:42 /dev/nvram
crw------- 1 root root 1, 4 Dec 29 00:42 /dev/port
crw------- 1 root root 108, 0 Dec 29 00:42 /dev/ppp
crw-rw-rw- 1 root root 5, 2 Dec 29 09:34 /dev/ptmx
crw------- 1 root root 249, 0 Dec 29 00:42 /dev/ptp0
crw-rw-rw- 1 root root 1, 8 Dec 29 00:42 /dev/random
crw------- 1 root root 251, 0 Dec 29 00:42 /dev/rtc0
brw------- 1 root root 8, 0 Dec 29 00:42 /dev/sda
brw------- 1 root root 8, 1 Dec 29 00:42 /dev/sda1
brw------- 1 root root 259, 0 Dec 29 00:42 /dev/sda128
brw------- 1 root root 8, 2 Dec 29 00:42 /dev/sda2
brw------- 1 root root 8, 16 Dec 29 00:42 /dev/sdb
brw------- 1 root root 8, 17 Dec 29 00:42 /dev/sdb1
brw------- 1 root root 8, 18 Dec 29 00:42 /dev/sdb2
brw------- 1 root root 8, 19 Dec 29 00:42 /dev/sdb3
brw------- 1 root root 8, 20 Dec 29 00:42 /dev/sdb4
brw------- 1 root root 8, 21 Dec 29 00:42 /dev/sdb5
lrwxrwxrwx 1 root root 8 Dec 29 00:42 /dev/shm -> /tmp/shm
lrwxrwxrwx 1 root root 15 Dec 29 00:42 /dev/stderr -> /proc/self/fd/2
lrwxrwxrwx 1 root root 15 Dec 29 00:42 /dev/stdin -> /proc/self/fd/0
lrwxrwxrwx 1 root root 15 Dec 29 00:42 /dev/stdout -> /proc/self/fd/1
crw-rw-rw- 1 root root 5, 0 Dec 29 00:42 /dev/tty
crw-rw---- 1 root dialout 4, 0 Dec 29 00:42 /dev/tty0
crw-rw---- 1 root dialout 4, 1 Dec 29 00:43 /dev/tty1
crw-rw---- 1 root dialout 4, 10 Dec 29 00:42 /dev/tty10
crw-rw---- 1 root dialout 4, 11 Dec 29 00:42 /dev/tty11
crw-rw---- 1 root dialout 4, 12 Dec 29 00:42 /dev/tty12
crw-rw---- 1 root dialout 4, 13 Dec 29 00:42 /dev/tty13
crw-rw---- 1 root dialout 4, 14 Dec 29 00:42 /dev/tty14
crw-rw---- 1 root dialout 4, 15 Dec 29 00:42 /dev/tty15
crw-rw---- 1 root dialout 4, 16 Dec 29 00:42 /dev/tty16
crw-rw---- 1 root dialout 4, 17 Dec 29 00:42 /dev/tty17
crw-rw---- 1 root dialout 4, 18 Dec 29 00:42 /dev/tty18
crw-rw---- 1 root dialout 4, 19 Dec 29 00:42 /dev/tty19
crw-rw---- 1 root dialout 4, 2 Dec 29 00:42 /dev/tty2
crw-rw---- 1 root dialout 4, 20 Dec 29 00:42 /dev/tty20
crw-rw---- 1 root dialout 4, 21 Dec 29 00:42 /dev/tty21
crw-rw---- 1 root dialout 4, 22 Dec 29 00:42 /dev/tty22
crw-rw---- 1 root dialout 4, 23 Dec 29 00:42 /dev/tty23
crw-rw---- 1 root dialout 4, 24 Dec 29 00:42 /dev/tty24
crw-rw---- 1 root dialout 4, 25 Dec 29 00:42 /dev/tty25
crw-rw---- 1 root dialout 4, 26 Dec 29 00:42 /dev/tty26
crw-rw---- 1 root dialout 4, 27 Dec 29 00:42 /dev/tty27
crw-rw---- 1 root dialout 4, 28 Dec 29 00:42 /dev/tty28
crw-rw---- 1 root dialout 4, 29 Dec 29 00:42 /dev/tty29
crw-rw---- 1 root dialout 4, 3 Dec 29 00:42 /dev/tty3
crw-rw---- 1 root dialout 4, 30 Dec 29 00:42 /dev/tty30
crw-rw---- 1 root dialout 4, 31 Dec 29 00:42 /dev/tty31
crw-rw---- 1 root dialout 4, 32 Dec 29 00:42 /dev/tty32
crw-rw---- 1 root dialout 4, 33 Dec 29 00:42 /dev/tty33
crw-rw---- 1 root dialout 4, 34 Dec 29 00:42 /dev/tty34
crw-rw---- 1 root dialout 4, 35 Dec 29 00:42 /dev/tty35
crw-rw---- 1 root dialout 4, 36 Dec 29 00:42 /dev/tty36
crw-rw---- 1 root dialout 4, 37 Dec 29 00:42 /dev/tty37
crw-rw---- 1 root dialout 4, 38 Dec 29 00:42 /dev/tty38
crw-rw---- 1 root dialout 4, 39 Dec 29 00:42 /dev/tty39
crw-rw---- 1 root dialout 4, 4 Dec 29 00:42 /dev/tty4
crw-rw---- 1 root dialout 4, 40 Dec 29 00:42 /dev/tty40
crw-rw---- 1 root dialout 4, 41 Dec 29 00:42 /dev/tty41
crw-rw---- 1 root dialout 4, 42 Dec 29 00:42 /dev/tty42
crw-rw---- 1 root dialout 4, 43 Dec 29 00:42 /dev/tty43
crw-rw---- 1 root dialout 4, 44 Dec 29 00:42 /dev/tty44
crw-rw---- 1 root dialout 4, 45 Dec 29 00:42 /dev/tty45
crw-rw---- 1 root dialout 4, 46 Dec 29 00:42 /dev/tty46
crw-rw---- 1 root dialout 4, 47 Dec 29 00:42 /dev/tty47
crw-rw---- 1 root dialout 4, 48 Dec 29 00:42 /dev/tty48
crw-rw---- 1 root dialout 4, 49 Dec 29 00:42 /dev/tty49
crw-rw---- 1 root dialout 4, 5 Dec 29 00:42 /dev/tty5
crw-rw---- 1 root dialout 4, 50 Dec 29 00:42 /dev/tty50
crw-rw---- 1 root dialout 4, 51 Dec 29 00:42 /dev/tty51
crw-rw---- 1 root dialout 4, 52 Dec 29 00:42 /dev/tty52
crw-rw---- 1 root dialout 4, 53 Dec 29 00:42 /dev/tty53
crw-rw---- 1 root dialout 4, 54 Dec 29 00:42 /dev/tty54
crw-rw---- 1 root dialout 4, 55 Dec 29 00:42 /dev/tty55
crw-rw---- 1 root dialout 4, 56 Dec 29 00:42 /dev/tty56
crw-rw---- 1 root dialout 4, 57 Dec 29 00:42 /dev/tty57
crw-rw---- 1 root dialout 4, 58 Dec 29 00:42 /dev/tty58
crw-rw---- 1 root dialout 4, 59 Dec 29 00:42 /dev/tty59
crw-rw---- 1 root dialout 4, 6 Dec 29 00:42 /dev/tty6
crw-rw---- 1 root dialout 4, 60 Dec 29 00:42 /dev/tty60
crw-rw---- 1 root dialout 4, 61 Dec 29 00:42 /dev/tty61
crw-rw---- 1 root dialout 4, 62 Dec 29 00:42 /dev/tty62
crw-rw---- 1 root dialout 4, 63 Dec 29 00:42 /dev/tty63
crw-rw---- 1 root dialout 4, 7 Dec 29 00:42 /dev/tty7
crw-rw---- 1 root dialout 4, 8 Dec 29 00:42 /dev/tty8
crw-rw---- 1 root dialout 4, 9 Dec 29 00:42 /dev/tty9
crw-rw---- 1 root dialout 4, 64 Dec 29 00:42 /dev/ttyS0
crw-rw---- 1 root dialout 4, 65 Dec 29 00:42 /dev/ttyS1
crw-rw---- 1 root dialout 4, 74 Dec 29 00:42 /dev/ttyS10
crw-rw---- 1 root dialout 4, 75 Dec 29 00:42 /dev/ttyS11
crw-rw---- 1 root dialout 4, 76 Dec 29 00:42 /dev/ttyS12
crw-rw---- 1 root dialout 4, 77 Dec 29 00:42 /dev/ttyS13
crw-rw---- 1 root dialout 4, 78 Dec 29 00:42 /dev/ttyS14
crw-rw---- 1 root dialout 4, 79 Dec 29 00:42 /dev/ttyS15
crw-rw---- 1 root dialout 4, 66 Dec 29 00:42 /dev/ttyS2
crw-rw---- 1 root dialout 4, 67 Dec 29 00:42 /dev/ttyS3
crw-rw---- 1 root dialout 4, 68 Dec 29 00:42 /dev/ttyS4
crw-rw---- 1 root dialout 4, 69 Dec 29 00:42 /dev/ttyS5
crw-rw---- 1 root dialout 4, 70 Dec 29 00:42 /dev/ttyS6
crw-rw---- 1 root dialout 4, 71 Dec 29 00:42 /dev/ttyS7
crw-rw---- 1 root dialout 4, 72 Dec 29 00:42 /dev/ttyS8
crw-rw---- 1 root dialout 4, 73 Dec 29 00:42 /dev/ttyS9
crw-rw-rw- 1 root root 1, 9 Dec 29 00:42 /dev/urandom
crw------- 1 root root 7, 0 Dec 29 00:42 /dev/vcs
crw------- 1 root root 7, 1 Dec 29 00:42 /dev/vcs1
crw------- 1 root root 7, 128 Dec 29 00:42 /dev/vcsa
crw------- 1 root root 7, 129 Dec 29 00:42 /dev/vcsa1
crw------- 1 root root 7, 64 Dec 29 00:42 /dev/vcsu
crw------- 1 root root 7, 65 Dec 29 00:42 /dev/vcsu1
crw------- 1 root root 10, 127 Dec 29 00:42 /dev/vmci
crw------- 1 root root 10, 126 Dec 29 00:42 /dev/vsock
crw------- 1 root root 242, 2 Dec 29 00:42 /dev/wwan0at0
crw------- 1 root root 242, 1 Dec 29 00:42 /dev/wwan0mbim0
crw------- 1 root root 242, 0 Dec 29 00:42 /dev/wwan0qcdm0
crw-rw-rw- 1 root root 1, 5 Dec 29 00:42 /dev/zero
/dev/bus:
drwxr-xr-x 3 root root 60 Dec 29 00:42 .
drwxr-xr-x 6 root root 2920 Dec 29 00:42 ..
drwxr-xr-x 5 root root 100 Dec 29 00:42 usb
/dev/cpu:
drwxr-xr-x 6 root root 120 Dec 29 00:42 .
drwxr-xr-x 6 root root 2920 Dec 29 00:42 ..
drwxr-xr-x 2 root root 80 Dec 29 00:42 0
drwxr-xr-x 2 root root 80 Dec 29 00:42 1
drwxr-xr-x 2 root root 80 Dec 29 00:42 2
drwxr-xr-x 2 root root 80 Dec 29 00:42 3
/dev/dri:
drwxr-xr-x 2 root root 80 Dec 29 00:42 .
drwxr-xr-x 6 root root 2920 Dec 29 00:42 ..
crw------- 1 root root 226, 0 Dec 29 00:42 card0
crw------- 1 root root 226, 128 Dec 29 00:42 renderD128
/dev/pts:
drwxr-xr-x 2 root root 0 Dec 29 00:42 .
drwxr-xr-x 6 root root 2920 Dec 29 00:42 ..
crw--w--w- 1 root root 136, 0 Dec 29 09:34 0
c--------- 1 root root 5, 2 Dec 29 00:42 ptmx
And show us:
sms_tool -d /dev/wwan0at0 at "AT+CPIN?"
sms_tool -d /dev/wwan0at0 at "AT+CSQ"
sms_tool -d /dev/wwan0at0 at "AT+COPS=3,0;+COPS?"
sms_tool -d /dev/wwan0at0 at "AT+COPS=3,2;+COPS?"
sms_tool -d /dev/wwan0at0 at "AT+CREG=2;+CREG?"
sms_tool -d /dev/wwan0at0 at "AT+CPIN?" sms_tool -d /dev/wwan0at0 at "AT+CSQ" sms_tool -d /dev/wwan0at0 at "AT+COPS=3,0;+COPS?" sms_tool -d /dev/wwan0at0 at "AT+COPS=3,2;+COPS?" sms_tool -d /dev/wwan0at0 at "AT+CREG=2;+CREG?"
sms_tool -d /dev/wwan0at0 at "AT+CPIN?"
+CPIN: READY
root@OpenWrt:~# sms_tool -d /dev/wwan0at0 at "AT+CSQ"
+CSQ: 29,99
root@OpenWrt:~# sms_tool -d /dev/wwan0at0 at "AT+COPS=3,0;+COPS?"
+COPS: 0,0,"vodafone IT",13
root@OpenWrt:~# sms_tool -d /dev/wwan0at0 at "AT+COPS=3,2;+COPS?"
+COPS: 0,2,"22210",13
root@OpenWrt:~# sms_tool -d /dev/wwan0at0 at "AT+CREG=2;+CREG?"
+CREG: 2,1,"A84B","1281221",13
Hmm, very sad that /dev/mhi_DIAG does not exist like in Quectel.
Hmm, very sad that /dev/mhi_DIAG does not exist like in Quectel.
It should be /dev/wwan0qcdm0 but don't know if It works
what i see in device:
root@OpenWrt:/sys/devices/pci0000:00/0000:00:1c.5/0000:02:00.0/mhi0# ls mhi0_DIAG mhi0_IP_HW0_MBIM mhi0_MBIM power subsystem wakeup mhi0_DUN mhi0_LOOPBACK oem_pk_hash serial_number uevent wwan
sms_tool -d /dev/wwan0at0 at "AT+CGMI"
sms_tool -d /dev/wwan0at0 at "AT+CGMM"
sms_tool -d /dev/wwan0at0 at "AT+CGMR"
sms_tool -d /dev/wwan0at0 at "AT+CGSN"
sms_tool -d /dev/wwan0at0 at "AT+ICCID"
sms_tool -d /dev/wwan0at0 at "AT+CGMI" sms_tool -d /dev/wwan0at0 at "AT+CGMM" sms_tool -d /dev/wwan0at0 at "AT+CGMR" sms_tool -d /dev/wwan0at0 at "AT+CGSN" sms_tool -d /dev/wwan0at0 at "AT+ICCID"
AT+CGMI DELL
AT+CGMM T99W175
AT+CGMR T99W175.F0.1.0.0.9.VF.008 1 [Jan 20 2023 12:00:00]
AT+CGSN 3522801100xxxxx
AT+ICCID ICCID: 8939104520038678xxxx
x are for privacy
I made the parser and it seems to work. But I'm still wondering how to create a framework to support PCI devices.
I made the parser and it seems to work. But I'm still wondering how to create a framework to support PCI devices.
It's not simple to use AT port as device?
Nope. It's a matter of discovering what is available and what script to use to process it. The script itself is simple.
Nope. It's a matter of discovering what is available and what script to use to process it. The script itself is simple.
On USB 2.0 debug mode, it shows AT console in /dev/ttyUSB3
Show us
cat /sys/kernel/debug/usb/devices
in this "usb 2.0 debug mode".
Show us
cat /sys/kernel/debug/usb/devices
in this "usb 2.0 debug mode".
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=480 MxCh= 0
D: Ver= 2.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=05c6 ProdID=90d5 Rev= 4.14
S: Manufacturer=Microsoft
S: Product=Generic Mobile Broadband Adapter
S: SerialNumber=90b86942
C:* #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=500mA
A: FirstIf#= 2 IfCount= 2 Cls=02(comm.) Sub=0e Prot=00
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option
E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=option
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0e Prot=00 Driver=cdc_mbim
E: Ad=83(I) Atr=03(Int.) MxPS= 64 Ivl=32ms
I: If#= 3 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
I:* If#= 3 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
E: Ad=8e(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=0f(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 4 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
E: Ad=84(I) Atr=03(Int.) MxPS= 64 Ivl=32ms
I:* If#= 5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=86(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
E: Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
obtained assigning
echo "05c6 90d5 ff" > /sys/bus/usb-serial/drivers/option1/new_id
Let me share some thoughts on discovery process. The user will enter or select the serial port in the configuration. No change here. Knowing serial device like "/dev/wwan0at0" allows the parent device be discovered the same way as with USB, but in this case the result will be a PCI path/device. The code should be similar to what is currently used in https://github.com/4IceG/luci-app-3ginfo-lite/blob/main/luci-app-3ginfo-lite/root/usr/share/3ginfo-lite/3ginfo.sh#L151
Unfortunately, I do not have a suitable device to experiment with at the moment, so this is an example based on PCI Wi-Fi card:
# cat /sys/devices/platform/1e140000.pcie/pci0000:00/0000:00:01.0/0000:02:00.0/vendor
0x14c3
# cat /sys/devices/platform/1e140000.pcie/pci0000:00/0000:00:01.0/0000:02:00.0/device
0x7915
It should be possible to find a path similar to "/sys/devices/platform/1e140000.pcie/pci0000:00/0000:00:01.0/0000:02:00.0" for "/dev/wwan0at0" from SysFS. In my example with net device "phy0-ap0" it was easy like that:
# readlink -f /sys/class/net/phy0-ap0/device
/sys/devices/platform/1e140000.pcie/pci0000:00/0000:00:01.0/0000:02:00.0
"vendor + product" combination is exactly what is currently used to select modem-specific scripts.
Hope it helps )
Let me share some thoughts on discovery process. The user will enter or select the serial port in the configuration. No change here. Knowing serial device like "/dev/wwan0at0" allows the parent device be discovered the same way as with USB, but in this case the result will be a PCI path/device. The code should be similar to what is currently used in https://github.com/4IceG/luci-app-3ginfo-lite/blob/main/luci-app-3ginfo-lite/root/usr/share/3ginfo-lite/3ginfo.sh#L151
Unfortunately, I do not have a suitable device to experiment with at the moment, so this is an example based on PCI Wi-Fi card:
cat /sys/devices/platform/1e140000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/vendor 0x14c3 cat /sys/devices/platform/1e140000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/device 0x7916
It should be possible to find a path similar to "1e140000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0" for "/dev/wwan0at0" from SysFS.
"vendor + product" combination is exactly what is currently used to select modem-specific scripts.
Hope it helps )
Clear, It Is as you said
@riccardoferti
Show me
find /sys/bus/pci
find /sys -name wwan0at0
also install pciutils and show lspci -nn
lspci -nn
find /sys/bus/pci
/sys/bus/pci
/sys/bus/pci/uevent
/sys/bus/pci/slots
/sys/bus/pci/drivers_autoprobe
/sys/bus/pci/devices
/sys/bus/pci/devices/0000:00:1f.2
/sys/bus/pci/devices/0000:00:1c.0
/sys/bus/pci/devices/0000:00:1f.0
/sys/bus/pci/devices/0000:02:00.0
/sys/bus/pci/devices/0000:00:04.0
/sys/bus/pci/devices/0000:00:1c.5
/sys/bus/pci/devices/0000:00:16.0
/sys/bus/pci/devices/0000:01:00.0
/sys/bus/pci/devices/0000:00:1b.0
/sys/bus/pci/devices/0000:00:19.0
/sys/bus/pci/devices/0000:00:1f.3
/sys/bus/pci/devices/0000:00:00.0
/sys/bus/pci/devices/0000:00:03.0
/sys/bus/pci/devices/0000:00:1d.0
/sys/bus/pci/devices/0000:00:02.0
/sys/bus/pci/devices/0000:00:14.0
/sys/bus/pci/rescan
/sys/bus/pci/resource_alignment
/sys/bus/pci/drivers_probe
/sys/bus/pci/drivers
/sys/bus/pci/drivers/pata_amd
/sys/bus/pci/drivers/pata_amd/uevent
/sys/bus/pci/drivers/pata_amd/bind
/sys/bus/pci/drivers/pata_amd/new_id
/sys/bus/pci/drivers/pata_amd/remove_id
/sys/bus/pci/drivers/pata_amd/unbind
/sys/bus/pci/drivers/ata_piix
/sys/bus/pci/drivers/ata_piix/uevent
/sys/bus/pci/drivers/ata_piix/bind
/sys/bus/pci/drivers/ata_piix/new_id
/sys/bus/pci/drivers/ata_piix/remove_id
/sys/bus/pci/drivers/ata_piix/unbind
/sys/bus/pci/drivers/ehci-pci
/sys/bus/pci/drivers/ehci-pci/uevent
/sys/bus/pci/drivers/ehci-pci/bind
/sys/bus/pci/drivers/ehci-pci/new_id
/sys/bus/pci/drivers/ehci-pci/remove_id
/sys/bus/pci/drivers/ehci-pci/unbind
/sys/bus/pci/drivers/ehci-pci/0000:00:1d.0
/sys/bus/pci/drivers/mptsas
/sys/bus/pci/drivers/mptsas/uevent
/sys/bus/pci/drivers/mptsas/bind
/sys/bus/pci/drivers/mptsas/new_id
/sys/bus/pci/drivers/mptsas/remove_id
/sys/bus/pci/drivers/mptsas/unbind
/sys/bus/pci/drivers/xhci_hcd
/sys/bus/pci/drivers/xhci_hcd/uevent
/sys/bus/pci/drivers/xhci_hcd/bind
/sys/bus/pci/drivers/xhci_hcd/new_id
/sys/bus/pci/drivers/xhci_hcd/remove_id
/sys/bus/pci/drivers/xhci_hcd/unbind
/sys/bus/pci/drivers/xhci_hcd/0000:00:14.0
/sys/bus/pci/drivers/pata_oldpiix
/sys/bus/pci/drivers/pata_oldpiix/uevent
/sys/bus/pci/drivers/pata_oldpiix/bind
/sys/bus/pci/drivers/pata_oldpiix/new_id
/sys/bus/pci/drivers/pata_oldpiix/remove_id
/sys/bus/pci/drivers/pata_oldpiix/unbind
/sys/bus/pci/drivers/intel_pch_thermal
/sys/bus/pci/drivers/intel_pch_thermal/uevent
/sys/bus/pci/drivers/intel_pch_thermal/bind
/sys/bus/pci/drivers/intel_pch_thermal/new_id
/sys/bus/pci/drivers/intel_pch_thermal/remove_id
/sys/bus/pci/drivers/intel_pch_thermal/unbind
/sys/bus/pci/drivers/intel_pch_thermal/module
/sys/bus/pci/drivers/mptspi
/sys/bus/pci/drivers/mptspi/uevent
/sys/bus/pci/drivers/mptspi/bind
/sys/bus/pci/drivers/mptspi/new_id
/sys/bus/pci/drivers/mptspi/remove_id
/sys/bus/pci/drivers/mptspi/unbind
/sys/bus/pci/drivers/vmw_vmci
/sys/bus/pci/drivers/vmw_vmci/uevent
/sys/bus/pci/drivers/vmw_vmci/bind
/sys/bus/pci/drivers/vmw_vmci/new_id
/sys/bus/pci/drivers/vmw_vmci/remove_id
/sys/bus/pci/drivers/vmw_vmci/unbind
/sys/bus/pci/drivers/pata_via
/sys/bus/pci/drivers/pata_via/uevent
/sys/bus/pci/drivers/pata_via/bind
/sys/bus/pci/drivers/pata_via/new_id
/sys/bus/pci/drivers/pata_via/remove_id
/sys/bus/pci/drivers/pata_via/unbind
/sys/bus/pci/drivers/iosf_mbi_pci
/sys/bus/pci/drivers/iosf_mbi_pci/uevent
/sys/bus/pci/drivers/iosf_mbi_pci/bind
/sys/bus/pci/drivers/iosf_mbi_pci/new_id
/sys/bus/pci/drivers/iosf_mbi_pci/remove_id
/sys/bus/pci/drivers/iosf_mbi_pci/unbind
/sys/bus/pci/drivers/snd_hda_intel
/sys/bus/pci/drivers/snd_hda_intel/uevent
/sys/bus/pci/drivers/snd_hda_intel/bind
/sys/bus/pci/drivers/snd_hda_intel/new_id
/sys/bus/pci/drivers/snd_hda_intel/remove_id
/sys/bus/pci/drivers/snd_hda_intel/0000:00:1b.0
/sys/bus/pci/drivers/snd_hda_intel/0000:00:03.0
/sys/bus/pci/drivers/snd_hda_intel/unbind
/sys/bus/pci/drivers/snd_hda_intel/module
/sys/bus/pci/drivers/bochs-drm
/sys/bus/pci/drivers/bochs-drm/uevent
/sys/bus/pci/drivers/bochs-drm/bind
/sys/bus/pci/drivers/bochs-drm/new_id
/sys/bus/pci/drivers/bochs-drm/remove_id
/sys/bus/pci/drivers/bochs-drm/unbind
/sys/bus/pci/drivers/bochs-drm/module
/sys/bus/pci/drivers/i40e
/sys/bus/pci/drivers/i40e/uevent
/sys/bus/pci/drivers/i40e/bind
/sys/bus/pci/drivers/i40e/new_id
/sys/bus/pci/drivers/i40e/remove_id
/sys/bus/pci/drivers/i40e/unbind
/sys/bus/pci/drivers/i40e/module
/sys/bus/pci/drivers/r8125
/sys/bus/pci/drivers/r8125/uevent
/sys/bus/pci/drivers/r8125/bind
/sys/bus/pci/drivers/r8125/new_id
/sys/bus/pci/drivers/r8125/remove_id
/sys/bus/pci/drivers/r8125/unbind
/sys/bus/pci/drivers/r8125/module
/sys/bus/pci/drivers/ahci
/sys/bus/pci/drivers/ahci/uevent
/sys/bus/pci/drivers/ahci/0000:00:1f.2
/sys/bus/pci/drivers/ahci/bind
/sys/bus/pci/drivers/ahci/new_id
/sys/bus/pci/drivers/ahci/remove_id
/sys/bus/pci/drivers/ahci/unbind
/sys/bus/pci/drivers/ahci/module
/sys/bus/pci/drivers/xen-platform-pci
/sys/bus/pci/drivers/xen-platform-pci/uevent
/sys/bus/pci/drivers/xen-platform-pci/bind
/sys/bus/pci/drivers/xen-platform-pci/new_id
/sys/bus/pci/drivers/xen-platform-pci/remove_id
/sys/bus/pci/drivers/xen-platform-pci/unbind
/sys/bus/pci/drivers/vmw_pvscsi
/sys/bus/pci/drivers/vmw_pvscsi/uevent
/sys/bus/pci/drivers/vmw_pvscsi/bind
/sys/bus/pci/drivers/vmw_pvscsi/new_id
/sys/bus/pci/drivers/vmw_pvscsi/remove_id
/sys/bus/pci/drivers/vmw_pvscsi/unbind
/sys/bus/pci/drivers/vmw_pvscsi/module
/sys/bus/pci/drivers/snd_via82xx
/sys/bus/pci/drivers/snd_via82xx/uevent
/sys/bus/pci/drivers/snd_via82xx/bind
/sys/bus/pci/drivers/snd_via82xx/new_id
/sys/bus/pci/drivers/snd_via82xx/remove_id
/sys/bus/pci/drivers/snd_via82xx/unbind
/sys/bus/pci/drivers/snd_via82xx/module
/sys/bus/pci/drivers/lpc_sch
/sys/bus/pci/drivers/lpc_sch/uevent
/sys/bus/pci/drivers/lpc_sch/bind
/sys/bus/pci/drivers/lpc_sch/new_id
/sys/bus/pci/drivers/lpc_sch/remove_id
/sys/bus/pci/drivers/lpc_sch/unbind
/sys/bus/pci/drivers/nvme
/sys/bus/pci/drivers/nvme/uevent
/sys/bus/pci/drivers/nvme/bind
/sys/bus/pci/drivers/nvme/new_id
/sys/bus/pci/drivers/nvme/remove_id
/sys/bus/pci/drivers/nvme/unbind
/sys/bus/pci/drivers/nvme/module
/sys/bus/pci/drivers/tg3
/sys/bus/pci/drivers/tg3/uevent
/sys/bus/pci/drivers/tg3/bind
/sys/bus/pci/drivers/tg3/new_id
/sys/bus/pci/drivers/tg3/remove_id
/sys/bus/pci/drivers/tg3/unbind
/sys/bus/pci/drivers/tg3/module
/sys/bus/pci/drivers/igb
/sys/bus/pci/drivers/igb/uevent
/sys/bus/pci/drivers/igb/bind
/sys/bus/pci/drivers/igb/new_id
/sys/bus/pci/drivers/igb/remove_id
/sys/bus/pci/drivers/igb/unbind
/sys/bus/pci/drivers/igb/module
/sys/bus/pci/drivers/forcedeth
/sys/bus/pci/drivers/forcedeth/uevent
/sys/bus/pci/drivers/forcedeth/bind
/sys/bus/pci/drivers/forcedeth/new_id
/sys/bus/pci/drivers/forcedeth/remove_id
/sys/bus/pci/drivers/forcedeth/unbind
/sys/bus/pci/drivers/forcedeth/module
/sys/bus/pci/drivers/snd_intel8x0
/sys/bus/pci/drivers/snd_intel8x0/uevent
/sys/bus/pci/drivers/snd_intel8x0/bind
/sys/bus/pci/drivers/snd_intel8x0/new_id
/sys/bus/pci/drivers/snd_intel8x0/remove_id
/sys/bus/pci/drivers/snd_intel8x0/unbind
/sys/bus/pci/drivers/snd_intel8x0/module
/sys/bus/pci/drivers/bdw_uncore
/sys/bus/pci/drivers/bdw_uncore/uevent
/sys/bus/pci/drivers/bdw_uncore/bind
/sys/bus/pci/drivers/bdw_uncore/new_id
/sys/bus/pci/drivers/bdw_uncore/remove_id
/sys/bus/pci/drivers/bdw_uncore/0000:00:00.0
/sys/bus/pci/drivers/bdw_uncore/unbind
/sys/bus/pci/drivers/e1000
/sys/bus/pci/drivers/e1000/uevent
/sys/bus/pci/drivers/e1000/bind
/sys/bus/pci/drivers/e1000/new_id
/sys/bus/pci/drivers/e1000/remove_id
/sys/bus/pci/drivers/e1000/unbind
/sys/bus/pci/drivers/e1000/module
/sys/bus/pci/drivers/ata_generic
/sys/bus/pci/drivers/ata_generic/uevent
/sys/bus/pci/drivers/ata_generic/bind
/sys/bus/pci/drivers/ata_generic/new_id
/sys/bus/pci/drivers/ata_generic/remove_id
/sys/bus/pci/drivers/ata_generic/unbind
/sys/bus/pci/drivers/ixgbevf
/sys/bus/pci/drivers/ixgbevf/uevent
/sys/bus/pci/drivers/ixgbevf/bind
/sys/bus/pci/drivers/ixgbevf/new_id
/sys/bus/pci/drivers/ixgbevf/remove_id
/sys/bus/pci/drivers/ixgbevf/unbind
/sys/bus/pci/drivers/ixgbevf/module
/sys/bus/pci/drivers/k10temp
/sys/bus/pci/drivers/k10temp/uevent
/sys/bus/pci/drivers/k10temp/bind
/sys/bus/pci/drivers/k10temp/new_id
/sys/bus/pci/drivers/k10temp/remove_id
/sys/bus/pci/drivers/k10temp/unbind
/sys/bus/pci/drivers/k10temp/module
/sys/bus/pci/drivers/pcieport
/sys/bus/pci/drivers/pcieport/uevent
/sys/bus/pci/drivers/pcieport/0000:00:1c.0
/sys/bus/pci/drivers/pcieport/bind
/sys/bus/pci/drivers/pcieport/new_id
/sys/bus/pci/drivers/pcieport/remove_id
/sys/bus/pci/drivers/pcieport/0000:00:1c.5
/sys/bus/pci/drivers/pcieport/unbind
/sys/bus/pci/drivers/tulip
/sys/bus/pci/drivers/tulip/uevent
/sys/bus/pci/drivers/tulip/bind
/sys/bus/pci/drivers/tulip/new_id
/sys/bus/pci/drivers/tulip/remove_id
/sys/bus/pci/drivers/tulip/unbind
/sys/bus/pci/drivers/tulip/module
/sys/bus/pci/drivers/r8168
/sys/bus/pci/drivers/r8168/uevent
/sys/bus/pci/drivers/r8168/bind
/sys/bus/pci/drivers/r8168/new_id
/sys/bus/pci/drivers/r8168/remove_id
/sys/bus/pci/drivers/r8168/unbind
/sys/bus/pci/drivers/r8168/module
/sys/bus/pci/drivers/r8101
/sys/bus/pci/drivers/r8101/uevent
/sys/bus/pci/drivers/r8101/bind
/sys/bus/pci/drivers/r8101/new_id
/sys/bus/pci/drivers/r8101/remove_id
/sys/bus/pci/drivers/r8101/unbind
/sys/bus/pci/drivers/r8101/module
/sys/bus/pci/drivers/ohci-pci
/sys/bus/pci/drivers/ohci-pci/uevent
/sys/bus/pci/drivers/ohci-pci/bind
/sys/bus/pci/drivers/ohci-pci/new_id
/sys/bus/pci/drivers/ohci-pci/remove_id
/sys/bus/pci/drivers/ohci-pci/unbind
/sys/bus/pci/drivers/lpc_ich
/sys/bus/pci/drivers/lpc_ich/uevent
/sys/bus/pci/drivers/lpc_ich/bind
/sys/bus/pci/drivers/lpc_ich/0000:00:1f.0
/sys/bus/pci/drivers/lpc_ich/new_id
/sys/bus/pci/drivers/lpc_ich/remove_id
/sys/bus/pci/drivers/lpc_ich/unbind
/sys/bus/pci/drivers/k8temp
/sys/bus/pci/drivers/k8temp/uevent
/sys/bus/pci/drivers/k8temp/bind
/sys/bus/pci/drivers/k8temp/new_id
/sys/bus/pci/drivers/k8temp/remove_id
/sys/bus/pci/drivers/k8temp/unbind
/sys/bus/pci/drivers/virtio-pci
/sys/bus/pci/drivers/virtio-pci/uevent
/sys/bus/pci/drivers/virtio-pci/bind
/sys/bus/pci/drivers/virtio-pci/new_id
/sys/bus/pci/drivers/virtio-pci/remove_id
/sys/bus/pci/drivers/virtio-pci/unbind
/sys/bus/pci/drivers/virtio-pci/module
/sys/bus/pci/drivers/i5500_temp
/sys/bus/pci/drivers/i5500_temp/uevent
/sys/bus/pci/drivers/i5500_temp/bind
/sys/bus/pci/drivers/i5500_temp/new_id
/sys/bus/pci/drivers/i5500_temp/remove_id
/sys/bus/pci/drivers/i5500_temp/unbind
/sys/bus/pci/drivers/e1000e
/sys/bus/pci/drivers/e1000e/uevent
/sys/bus/pci/drivers/e1000e/bind
/sys/bus/pci/drivers/e1000e/new_id
/sys/bus/pci/drivers/e1000e/remove_id
/sys/bus/pci/drivers/e1000e/0000:00:19.0
/sys/bus/pci/drivers/e1000e/unbind
/sys/bus/pci/drivers/e1000e/module
/sys/bus/pci/drivers/vmxnet3
/sys/bus/pci/drivers/vmxnet3/uevent
/sys/bus/pci/drivers/vmxnet3/bind
/sys/bus/pci/drivers/vmxnet3/new_id
/sys/bus/pci/drivers/vmxnet3/remove_id
/sys/bus/pci/drivers/vmxnet3/unbind
/sys/bus/pci/drivers/8139cp
/sys/bus/pci/drivers/8139cp/uevent
/sys/bus/pci/drivers/8139cp/bind
/sys/bus/pci/drivers/8139cp/new_id
/sys/bus/pci/drivers/8139cp/remove_id
/sys/bus/pci/drivers/8139cp/unbind
/sys/bus/pci/drivers/8139cp/module
/sys/bus/pci/drivers/sdhci-pci
/sys/bus/pci/drivers/sdhci-pci/uevent
/sys/bus/pci/drivers/sdhci-pci/bind
/sys/bus/pci/drivers/sdhci-pci/new_id
/sys/bus/pci/drivers/sdhci-pci/remove_id
/sys/bus/pci/drivers/sdhci-pci/unbind
/sys/bus/pci/drivers/8139too
/sys/bus/pci/drivers/8139too/uevent
/sys/bus/pci/drivers/8139too/bind
/sys/bus/pci/drivers/8139too/new_id
/sys/bus/pci/drivers/8139too/remove_id
/sys/bus/pci/drivers/8139too/unbind
/sys/bus/pci/drivers/8139too/module
/sys/bus/pci/drivers/fam15h_power
/sys/bus/pci/drivers/fam15h_power/uevent
/sys/bus/pci/drivers/fam15h_power/bind
/sys/bus/pci/drivers/fam15h_power/new_id
/sys/bus/pci/drivers/fam15h_power/remove_id
/sys/bus/pci/drivers/fam15h_power/unbind
/sys/bus/pci/drivers/pata_mpiix
/sys/bus/pci/drivers/pata_mpiix/uevent
/sys/bus/pci/drivers/pata_mpiix/bind
/sys/bus/pci/drivers/pata_mpiix/new_id
/sys/bus/pci/drivers/pata_mpiix/remove_id
/sys/bus/pci/drivers/pata_mpiix/unbind
/sys/bus/pci/drivers/amd-xgbe
/sys/bus/pci/drivers/amd-xgbe/uevent
/sys/bus/pci/drivers/amd-xgbe/bind
/sys/bus/pci/drivers/amd-xgbe/new_id
/sys/bus/pci/drivers/amd-xgbe/remove_id
/sys/bus/pci/drivers/amd-xgbe/unbind
/sys/bus/pci/drivers/amd-xgbe/module
/sys/bus/pci/drivers/serial
/sys/bus/pci/drivers/serial/uevent
/sys/bus/pci/drivers/serial/bind
/sys/bus/pci/drivers/serial/new_id
/sys/bus/pci/drivers/serial/remove_id
/sys/bus/pci/drivers/serial/unbind
/sys/bus/pci/drivers/igc
/sys/bus/pci/drivers/igc/uevent
/sys/bus/pci/drivers/igc/bind
/sys/bus/pci/drivers/igc/new_id
/sys/bus/pci/drivers/igc/remove_id
/sys/bus/pci/drivers/igc/unbind
/sys/bus/pci/drivers/igc/module
/sys/bus/pci/drivers/i915
/sys/bus/pci/drivers/i915/uevent
/sys/bus/pci/drivers/i915/bind
/sys/bus/pci/drivers/i915/new_id
/sys/bus/pci/drivers/i915/remove_id
/sys/bus/pci/drivers/i915/unbind
/sys/bus/pci/drivers/i915/0000:00:02.0
/sys/bus/pci/drivers/i915/module
/sys/bus/pci/drivers/mhi-pci-generic
/sys/bus/pci/drivers/mhi-pci-generic/uevent
/sys/bus/pci/drivers/mhi-pci-generic/bind
/sys/bus/pci/drivers/mhi-pci-generic/new_id
/sys/bus/pci/drivers/mhi-pci-generic/remove_id
/sys/bus/pci/drivers/mhi-pci-generic/0000:02:00.0
/sys/bus/pci/drivers/mhi-pci-generic/unbind
/sys/bus/pci/drivers/mhi-pci-generic/module
/sys/bus/pci/drivers/igbvf
/sys/bus/pci/drivers/igbvf/uevent
/sys/bus/pci/drivers/igbvf/bind
/sys/bus/pci/drivers/igbvf/new_id
/sys/bus/pci/drivers/igbvf/remove_id
/sys/bus/pci/drivers/igbvf/unbind
/sys/bus/pci/drivers/igbvf/module
/sys/bus/pci/drivers/pcnet32
/sys/bus/pci/drivers/pcnet32/uevent
/sys/bus/pci/drivers/pcnet32/bind
/sys/bus/pci/drivers/pcnet32/new_id
/sys/bus/pci/drivers/pcnet32/remove_id
/sys/bus/pci/drivers/pcnet32/unbind
/sys/bus/pci/drivers/pcnet32/module
/sys/bus/pci/drivers/uhci_hcd
/sys/bus/pci/drivers/uhci_hcd/uevent
/sys/bus/pci/drivers/uhci_hcd/bind
/sys/bus/pci/drivers/uhci_hcd/new_id
/sys/bus/pci/drivers/uhci_hcd/remove_id
/sys/bus/pci/drivers/uhci_hcd/unbind
/sys/bus/pci/drivers/uhci_hcd/module
/sys/bus/pci/drivers/ena
/sys/bus/pci/drivers/ena/uevent
/sys/bus/pci/drivers/ena/bind
/sys/bus/pci/drivers/ena/new_id
/sys/bus/pci/drivers/ena/remove_id
/sys/bus/pci/drivers/ena/unbind
/sys/bus/pci/drivers/ena/module
/sys/bus/pci/drivers/bnx2
/sys/bus/pci/drivers/bnx2/uevent
/sys/bus/pci/drivers/bnx2/bind
/sys/bus/pci/drivers/bnx2/new_id
/sys/bus/pci/drivers/bnx2/remove_id
/sys/bus/pci/drivers/bnx2/unbind
/sys/bus/pci/drivers/bnx2/module
/sys/bus/pci/drivers/pata_atiixp
/sys/bus/pci/drivers/pata_atiixp/uevent
/sys/bus/pci/drivers/pata_atiixp/bind
/sys/bus/pci/drivers/pata_atiixp/new_id
/sys/bus/pci/drivers/pata_atiixp/remove_id
/sys/bus/pci/drivers/pata_atiixp/unbind
/sys/bus/pci/drivers/agpgart-intel
/sys/bus/pci/drivers/agpgart-intel/uevent
/sys/bus/pci/drivers/agpgart-intel/bind
/sys/bus/pci/drivers/agpgart-intel/new_id
/sys/bus/pci/drivers/agpgart-intel/remove_id
/sys/bus/pci/drivers/agpgart-intel/unbind
/sys/bus/pci/drivers/ixgbe
/sys/bus/pci/drivers/ixgbe/uevent
/sys/bus/pci/drivers/ixgbe/bind
/sys/bus/pci/drivers/ixgbe/new_id
/sys/bus/pci/drivers/ixgbe/remove_id
/sys/bus/pci/drivers/ixgbe/unbind
/sys/bus/pci/drivers/ixgbe/module
find /sys -name wwan0at0
/sys/class/wwan/wwan0at0
/sys/devices/pci0000:00/0000:00:1c.5/0000:02:00.0/mhi0/wwan/wwan0/wwan0at0
lspci -nn
00:00.0 Host bridge [0600]: Intel Corporation Broadwell-U Host Bridge -OPI [8086:1604] (rev 09)
00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 5500 [8086:1616] (rev 09)
00:03.0 Audio device [0403]: Intel Corporation Broadwell-U Audio Controller [8086:160c] (rev 09)
00:04.0 Signal processing controller [1180]: Intel Corporation Broadwell-U Processor Thermal Subsystem [8086:1603] (rev 09)
00:14.0 USB controller [0c03]: Intel Corporation Wildcat Point-LP USB xHCI Controller [8086:9cb1] (rev 03)
00:16.0 Communication controller [0780]: Intel Corporation Wildcat Point-LP MEI Controller #1 [8086:9cba] (rev 03)
00:19.0 Ethernet controller [0200]: Intel Corporation Ethernet Connection (3) I218-LM [8086:15a2] (rev 03)
00:1b.0 Audio device [0403]: Intel Corporation Wildcat Point-LP High Definition Audio Controller [8086:9ca0] (rev 03)
00:1c.0 PCI bridge [0604]: Intel Corporation Wildcat Point-LP PCI Express Root Port #1 [8086:9c90] (rev e3)
00:1c.5 PCI bridge [0604]: Intel Corporation Wildcat Point-LP PCI Express Root Port #6 [8086:9c9a] (rev e3)
00:1d.0 USB controller [0c03]: Intel Corporation Wildcat Point-LP USB EHCI Controller [8086:9ca6] (rev 03)
00:1f.0 ISA bridge [0601]: Intel Corporation Wildcat Point-LP LPC Controller [8086:9cc3] (rev 03)
00:1f.2 SATA controller [0106]: Intel Corporation Wildcat Point-LP SATA Controller [AHCI Mode] [8086:9c83] (rev 03)
00:1f.3 SMBus [0c05]: Intel Corporation Wildcat Point-LP SMBus Controller [8086:9ca2] (rev 03)
01:00.0 SD Host controller [0805]: O2 Micro, Inc. SD/MMC Card Reader Controller [1217:8520] (rev 01)
02:00.0 Wireless controller [0d40]: Foxconn International, Inc. Device [105b:e0b0]
@riccardoferti please run when you have a chance:
readlink -f /sys/class/wwan/wwan0at0/device
BTW, could you please share the details about the module you use - t99w175.?? version and whether it is Dell/HP/Lenovo branded.
cat /sys/devices/pci0000:00/0000:00:1c.5/0000:02:00.0/vendor cat /sys/devices/pci0000:00/0000:00:1c.5/0000:02:00.0/device
?
readlink -f /sys/class/wwan/wwan0at0/device
readlink -f /sys/class/wwan/wwan0at0/device /sys/devices/pci0000:00/0000:00:1c.5/0000:02:00.0/mhi0/wwan/wwan0
The device Is a Dell Prototype version, bought on AliExpress. You can change the device vendor switching at^customer=x 1 Dell 0 Foxconn 4 Lenovo 6 HP (maybe)
Mine Is 0 actually, with latest Lenovo firmware installed. It's the latest in Building time.
Manufacturer: DELL
Model: T99W175
Revision: T99W175.F0.1.0.0.9.VF.008 1 [Jan 20 2023 12:00:00]
cat /sys/devices/pci0000:00/0000:00:1c.5/0000:02:00.0/vendor
0x105b
cat /sys/devices/pci0000:00/0000:00:1c.5/0000:02:00.0/device
0xe0b0
@riccardoferti I was mainly interested what is printed/engraved on the modem itself. Thank you.
@riccardoferti I was mainly interested what is printed/engraved on the modem itself. Thank you.
Who wants can DM me on Telegram @nerdherd96
@4IceG : zaimplementuj to u siebie: https://github.com/obsy/packages/commit/e1daf558d51b275efe732ff5cdf6de4c062a7e6d
Jeżeli będzie wszystko ok to trzeba rozważyć czy nie przenieść danych do oddzielnych podkatalogów pci/ i usb/
@4IceG : zaimplementuj to u siebie: obsy/packages@e1daf55
Jeżeli będzie wszystko ok to trzeba rozważyć czy nie przenieść danych do oddzielnych podkatalogów pci/ i usb/
Ok, thx @obsy Cezary. Jeżeli kod mnie nie zaskoczy to postaram się możliwie szybko go zaimplementować u siebie.
Co do modyfikacji podkatalogów myślę, że jest to wskazana, przyszłościowa koncepcja.
Teraz do testów dodałem po prostu prefix "pci". Ale docelowo trzeba będzie to przerzuć, tym bardziej że modemy pci chyba raczej będą stanowić przyszłość.
@riccardoferti install package and check if it shows data ok.
I don't know yet what to do with the SINR parameter, we read SNR instead. (for test SINR=SNR).
@riccardoferti install package and check if it shows data ok.
I don't know yet what to do with the SINR parameter, we read SNR instead. (for test SINR=SNR).
working also on pci mode?
@riccardoferti install package and check if it shows data ok. working also on pci mode?
Yes, it should work.
@riccardoferti install package and check if it shows data ok. working also on pci mode?
Yes, it should work.
a little bit buggy but works
Where?
@riccardoferti Copy extracted file to > /usr/share/3ginfo-lite/modem
I just fix scripts to make it faster. pci105be0b0.zip
It should look better. I don't know yet what protocol the modem works on.
@riccardoferti Copy extracted file to > /usr/share/3ginfo-lite/modem
I just fix scripts to make it faster. pci105be0b0.zip
It should look better. I don't know yet what protocol the modem works on.
Should be MBIM Tò have more info you can check ModemManager
@riccardoferti Copy extracted file to > /usr/share/3ginfo-lite/modem
Should be MBIM Tò have more info you can check ModemManager
pci105be0b0_last_fix.zip Ok, protocol should now be visible.
// Edit: I also back to SINR=SNR.
Where?
It is slow to read and often it doesn't find modem
All seems good maybe need only to check this:
5G NSA \| B3 (1800 MHz) + B28 (700 MHz) / B7 (2600 MHz) / B1 (2100 MHz) / n78 (3500 MHz) --I advise to set only + or / symbol
Where?
It is slow to read and often it doesn't find modem
Maybe other package is using modem at the same time?
All seems good maybe need only to check this:
5G NSA \| B3 (1800 MHz) + B28 (700 MHz) / B7 (2600 MHz) / B1 (2100 MHz) / n78 (3500 MHz) --
I advise to set only + or / symbol
I'll check it tomorrow.
Where?
It is slow to read and often it doesn't find modem
Maybe other package is using modem at the same time?
Should be Modem Manager
Maybe other package is using modem at the same time?
Should be Modem Manager
So we have problem because MM and 3ginfo-lite cannot work together.
Maybe other package is using modem at the same time?
Should be Modem Manager
So we have problem because MM and 3ginfo-lite cannot work together.
Oh ok, but T99w175 can't work without MM
Maybe other package is using modem at the same time?
Should be Modem Manager
So we have problem because MM and 3ginfo-lite cannot work together.
Oh ok, but T99w175 can't work without MM
In what device are you running this card with OpenWrt?
Can the package also be installed for USB2 version QMI protocol?
# cat /sys/kernel/debug/usb/devices
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.82 xhci-hcd
S: Product=xHCI Host Controller
S: SerialNumber=1e1c0000.xhci
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= 0
D: Ver= 2.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=1e2d ProdID=00b7 Rev= 4.14
S: Manufacturer=Cinterion
S: Product=Cinterion PID 0x00B7 USB Mobile Broadband
S: SerialNumber=7a7435d9
C:* #Ifs= 4 Cfg#= 1 Atr=a0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=32ms
E: Ad=8e(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=0f(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=83(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=85(I) Atr=03(Int.) MxPS= 10 Ivl=32ms
E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option
E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=5000 MxCh= 1
B: Alloc= 0/800 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 3.00 Cls=09(hub ) Sub=00 Prot=03 MxPS= 9 #Cfgs= 1
P: Vendor=1d6b ProdID=0003 Rev= 6.01
S: Manufacturer=Linux 6.1.82 xhci-hcd
S: Product=xHCI Host Controller
S: SerialNumber=1e1c0000.xhci
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
It does not matter. Package requires a serial interface to talk to the modem.
Would you like to add support for Foxconn T99W175 also known as Dell DW5930e? Device connected to board with PCI MHI and AT port available at /dev/wwan0at0, MBIM at /dev/wwan0mbim0 and QCDM at /dev/wwan0qcdm0
AT Commands available here: https://www.codico.com/media/productattach/m/v/mv31_w_atc_v00058_2111538_1.pdf
by now only this info are shown
Originally posted by @riccardoferti in https://github.com/4IceG/luci-app-3ginfo-lite/issues/28#issuecomment-1871015490