USB Serial Console Connection Issue on Jetson Orin NX with JetPack 6.2

Hello,
I am utilizing a custom carrier board with the Jetson Orin NX module. When operating with Jetson Linux 35.4.1 (JetPack 5.1.2), I can establish a serial console connection between the Jetson’s ttyGS0 port and an external PC via the micro USB 5-pin port without any additional configuration.​

After upgrading to Jetson Linux 36.4.3 (JetPack 6.2), I observe that the ttyGS0 device is present on the Jetson system. However, the host PC does not recognize the Jetson; no /dev/ttyACMx node appears.

Are there specific configurations or settings required in JetPack 6 to enable the ttyGS0 serial console over the micro USB port, ensuring proper recognition by the host PC?​

For your reference, I have attached the outputs of dmesg | grep tty from both JetPack 5 and JetPack 6 environments.

JetPack 5.1.2 (Jetson Linux 35.4.1):
“[ 0.000000] Kernel command line: root=PARTUUID=3f2fb06f-d177-465a-929e-52c5e95a8838 rw rootwait rootfstype=ext4 mminit_loglevel=4 console=ttyTCU0,115200 console=ttyAMA0,115200 firmware_class.path=/etc/firmware fbcon=map:0 net.ifnames=0 nospectre_bhb
[ 0.287389] 31d0000.serial: ttyAMA0 at MMIO 0x31d0000 (irq = 63, base_baud = 0) is a SBSA
[ 1.467047] printk: console [ttyAMA0] enabled
[ 4.004629] printk: console [ttyTCU0] enabled
[ 7.254095] 3100000.serial: ttyTHS0 at MMIO 0x3100000 (irq = 17, base_baud = 0) is a TEGRA_UART
[ 7.270408] 3130000.serial: ttyTHS3 at MMIO 0x3130000 (irq = 61, base_baud = 0) is a TEGRA_UART
[ 7.286645] 3140000.serial: ttyTHS4 at MMIO 0x3140000 (irq = 62, base_baud = 0) is a TEGRA_UART
[10.611103] systemd[1]: Created slice system-serial\x2dgetty.slice.”

JetPack 6.2 (Jetson Linux 36.4.3):
"[ 0.000000] Kernel command line: root=PARTUUID=c306bb26-5a1d-40f8-b695-252099a52edb rw rootwait rootfstype=ext4 mminit_loglevel=4 console=ttyTCU0,115200 firmware_class.path=/etc/firmware fbcon=map:0 nospectre_bhb video=efifb:off console=tty0 bl_prof_dataptr=2031616@0x471E10000 bl_prof_ro_ptr=65536@0x471E00000
[ 0.000335] printk: console [tty0] enabled
[ 0.067140] 31d0000.serial: ttyAMA0 at MMIO 0x31d0000 (irq = 117, base_baud = 0) is a SBSA
[ 0.162812] printk: console [ttyTCU0] enabled
[ 2.982628] printk: console [tty0]: printing thread started
[ 2.983445] printk: console [ttyTCU0]: printing thread started
[ 3.069440] 3100000.serial: ttyTHS1 at MMIO 0x3100000 (irq = 112, base_baud = 0) is a TEGRA_UART
[ 3.070559] 3140000.serial: ttyTHS2 at MMIO 0x3140000 (irq = 113, base_baud = 0) is a TEGRA_UART
[10.182449] systemd[1]: Created slice Slice /system/serial-getty.
"

Given that ttyGS0 is active on the Jetson device, but the host PC fails to detect it, are there additional configurations or steps required in JetPack 6 to ensure the USB serial gadget is correctly recognized by the host system?

I would appreciate any guidance or recommendations you can provide to resolve this issue.

Best regards

You don’t need to grep tty in your dmesg. It only shows those serial ports from UART.

Have you confirmed that the micro usb port could be at least run as usb device mode first?

Thank you for the reply. Could you please let me know how I can verify if it’s operating in device mode? I believe there’s no hardware issue, since my custom board worked correctly under Jetpack 5.

Yes, but there could be software level configuration problem. I’ve seen lots a custom board users didn’t do that correctly.

Will your host PC saw Jetson as usb device with lsusb command on your host PC with that micro usb port connected?

Thank you for your response. When I ran lsusb on my host PC, the Jetson running Jetpack 6 did not appear in the USB device list. Under Jetpack 5, it showed up as follows: Bus 001 Device 004: ID 0955:7020 NVIDIA Corp. L4T (Linux for Tegra) running on Tegra

Are you the one who made this custom board? If so, please refer to this document and modify device tree.

Thank you for letting me know. Our board wasn’t made by me but by our company. Since our board doesn’t have a USB‑C port according to the link you provided, would it be correct to apply the “Removing Type‑C Connectors and UCSI CCG Driver from the Device Tree” steps from that link?

Our board wasn’t made by me but by our company.

It does not matter to me whether it is you or who. Just whether you have the schematic to know how to configure the device tree.

would it be correct to apply the “Removing Type‑C Connectors and UCSI CCG Driver from the Device Tree” steps from that link?

If this is Orin NX, then it is fsub301 controller to remove, not UCSI CCG. UCSI CCG is for Orin AGX devkit.
Also, this is not sufficient. Other configuration mentioned in the doc is also needed.

1 Like

Thanks to your advice, I solved the problem! I really appreciate it.

Hi Wayne,

Could I ask you one more thing? Instead of flashing a full DTB file to apply the USB-related changes I made, I’d like to apply only the USB modifications on the running Jetson using a DTBO file. Is that possible? If so, could you advise me on how to do it?

You can put your dtbo file in the overlay list in the board config.

Board config is the one you used to flash the board.

1 Like

Thank you for your help.

I was able to resolve it well. I really appreciate it.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.