Steps to get the MC7455 to work under linux

This is my first modem from Sierra and it seems there are some problems with the MC7455 that I am trying to overcome. It would be helpful if other threads where someone got the device working they could share with the rest of us.

Anyway, please help by listing the minimum Kernel and driver versions required to make this thing work and actually pass data as a network device.

Here is what I have tried under 4.4.3 kernel.

Downloaded, build and installed the GobiSerial and GobiNet drivers version S2.25N2.36.

Load the modules and tried qmicli commands and couldn’t get anything to work.

Rebuilt GobiNet with RAWIP=1, installed and loaded the modules.

Still couldn’t get qmicli command to do anything with the device.

I am fixing the device permissions on the /dev/qcqmi0 and /dev/qcqmi1 interfaces, I have also tried this as root.

I downloaded the Linux-QMI-SDK and it’s document but the document has build instructions that don’t even match the source code in the package. I build the Connection_Manager and got it running but it throws out errors when it tries to connect.

Any tips on what is working for others would be nice.

Good. GobiSerial and GobiNet is the officially supported solution, and should work fine with 4.4.3 and older kernels. But it requires the Sierra Wireless Linux-QMI-SDK. The community supported and developed qmicli/libqmi will not work with those drivers.

If you want to use qmicli, then you must use the mainline qcserial and qmi_wwan drivers instead. And since raw-ip support was introduced in qmi_wwan in Linux v4.5, you need at least that version or newer. v4.4.3 won’t do. Note that raw-ip is a runtime, per device, switch in qmi_wwan. It is disabled by default. Use a recent qmicli to enable it (or just use ModemManager, which will automatically Do The Right Thing).

Yes, it is a bit confusing with the two different solutions. And I have to take more than a little of the blame for that situation :slight_smile: But you can also consider it a luxury problem. If you define your needs, then it is usually easy to decide on one or the other solution. Are you developing a commercial embedded solution? => use the Sierra supported drivers and SDK. Are you trying to connect your personal Linux laptop to the Internet? => use the distro supported solution - which normally means the mainline qmi_wwan and qcserial drivers, with libqmi and ModemManager as userspace frontends.

(Note it migt still take a while before your favourite distro supports raw-ip in qmi_wwan, since this requires a very new v4.5 kernel and a similarily recent libqmi)

There is also a third alternative: Drop QMI and use the modem in MBIM mode. This will work with older Linux versions too. But you lose all the QMI functionality, so this is probably mostly interesting for those dual-booting Windows/Linux.

The SDK sample applications should work, and AFAIK the build instructions are matching. Could you please provide a few more details about what you did to build it and what errors it throws?

I downloaded the Linux QMI SDK package and the document. The document is rev 1.23 from Dec 2015.

Section 2.3.5 build the drivers

Got this and it works.

Section 4.1.1 Build the SDK

Problem, there isn’t a pkgs.mak file anywhere to be found.

There is an slqscompile.mak file but it won’t build anything, says no target.

I went and compiled the SampleApps/Connection_Manager and ran it but just get error responses.

I have updated to a 4.6 kernel, might attempt qmicli and modem manager under Ubuntu 16.04 pre-release today.

Ah, right. Skip that section. The SDK comes without source code (at least the copy you can download freely from source). Instead you have prebuilt binaries for different platforms. I guess this should be mentioned in that document. There is a forum for documentation feedback:

Like what?

Note that you’ll have to undo the driver black listing if you followed section 2.3.1 in the referenced document (and possibly blacklist GobiSerial and GobiNet instead if you built and installed those for the 4.6 kernel).

And you’ll most likely need newer ModemManager and libqmi too. I haven’t checked the current Ubuntu versions, but the UIM PIN verification stuff necessary for MC7455 went into libqmi v1.14 released just a couple of weeks ago.

OK, trying two paths in parallel is difficult because the 4.6 kernel change caused me some problems since I applied it to a 14.04 ubuntu machine and then build libqmi from source.

I couldn’t meet the deadline required to get the MC7455 into a product so now the urgency has dropped because that ship has sailed. I will post follow up when I get back to this again.


Does anyone backport qmi_wwan(in kernel v4.8.0) for Linux kernel v3.16.0(ubuntu-14.04.2)?
Will it be a huge software effort? :open_mouth:

I tried to drive MC7455/MC7430 successfully by qmi_wwan driver on ubuntu-16.10(kernel v4.8.0),
But the customer’s system requirement is Linux kernel 3.16.0, it means the driver backporting is necessary.

So I am not sure the task complexity of driver backporting? Will it involve many source and header files?
So far I only knew qmi_wwan.c, usbnet.c and …? :cry:

Any comments and suggestion will be appreciated. :slight_smile: