CONFIG_USB_SERIAL_PL2303 Is Not Set
Issue Overview
Users are experiencing difficulties connecting a Cyglidar D1 via a UART to USB adapter to the Jetson Orin Nano 8GB Developer Kit running JetPack 6.0 (release 36.3). The primary symptom is the absence of a /dev/ttyUSB0
or any new tty devices when the Cyglidar is plugged in, despite the device being recognized by the system (as indicated by the output of lsusb
). The configuration file for the kernel indicates that CONFIG_USB_SERIAL_PL2303
is not set, which is necessary for proper communication with the PL2303 USB-to-UART chip used in the adapter.
Relevant Hardware and Software Specifications
- Device: Jetson Orin Nano 8GB Developer Kit
- JetPack Version: 6.0 (release 36.3)
- USB Adapter: PL2303 Serial Port / Mobile Action MA-8910P
- Symptoms:
- No
/dev/ttyUSB*
devices created upon connecting the USB adapter. - Kernel configuration shows
# CONFIG_USB_SERIAL_PL2303 is not set
.
- No
Possible Causes
- Missing Kernel Configuration: The kernel does not have support for the PL2303 driver enabled, preventing it from recognizing and creating a tty device for the USB adapter.
- Incorrect Toolchain Setup: Issues with the toolchain setup may lead to compilation errors when attempting to rebuild the kernel.
- Kernel Source Issues: The user may not have correctly downloaded or synchronized the kernel source files needed for building.
- Incompatibility with JetPack Version: The specific JetPack version being used may have limitations or bugs affecting USB serial device recognition.
Troubleshooting Steps, Solutions & Fixes
Step-by-Step Instructions
-
Verify USB Device Recognition:
- Connect the Cyglidar D1 and run:
lsusb
- Confirm that the PL2303 device appears in the output.
- Connect the Cyglidar D1 and run:
-
Check Kernel Configuration:
- Verify if
CONFIG_USB_SERIAL_PL2303
is set in your kernel configuration:sudo zcat /proc/config.gz | grep PL2303
- Verify if
-
Modify Kernel Configuration:
- If it shows as not set, navigate to your kernel configuration directory:
cd ~/Linux_for_Tegra/source/kernel/kernel-jammy-src/arch/arm64/configs/
- Edit the appropriate defconfig file (e.g.,
defconfig
) and add:CONFIG_USB_SERIAL_PL2303=y
- If it shows as not set, navigate to your kernel configuration directory:
-
Download and Sync Kernel Sources:
- Ensure you have downloaded and synced your kernel sources correctly. If
source_sync.sh
is missing, manually download and expand the kernel sources.
- Ensure you have downloaded and synced your kernel sources correctly. If
-
Build Kernel Image and Modules:
- Follow these commands to build your kernel image and modules:
cd ~/Linux_for_Tegra/source/kernel/ make -C kernel ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- tegra_defconfig make -C kernel ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
- Follow these commands to build your kernel image and modules:
-
Flash the Updated Kernel:
- After building, flash your updated kernel using:
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 --showlogs jetson-orin-nano-devkit internal
- Ensure you specify the correct external device (e.g.,
nvme0n1p1
for NVMe SSD).
- After building, flash your updated kernel using:
-
Reboot and Check tty Devices:
- Reboot your Jetson Orin Nano and check if
/dev/ttyUSB*
devices are created after connecting the USB-to-UART adapter.
- Reboot your Jetson Orin Nano and check if
Recommended Fixes
- Enabling
CONFIG_USB_SERIAL_PL2303
in the kernel configuration is essential for recognizing PL2303 devices. - Ensure that all steps related to downloading, syncing, and building kernel sources are followed meticulously as outlined in NVIDIA’s documentation.
Best Practices for Future Prevention
- Always verify that necessary drivers are enabled in your kernel configuration before building.
- Keep documentation of changes made during kernel configuration to facilitate troubleshooting in future projects.
- Regularly check NVIDIA forums and documentation for updates regarding driver support and potential issues with new JetPack releases.
Unresolved Aspects and Further Investigation
- Users continue to seek clarity on how to handle Out-of-Tree (OOT) modules if they need to be built separately.
- There may be additional dependencies or configurations required that have not been fully documented, particularly regarding specific use cases like USB serial communication.
By following these troubleshooting steps and solutions, users can effectively resolve issues related to connecting USB-to-UART adapters like the PL2303 on their Jetson Orin Nano platform.