"CONFIG_USB_SERIAL_PL2303 is not set"

I am new to the Orin and have been having a lot of trouble resolving an issue of connecting a Cyglidar D1 via UART to USB adapter to my Jetson Orin Nano 8GB Developer Kit with Jetpack 6.0 and release 36.3. It is not creating a ttyUSB0 or any new tty when I plug in the Cyglidar (which I know is on because the light works). But when I type lsusb it outputs “Bus 001 Device 008: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port / Mobile Action MA-8910P” but when I check the config.gz file for PL2303 with the line “sudo zcat /proc/config.gz | grep PL2303” it outputs: “# CONFIG_USB_SERIAL_PL2303 is not set”

I read in a separate post that you need to rebuild the kernel to include pl2303. As a beginner, I was lost in the instructions and was wondering if someone could give a more detailed process of modifying the kernel and rebuilding it.

Hi chmalinc,

It seems Orin Nano has detected PL2303 on USB port.

Is there any /dev/ttyUSB* showed after you plug this “USB to UART”(TTL) cable?

To re-build the kernel for JP6.0GA(R36.3), you can refer to Kernel Customization — NVIDIA Jetson Linux Developer Guide 1 documentation for details.

Thank you for the quick response KevinFFF.

No, three is no /dev/ttyUSB* after I plug in the USB cable.

I tried to follow those instructions previously, but after attempting the line “./source_sync.sh -k -t ” while in /Linux_for_Tegra/source it resulted with bash: ./source_sync.sh: No such file or directory.

I then tried manual download and expand the kernel sources which worked.

I then did Building the Jetson Linux Kernel, but when I got to step 3. I used the these instructions to get my toolchain-path then typed “make -C kernel” and it output this:

make: Entering directory ‘/home/mae-emrl3172/Downloads/Linux_for_Tegra/source/kernel’

Building kernel-jammy-src sources

make
ARCH=arm64
-C /home/mae-emrl3172/Downloads/Linux_for_Tegra/source/kernel/kernel-jammy-src
LOCALVERSION=-rt-tegra
defconfig
make[1]: Entering directory ‘/home/mae-emrl3172/Downloads/Linux_for_Tegra/source/kernel/kernel-jammy-src’
*** Default configuration is based on ‘defconfig’
/home/mae-emrl3172/l4t-gcc/aarch64–glibc–stable-2022.08-1/bin/aarch64-buildroot-linux-gnu-gcc: unknown compiler
scripts/Kconfig.include:44: Sorry, this compiler is not supported.
make[2]: *** [scripts/kconfig/Makefile:87: defconfig] Error 1
make[1]: *** [Makefile:630: defconfig] Error 2
make[1]: Leaving directory ‘/home/mae-emrl3172/Downloads/Linux_for_Tegra/source/kernel/kernel-jammy-src’
make: *** [Makefile:30: kernel] Error 2
make: Leaving directory ‘/home/mae-emrl3172/Downloads/Linux_for_Tegra/source/kernel’
mae-em

That is where I stopped because it said the compiler is not supported. Is there a step I missed?

Do you have source_sync.sh under <Linux_for_Tegra>/source/?

How did you setup for toolchain to build the kernel?
What’s the distribution and release of your host?

@KevinFFF

No, I don’t have source_sync.sh under <Linux_for_Tegra>/source/

I followed these instructions to set up toolchain.

I am using Jetpack 6.0 with Ubuntu 22.04

It’s not the expected result to me.

Please refer to the steps in To Flash the Jetson Developer Kit Operating Software to setup BSP package and you should have source_sync.sh under <Linux_for_Tegra>/source/.

@KevinFFF

I apologize for the miscommunication, should all of these steps be done on my host linux pc?

Yes, you should download the source → modify kernel config(in defconfig) → compile kernel image → update kernel image in BSP package → flash the board to apply the change.
All above steps should be done on host PC.

@KevinFFF

Thank you so much for the help, that worked!

From here, is it possible to only flash the kernel image or do I need to completely flash the whole Orin Nano? What would those steps be if it is possible?

For JP6, the dtb seem to be loaded from partition so that you should reflash the board to apply the change.

@KevinFFF

Unfortunately, I am still having issues with the process so here are the exact steps that I have taken and maybe you can help point out what I have done wrong:

