How to Use and Test the 4G Module on the OK3588-C EVK?
Forlinx Embedded OK3588-C EVK is a powerful flagship product. It adopts the split design of the SoM+carrier board and is based on the Rockchip RK3588 processor. This processor has ultra-high performance, including 4-core Cortex-A55 and 4-core Cortex-A76 architecture. The Cortex-A55 has a frequency of up to 1.8GHz, and the Cortex-A76 has a frequency of up to 2.4GHz. The built-in NPU has rich functions and high playability. In this article, we will use and test the 4G module on the OK3588-C EVK.
01 Gobinet/QMI-WWAN/PPP Dialing Overview
1. Gobinet Dialing
GOBI - Qualcomm Gobi Wireless Broadband Chip Technology supports multiple mobile broadband networks and numerous mobile operators with a single module. Qualcomm says the new chips will be based on the Gobi 4G LTE wireless baseband--MDM9615 and MDM9215.
This technology allows LTE connectivity under both FDD and TDD networks, and supports both HSPA+ and EV-DO networks, 2G/3G networks. It means that users can use the high-speed 4G LTE network locally and the 3G network elsewhere. The Gobi platform also provides a software enhancement layer on top of the MDM chipset so that wireless connectivity can be made simpler using different technologies.
2. QMI-WWAN Protocol Dialing
QMI: Qualcom Message Interface
MSM: Mobile station mode
AP: Application Procesor
Qualcomm platforms are currently asymmetric multi-core, most notably AP and Modem. How do the two processors communicate? We treat the AP and Modem as two hosts, and the problem becomes very simple; The TCP/IP protocol is not a very successful way to communicate between processes across hosts. Qualcomm does not use this approach, but borrows from the TCP/IP framework design.
Qualcomm MSM Interface is used for the interaction between AP and BP sides. In common saying, it allows the device terminal TE (which can be a mobile phone, PDA, or computer) to operate the AMSS system on the Qualcomm BP side, such as calling functions, reading data, setting NV items in it,etc.
3. PPP Protocol Dialing: Point-to-Point Protocol
PPP (Point-to-Point Protocol) is used in the dialing process for data interaction and negotiation between MS and PC. In the initial dialing phase,the first to open is the direct PPP process between the PC and MS. After successful dialing, it also relies on the PPP protocol to encapsulate IP packets to transmit data.
Official Website Source Code: https://ppp.samba.org
02 Driver Checking
First check if there is USB device information
Second check the device under the dev directory.
In addition,there is also a qcqmi0 under dev.
It means that the driver has integrated GobiNet.
03 Dialing-up Internet
The dialing-up program uses Quectel-CM, which is a 4G connection management program. After cross compilation, the executable bin "Quectel-CM" is obtained. Modify the Makefile file under Quectel-CM to the following, and then make CC:=aarch64 Linux gnu gcc
And then, put this bin on the OK3588-C EVK to boot and execute the bin directly if there is no problem with the above drivers. Copy the quectel-CM executable program to the OK3588-C development board.
$ ./quectel-CM -s ctnet & root@ok3588:~# [03-16_23:36:36:353] WCDMA<E_QConnectManager_Linux&Android_V1.1.34 [03-16_23:36:36:356] ./quectel-CM profile = ctnet///0, pincode = (null) [03-16_23:36:36:364] Find /sys/bus/usb/devices/1-1 idVendor=2c7c idProduct=0125 [03-16_23:36:36:370] Find /sys/bus/usb/devices/1-1:1.4/net/usb0 [03-16_23:36:36:375] Find usbnet_adapter = usb0 [03-16_23:36:36:380] Find /sys/bus/usb/devices/1-1:1.4/GobiQMI/qcqmi0 [03-16_23:36:36:386] Find qmichannel = /dev/qcqmi0 [03-16_23:36:36:454] Get clientWDS = 7 [03-16_23:36:36:486] Get clientDMS = 8 [03-16_23:36:36:518] Get clientNAS = 9 [03-16_23:36:36:550] Get clientUIM = 10 [03-16_23:36:36:583] Get clientWDA = 11 [03-16_23:36:36:614] requestBaseBandVersion EC20CEFAGR06A08M4G [03-16_23:36:36:710] requestGetSIMStatus SIMStatus: SIM_READY [03-16_23:36:36:710] requestSetProfile ctnet///0 [03-16_23:36:36:774] requestGetProfile ctnet///0 [03-16_23:36:36:806] requestRegistrationState2 MCC: 0, MNC: 0, PS: Detached, DataCap: UNKNOW [03-16_23:36:36:837] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED [03-16_23:36:36:902] requestRegistrationState2 MCC: 0, MNC: 0, PS: Detached, DataCap: UNKNOW [03-16_23:36:40:870] requestRegistrationState2 MCC: 0, MNC: 0, PS: Detached, DataCap: UNKNOW [03-16_23:36:41:958] requestRegistrationState2 MCC: 0, MNC: 0, PS: Detached, DataCap: UNKNOW [03-16_23:36:42:118] requestRegistrationState2 MCC: 0, MNC: 0, PS: Attached, DataCap: 1XEVDO_REVB [03-16_23:36:42:182] requestRegistrationState2 MCC: 0, MNC: 0, PS: Attached, DataCap: 1XEVDO_REVB [03-16_23:36:42:214] requestSetupDataCall QMUXResult = 0x1, QMUXError = 0xe [03-16_23:36:44:166] requestRegistrationState2 MCC: 460, MNC: 11, PS: Detached, DataCap: UNKNOW [03-16_23:36:45:158] requestRegistrationState2 MCC: 460, MNC: 11, PS: Attached, DataCap: LTE [03-16_23:36:45:222] requestRegistrationState2 MCC: 460, MNC: 11, PS: Attached, DataCap: LTE [03-16_23:36:45:285] requestSetupDataCall WdsConnectionIPv4Handle: 0x871aef60 [03-16_23:36:45:382] requestRegistrationState2 MCC: 460, MNC: 11, PS: Attached, DataCap: LTE [03-16_23:36:45:413] requestQueryDataCall IPv4ConnectionStatus: CONNECTED [03-16_23:36:45:478] ifconfig usb0 up [03-16_23:36:45:496] Fail to access /usr/share/udhcpc/default.script, errno: 2 (No such file or directory) [03-16_23:36:45:500] busybox udhcpc -f -n -q -t 5 -i usb0 udhcpc: started, v1.30.1 udhcpc: sending discover udhcpc: sending select for 10.21.127.53 udhcpc: lease of 10.21.127.53 obtained, lease time 7200 [03-16_23:36:46:534] requestRegistrationState2 MCC: 460, MNC: 3, PS: Attached, DataCap: 1XEVDO_REVB [03-16_23:36:46:566] requestRegistrationState2 MCC: 460, MNC: 3, PS: Attached, DataCap: 1XEVDO_REVB
It represents the dialing success, of course, we can also check the IP information.
The next step is to ping to see if the network is available.
# ping 126.96.36.199
We can see that it can ping through to the external network.
This way, the device can be used as a mobile gateway and then installed with a wireless network to be a wireless router.