LuCI APP: luci-app-3ginfo - 3ginfo gui (Info about 3G/LTE connection)

Hi @TonyB_IT , I have never used ModemManager, I don't know how it works, but this is the best way to install:

#Modem drivers are required for proper operation.
opkg install kmod-usb-serial kmod-usb-serial-option luci-compat

#Install 3ginfo text version.
opkg install 3ginfo-text_20190418_all.ipk

#Install this package for qmi modems.
opkg install 3ginfo-qmisignal_20190418_all.ipk

#Install gui.
opkg install luci-app-3ginfo_1.3.3_all.ipk
1 Like

If someone uses the sms-tool / luci-app-sms-tool, he can also take a look at this package.


Link to github:
luci-app-3ginfo-lite

1 Like

Hi I'm guessing your packages are not in the master OpenWrt repo yet is this on the cards ?

Hi @professor_jonny , yes the package is not available in repo master (I don't know if it will ever be, I'm not the maintainer of the package, I just made some support for Luci). But it should still be compatible.

I had a look at your repo and all the packages there are real handy for 3g/4g modems.

I'm sort of new to openwrt and how it works if I copy your source into /src/external/ then update my feeds.conf to point there will it build ?

src-link 4ice /src/external

I'm guessing to make it more automated I can just add the git address to my feeds.conf something like below?

src-git 4ice https://github.com/4IceG/luci-app-atinout-mod.git

Im just not sure how to add them all into the same menuconfig item/list like what the official package's do im guessing i add a feed for each of your packages like so or do i have to name each one individually?

src-git 4ice https://github.com/4IceG/luci-app-atinout-mod.git
src-git 4ice https://github.com/4IceG/luci-app-3ginfo-lite.git

There are two ways to add packages from the Openwrt source folder:

cd feeds/luci/applications/
git clone https://github.com/4IceG/luci-app-3ginfo-lite.git
cd ../../..
./scripts feeds update -a; ./scripts/feeds install -a
make menuconfig

or e.g.

cd packages/
git clone https://github.com/4IceG/luci-app-3ginfo-lite.git
git pull
make package/symlinks
make menuconfig

You may need to correct the file paths and the number of folders to look like this:
feeds/luci/applications/luci-app-3ginfo-lite/Makefile
or
packages/luci-app-3ginfo-lite/Makefile

1 Like

ok I built the 3ginfo package and ran it in my build but i dont get any info do you have any idea why?

I also built and installed the sms tool that seems to work just not the 3ginfo package.

I have all the dependancys do i have to start a script from command or something ?

Hi, @professor_jonny

Now it's hard for me to say why it doesn't work. I do not know what modem the information should be obtained from, whether it shows something or nothing at all.

I'd start by installing the 3ginfo package at the top of the page (not the luci-app-3ginfo-lite version), it's more universal.

Then use the "3ginfo" command to check if any data is read.

If the sms-tool works, then 3ginfo should also work on the same ttyUSB ports. Maybe you just need to correct the WAN name?

Do you plan to add to the OpenWrt repository? They ask that JS be used.

Hi @castillofrancodamian

I am not the creator/maintainer of 3ginfo/sms-tool packages, so I will not decide whether they will go to the repo or not.

I missed LuCI support for SMS and data from modems, so I added packages as I could and shared my work.

Sorry, but I don't understand "They ask that JS be used."?

The luci-app-3ginfo-lite package supports the new LuCI JS (I use it in my images because it supports newer modems).
The luci-app-3ginfo package was not rewritten to LuCI JS.

You can upload the package even if you are not the maintainer. I don't know what the packages are written in, that's why I talked about OpenWrt only accepting JS in case you plan to upload and they haven't been transcribed to JS yet.

My wan name is correct and I am using the same ttyUSB ports as sms-tool.

My modem is using modem manager and it is a EP06 modem in QMI mode.

it should work but i dont see any thing in the kernel log is there a debug config setting?

@professor_jonny Install the packages 3ginfo-text_20190418_all.ipk and 3ginfo-qmisignal_20190418_all.ipk and show the result of the command "3ginfo".

I don't use Modem Menager, so I don't know how much it interferes with modem access.

I don't mind, if someone has the knowledge and skills, please try with adding the package to the repo.
Always more users means better support, development of the package.

1 Like

After building the excetuable bit is not set how do i set this in my image before building ?

The below fixed my error in usr/bin and etc/init.d

chmod +x 3ginfo

This is the output of 3ginfo afterwards and much of the info is missing:

