# Building official linux drivers for EM7305

**URL:** <https://forum.sierrawireless.com/t/building-official-linux-drivers-for-em7305/8585>\
**Category:** MC/EM Series\
**Created:** [May 21, 2016, 7:58am UTC](https://forum.sierrawireless.com/t/building-official-linux-drivers-for-em7305/8585 "2016-05-21T07:58:45Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![rcharolois](https://avatars.discourse-cdn.com/v4/letter/r/ecc23a/32.png) [@rcharolois](https://forum.sierrawireless.com/u/rcharolois)\
**Post date:** [May 21, 2016, 7:58am UTC](https://forum.sierrawireless.com/t/building-official-linux-drivers-for-em7305/8585/1 "2016-05-21T07:58:45Z")

</div>

Hi all,

I own a Toshiba Portege Laptop (Z30B 12F) with a builtin EM7305 chip. I try to use this broadband access under Linux Ubuntu 16.04, amd64, kernel 4.4.0-21-generic (Ubuntu’s base kernel).

disclaimer: I am quite a newbie in the QMI/MBIM & WWAN card interfaces domain, I might miss some important point. Feel free to correct me.

1. I downloaded and built the drivers as described in document Application Dev Guide v 1.23 (dec 2015)

The document is missing some “modprobe usbserial” before building the driver.

At the end of the procedure, I can see dmesg ( /var/log/syslog) :

[4249.253481] GobiNet: 2015-12-08/SWI\_2.36  
[4249.253529] usbcore: registered new interface driver GobiNet  
[4361.719546] usbcore: deregistering interface driver GobiNet  
[4378.015448] GobiNet: 2015-12-08/SWI\_2.36  
[4378.015534] usbcore: registered new interface driver GobiNet

But not /dev/ttyUSB\* devices appear… What did I miss ?

What is the procedure to force a re-detection ? It’s an embedded chip, I can’t plug/unplug it.

1. The vendor/product ID of this chip is 1199:9063. When checking in the official driver source code, nor the serial nor the network seems to support this chip. The last chip supported has ID 1199:9061. Is this related to some mode switching I must opper first ?

2. Is the EM7305 officially supported ? The open source drivers “sierra” and “sierra\_net” lacks this chip too.

I added the 1199:9063 vendor/product Ids into the GobiNet and GobiSerial and rebuilt the drivers, but it does not work. Seems the interfaces to open USB ports might have changed ?

1. This new thread might be related to this one : [https://forum.sierrawireless.com/t/steps-to-get-the-mc7455-to-work-under-linux/8493/1](https://forum.sierrawireless.com/t/steps-to-get-the-mc7455-to-work-under-linux/8493/1) which is related to MC7354 not working on Ubuntu.

Thanks for your help, i really need this LTE connection on Ubuntu.

---

<div class="post-metadata">

**Author:** ![dl5162](https://sea1.discourse-cdn.com/flex025/user_avatar/forum.sierrawireless.com/dl5162/32/2169_2.png) [@dl5162](https://forum.sierrawireless.com/u/dl5162)\
**Post date:** [May 23, 2016, 10:20am UTC](https://forum.sierrawireless.com/t/building-official-linux-drivers-for-em7305/8585/2 "2016-05-23T10:20:48Z")

</div>

> [@rcharolois](#):
>
> Hi all,
> 
> I own a Toshiba Portege Laptop (Z30B 12F) with a builtin EM7305 chip. I try to use this broadband access under Linux Ubuntu 16.04, amd64, kernel 4.4.0-21-generic (Ubuntu’s base kernel).
> 
> disclaimer: I am quite a newbie in the QMI/MBIM & WWAN card interfaces domain, I might miss some important point. Feel free to correct me.
> 
> 1. I downloaded and built the drivers as described in document Application Dev Guide v 1.23 (dec 2015)
> 
> The document is missing some “modprobe usbserial” before building the driver.
> 
> At the end of the procedure, I can see dmesg ( /var/log/syslog) :
> 
> [4249.253481] GobiNet: 2015-12-08/SWI\_2.36  
> [4249.253529] usbcore: registered new interface driver GobiNet  
> [4361.719546] usbcore: deregistering interface driver GobiNet  
> [4378.015448] GobiNet: 2015-12-08/SWI\_2.36  
> [4378.015534] usbcore: registered new interface driver GobiNet
> 
> But not /dev/ttyUSB\* devices appear… What did I miss ?

You need the GobiSerial drvier for /dev/ttyUSB\*

GobiNet provides /dev/qcqmi\* and wwan\* interface pairs.

> [@](#):
>
> What is the procedure to force a re-detection ? It’s an embedded chip, I can’t plug/unplug it.

If all you want is to reprobe the device, then unloading and reloading the driver is the easiest method (modprobe -r GobiSerial; modprobe GobiSerial)

You can also do manual unbind/bind using the /sys/bus/usb/drivers/GobiSerial/bind and  
/sys/bus/usb/drivers/GobiSerial/unbind sysfs attributes.

If you want to power cycle the modem, then you can sometimes do that using a laptop specific rfkill method. But that is entirely platform specific, and I have no idea what Toshiba does.

> [@](#):
>
> 1. The vendor/product ID of this chip is 1199:9063. When checking in the official driver source code, nor the serial nor the network seems to support this chip. The last chip supported has ID 1199:9061. Is this related to some mode switching I must opper first ?

My best guess is that 1199:9063 is an ID allocated to Toshiba for use in their OEM version of the EM7305. The “normal” EM7305 device ID is 1199:9041 as far as I know.

> [@](#):
>
> 1. Is the EM7305 officially supported ? The open source drivers “sierra” and “sierra\_net” lacks this chip too.

Those drivers are used for device IDs supporting DirectIP. The relevant mainline drivers for EM7305 are “qcserial” and “qmi\_wwan”. But as you’ve discovered: They don’t know the 1199:9063 ID. Simply because noone has reported it yet.

Note that this, as a laptop OEM device, probably is configured for MBIM operation by default. And it should work fine with the mainline “cdc\_mbim” driver, since that is class based and does not need to know about specific device IDs.

> [@](#):
>
> I added the 1199:9063 vendor/product Ids into the GobiNet and GobiSerial and rebuilt the drivers, but it does not work. Seems the interfaces to open USB ports might have changed ?

I suspect this is because the device is in MBIM only mode by default. Could you post the output of “lsusb -vd 1199:9063” (feel free to remove/obfuscate serial numbers if you like)?

> [@](#):
>
> 1. This new thread might be related to this one : [Steps to get the MC7455 to work under linux](https://forum.sierrawireless.com/t/steps-to-get-the-mc7455-to-work-under-linux/8493/1) which is related to MC7354 not working on Ubuntu.
> 
> Thanks for your help, i really need this LTE connection on Ubuntu.

Well, that should work by default, using “cdc\_mbim” as driver and ModemManager with libmbim on the userspace side. Anything else is an Ubuntu bug. Ubuntu forums are also probably better at debugging the Ubuntu specific problems…

---

<div class="post-metadata">

**Author:** ![rcharolois](https://avatars.discourse-cdn.com/v4/letter/r/ecc23a/32.png) [@rcharolois](https://forum.sierrawireless.com/u/rcharolois)\
**Post date:** [May 30, 2016, 4:27pm UTC](https://forum.sierrawireless.com/t/building-official-linux-drivers-for-em7305/8585/3 "2016-05-30T16:27:37Z")

</div>

I finally managed to get something working, here is the current status :

[_] After a complete installation of Ubuntu 16.04, the modem is correctly detected by ModemManager. The cdc\_wwan and cdc\_mbim modules correclty detects the modem. NetworkManager managed to create a connection with my apn and the connection worked fine.[/_]  
[_] I never managed to get the /dev/ttyUSB (makes me think of this recent post [https://forum.sierrawireless.com/t/why-the-ttyusb-disappear-only-cdc-wdm0-interface-left/8591/1](https://forum.sierrawireless.com/t/why-the-ttyusb-disappear-only-cdc-wdm0-interface-left/8591/1)) but it’s not a problem.  
Neither the GobiSerial not qcserial module found the serial interface. Seems the MBIM interface is sufficient. The was operated under Windows 7 prior I switched to Linux.[/_]  
[_]After a software suspend (to RAM), the modem stopped working. Seems the bug is due to a MBIM descriptor not being released before going in standby. This problem is known to the Ubuntu community ([bugs.launchpad.net/ubuntu/+sour … ug/1326954](https://bugs.launchpad.net/ubuntu/+source/modemmanager/+bug/1326954)) and the only fix that seems to exist needs to stop/restart Modem Manager. [/_]

So finally, the Live CD wasn’t working for some reasons probably due to some partial installed packages. The bare Ubuntu installation is (quite) all fine.

Thank you for your support.