On my host Linux PC running Ubuntu 20.04, I followed steps 1 and 2 (Including downloading “Driver PAckage (BSP)” and “Sample Root Filesystem” from Drivers section here).

I went here to follow the exact setup of the toolchain (Including downloading the Bootlin Toolchain gcc 11.3 from here)

I then went to follow these steps (Including syncing the kernel sources with Git, which I used the Linux_for_Tegra directory created from the previous guide). Before building the Jetson Linux Kernel I went to the defconfig file in ~/Linux_for_Tegra/source/kernel/kernel-for-jammy-src/arch/arm64/configs and added the line “CONFIG_USB_SERIAL_PL2303=y” and saved it. I then continued the rest of the instructions for building the Jetson Linux Kernel and In-Tree Modules.

Following the completion of this, I went back to this instruction and made sure my NVIDIA Jetson Orin Nano was already configured with Jetpack 6.0 (Rev 1.0) 36.3, and put it in force recovery mode correctly and connected it with a proper USB A to USB C cable and using a 128 GB SD Card. I then followed the rest of the instructions, but when I tried this line:

$ sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device mmcblk0p1
-c tools/kernel_flash/flash_l4t_t234_nvme.xml -p “-c bootloader/generic/cfg/flash_t234_qspi.xml”
–showlogs --network usb0 jetson-orin-nano-devkit internal

It output with the following:
*** no-flash flag enabled. Exiting now… ***

User can run above saved command in factory environment without
providing pkc and sbk keys to flash a device

Example:

$ cd bootloader 
$ sudo bash ./flashcmd.txt

Save initrd flashing command parameters to /home/ubunty/Linux_for_Tegra/tools/kernel_flash/initrdflashparam.txt
/tmp/tmp.gKipr0Atv8 /home/ubunty/Linux_for_Tegra
writing boot image config in bootimg.cfg
extracting kernel in zImage
extracting ramdisk in initrd.img
/tmp/tmp.gKipr0Atv8/initrd /tmp/tmp.gKipr0Atv8 /home/ubunty/Linux_for_Tegra
84298 blocks
cp: cannot stat ‘/home/ubunty/Linux_for_Tegra/rootfs/usr/lib/modules/5.15.136-rt-tegra/updates/drivers/spi’: No such file or directory
Cleaning up…

The full output is here:
output.txt (250.6 KB)

Thank you again for all of your help so far.

Why you specify mmcblk0p1 for external device?
It seems should be nvme0n1p1 for NVMe SSD connected.

I did mmcblk0p1 because that is what was recommended for SD card from these instructions (which is what I am assuming is being flashed on my Jetson).

I tried it again with nvme0n1p1 (NVMe) and with sda1 (USB) and got the same result as before. I attached the outputs of both below.

USB_output.txt (250.6 KB)
NVMe_output.txt (250.5 KB)

How did you build and install kernel image/modules?
Put every single steps you ran here.

cp: cannot stat ‘/home/ubunty/Linux_for_Tegra/rootfs/usr/lib/modules/5.15.136-rt-tegra/updates/drivers/spi’: No such file or directory

Are you building with RT patches turned on?

@DaveYYY

I gave all of the exact steps in the previous reply by following the instructions of each link exactly and downloading the files mentioned. Let me know if there are any parts that need more detail.

I am unaware of RT patches? What is the process for setting that up and what does it do?

I feel like you only built the kernel image and in-tree modules, but not OOT modules, and that’s why you got file not found error.
Delete your kernel source and make sure you follow every single steps mentioned here.
https://docs.nvidia.com/jetson/archives/r36.3/DeveloperGuide/SD/Kernel/KernelCustomization.html

You need this section:
https://docs.nvidia.com/jetson/archives/r36.3/DeveloperGuide/SD/Kernel/KernelCustomization.html#building-the-jetson-linux-kernel

, and this sections as well:
https://docs.nvidia.com/jetson/archives/r36.3/DeveloperGuide/SD/Kernel/KernelCustomization.html#building-the-nvidia-out-of-tree-modules

1 Like

@DaveYYY @KevinFFF

That did the trick! I totally misread that section of the instructions and did not think it was necessary.

Really appreciate all of the support and assistance.

1 Like

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