# Struggling to get Panasonic Toughbook with EM7355 GPS working with ubuntu

**URL:** <https://forum.sierrawireless.com/t/struggling-to-get-panasonic-toughbook-with-em7355-gps-working-with-ubuntu/27077>\
**Category:** MC/EM Series\
**Created:** [May 21, 2022, 10:03pm UTC](https://forum.sierrawireless.com/t/struggling-to-get-panasonic-toughbook-with-em7355-gps-working-with-ubuntu/27077 "2022-05-21T22:03:36Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![bleepbloop117](https://avatars.discourse-cdn.com/v4/letter/b/edb3f5/32.png) [@bleepbloop117](https://forum.sierrawireless.com/u/bleepbloop117)\
**Post date:** [May 21, 2022, 10:03pm UTC](https://forum.sierrawireless.com/t/struggling-to-get-panasonic-toughbook-with-em7355-gps-working-with-ubuntu/27077/1 "2022-05-21T22:03:37Z")

</div>

Hey all, I have been banging my head on this for the better part of a week and have made no progress. Any help would be awesome, and I request that you dumb it down a bit as my cmd line skills aren’t quite amazing.

As the title says I’ve got a Panasonic Toughbook CF-20. The unit came used and it has an EM7355 (confirmed by looking at the chip). I purchased the unit based off a youtube video for similar use case (radio digital, mapping, etc.) The author of the youtube video also posted a short how-to on his blog ([link](https://www.thetechprepper.com/cf-20-gps-configuration)) that I followed.

My CF-20 is running Ubuntu 22.04. The EM7355 is on firmware revision SWI9X15C\_05.05.58.01 (at least according to mmcli -m 0).

I am able to see the unit in mmcli, and I can see it in lsusb, however lsusb is showing the model as EM7305, rather than the correct EM7355. However, mmcli is reporting it as the correct unit. To add confusion, the system information app is showing the unit as EM 7305, and I’m unable to download any firmware via the ubuntu apps or fwupdmgr.

I’m totally new to this level of “not working”. I downloaded the firmware for EM7355 from Sierra, however I’m unable to figure a way to get them flashed as when I click them they do nothing, and I’ve struggled to find out how to flash from a specific file in ubuntu.

Anything that anyone can do to walk me through this would be awesome!

---

<div class="post-metadata">

**Author:** ![jyijyi](https://sea1.discourse-cdn.com/flex025/user_avatar/forum.sierrawireless.com/jyijyi/32/4766_2.png) [@jyijyi](https://forum.sierrawireless.com/u/jyijyi)\
**Post date:** [May 23, 2022, 11:16pm UTC](https://forum.sierrawireless.com/t/struggling-to-get-panasonic-toughbook-with-em7355-gps-working-with-ubuntu/27077/2 "2022-05-23T23:16:22Z")

</div>

You can install the gobidriver and use the old sdk to download fw

> **[Linux QMI SDK Software 04.00.27](https://source.sierrawireless.com/resources/airprime/software/linux-qmi-sdk-software-04,-d-,00,-d-,27/)**
>
> Linux QMI SDK Software 04.00.27

---

<div class="post-metadata">

**Author:** ![bleepbloop117](https://avatars.discourse-cdn.com/v4/letter/b/edb3f5/32.png) [@bleepbloop117](https://forum.sierrawireless.com/u/bleepbloop117)\
**Post date:** [May 29, 2022, 5:36pm UTC](https://forum.sierrawireless.com/t/struggling-to-get-panasonic-toughbook-with-em7355-gps-working-with-ubuntu/27077/3 "2022-05-29T17:36:55Z")

</div>

Sorry for the delay, been a busy few days. I downloaded the linked, but I’m at a complete loss how to install the gobidriver and the FW from there. Is there a doc that walks you through this somewhere?

---

<div class="post-metadata">

**Author:** ![jyijyi](https://sea1.discourse-cdn.com/flex025/user_avatar/forum.sierrawireless.com/jyijyi/32/4766_2.png) [@jyijyi](https://forum.sierrawireless.com/u/jyijyi)\
**Post date:** [May 30, 2022, 1:03am UTC](https://forum.sierrawireless.com/t/struggling-to-get-panasonic-toughbook-with-em7355-gps-working-with-ubuntu/27077/4 "2022-05-30T01:03:57Z")

</div>

You can see here for the section about “Device Drivers”

[https://source.sierrawireless.com/resources/airprime/software/linux-qmi-sdk-application-developer-guide-2,-d-,0/](https://source.sierrawireless.com/resources/airprime/software/linux-qmi-sdk-application-developer-guide-2,-d-,0/)

---

<div class="post-metadata">

**Author:** ![aleksander0m](https://sea1.discourse-cdn.com/flex025/user_avatar/forum.sierrawireless.com/aleksander0m/32/1774_2.png) [@aleksander0m](https://forum.sierrawireless.com/u/aleksander0m)\
**Post date:** [May 30, 2022, 10:45am UTC](https://forum.sierrawireless.com/t/struggling-to-get-panasonic-toughbook-with-em7355-gps-working-with-ubuntu/27077/5 "2022-05-30T10:45:31Z")

</div>

> [@bleepbloop117](#):
>
> I’m totally new to this level of “not working”. I downloaded the firmware for EM7355 from Sierra, however I’m unable to figure a way to get them flashed as when I click them they do nothing, and I’ve struggled to find out how to flash from a specific file in ubuntu.
> 
> Anything that anyone can do to walk me through this would be awesome!

If you want my personal non-Sierra-official suggestion to this, don’t even attempt to install any Gobi driver or SDK, you’ll completely lose integration with `ModemManager`+`NetworkManager`.

You can install firmware for a EM7355 using the `qmi-firmware-update` tool that comes with `libqmi`:

- Download the firmware you want (either a single .spk or a pair of .cwe and .nvu).
- Stop ModemManager with `sudo systemctl stop ModemManager`.
- Run the firmware update program with `sudo qmi-firmware-update -p -w /dev/cdc-wdm0 --update FILE1.cwe FILE2.nvu`
- Once flashed, start ModemManager again with `sudo systemctl start ModemManager`.

Note that there’s no support for any Sierra Wireless modem in the LVFS via fwupd. Others manufacturers like Quectel, Foxconn or Telit already have support, or are working on that. I don’t know about Sierra, but [doing an integration re-using the qmi-firmware-update logic wouldn’t be that difficult](https://gitlab.freedesktop.org/mobile-broadband/libqmi/-/issues/3).

Also note, the fact that lsusb tells you it’s a EM7305 instead of a EM7355 could be because they just use the same vid:pid (don’t even know that, just wondering), and the USB descriptors just report the same string in both. The “real” module type is the one reported in your `mmcli` output.

And anyway, you’re not saying how the modem is “not working” for you. You said it’s found by ModemManager as per your `mmcli` test, so what’s the actual problem? How are you trying to connect it? You should setup the connection via NetworkManager, e.g.:

```auto
$ nmcli c add type gsm con-name wwan apn <operator_apn>
$ nmcli r wwan on

```

See [https://ubuntu.com/core/docs/networkmanager/configure-cellular-connections](https://ubuntu.com/core/docs/networkmanager/configure-cellular-connections)

---

<div class="post-metadata">

**Author:** ![aleksander0m](https://sea1.discourse-cdn.com/flex025/user_avatar/forum.sierrawireless.com/aleksander0m/32/1774_2.png) [@aleksander0m](https://forum.sierrawireless.com/u/aleksander0m)\
**Post date:** [May 30, 2022, 10:55am UTC](https://forum.sierrawireless.com/t/struggling-to-get-panasonic-toughbook-with-em7355-gps-working-with-ubuntu/27077/6 "2022-05-30T10:55:51Z")

</div>

> [@jyijyi](#):
>
> You can install the gobidriver and use the old sdk to download fw

Is that really a simpler solution for a non-tech-savvy user than using the `qmi-firmware-update` tool that is already shipped in Ubuntu and works fine with all QMI based Sierra modules (it’s actually **only** for Sierra modules)?

I know it’s _unofficial_ as it was never backed by Sierra directly, but I’ve really not seen one single module getting bricked using this tool since it was released more than 5 years ago, and it’s currently been used in multiple systems in production environments (just the ones I know of: cars, airplanes, routers, lots of IoT setups…).

---

<div class="post-metadata">

**Author:** ![bleepbloop117](https://avatars.discourse-cdn.com/v4/letter/b/edb3f5/32.png) [@bleepbloop117](https://forum.sierrawireless.com/u/bleepbloop117)\
**Post date:** [May 30, 2022, 6:43pm UTC](https://forum.sierrawireless.com/t/struggling-to-get-panasonic-toughbook-with-em7355-gps-working-with-ubuntu/27077/7 "2022-05-30T18:43:17Z")

</div>

Thanks for providing the information, for my the device is on `wdm3` so I updated that after it failed the first time, and I got a “error: couldn’t open QMI device: Transaction timed out”.

I had to run the command with --ignore-version-errors because I was being told there was a version mismatch, which is odd since I downloaded the .cew and .nvu files direct from Sierra.

I attempted to run the commands at the bottom of your post, however nothing seemed to have happened. I tried to run `mmcli -m 0 --enable` but I’m getting a “modem in unknown state” error.

I’ve been following the instructions another user put together [here](https://www.thetechprepper.com/cf-20-gps-configuration). (as previously posted above)

Previously, when I did a --location-get via mmcli, I got no lat or long, I had also tried xgps, and nothing, and the gpsmon -n and also nothing.

Now I’ve made a worse situation somehow, as I’m unable to get even as far as I was previously.

---

<div class="post-metadata">

**Author:** ![aleksander0m](https://sea1.discourse-cdn.com/flex025/user_avatar/forum.sierrawireless.com/aleksander0m/32/1774_2.png) [@aleksander0m](https://forum.sierrawireless.com/u/aleksander0m)\
**Post date:** [May 30, 2022, 9:00pm UTC](https://forum.sierrawireless.com/t/struggling-to-get-panasonic-toughbook-with-em7355-gps-working-with-ubuntu/27077/8 "2022-05-30T21:00:46Z")

</div>

> [@bleepbloop117](#):
>
> Thanks for providing the information, for my the device is on `wdm3` so I updated that after it failed the first time, and I got a “error: couldn’t open QMI device: Transaction timed out”.

Try a clean boot, and try without any other driver manually installed. Not sure if you did any of that in your system.

> [@](#):
>
> I had to run the command with --ignore-version-errors because I was being told there was a version mismatch, which is odd since I downloaded the .cew and .nvu files direct from Sierra.

What exact error did you get?

> [@](#):
>
> I attempted to run the commands at the bottom of your post, however nothing seemed to have happened. I tried to run `mmcli -m 0 --enable` but I’m getting a “modem in unknown state” error.

Can you post the full `mmcli -m a` output? It’s a bit hard to guess without all the info.

> [@](#):
>
> I’ve been following the instructions another user put together [here](https://www.thetechprepper.com/cf-20-gps-configuration). (as previously posted above)
> 
> Previously, when I did a --location-get via mmcli, I got no lat or long, I had also tried xgps, and nothing, and the gpsmon -n and also nothing.

Just running `--location-get` does nothing, you also need commands to enable the GNSS engine in the modem, e.g.:

```auto
$ sudo mmcli -m a --enable
$ sudo mmcli -m a --location-enable-gps-raw --location-enable-gps-nmea

```

There are also commands to enable A-GPS.

> [@](#):
>
> Now I’ve made a worse situation somehow, as I’m unable to get even as far as I was previously.

You first need to make ModemManager properly recognize your modem, then we can continue debugging that further.

---

<div class="post-metadata">

**Author:** ![bleepbloop117](https://avatars.discourse-cdn.com/v4/letter/b/edb3f5/32.png) [@bleepbloop117](https://forum.sierrawireless.com/u/bleepbloop117)\
**Post date:** [May 30, 2022, 9:26pm UTC](https://forum.sierrawireless.com/t/struggling-to-get-panasonic-toughbook-with-em7355-gps-working-with-ubuntu/27077/9 "2022-05-30T21:26:21Z")

</div>

> Try a clean boot, and try without any other driver manually installed. Not sure if you did any of that in your system.

Do you mean reboot, or reinstall linux? Sorry I’m not familiar with the term clean boot and google wasn’t much help.

> What exact error did you get?

So, I restarted again and somehow got it to run via the same cmd (keyboard up, so it wasn’t a mistype)

It took a number of retries but it appears to have taken, now, I ran `mmcli -m 0` and here is the output

```auto
  -------------------------
  General | path: /org/freedesktop/ModemManager1/Modem/0
  -------------------------
  System | device: /sys/devices/pci0000:00/0000:00:14.0/usb1/1-2
          | drivers: cdc_mbim
          | plugin: sierra
          | primary port: cdc-wdm3
          | ports: cdc-wdm3 (mbim), wwan0 (net)
  -------------------------
  Status | signal quality: 0% (cached)
  -------------------------
  Modes | supported: allowed: any; preferred: none
          | current: allowed: any; preferred: none

```

However, upon running `sudo mmcli -m 0 --enable` I get the following error:

```auto
error: couldn't enable the modem: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.WrongState: modem in unknown state'

```

So, instead I tried running your command as such:

```auto
nmcli c add type gsm con-name wwan apn wholesale

```

I got the following

```auto
Warning: There are 2 other connections with the name 'wwan'. Reference the connection by its uuid 'ed627876-63fd-489a-a37e-6528fbb0ea4f'
Connection 'wwan' (ed627876-63fd-489a-a37e-6528fbb0ea4f) successfully added.

```

So after, again I tried to run `sudo mmcli -m 0 --enable` and got the same error as above. It didn’t seem to matter if I used `-m 0` or `-m a`

---

<div class="post-metadata">

**Author:** ![bleepbloop117](https://avatars.discourse-cdn.com/v4/letter/b/edb3f5/32.png) [@bleepbloop117](https://forum.sierrawireless.com/u/bleepbloop117)\
**Post date:** [May 30, 2022, 9:39pm UTC](https://forum.sierrawireless.com/t/struggling-to-get-panasonic-toughbook-with-em7355-gps-working-with-ubuntu/27077/10 "2022-05-30T21:39:03Z")

</div>

May have spoken a little too soon, I restarted again after posting this and ran the enable command and was successful, I was able to pull a more detailed -m 0 command and it dumped the following

```auto
  -----------------------------
  General | path: /org/freedesktop/ModemManager1/Modem/0
           | device id: [redacted]
  -----------------------------
  Hardware | manufacturer: Sierra Wireless, Incorporated
           | model: EM7355
           | firmware revision: SWI9X15C_05.05.63.01
           | h/w revision: EM7355
           | supported: gsm-umts, lte
           | cdma-evdo, lte
           | lte
           | cdma-evdo, gsm-umts, lte
           | current: cdma-evdo, gsm-umts, lte
           | equipment id: [redacted]
  -----------------------------
  System | device: /sys/devices/pci0000:00/0000:00:14.0/usb1/1-2
           | drivers: cdc_mbim
           | plugin: sierra
           | primary port: cdc-wdm4
           | ports: cdc-wdm4 (mbim), wwan0 (net)
  -----------------------------
  Status | unlock retries: sim-pin2 (3)
           | state: enabled
           | power state: on
           | signal quality: 0% (cached)
  -----------------------------
  Modes | supported: allowed: 2g; preferred: none
           | allowed: 3g; preferred: none
           | allowed: 2g, 3g; preferred: 3g
           | allowed: 2g, 3g; preferred: 2g
           | allowed: 2g, 4g; preferred: 4g
           | allowed: 2g, 4g; preferred: 2g
           | allowed: 3g, 4g; preferred: 4g
           | allowed: 3g, 4g; preferred: 3g
           | allowed: 2g, 3g, 4g; preferred: 4g
           | allowed: 2g, 3g, 4g; preferred: 3g
           | allowed: 2g, 3g, 4g; preferred: 2g
           | current: allowed: 2g, 3g, 4g; preferred: 4g
  -----------------------------
  Bands | supported: utran-1, utran-4, utran-5, utran-8, utran-2, eutran-2, 
           | eutran-4, eutran-5, eutran-13, eutran-17, eutran-25, cdma-bc0, 
           | cdma-bc1, cdma-bc10
           | current: utran-1, utran-4, utran-5, utran-8, utran-2, eutran-2, 
           | eutran-4, eutran-5, eutran-13, eutran-17, eutran-25, cdma-bc0, 
           | cdma-bc1, cdma-bc10
  -----------------------------
  IP | supported: ipv4, ipv6, ipv4v6
  -----------------------------
  3GPP | imei: [redacted]
           | enabled locks: fixed-dialing
           | registration: idle
  -----------------------------
  SIM | primary sim path: /org/freedesktop/ModemManager1/SIM/0

```

I redacted certain fields for obvious reasons.

running the following commands were all successful, but resulted in the same results I was previously getting, here it is again though so you can see.

commands I ran in sequence

```auto
$ sudo mmcli -m 0 --enable
$ sudo mmcli -m 0 --location-enable-gps-raw --location-enable-gps-nmea
$ sudo mmcli -m 0 --location-get -J | jq '.modem.location.gps'

```

Results

```auto
{
  "altitude": "--",
  "latitude": "--",
  "longitude": "--",
  "nmea": [
    "$GPGSA,A,1,,,,,,,,,,,,,,,*1E",
    "$GNGNS,,,,,,NN,,,,,,*53",
    "$GPRMC,,V,,,,,,,,,,N*53",
    "$PQXFI,,,,,,,,,,*56",
    "$GNGSA,A,1,,,,,,,,,,,,,,,*00",
    "$GPGSV,1,1,01,20,,,27*7F",
    "$GPVTG,,T,,M,,N,,K,N*2C",
    "$GPGGA,,,,,,0,,,,,,,,*66"
  ],
  "utc": "--"
}

```

---

<div class="post-metadata">

**Author:** ![aleksander0m](https://sea1.discourse-cdn.com/flex025/user_avatar/forum.sierrawireless.com/aleksander0m/32/1774_2.png) [@aleksander0m](https://forum.sierrawireless.com/u/aleksander0m)\
**Post date:** [May 31, 2022, 12:51pm UTC](https://forum.sierrawireless.com/t/struggling-to-get-panasonic-toughbook-with-em7355-gps-working-with-ubuntu/27077/11 "2022-05-31T12:51:59Z")

</div>

> [@bleepbloop117](#):
>
> commands I ran in sequence
> 
> ```auto
> $ sudo mmcli -m 0 --enable
> $ sudo mmcli -m 0 --location-enable-gps-raw --location-enable-gps-nmea
> $ sudo mmcli -m 0 --location-get -J | jq '.modem.location.gps'
> 
> ```
> 
> Results
> 
> ```auto
> {
> "altitude": "--",
> "latitude": "--",
> "longitude": "--",
> "nmea": [
> "$GPGSA,A,1,,,,,,,,,,,,,,,*1E",
> "$GNGNS,,,,,,NN,,,,,,*53",
> "$GPRMC,,V,,,,,,,,,,N*53",
> "$PQXFI,,,,,,,,,,*56",
> "$GNGSA,A,1,,,,,,,,,,,,,,,*00",
> "$GPGSV,1,1,01,20,,,27*7F",
> "$GPVTG,,T,,M,,N,,K,N*2C",
> "$GPGGA,,,,,,0,,,,,,,,*66"
> ],
> "utc": "--"
> }
> 
> ```

That’s actually perfect from my point of view. The GNSS engine is enabled, and you receive NMEA traces. Once your `$GPGGA` trace reports good values, you’ll see latitude, longitude and altitude reports as well. You didn’t enable any kind of A-GPS, so your device will definitely need time to get an initial fixed position; make sure it has a good view of the sky!

---

<div class="post-metadata">

**Author:** ![bleepbloop117](https://avatars.discourse-cdn.com/v4/letter/b/edb3f5/32.png) [@bleepbloop117](https://forum.sierrawireless.com/u/bleepbloop117)\
**Post date:** [May 31, 2022, 2:49pm UTC](https://forum.sierrawireless.com/t/struggling-to-get-panasonic-toughbook-with-em7355-gps-working-with-ubuntu/27077/12 "2022-05-31T14:49:43Z")

</div>

Ok, so after waiting patiently for 5-10 minutes it did register an long/lat like I was expecting. This is awesome as it at least means that the device is working. However, I’m experiencing an odd bug now where ubuntu is giving me a “network connection error” popup that is quite annoying. I’ll have to see if I can track that down.

Is there a way to set this gps device up so it’s a little bit faster? What I’m really hoping to do is run mapping software locally, and use the gps to position me on the map, thus not having to rely on network connections when I’m out of range with my vehicle.

I’m also not sure why the NM7355 isn’t registering as a ttyUSB device, as it seems elsewhere that it should? Is there some sort of beginners guide that is written about this stuff anywhere? I’m starting to think that flashing linux on this device wasn’t the best of ideas for my use case but at this point I’m just interested in learning more of how to use it.

---

<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 31, 2022, 7:00pm UTC](https://forum.sierrawireless.com/t/struggling-to-get-panasonic-toughbook-with-em7355-gps-working-with-ubuntu/27077/13 "2022-05-31T19:00:11Z")

</div>

> [@bleepbloop117](#):
>
> I’m also not sure why the NM7355 isn’t registering as a ttyUSB device, as it seems elsewhere that it should?

This is a firmware configurable thing. And some Windows driver installs will disable the serial functions. Run

`qmicli -p -d /dev/cdc-wdm4 --dms-swi-get-usb-composition`

to see your current setting. And optionally --dms-swi-set-usb-composition=xx to change it.
