How can I disable the debug console (ttyS0) on Jetson Nano for the UART interface with the peripheral IC


I am using the Jetson Nano for my development.
Also, I am using SDK version 32.5.1 to build my custom kernel.

I referenced Jetson Nano - Disable Serial Console to use all 3 UARTS and removed the “console-port” in all .dtsi files. After building the kernel image and using it to make the SD card image, all debug messages still send through the port ttyS0.

What do I miss to disable the debug console?
Please help, thanks!

please check developer guide for the steps, Disable Console over UART.

Hi Jerry,

Thanks for your response.
I did try to remove “console=ttyS0,115200n8” from configuration files p3448-0000.conf.common.conf, p3449-0000+p3448-0002.conf, jetson-nano-devkit-emmc.conf, jetson-nano-emmc.conf and
However, after I built the kernel and make the SD card image, the ttyS0 still outputed the debug messages.
Please find the attached boot log.

putty.log (35.5 KB)

hello terrychan2,

may I know what’s your steps, including the commands to flash the board.
it looks like you did not remove that completely,
for example,
append: tegraid= ddr_die=4096M@2048M section=512M memtype=0 vpr_resize usb_port_owner_info=0 lane_owner_info=0 emc_max_dvfs=0 touch_id=0@63 video=tegrafb no_console_suspend=1 console=ttyS0,115200n8...

Hi Jerry,

I modified the configuration files which is in the folder “Linux_for_Tegra”.

Then I built the kernel with the below commands:
make ARCH=arm64 O=$TEGRA_KERNEL_OUT tegra_defconfig
make ARCH=arm64 O=$TEGRA_KERNEL_OUT -j8

Then, I copied the built image to “Linux_for_Tegra/kernel/” and copied all built dtb (arch/arm64/boot/dts/*) to “Linux_for_Tegra/kernel/dtb/”

Then, I created the SD card image with the below command:
sudo ./ -o sd-blob.img -b jetson-nano -r 300

Then, I burnt the image to SD card.

hello terrychan2,

you’ll need to perform flash script file to fully flash the board to update the configuration files.
please install the JetPack release image and setup the development environment with NVIDIA SDK Manager | NVIDIA Developer.
you should also check developer guide, Flashing and Booting the Target Device for more details.

Hi Jerry,

I tried to put the Jetson Nano into RECOVERY mode and used the below command to flash: (according to Basic Flashing Procedures
sudo ./ jetson-nano-devkit mmcblk0p1

BUT also got the debug message from ttyS0

THEN, I used NVIDIA SDK Manager and modified those .conf files. After flashing the device, I STILL got the debug message from ttyS0.

Seems, my changes on the .conf files did not take effect. Do I miss something?
Please help!

hello terrychan2,

just consider NVIDIA SDK Manager to download and install the JetPack release image.
you may simply to modified those .conf files, and perform flash script again to re-flash the board.

please try again without using NVIDIA SDK Manager.

Hi Jerry,

After downloading and installing the JetPack release image, I modified those .conf files (located at nvidia_sdk/JetPack_4.5.1_Linux_JETSON_NANO_DEVKIT/Linux_for_Tegra).
Then, I used the below command to flash the device:
sudo ./ jetson-nano-devkit mmcblk0p1

I still got the debug message!!!
I attached the log
putty.log (35.7 KB)

Hi terrychan2,

Please try below steps:

1. Edit "p3448-0000.conf.common" 
    --> remove the specification console=ttyS0
2. Edit "/boot/extlinux/extlinux.conf"
    --> remove the specification console=ttyS0
3. Full flash image 

Hi carolyuu,

I can find there is 2 extlinux.conf (located at Linux_for_Tegra/rootfs/boot/extlinux/ and Linux_for_Tegra/bootloader/). However, there are no “console=ttyS0” in those files. Instead, I can find “APPEND ${cbootargs} quiet”.

Do you know where is the ${cbootargs}?

Hi @JerryChang and @carolyuu ,

I found that there are 3 “console=ttyS0” appended in the boot arguments in log (booting on the JetPack release image).
Thus, I think I have removed 2 of them after updated the .conf files and
However, there is still 1 “console=ttyS0”.

Please help!!!
The attachment is the log of the JetPack release image.
putty.log (35.5 KB)

hello terrychan2 ,

may I know which port you’re used for sending logs, for example, is it port J18, J41, J44,or something else?

Hi terrychan2,

After you remove ttyS0 from config file, and full flash the image.
Wait the image flash complete, remove ttyS0 from /boot/extlinux/extlinux.conf and reboot.

The original extlinux.conf like below:

LABEL primary
      MENU LABEL primary kernel
      LINUX /boot/Image
      INITRD /boot/initrd
      APPEND ${cbootargs} quiet root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 sdhci_tegra.en_boot_part_access=1

Hi Jerry,

The console debug port (ttyS0) is Pin 3 and 4 of J50

Hi @carolyuu ,

Still not work

Hi @JerryChang and @carolyuu ,

Have you tested it at your side?
I think the bootloader is passing that configuration parameters (NOT only the configuration files).

hello terrychan2,

Jetson Nano has three UARTs,
UART0 on the M2 Key
UART1 at 40-pin connector
UART2 for debug. it only has TX and RX available.

please access Jetson Nano Product Design Guide and check [Table 11-6. Jetson Nano UART Pin Description].
it’s signaling of UART1_TX/RX,
so, please have a try to update Nano’s device tree, you could remove console-port to disable it.
for example,

diff --git a/kernel-dts/tegra210-porg-p3448-common.dtsi b/kernel-dts/tegra210-porg-p3448-common.dtsi
@@ -697,7 +697,6 @@

        serial@70006000 { /* UART-A : UART1: Debug */
                compatible = "nvidia,tegra210-uart", "nvidia,tegra114-hsuart", "nvidia,tegra20-uart";
-               console-port;
                /delete-property/ resets;
                /delete-property/ reset-names;

Hi @JerryChang ,

Still not work.

Hi @JerryChang and @carolyuu ,

I think this issue CANNOT be solved. Thanks!

Please at least share us the dmesg so that we can know whether your change is really taking effect.

Also, do you want this uart totally not print any log or only kernel log? Since some bootloader sources are not released, I think we may only disable kernel.