Changes between Version 136 and Version 137 of wireless/modem


Ignore:
Timestamp:
11/20/2025 08:09:30 PM (45 hours ago)
Author:
Ryan Erbstoesser
Comment:

add fn920 info

Legend:

Unmodified
Added
Removed
Modified
  • wireless/modem

    v136 v137  
    99M2M Cellular modems allow embedded systems to communicate and connect to the network in places that may not have other standard connections such as !WiFi or Ethernet. Embedded systems are being deployed in more remote locations that still require and mandate an internet connection. Gateworks boards have Mini-PCI-Express slots that allow for a wide range of cellular modems to be connected.
    1010
    11 This wiki page is created for use on [https://www.gateworks.com/products/ Gateworks Rugged and Industrial Single Board Computers] Made in the USA.
     11This wiki page is created for use on [https://www.gateworks.com/products/ Gateworks Rugged and Industrial Single Board Computers] Made infn the USA.
    1212
    1313You will find below examples and setup instructions for many devices Gateworks has qualified.
     
    21082108Confirm the interface is up with an IP with the ifconfig command.
    21092109
     2110== Telit FN920 PCIe Mode
     2111
     2112The Telit FN920C04 supports PCIe, which is new for modems. PCIe is valuable for faster bus speeds compared to USB. This requires a new MHI driver only in latest kernels (6.12+) available on Venice SBCs. Contact Gateworks support for other board families. 
     2113
     2114Requirements:
     2115 * M.2 Slot on Venice GW7400 / GW82xx / Catalina GW9xxx / or M.2 Adapter
     2116 * Latest 6.12 kernel or newer from Gateworks
     2117 * Pull pin 20 low to enable PCIe mode (via adapter or GPIO)
     2118
     2119Kernel Requirements:
     2120{{{
     2121MHI_BUS
     2122MHI_BUS_PCI_GENERIC
     2123MHI_NET
     2124RMNET
     2125WWAN
     2126WWAN_CORE
     2127MHI_WWAN_CTRL
     2128}}}
     2129
     2130These can be found on a live running system with the following example:
     2131{{{
     2132root@noble-venice:~# zcat /proc/config.gz | grep MHI
     2133CONFIG_QRTR_MHI=m
     2134CONFIG_MHI_BUS=m
     2135# CONFIG_MHI_BUS_DEBUG is not set
     2136CONFIG_MHI_BUS_PCI_GENERIC=m
     2137# CONFIG_MHI_BUS_EP is not set
     2138CONFIG_MHI_NET=m
     2139CONFIG_MHI_WWAN_CTRL=m
     2140CONFIG_MHI_WWAN_MBIM=m
     2141}}}
     2142
     2143Check if modem shows up on PCI bus with a lspci:
     2144{{{
     2145root@noble-venice:~# lspci
     214603:00.0 Unassigned class [ff00]: Qualcomm Technologies, Inc Device 011a
     2147}}}
     2148
     2149Confirm the mhi_hwip0 interface is seen in /sys/class/net and there are wwan0 devices:
     2150{{{
     2151root@noble-venice:~# ls /sys/class/net/
     2152can0  can1  eth0  eth1  lan1  lan2  lan3  lan4  lan5  lo  mhi_hwip0
     2153
     2154root@noble-venice:~# ls /dev/wwan0*
     2155/dev/wwan0at0  /dev/wwan0at1  /dev/wwan0qcdm0  /dev/wwan0qmi0
     2156}
     2157}}
     2158
     2159Create a file /etc/qmi-network.conf and enter in the APN:
     2160{{{
     2161root@noble-venice:~# cat /etc/qmi-network.conf
     2162    APN=HOLOGRAM
     2163    APN_USER=
     2164    APN_PASS=
     2165    PROXY=yes
     2166}}}
     2167
     2168Now connect to network (example with Hologram sim)
     2169{{{
     2170root@noble-venice:~# qmi-network /dev/wwan0qmi0 start
     2171Loading profile at /etc/qmi-network.conf...
     2172    APN: HOLOGRAM
     2173    APN user: unset
     2174    APN password: unset
     2175    qmi-proxy: yes
     2176    IP_TYPE: unset
     2177    PROFILE: unset
     2178Checking data format with 'qmicli -d /dev/wwan0qmi0 --wda-get-data-format --device-open-proxy'...
     2179Device link layer protocol retrieved: raw-ip
     2180Getting expected data format with 'qmicli -d /dev/wwan0qmi0 --get-expected-data-format'...
     2181error: cannot get expected data format: Setting expected data format management is unsupported by the driver
     2182Expected link layer protocol not retrieved: kernel unsupported
     2183Updating device link layer protocol with 'qmicli -d /dev/wwan0qmi0 --wda-set-data-format=802-3 --device-open-proxy'...
     2184New device link layer protocol retrieved: raw-ip
     2185Starting network with 'qmicli -d /dev/wwan0qmi0 --wds-start-network=apn='HOLOGRAM'  --client-no-release-cid --device-open-proxy'...
     2186Saving state at /tmp/qmi-network-state-wwan0qmi0... (CID: 14)
     2187Saving state at /tmp/qmi-network-state-wwan0qmi0... (PDH: 3767202208)
     2188Network started successfully
     2189}}}
     2190
     2191Get IP address for modem interface mhi_hwip0:
     2192{{{
     2193root@noble-venice:~# qmicli -d /dev/wwan0qmi0 --wds-get-current-settings
     2194[/dev/wwan0qmi0] Current settings retrieved:
     2195           IP Family: IPv4
     2196        IPv4 address: 10.200.181.105
     2197    IPv4 subnet mask: 255.255.255.252
     2198IPv4 gateway address: 10.200.181.106
     2199    IPv4 primary DNS: 8.8.8.8
     2200  IPv4 secondary DNS: 8.8.4.4
     2201                 MTU: 1500
     2202             Domains: none
     2203
     2204}}}
     2205
     2206Manually bring up mhi_hwip0 and assign it the IP from above:
     2207{{{
     2208root@noble-venice:~# ifconfig mhi_hwip0 up
     2209root@noble-venice:~# ifconfig mhi_hwip0 10.200.181.105 netmask 255.255.255.252
     2210root@noble-venice:~# route add default gw 10.200.181.106 mhi_hwip0
     2211root@noble-venice:~# echo "nameserver 8.8.8.8" > /etc/resolv.conf
     2212root@noble-venice:~# echo "nameserver 8.8.4.4" >> /etc/resolv.conf
     2213root@noble-venice:~# ping www.google.com
     2214}}}
     2215
     2216=== Troubleshooting
     2217 * Be sure the modem PCIe ID is included the the MHI PCIe driver (kernel commit by Telit in 6.16 kernel [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/bus/mhi/host/pci_generic.c?id=6348f62ef7ecc5855b710a7d4ea682425c38bb80 here])
     2218 * Be sure pin 20 is pulled low for Mini-PCIe mode
     2219 * Be sure all MHI related drivers are turned on in the kernel
     2220{{{
     2221root@noble-venice:~# dmesg | grep elit
     2222[    6.426205] mhi-pci-generic 0000:03:00.0: MHI PCI device found: telit-fn920c04
     2223[   25.232512] usb 1-1.1: Manufacturer: Telit Cinterion
     2224
     2225}}}
     2226
     2227
     2228
    21102229[=#gateworksgw16162]
    21112230== Gateworks GW16162 / Telit CMB100