LTE Stick + Raspberry Pi

Hi!
I have installed OpenWrt on my Raspberry Pi 3B+.
(Just for fun)
That worked great so far.
Then I remembered, I still have a LTE stick in my car.
To be more precise, this model:
XSStick®LTE Plus
https://www.4g-systems.com/produkte/xsstick/xsstick-lte-plus/

(Everything in German!)
The stick is distributed by Volkswagen (Seat, Skoda, ...). Therefore, I have it.

I tried the instructions on the internet to get the stick to work.
Without driver I see the stick as "USB Modem", Vendor ID "1c9e".

With the following packages I have at least managed that OpenWrt seems to recognize the stick cleanly.
Installed Packages: usb-modeswitch kmod-usb-net kmod-usb-wdm kmod-usb-net-qmi-wwan uqmi kmod-usb-net-cdc-mbim kmod-usb-serial-option kmod-usb-serial kmod-usb-serial-wwan luci-proto-qmi umbim
There are now ttyUSB0, ttyUSB1 and ttyUSB2 available.
I just don't understand at the moment how to configure the stick correctly.
I would prefer it to be configurable via Luci.
The LED always stays RED, it should turn GREEN once the modem has successfully established a connection.

Can anyone tell me how to connect to the internet with the stick?

Show the output of cat /sys/kernel/debug/usb/devices
Make sure your RPi is powered by a very good power supply.

1 Like

Hi!
Here is the result of devices:

root@OpenWrt:~# cat /sys/kernel/debug/usb/devices

T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480  MxCh= 1
B:  Alloc=  0/800 us ( 0%), #Int= -3, #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.176 dwc_otg_hcd
S:  Product=DWC OTG Controller
S:  SerialNumber=3f980000.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=02 MxPS=64 #Cfgs=  1
P:  Vendor=0424 ProdID=2514 Rev= b.b3
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  2mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=01 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   1 Ivl=256ms
I:* If#= 0 Alt= 1 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=02 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= 3
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=02 MxPS=64 #Cfgs=  1
P:  Vendor=0424 ProdID=2514 Rev= b.b3
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  2mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=01 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   1 Ivl=256ms
I:* If#= 0 Alt= 1 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=02 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   1 Ivl=256ms

T:  Bus=01 Lev=03 Prnt=03 Port=00 Cnt=01 Dev#=  4 Spd=480  MxCh= 0
D:  Ver= 2.10 Cls=ff(vend.) Sub=00 Prot=ff MxPS=64 #Cfgs=  1
P:  Vendor=0424 ProdID=7800 Rev= 3.00
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=  2mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=ff Driver=lan78xx
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=83(I) Atr=03(Int.) MxPS=  16 Ivl=1ms

T:  Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#=  5 Spd=480  MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=1c9e ProdID=7605 Rev= 2.00
S:  Manufacturer=USB Modem
S:  Product=USB Modem
C:* #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
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=ff Prot=ff 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=ff Prot=ff 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=ff Prot=ff 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 use the RPi Power Supply.
The Pi has enough power available.

According to this you need to use legacy PPP configuration.

The stick has AT command interfaces on interfaces 1, 2, and 3, and does PPP on interface 3.

1 Like

Hi!
I tried to establish a PPP connection via ttyUSB2.
Unfortunately this does not seem to work.
After a while appears at the interface:
Error: Unknown error (NEGOTIATION_FAILED)

I only added the APN and the PIN code of the SIM card in the configuration, since per Luci these options are not available.

config interface 'lte'
        option proto 'ppp'
        option ipv6 'auto'
        option pincode '1234'
        option apn 'pinternet.interkom.de'
        option device '/dev/ttyUSB2'

For testing, I am currently using a simple prepaid SIM from the network provider o2 Telefonica.

However, via dmesg I see that the interface is permanently "renamed".

