Hello @gtj,
I have managed to use update-initramfs
generated initrd
on Xavier AGX by adding hook to copy xusb firmware: AGX thread . It works with root=PARTUUID=XXXXXXXX-XXXX-XXXX-XXXX->XXXXXXXXXXXX
and for unknown reason doesn’t work with root=/dev/nvme0n1p1
. I haven’t tried with root=UUID=actual_uuid
APPEND yet.
As for stock initrd
from JetPack 4.4 DP, it has very strange commandline parsing in init
script ( at AGX thread ):
There is this script (remove .log): init.log (5.7 KB)
62: rootdev="$(sed -ne 's/.*\broot=\/dev\/\([abcdefklmnps0-9]*\)\b.*/\1/p' < /proc/cmdline)"
63: if [ "${rootdev}" == "" ]; then
64: uuid_regex='[0-9a-f]\{8\}-[0-9a-f]\{4\}-[0-9a-f]\{4\}-[0-9a-f]\{4\}-[0-9a-f]\{12\}'
65: rootdev="$(sed -ne "s/.*\broot=\(PARTUUID=${uuid_regex}\)\b.*/\1/p" < /proc/cmdline)"
66:fi
First it search for rootdevice by name “/dev/*” and if it isn’t found, for one set by PARTUUID
.
On devices flashed by JetPack first root=/dev/mmcblk0p1
is prepended by cboot to command line, so rootdevice set by
APPEND ${cbootargs} root=PARTUUID=XXXXXXXX-XXXX-XXXX-XXXX->XXXXXXXXXXXX quiet
will be completely ignored. On line 62 rootdev
will be set to “mmcblk0p1” from first “root=…” parameter and lines 64-65 will be skipped.
root=UUID=actual_uuid
form is not parsed at all.
So, to change rootfs with APPEND in extlinux.conf now we need to patch init
script in stock initrd
or generate new initrd
.
Or use systemd service method: https://github.com/jetsonhacks/rootOnNVMe