MC7710 rndis mode

Hi.

I have MC7710 airprime device and I use ubuntu linux, I read document: “2130617 Standard AT Commands v7.pdf”. The device works fine in ppp (Point-to-point) mode with wvdial and pppd, I want to use /dev/ttyUSBX interface for detect signal level and others features, but pppd and wvdial open /dev/ttyUSBX in exclusive mode. I think RNDIS mode is my solution, I see wwan0 interface in linux for mc7710. I do next sequence for connect to ISP:
at+cfun=1
at+cgdcont=1,“IP”,“internet”
at!scdftprof=1
at!scprof=1,"",0,0,0,0
at!scact=1,1
at!scpaddr=1

Result from: at!scpaddr=1 gave my correct IP, but when I set this address to wwan0 I have nothing, no packets RXed/TXed on wwan0. Moreover I have not default route for this IP (As far as I know there is not AT command for print gateway IP). Can you suggest me correct sequence for use RNDIS mode and connect to ISP?

my lusb:
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 003 Device 002: ID 046d:c05a Logitech, Inc. Optical Mouse M90
Bus 003 Device 003: ID 046d:c312 Logitech, Inc. DeLuxe 250 Keyboard
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 148f:3070 Ralink Technology, Corp. RT2870/RT3070 Wireless Adapter
Bus 001 Device 004: ID 1199:68a3 Sierra Wireless, Inc. MC8700 Modem

my lsmod:
Module Size Used by
ppp_deflate 12806 0
zlib_deflate 26445 1 ppp_deflate
bsd_comp 12785 0
ppp_async 17205 1
bnep 17736 2
rfcomm 37374 0
bluetooth 207859 10 bnep,rfcomm
arc4 12543 2
rt2800usb 22646 0
rt2x00usb 20041 1 rt2800usb
binfmt_misc 17236 1
rt2800lib 69828 1 rt2800usb
rt2x00lib 48786 3 rt2x00usb,rt2800lib,rt2800usb
mac80211 504437 3 rt2x00lib,rt2x00usb,rt2800lib
cfg80211 410822 2 mac80211,rt2x00lib
crc_ccitt 12627 2 rt2800lib,ppp_async
snd_hda_codec_hdmi 36253 1
sierra_net 13385 0
sierra 13709 1
usbnet 27221 1 sierra_net
snd_hda_codec_via 23156 1
usbserial 31987 4 sierra
snd_hda_intel 38138 3
snd_hda_codec 163784 3 snd_hda_codec_hdmi,snd_hda_codec_via,snd_hda_intel
coretemp 13131 0
snd_hwdep 13272 1 snd_hda_codec
snd_pcm 80965 3 snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel
i915 554363 2
snd_page_alloc 14230 2 snd_pcm,snd_hda_intel
snd_seq_midi 13132 0
kvm 362270 0
snd_seq_midi_event 14475 1 snd_seq_midi
snd_rawmidi 25382 1 snd_seq_midi
drm_kms_helper 47056 1 i915
snd_seq 51280 2 snd_seq_midi_event,snd_seq_midi
drm 240066 3 i915,drm_kms_helper
snd_seq_device 14137 3 snd_seq,snd_rawmidi,snd_seq_midi
i2c_algo_bit 13197 1 i915
snd_timer 24411 2 snd_pcm,snd_seq
eeepc_wmi 12983 0
psmouse 81118 0
snd 62100 16 snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_hda_codec_via,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec,snd_hda_intel,snd_seq_device
serio_raw 13061 0
asus_wmi 23652 1 eeepc_wmi
soundcore 14599 1 snd
sparse_keymap 13658 1 asus_wmi
microcode 18286 0
ppdev 12810 0
video 18776 2 i915,asus_wmi
parport_pc 31968 1
wmi 18590 1 asus_wmi
mac_hid 13037 0
lp 13299 0
parport 40753 3 lp,ppdev,parport_pc
reiserfs 228980 1
hid_generic 12492 0
e100 35903 0
sd_mod 44444 3
r8169 61701 0
usbhid 45683 0
hid 82681 2 hid_generic,usbhid