[   11.650992] lan78xx 1-1.1.1:1.0 eth0: kevent 4 may have been dropped
[   11.668514] lan78xx 1-1.1.1:1.0 eth0: Link is Down
[   11.679990] br-lan: port 1(eth0) entered blocking state
[   11.688969] br-lan: port 1(eth0) entered disabled state
[   11.698444] device eth0 entered promiscuous mode
[   14.400245] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[   15.761829] lan78xx 1-1.1.1:1.0 eth0: Link is Up - 1Gbps/Full - flow control rx/tx
[   15.773810] br-lan: port 1(eth0) entered blocking state
[   15.782728] br-lan: port 1(eth0) entered forwarding state
[   15.792015] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
[   25.429008] usb 1-1.2: new high-speed USB device number 5 using dwc_otg
[   25.581106] usb 1-1.2: New USB device found, idVendor=1c9e, idProduct=7605, bcdDevice= 2.00
[   25.593082] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[   25.603968] usb 1-1.2: Product: USB Modem
[   25.611331] usb 1-1.2: Manufacturer: USB Modem
[   25.621198] option 1-1.2:1.1: GSM modem (1-port) converter detected
[   25.631275] usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB0
[   25.642443] option 1-1.2:1.2: GSM modem (1-port) converter detected
[   25.652414] usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB1
[   25.663519] option 1-1.2:1.3: GSM modem (1-port) converter detected
[   25.673425] usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB2
[   64.993707] ppp-lte: renamed from ppp0
[   96.285860] ppp-lte: renamed from ppp0
[  127.555543] ppp-lte: renamed from ppp0

No idea what configurations I still need to add.
According to this doc HERE everything necessary should be in there.

Try adding option pppd_options 'debug' to the configuration and check your syslog after the next connection attempt.

1 Like

Here is an snippet of the log:

