I am splitting out the root filesystem from the boot files on the emmc. The boot files are in mmcblkop1 and uboot finds the extlinux.conf file in there fine and begins booting.
If I put the rootfs on mmcblk0p2 and change the extlinux.conf file to pass in root=/dev/mmcblk0p2 it boots fine.
However if I put the rootfs on mmcblk0p3 and change the extlinux.conf file to pass in root=/dev/mmcblk0p3 I get the following on boot:
[ 00:00:00 ] L4T initrd starts from here.....
[ 00:00:00 ] L4T-INITRD Build DATE: Tue Jan 1 00:00:00 UTC 2013
[ 00:00:00 ] Root device found: mmcblk0p
ERROR: mmcblk0p not found
I see “ERROR: mmcblk0p not found”, where mmcblk0p is a truncation of mmcblk0p3…it seems to be throwing away the “3”. Also, initrd is noted…any changes you may have made could possibly need a change in the initrd as well.
Assuming you can boot without partitioning…meaning even if you have to boot to mmcblk0p1…what is the output of:
After a bit more investigation it is indeed a problem in the initrd. After failing to boot it drops out a bash terminal and on inspecting the “init” script at the root of the filesystem it has the following line:
rootdev=`cat /proc/cmdline | sed -e 's/.*root=\/dev\/\([abcdefklmnps012]*\).*//'`;
I read that as it will only match on mmcblk0p1 and mmcblk0p2, if I can edit this file and add in a 3 then it should be able to find the third partition.
Now I just need to figure out how to edit that file in the initrd.
I followed these instructions and now the Ethernet and USB are not appearing on the board when it boots. I tried just unpacking and repacking without changing anything and it does the same. If I then replace it with the original initrd the ethernet and USB come back.
Note that even if your initrd edit added the ability to name another partition I’m unsure of exactly when your error shows up. Logs of boot (e.g., using serial console) would be quite helpful, along with any comment on exactly when ethernet and USB are being used (e.g., during U-Boot, or after complete boot, so on).