MC7455: Linux Routing - Manually Configure Networking
JM
jmmec2014 at yahoo.com
Sun Aug 13 21:57:17 UTC 2017
OK, it was time to reboot my linux box and the MC7455 and start from scratch.
Everything now works! :)
Below is everything I did in case it helps someone else in the future.
A few other notes:
1. I didn't mess with trying to get an IMS connection also setup. It's not required as far as the experience below indicates; see the "IMS reg state: No Srv" output of AT!GSTATUS? below.
2. Speedtest results: I used testmy.net and got 14.4Mbps down / 4.4Mbps up using Verizon Band 4 (AWS) with a single parabolic grid antenna on MAIN, with a very crappy antenna plugged into AUX. I have other LTE data devices and these speeds with the MC7455 are great. I rarely get anything faster, but have gotten as fast as 20Mbps down / 5Mbps up.
3. Next I will attempt to update the MC7455 firmware using the qmi-firmware-update tool, and hope I don't wind up bricking it. The device came with & is currently running 02.08.02.00_GENERIC, but I plan to upgrade to 02.24.05.06_00_VERIZON_002.034_000.
4. Not sure if the MTU for the host interface (set to 1500) should be decreased to match the "--wds-get-current-settings" (set to 1428 on Verizon).
5. My real intent is to connect this to a RaspberryPi (running ArchLinuxArm) and use your routing examples from this post to forward traffic between wireless and LTE. I'll need to write some configuration & monitoring scripts, and explore other options available in libqmi/qmicli.
https://forums.whirlpool.net.au/forum-replies.cfm?t=2530290&p=18#r360
Really appreciate your help!
-------------
Below I am using /dev/cdc-wdm2, but I'll try later to see if I get the same results with /dev/cdc-wdm1. My linux box is running ArchLinux kernel version 4.12.5, and libqmi/qmicli version 1.18.0
The MC7455 is in a PCI-E <-> USB adapter which is plugged into a powered hub which is plugged into my linux box over a USB2 interface. Plug it in:
# dmesg
[ 114.263226] usb 2-2.5: new high-speed USB device number 3 using xhci_hcd
[ 114.356735] usb 2-2.5: config 1 has an invalid interface number: 8 but max is 4
[ 114.356741] usb 2-2.5: config 1 has an invalid interface number: 10 but max is 4
[ 114.356746] usb 2-2.5: config 1 has no interface number 1
[ 114.356749] usb 2-2.5: config 1 has no interface number 4
[ 114.465395] usbcore: registered new interface driver usbserial
[ 114.465406] usbcore: registered new interface driver usbserial_generic
[ 114.465414] usbserial: USB Serial support registered for generic
[ 114.487762] usbcore: registered new interface driver qcserial
[ 114.487779] usbserial: USB Serial support registered for Qualcomm USB modem
[ 114.488799] qcserial 2-2.5:1.0: Qualcomm USB modem converter detected
[ 114.488909] usb 2-2.5: Qualcomm USB modem converter now attached to ttyUSB0
[ 114.490175] qcserial 2-2.5:1.2: Qualcomm USB modem converter detected
[ 114.490298] usb 2-2.5: Qualcomm USB modem converter now attached to ttyUSB1
[ 114.491551] qcserial 2-2.5:1.3: Qualcomm USB modem converter detected
[ 114.491680] usb 2-2.5: Qualcomm USB modem converter now attached to ttyUSB2
[ 114.509901] usbcore: registered new interface driver cdc_wdm
[ 114.513343] qmi_wwan 2-2.5:1.8: cdc-wdm1: USB WDM device
[ 114.513828] qmi_wwan 2-2.5:1.8 wwan0: register 'qmi_wwan' at usb-0000:19:00.0-2.5, WWAN/QMI device, 0e:13:27:8a:57:7f
[ 114.515098] qmi_wwan 2-2.5:1.10: cdc-wdm2: USB WDM device
[ 114.515547] qmi_wwan 2-2.5:1.10 wwan1: register 'qmi_wwan' at usb-0000:19:00.0-2.5, WWAN/QMI device, 0e:13:27:8a:57:7f
[ 114.515565] usbcore: registered new interface driver qmi_wwan
[ 114.517467] qmi_wwan 2-2.5:1.10 wwp25s0u2u5i10: renamed from wwan1
[ 114.536948] qmi_wwan 2-2.5:1.8 wwp25s0u2u5i8: renamed from wwan0
# ls /dev/cdc*
/dev/cdc-wdm1 /dev/cdc-wdm2
# qmicli -p -d /dev/cdc-wdm2 --wda-get-data-format
[/dev/cdc-wdm2] Successfully got data format
QoS flow header: no
Link layer protocol: 'raw-ip'
Uplink data aggregation protocol: 'disabled'
Downlink data aggregation protocol: 'disabled'
NDP signature: '0'
Uplink data aggregation max size: '0'
Downlink data aggregation max size: '0'
# ip link
4: wwp25s0u2u5i8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 1000
link/ether 0e:13:27:8a:57:7f brd ff:ff:ff:ff:ff:ff
5: wwp25s0u2u5i10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 1000
link/ether 0e:13:27:8a:57:7f brd ff:ff:ff:ff:ff:ff
# ip link set wwp25s0u2u5i10 down
# qmicli -p -d /dev/cdc-wdm2 --set-expected-data-format=raw-ip
[/dev/cdc-wdm2] expected data format set to: raw-ip
# ip link set wwp25s0u2u5i10 up
# ip link
5: wwp25s0u2u5i10: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 1000
link/none
// I need to learn more about available options: right // now just setting up an IPv4 connection.# qmicli -p -d /dev/cdc-wdm2 --wds-start-network="apn=VZWINTERNET,ip-type=4" --device-open-net="net-raw-ip|net-no-qos-header" --device-open-sync --client-no-release-cid
[/dev/cdc-wdm2] Network started
Packet data handle: '62780608'
[/dev/cdc-wdm2] Client ID not released:
Service: 'wds'
CID: '36'
# qmicli -p -d /dev/cdc-wdm2 --wds-get-packet-service-status
[/dev/cdc-wdm2] Connection status: 'connected'
# qmicli -p -d /dev/cdc-wdm2 --wds-get-current-settings
[/dev/cdc-wdm2] Current settings retrieved:
IP Family: IPv4
IPv4 address: 100.112.19.126
IPv4 subnet mask: 255.255.255.252
IPv4 gateway address: 100.112.19.125
IPv4 primary DNS: 198.224.172.135
IPv4 secondary DNS: 198.224.175.135
MTU: 1428
Domains: none
# ip addr add wwp25s0u2u5i10 dev wwp25s0u2u5i10
# ip addr
5: wwp25s0u2u5i10: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000
link/none
inet 100.112.19.126/32 scope global wwp25s0u2u5i10
valid_lft forever preferred_lft forever
# ip route add default dev wwp25s0u2u5i10
# ip route
default dev wwp25s0u2u5i10 scope link
# qmicli -p -d /dev/cdc-wdm2 --wds-get-packet-service-status
[/dev/cdc-wdm2] Connection status: 'connected'
// I did ping too quickly and it failed; even though the IP
// address is already assigned, doesn't look like the PDN
// is truly established with the SGW / PGW yet?
# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
^C
--- 8.8.8.8 ping statistics ---
6 packets transmitted, 0 received, 100% packet loss, time 5077ms
# qmicli -p -d /dev/cdc-wdm2 --wds-get-packet-service-status
[/dev/cdc-wdm2] Connection status: 'connected'
// I waited another 30 seconds and did another ping and
// this time it was successful.
# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=54 time=299 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=54 time=113 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=54 time=121 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=54 time=118 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=54 time=110 ms
^C
--- 8.8.8.8 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4004ms
rtt min/avg/max/mdev = 110.300/152.452/299.193/73.468 ms
# qmicli -p -d /dev/cdc-wdm2 --nas-get-signal-info
[/dev/cdc-wdm2] Successfully got signal info
LTE:
RSSI: '-69 dBm'
RSRQ: '-13 dB'
RSRP: '-102 dBm'
SNR: '9.8 dB'
# minicom -D /dev/ttyUSB2
ATI
Manufacturer: Sierra Wireless, Incorporated
Model: MC7455
Revision: SWI9X30C_02.08.02.00 r5428 CARMD-EV-FRMWR2 2016/01/06 20:38:53
... blah blah ...
AT!GSTATUS?
Current Time: 5109 Temperature: 26
Reset Counter: 1 Mode: ONLINE
System mode: LTE PS state: Attached
LTE band: B4 LTE bw: 20 MHz
LTE Rx chan: 2050 LTE Tx chan: 20050
LTE CA state: NOT ASSIGNED
EMM state: Registered Normal Service
RRC state: RRC Idle
IMS reg state: No Srv
PCC RxM RSSI: -69 RSRP (dBm): -100
PCC RxD RSSI: -90 RSRP (dBm): -132
Tx Power: 0 TAC: 1A02 (6658)
RSRQ (dB): -11.5 Cell ID: 0067A00C (6791180)
SINR (dB): 9.4
It's been connected for at least an hour, and the connection hasn't dropped, which is great!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/libqmi-devel/attachments/20170813/42c96b89/attachment-0001.html>
More information about the libqmi-devel
mailing list