TX2 not creating a device path for U-blox GPS on connection

I am trying to connect a ublox c94 M8P GPS evaluation kit to my TX2 Development kit running ubuntu 16.04 LTS (R28 (release), REVISION: 1.0) but for some reason whenever I connect the device, /dev does not show any new device paths.

The output I get from dmesg when I connect the device is as follows:

[14043.538611] usb 1-2: new full-speed USB device number 23 using xhci-tegra
[14043.743737] usb 1-2: feature bit otg_vbus_off set
[14043.792333] usb 1-2: New USB device found, idVendor=1546, idProduct=01a8
[14043.871081] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[14043.956516] usb 1-2: Product: u-blox GNSS receiver
[14044.013875] usb 1-2: Manufacturer: u-blox AG - www.u-blox.com
[14044.081619] usb 1-2: ep 0x83 - rounding interval to 1024 microframes, ep desc says 2040 microframes
[14044.190076] xhci-tegra 3530000.xhci: tegra_xhci_mbox_work mailbox command 6

The output I get from lsusb is as follows:

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 023: ID 1546:01a8 U-Blox AG 
Bus 001 Device 022: ID 045e:00cb Microsoft Corp. Basic Optical Mouse v2.0
Bus 001 Device 021: ID 046d:c312 Logitech, Inc. DeLuxe 250 Keyboard
Bus 001 Device 020: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

In /dev there are no paths to ttyUSB[0,1,2,3] or ttyAM[0,1,2,3].

I have tried creating a udev rule to map the device to a device path by referencing the idVendor and idProduct however, this did not create a path I could use to talk to the device.

From my limited understanding I believe there is something wrong with the driver but I am not sure how to fix this.

Hi sahiln4f8w,

Could you share your udev rule?

Hi WayneWWW

the udev rule I created is as follows:

ATTRS{idProduct}=="01a8", ATTRS{idVendor}=="1546", SYMLINK+="ublox"

I tried creating the rule in /etc/udev/rules.d and also in /lib/udev/rules.d

I named the file 99-usb-gps.rules on both occasions. Upon creating this file and restarting the TX2, when I go into the /dev directory I can see a symbolic link file called ‘ublox’.

If I enter

cat ublox

I get the following output:

@F� >�2 $$$�@�
�@�@

In the past on other embedded systems if I cat the device path of a gps I should just get a stream of nmea sentences from the gps.

Hi sahiln4f8w,

How about directly cat the node under /dev/bus/usb/001? We should skip checking the correctness of udev /rules first.

I cannot tell if this issue comes from the module or tegra, do you see any log when you try to read the node? Could you make sure the module send the correct data out?

Hi WayneWWW

When I cat the node under /dev/bus/usb/001 I get the exact same output:
@F� >�2 $$$�@�
�@�@

I have verified that the GPS module is sending out the correct data when I connect it to a windows computer.

Hi sahiln4f8w,

Did you try it on a linux system? You said “In the past on other embedded systems if I cat the device path of a gps I should just get a stream of nmea sentences from the gps.” Could you describe these devices?

We lack such device on our side so that I cannot reproduce your issue but only try to figure out the cause.

We were testing it on a windows laptop, but since your last comment we decided to test the device on the pc running Ubuntu 16.04 LTS and the device comes up right away under

/dev/ttyACM0

and streams the expected NMEA sentences using

sudo cat /dev/ttyACM0

Still no joy on the TX2.

The Jetson with L4T 28.1 does not have a built in ACM driver. You must add the cdc-acm kernel module, or add it internally to the kernel. If you have a stock kernel, you can use a prebuilt module available in this article:

http://www.jetsonhacks.com/2017/11/19/install-ttyacm-module-nvidia-jetson-tx-development-kits/

The upcoming version L4T 28.2 does have the cdc-acm in the stock kernel.

Excellent after installing the cdc-acm kernel module from the guide you posted I was able to read data from the device without any issues. Thank you for your assistance

I’m glad you were able to get it to work!

Thanks Kangalow.

I will add this to list. Hope cdc_acm driver could be added in next release.