my kernel:
Linux ubuntu-roman 3.10.7mptcp-v087-5+ #1 SMP Fri Nov 15 17:56:08 NOVT 2013 i686 i686 i686 GNU/Linux

Thanks!

There are at least 4 /dev/ttyUSBx port available, the 2nd last for AT command and last for PPP data call.
So, you don’t really need to care about the enumerated network interface but use the last port for PPPD and 2nd last for AT command (e.g. signal strength, etc).

Still, for the network interface issue, have you try to use dhcp client instead of assign the IP address manually?

Please try “dhclient wwan0” or equivalent to get IP automatically.

Hi!
Thank you for reply!

Yes, I have 4 /dev/ttyUSBx ports and I run pppd on ttyUSB4 and after that on port ttyUSB3. I can watch signal strength or temp. with minicom. It works.
I have two different MC7710 modems with numbers: MC7710_1101773 (1199:68a3 MC7710_1101363) and MC7710_1101772 (1199:68a2 MC7710_1101364) and if i want to use Direct IP mode I do next steps:
AT log for MC7710_1101773 (1199:68a3):

at!custom=“DHCP6ENABLE”,1
ERROR

at+cfun=1
OK

at+cgdcont=1,“IP”,“CustomAPN”
OK

at!scdftprof=1
OK

at!scprof=1,“”,0,0,0,0
OK

at!scact=1,1
OK

at!scpaddr=1
OK

at!custom=“DHCP6ENABLE”,1
ERROR

Command at!custom=“DHCP6ENABLE”,1 always returns error, but I tried to run dhcp client and it get IP. Direct IP works on 1101363. About MC7710_1101772 (1199:68a2).
AT log for MC7710_1101772 (1199:68a2):

at!custom=“DHCP6ENABLE”,1
ERROR

at+cfun=1
OK

at+cgdcont=1,“IP”,“CustomAPN”
OK

at!scdftprof=1
OK

at!scprof=1,“”,0,0,0,0
OK

at!scact=1,1
+CME ERROR: no network service

As far as I understood Direct IP does not work on this modem? Can I use custom fw or something else for enable direct IP on this modem?

Thanks!

1199:68a2 is a device in QMI mode, 1199:68a3 is in DirectIP mode. You cannot use AT!SCACT to connect in QMI mode.

Ask your FAE how to change it to DirectIP mode or use QMI drivers + userspace utilities. I’d of course recommend the qmi_wwan driver with libqmi, but I’m not neutral. The Sierra Wireless Linux QMI SDK is another alternative.

Ok. Thank you so much for support!

Sorry to cut in, but it sounds like you know about QMI: STK (SIM Toolkit) AT Commands on EM8805/EM7305 - #6 by awneil :question:

Well, I do know some of it. But it’s a multiplex of an increasing set of services, each with an increasing set of commands, and with an increasing set of TLVs associated with existing commands. So I don’t want to say that I know QMI :slight_smile:

I wrote the qmi_wwan driver in mainline Linux. Which is completely protocol agnostic - there is no QMI in there at all, unlike the SWI/Qualcomm QMI driver. But I have of course also followed the parallell development of the different open source QMI userspace utilities, as well as writing a few test scripts during driver develoment. So I believe I know the parts of QMI necessary to connect. The rest is pretty blank.

Qualcomm has documented a lot of the QMI services under NDA. You can find it in the Gobi docs on their developer pages. But luckily they have also been running the CodeAurora Gobi project, which has made the most important parts available under a BSD license. This has allowed Open Source projects like libqmi.

I recommend searching all those sources for more details about QMI. But be careful with the Qualcomm NDA’d docs if you want to/must publish source code. The CodeAurora Gobi project has documented so much that chances are high you don’t need it anyway.

Thanks - I’ve made a separate thread: STK (SIM Toolkit); aka Card Application Toolkit (CAT) - QMI?