I am trying to install a Huawei USB modem (MS2372h) on a Colibri iMX7D 1GB SOM and Colibri Evaluation Board (V3.2B). My preference is to have the modem managed by Connman and Ofono
I first attempted this by using the Toradex Easy Installer to install the Toradex provided image (2.7.4).
# uname -a
Linux colibri-imx7-emmc 4.1.44-2.7.4+gb1555bf #1 SMP Wed Oct 4 21:39:05 UTC 2017 armv7l GNU/Linux
The modem is recognised on insertion as a ttyUSBx device.
# dmesg
[ 3039.680825] usb 1-1.1: new high-speed USB device number 5 using ci_hdrc
[ 3039.868348] usbcore: registered new interface driver option
[ 3039.874160] usbserial: USB Serial support registered for GSM modem (1-port)
[ 3039.881689] option 1-1.1:1.0: GSM modem (1-port) converter detected
[ 3039.888373] usb 1-1.1: GSM modem (1-port) converter now attached to ttyUSB0
[ 3039.895659] option 1-1.1:1.1: GSM modem (1-port) converter detected
[ 3039.902452] usb 1-1.1: GSM modem (1-port) converter now attached to ttyUSB1
[ 3039.909561] option 1-1.1:1.2: GSM modem (1-port) converter detected
[ 3039.916265] usb 1-1.1: GSM modem (1-port) converter now attached to ttyUSB2
#lsusb
Bus 001 Device 005: ID 12d1:1596 Huawei Technologies Co., Ltd.
I have used opkg to install ppp, ofono, and ofono-tests; however I have not been successful in finding the modem when I use the test scripts from Ofono.
The following yields nothing:
# ofono -d
# ./list-modems
So, I abandoned the ofono approach for now and have been trying to just get it working based on the following article https://www.toradex.com/blog/how-to-use-gsm-3g-4g-in-embedded-linux-systems. Using the stock image (which I now doesn’t provide ppp or acm support), I was able to communicate with the modem, but obviously it didn’t work.
Here is my ppp log:
OK
CONNECT
Script chat -v -f /etc/ppp/chat/vodafone-3g.chat finished (pid 711), status = 0x0
Serial connection established.
using channel 5
Using interface ppp0
Connect: ppp0 <--> /dev/ttyUSB0
sent [LCP ConfReq id=0x3 <asyncmap 0xa0000> <magic 0x1d415972> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x1 <accomp> <pcomp> <asyncmap 0x0> <mru 1500> <magic 0x547> <auth chap MD5>]
No auth is possible
sent [LCP ConfRej id=0x1 <auth chap MD5>]
rcvd [LCP ConfAck id=0x3 <asyncmap 0xa0000> <magic 0x1d415972> <pcomp> <accomp>]
rcvd [LCP ConfReq id=0x2 <accomp> <pcomp> <asyncmap 0x0> <mru 1500> <magic 0x547>]
sent [LCP ConfAck id=0x2 <accomp> <pcomp> <asyncmap 0x0> <mru 1500> <magic 0x547>]
sent [LCP EchoReq id=0x0 magic=0x1d415972]
kernel does not support PPP filtering
sent [CCP ConfReq id=0x3 <deflate 15> <deflate(old#) 15>]
sent [IPCP ConfReq id=0x8 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
rcvd [LCP EchoRep id=0x0 magic=0x547]
rcvd [IPCP ConfReq id=0x1]
sent [IPCP ConfNak id=0x1 <addr 0.0.0.0>]
rcvd [LCP ProtRej id=0x3 80 fd 01 03 00 0c 1a 04 78 00 18 04 78 00]
Protocol-Reject for 'Compression Control Protocol' (0x80fd) received
rcvd [IPCP ConfNak id=0x8]
sent [IPCP ConfReq id=0x9 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
rcvd [IPCP ConfReq id=0x2]
sent [IPCP ConfAck id=0x2]
rcvd [LCP TermReq id=0x3]
LCP terminated by peer
sent [LCP TermAck id=0x3]
rcvd [IPCP TermReq id=0x3]
Discarded non-LCP packet when LCP not open
Hangup (SIGHUP)
Modem hangup
Connection terminated.
So, obviously, the stock image I installed does not support ppp filtering. I did the test above because if I compile the kernel myself and enable PPP and USB ACM options as indicated in the article above, then I am unable to see the modem mount as a ttyUSBx or ttyACMx device.
With my custom kernel, I get:
# dmesg
[ 83.411050] usb 1-1.1: new high-speed USB device number 5 using ci_hdrc
# lsusb
Bus 001 Device 005: ID 12d1:1596 Huawei Technologies Co., Ltd.
# ls /dev/tty*
/dev/tty /dev/tty19 /dev/tty3 /dev/tty40 /dev/tty51 /dev/tty62
/dev/tty0 /dev/tty2 /dev/tty30 /dev/tty41 /dev/tty52 /dev/tty63
/dev/tty1 /dev/tty20 /dev/tty31 /dev/tty42 /dev/tty53 /dev/tty7
/dev/tty10 /dev/tty21 /dev/tty32 /dev/tty43 /dev/tty54 /dev/tty8
/dev/tty11 /dev/tty22 /dev/tty33 /dev/tty44 /dev/tty55 /dev/tty9
/dev/tty12 /dev/tty23 /dev/tty34 /dev/tty45 /dev/tty56 /dev/ttymxc0
/dev/tty13 /dev/tty24 /dev/tty35 /dev/tty46 /dev/tty57 /dev/ttymxc1
/dev/tty14 /dev/tty25 /dev/tty36 /dev/tty47 /dev/tty58 /dev/ttymxc2
/dev/tty15 /dev/tty26 /dev/tty37 /dev/tty48 /dev/tty59
/dev/tty16 /dev/tty27 /dev/tty38 /dev/tty49 /dev/tty6
/dev/tty17 /dev/tty28 /dev/tty39 /dev/tty5 /dev/tty60
/dev/tty18 /dev/tty29 /dev/tty4 /dev/tty50 /dev/tty61
I’m building my kernel using the following steps:
//get latest kernel source
# git clone -b toradex_4.1-2.0.x-imx git://git.toradex.com/linux-toradex.git
//get toolchain
#cd
#wget -c https://releases.linaro.org/components/toolchain/binaries/6.2-2016.11/arm-linux-gnueabihf/gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf.tar.xz
# tar xvf gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf.tar.xz
# ln -s gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf gcc-linaro
/set paths for cross-compile
# export ARCH=arm
# export PATH=~/gcc-linaro/bin:$PATH
# export CROSS_COMPILE=arm-linux-gnueabihf-
//get image files
# cd
# wget http://files.toradex.com/Colibri/Linux/Images/Colibri-iMX7_LXDE-Image_2.7-20180104.tar.bz2
# sudo tar xjvf Colibri-iMX7_LXDE-Image_2.7-20180104.tar.bz2
// install device tree compiler
# sudo apt-get install device-tree-compiler
# dtc -v
//make and compile kernel
# cd linux-toradex
# make colibri_imx7_defconfig
***********enable ppp and acm options in kernel config******************
# make -j3 zImage 2>&1 | tee build.log
# make imx7d-colibri-emmc-eval-v3.dtb
# make -j3 modules
//copy zImage and imx7d-colibri-emmc-eval-v3.dtb) to the Easy Installer bootfs
//compress and export kernel modules
//Run Easy Install, install custom image
//copy kernel modules to rootfs, extract, and then run depmod and reboot
I’ve reached a point of not really knowing what to try next and could really need some guidance.
Does anyone have any suggestions to help me get this modem installed? I am a Linux novice, so if I haven’t provide enough information, then please let me know and I’ll post more detailed logs if required.