Mon Jun 26 19:06:33 2023 daemon.notice netifd: Interface 'lte' is setting up now
Mon Jun 26 19:06:33 2023 daemon.notice pppd[3271]: pppd 2.4.9 started by root, uid 0
Mon Jun 26 19:06:33 2023 daemon.debug pppd[3271]: using channel 6
Mon Jun 26 19:06:33 2023 kern.info kernel: [  222.861156] ppp-lte: renamed from ppp0
Mon Jun 26 19:06:33 2023 daemon.info pppd[3271]: Renamed interface ppp0 to ppp-lte
Mon Jun 26 19:06:33 2023 daemon.info pppd[3271]: Using interface ppp-lte
Mon Jun 26 19:06:33 2023 daemon.notice pppd[3271]: Connect: ppp-lte <--> /dev/ttyUSB2
Mon Jun 26 19:06:33 2023 daemon.debug pppd[3271]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xbe264a6e>]
Mon Jun 26 19:06:35 2023 daemon.info pppd[3271]: Terminating on signal 15
Mon Jun 26 19:06:35 2023 daemon.debug pppd[3271]: sent [LCP TermReq id=0x2 "User request"]
Mon Jun 26 19:06:38 2023 daemon.debug pppd[3271]: sent [LCP TermReq id=0x3 "User request"]
Mon Jun 26 19:06:40 2023 daemon.notice netifd: Interface 'lte' is now down
Mon Jun 26 19:06:40 2023 daemon.notice netifd: Interface 'lte' is setting up now
Mon Jun 26 19:06:40 2023 daemon.notice pppd[3384]: pppd 2.4.9 started by root, uid 0
Mon Jun 26 19:06:40 2023 daemon.notice pppd[3384]: Removed stale lock on ttyUSB2 (pid 3271)
Mon Jun 26 19:06:40 2023 daemon.debug pppd[3384]: using channel 7
Mon Jun 26 19:06:40 2023 kern.info kernel: [  229.683461] ppp-lte: renamed from ppp0
Mon Jun 26 19:06:40 2023 daemon.info pppd[3384]: Renamed interface ppp0 to ppp-lte
Mon Jun 26 19:06:40 2023 daemon.info pppd[3384]: Using interface ppp-lte
Mon Jun 26 19:06:40 2023 daemon.notice pppd[3384]: Connect: ppp-lte <--> /dev/ttyUSB2
Mon Jun 26 19:06:40 2023 daemon.debug pppd[3384]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x322223ae>]
Mon Jun 26 19:06:43 2023 daemon.debug pppd[3384]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x322223ae>]
Mon Jun 26 19:06:46 2023 daemon.debug pppd[3384]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x322223ae>]
Mon Jun 26 19:06:49 2023 daemon.debug pppd[3384]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x322223ae>]
Mon Jun 26 19:06:52 2023 daemon.debug pppd[3384]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x322223ae>]
Mon Jun 26 19:06:55 2023 daemon.debug pppd[3384]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x322223ae>]
Mon Jun 26 19:06:58 2023 daemon.debug pppd[3384]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x322223ae>]
Mon Jun 26 19:07:01 2023 daemon.debug pppd[3384]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x322223ae>]
Mon Jun 26 19:07:04 2023 daemon.debug pppd[3384]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x322223ae>]
Mon Jun 26 19:07:07 2023 daemon.debug pppd[3384]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x322223ae>]
Mon Jun 26 19:07:10 2023 daemon.warn pppd[3384]: LCP: timeout sending Config-Requests
Mon Jun 26 19:07:10 2023 daemon.notice pppd[3384]: Connection terminated.
Mon Jun 26 19:07:11 2023 daemon.notice pppd[3384]: Modem hangup
Mon Jun 26 19:07:11 2023 daemon.info pppd[3384]: Exit.
Mon Jun 26 19:07:11 2023 daemon.notice netifd: Interface 'lte' is now down
Mon Jun 26 19:07:11 2023 daemon.notice netifd: Interface 'lte' is setting up now
Mon Jun 26 19:07:11 2023 daemon.notice pppd[3490]: pppd 2.4.9 started by root, uid 0
Mon Jun 26 19:07:11 2023 daemon.debug pppd[3490]: using channel 8
Mon Jun 26 19:07:11 2023 kern.info kernel: [  260.951919] ppp-lte: renamed from ppp0
Mon Jun 26 19:07:11 2023 daemon.info pppd[3490]: Renamed interface ppp0 to ppp-lte
Mon Jun 26 19:07:11 2023 daemon.info pppd[3490]: Using interface ppp-lte
Mon Jun 26 19:07:11 2023 daemon.notice pppd[3490]: Connect: ppp-lte <--> /dev/ttyUSB2
Mon Jun 26 19:07:11 2023 daemon.debug pppd[3490]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x4a64d8bd>]
Mon Jun 26 19:07:14 2023 daemon.debug pppd[3490]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x4a64d8bd>]
Mon Jun 26 19:07:17 2023 daemon.debug pppd[3490]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x4a64d8bd>]
Mon Jun 26 19:07:20 2023 daemon.debug pppd[3490]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x4a64d8bd>]
Mon Jun 26 19:07:23 2023 daemon.debug pppd[3490]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x4a64d8bd>]
Mon Jun 26 19:07:26 2023 daemon.debug pppd[3490]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x4a64d8bd>]
Mon Jun 26 19:07:29 2023 daemon.debug pppd[3490]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x4a64d8bd>]
Mon Jun 26 19:07:32 2023 daemon.debug pppd[3490]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x4a64d8bd>]

Shouldn't the proto be 3g and the connection be established via comgt? That's all explained in your Wiki link, including steps to configure it using LuCI (after installing luci-proto-3g).

3 Likes

Hmm no idea what I did differently now, but after installing luci-proto-3g and adding a new interface with the interface ttyUSB2 + PIN it worked now.
The stick is online.

Then I uninstalled the packages out of interest:
mod-usb-net-qmi-wwan luci-proto-qmi uqmi

Then restarted the Pi again ... and it still works.

The term 3G in the package names is just a bit badly chosen, since I have to use 4G because 3G is switched off in Germany.
Has me a little confused.

Thanks for your help :slight_smile:

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.