oot@OpenWrt:/usr/bin# 3ginfo
Status: Connected
Connection time: 0d, 00:40:57
Received / Transmitted data: 41.9 KiB / 36.3 KiB
Operator: ---
Operating mode: -
Signal strength: 0%
Device:  
MCC MNC: - -
LAC: - (-)
CID: - (-)
TAC: - (-)
CSQ: -
RSSI: - dBm
RSCP: - dBm
Ec/IO: - dB
RSRP: - dBm
SINR: - dB
RSRQ: - dB

It read and showed only system data, it can't see the modem, so no modem data shown.

Show the result of the commands:

cat /etc/config/3ginfo
uci show network
3ginfo test

I already know.. why I don't use Modem Manager.

Below is the output of those commands.

root@OpenWrt:~# cat /etc/config/3ginfo

config 3ginfo
        option http_port '81'
        option network 'Wwan'
        option device '/dev/ttyUSB2'
        option language 'en'

root@OpenWrt:~# uci show network
network.loopback=interface
network.loopback.proto='static'
network.loopback.ipaddr='127.0.0.1'
network.loopback.netmask='255.0.0.0'
network.loopback.device='lo'
network.globals=globals
network.globals.ula_prefix='fdf6:0e5c:4f41::/48'
network.Adults_Lan=interface
network.Adults_Lan.proto='static'
network.Adults_Lan.ipaddr='192.168.1.1'
network.Adults_Lan.netmask='255.255.255.0'
network.Adults_Lan.ip6assign='60'
network.Adults_Lan.device='br-Adults_Lan'
network.Kids_Lan=interface
network.Kids_Lan.proto='static'
network.Kids_Lan.type='bridge'
network.Kids_Lan.ipaddr='192.168.2.1'
network.Kids_Lan.netmask='255.255.255.0'
network.Wan=interface
network.Wan.device='wan'
network.Wan.proto='dhcp'
network.Wan.metric='1'
network.Wan6=interface
network.Wan6.proto='dhcpv6'
network.Wan6.reqaddress='none'
network.Wan6.reqprefix='auto'
network.Wan6.device='wan'
network.Wan6.metric='2'
network.@device[0]=device
network.@device[0].name='br-Adults_Lan'
network.@device[0].type='bridge'
network.@device[0].ports='lan'
network.@device[1]=device
network.@device[1].name='br-Kids_Lan'
network.Wwan=interface
network.Wwan.proto='modemmanager'
network.Wwan.auto='0'
network.Wwan.device='/sys/devices/platform/soc/60f8800.usb2/6000000.dwc3/xhci-hcd.1.auto/usb3/3-1'
network.Wwan.apn='internet'
network.Wwan.auth='none'
network.Wwan.metric='3'
network.Wwan.iptype='ipv4v6'
network.@device[2]=device
network.@device[2].name='wan'
network.@device[3]=device
network.@device[3].name='wwan0'
root@OpenWrt:~# 3ginfo test

DEVICE: 
---------------------------------------------------------------
/dev/tty      /dev/ttyMSM0  /dev/ttyMSM1  /dev/ttyS0    /dev/ttyS1    /dev/ttyUSB0  /dev/ttyUSB1  /dev/ttyUSB2  /dev/ttyUSB3
---------------------------------------------------------------

