Hello,
I’d like to change the default cmdline / cbootargs that are passed to kernel when loading it.
Even before customization, I’d like to understand the process and clean the quite ugly (imho) version that is the default on r32.2.1 :
tegraid=21.1.2.0.0 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 debug_uartport=lsport,2 earlyprintk=uart8250-32bit,0x70006000 maxcpus=4 usbcore.old_scheme_first=1 lp0_vec=0x1000@0xff780000 core_edp_mv=1125 core_edp_ma=4000 tegra_fbmem=0x800000@0x92cb7000 is_hdmi_initialised=1 root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0
wich contains a lot of redundant variables.
I’m able to change this from u-boot at runtime but as the saveenv is not enabled on the default image ( I’ve seen this : https://devtalk.nvidia.com/default/topic/1052348/-u-boot-saveenv-command-/ ) so this cannot be used to permanently change the image settings at runtime.
I’ve been searching around the forum around those cbootargs / cmdline but did not found a complete answer (e.g. I found this
https://devtalk.nvidia.com/default/topic/1056391/jetson-nano/changing-kernel-bootargs/
). Most of those threads explain how to add args with the /boot/extlinux/extlinux.conf file, but as far as I understand, this only allows to add arguments to the already existing cbootargs. This indeed works (as the quiet arg added throught this mecanism on the stock r32.2.1 image). Other thread reports that this is done through DTB customization, but I have not seen any cbootargs entry in the .dts files that I believe are used for building my .dtb file.
Any help / tutorial / good resources to get hands deeper on the u-boot configuration (compilation/installation) would really be welcome. I’ve been searching the u-boot source, but did not found where/how to configure the default cbootarg.
As an extra request, do you think it’s possible to completely disable the boot / OS usage of the console uart, in order to use it a second uart, without transmitting any chars on that line at boot time ? (somethng similar to
https://wiki.odroid.com/odroid-xu4/troubleshooting/odroid-hc1_disable_console
on other platforms). I understand that the boot process has several additionnal stages before u-boot, and that those stages should also have their console output disabled, so is this achievable ?
PS : I’m using the Nano DevKit and I have the sdkmanager installed ad usable on a ubuntu 18.04 host (already have compiled custom kernel and DTB with /dev/pps0 and kernel GPIO pps support)