T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480  MxCh= 1
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.10
S:  Manufacturer=Linux 5.10.80 xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=xhci-hcd.0.auto
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=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= 5.10
S:  Manufacturer=Linux 5.10.80 xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=xhci-hcd.0.auto
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=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480  MxCh= 1
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.10
S:  Manufacturer=Linux 5.10.80 xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=xhci-hcd.1.auto
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=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=480  MxCh= 0
D:  Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=2c7c ProdID=0306 Rev= 3.10
S:  Manufacturer=Quectel
S:  Product=EP06-E
S:  SerialNumber=0123456789ABCDEF
C:* #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff 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= 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=02(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=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E:  Ad=87(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=86(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= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
E:  Ad=89(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
E:  Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms

T:  Bus=04 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=5000 MxCh= 0
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= 5.10
S:  Manufacturer=Linux 5.10.80 xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=xhci-hcd.1.auto
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=(none)
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms
---------------------------------------------------------------
3ginfo.@3ginfo[0]=3ginfo
3ginfo.@3ginfo[0].http_port='81'
3ginfo.@3ginfo[0].network='Wwan'
3ginfo.@3ginfo[0].device='/dev/ttyUSB2'
3ginfo.@3ginfo[0].language='en'
root@OpenWrt:~# 

In the Wwan section you have:
network.Wwan.device='/sys/devices/platform/soc/60f8800.usb2/6000000.dwc3/xhci-hcd.1.auto/usb3/3-1'
and you want 3ginfo to read the connection data from the port
option device '/dev/ttyUSB2'
I think here is the problem.

If you can, remove Modem Manager and reconfigure the connection manually from LuCI or terminal.

uci del network.Wwan
uci set network.Wwan=interface
uci set network.Wwan.proto=qmi
uci set network.Wwan.device=/dev/cdc-wdm0
uci set network.Wwan.apn=internet
uci commit network
reboot

I will try to connect with QMI but i believe i need to remove the modem manager initscript from startup ?
sms-tool works with /dev/ttyUSB2 and i can see feedback with at commands with modem manager such as :

+CSQ: 19,99
+QNWINFO: "FDD LTE","53001","LTE BAND 28",9485
+QTEMP: 46,46,46


below is the output with qmi:
( seems working now)

root@OpenWrt:~# 3ginfo
^C
root@OpenWrt:~# cat /etc/config/3ginfo

config 3ginfo
        option http_port '81'
        option network 'Wwan'
        option device '/dev/ttyUSB2'
        option language 'en'

root@OpenWrt:~# uci show network
network.loopback=interface
network.loopback.proto='static'
network.loopback.ipaddr='127.0.0.1'
network.loopback.netmask='255.0.0.0'
network.loopback.device='lo'
network.globals=globals
network.globals.ula_prefix='fdf6:0e5c:4f41::/48'
network.Adults_Lan=interface
network.Adults_Lan.proto='static'
network.Adults_Lan.ipaddr='192.168.1.1'
network.Adults_Lan.netmask='255.255.255.0'
network.Adults_Lan.ip6assign='60'
network.Adults_Lan.device='br-Adults_Lan'
network.Kids_Lan=interface
network.Kids_Lan.proto='static'
network.Kids_Lan.type='bridge'
network.Kids_Lan.ipaddr='192.168.2.1'
network.Kids_Lan.netmask='255.255.255.0'
network.Wan=interface
network.Wan.device='wan'
network.Wan.proto='dhcp'
network.Wan.metric='1'
network.Wan6=interface
network.Wan6.proto='dhcpv6'
network.Wan6.reqaddress='none'
network.Wan6.reqprefix='auto'
network.Wan6.device='wan'
network.Wan6.metric='2'
network.@device[0]=device
network.@device[0].name='br-Adults_Lan'
network.@device[0].type='bridge'
network.@device[0].ports='lan'
network.@device[1]=device
network.@device[1].name='br-Kids_Lan'
network.@device[2]=device
network.@device[2].name='wan'
network.Wwan=interface
network.Wwan.proto='qmi'
network.Wwan.device='/dev/cdc-wdm0'
network.Wwan.apn='internet'
root@OpenWrt:~# 3ginfo test

+CSQ: 19,99
^SYSINFO: 2,3,0,9,1
+COPS: 0,2,"53001",7
+CREG: 2,1,"A830","AAE02",7
+CGREG: 2,1,"A830","AAE02",7
+CEREG: 2,1,"A830","00AAE02",7
DEVICE:Quectel EP06
---------------------------------------------------------------
/dev/tty      /dev/ttyS0    /dev/ttyUSB1
/dev/ttyMSM0  /dev/ttyS1    /dev/ttyUSB2
/dev/ttyMSM1  /dev/ttyUSB0  /dev/ttyUSB3
---------------------------------------------------------------

T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480  MxCh= 1
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.10
S:  Manufacturer=Linux 5.10.80 xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=xhci-hcd.0.auto
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=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= 5.10
S:  Manufacturer=Linux 5.10.80 xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=xhci-hcd.0.auto
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=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480  MxCh= 1
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.10
S:  Manufacturer=Linux 5.10.80 xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=xhci-hcd.1.auto
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=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=480  MxCh= 0
D:  Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=2c7c ProdID=0306 Rev= 3.10
S:  Manufacturer=Quectel
S:  Product=EP06-E
S:  SerialNumber=0123456789ABCDEF
C:* #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff 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= 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=02(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=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E:  Ad=87(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=86(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= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
E:  Ad=89(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
E:  Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms

T:  Bus=04 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=5000 MxCh= 0
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= 5.10
S:  Manufacturer=Linux 5.10.80 xhci-hcd
S:  Product=xHCI Host Controller
S:  SerialNumber=xhci-hcd.1.auto
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  0mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=(none)
E:  Ad=81(I) Atr=03(Int.) MxPS=   4 Ivl=256ms
---------------------------------------------------------------
3ginfo.@3ginfo[0]=3ginfo
3ginfo.@3ginfo[0].http_port='81'
3ginfo.@3ginfo[0].network='Wwan'
3ginfo.@3ginfo[0].device='/dev/ttyUSB2'
3ginfo.@3ginfo[0].language='en'
root@OpenWrt:~#