Booting from SD card gets stuck at ""random: nonblocking pool is initialized""


#1

Hi, I followed these instructions:
https://github.com/96boards/documentation/blob/master/ConsumerEdition/DragonBoard-410c/Configuration/GPT.md to create a bootable sd card.

I had to change some stuff in the instructions:

since the rootfs.img downloaded is large, I had to change the variable SIZE_MIN in the script mksdcard from 16348 to 1048576.
also , I had to run the abootimg with the parameters:

abootimg -u boot.img -c “cmdline=root=/dev/disk/by-partuuid/b6ec75bc-3e26-46c9-90b7-2719d6d466ef rw rootwait console=tty0 console=ttyMSM0,115200n8”

in order to see debugs when loading and in order for the bootloader to find the rootfs.

Now when booting , it runs until it stuck forever with the line:
“random: nonblocking pool is initialized”

I found out someone before had similar problem, he uploaded this:
https://drive.google.com/file/d/0B9Lwf-0Ueco_Z1Y3RGY0OTNmcFpHdHphVzR5QkR1SFdYcEhF/view

I tried to add the option “nomodeset” suggested in some places , so running:

abootimg -u boot.img -c “cmdline=root=/dev/disk/by-partuuid/b6ec75bc-3e26-46c9-90b7-2719d6d466ef rw nomodeset rootwait console=tty0 console=ttyMSM0,115200n8”

but that didn’t solve.


#2

The “random: nonblocking pool is initialized” is issued asynchronously by the kernel after it has gathered enough random noise to allow users to grab random numbers. It is likely the kernel actually got stuck before this message but the timer interrupt and maybe a couple of others were still running (this eventually provides enough info to initialize the random pool).

The most likely cause for getting stuck is that the kernel cannot mount the root filesystem. Can you share the other boot messages (these are fairly bulky to a pastebin might be good for this).


#3

Hi , so after running mksdcard I ran
$ partprobe
$ sudo blkid /dev/sd*
/dev/sda: PTUUID=“0009be66” PTTYPE=“dos”
/dev/sda1: UUID=“126b7f8c-f415-4f2d-8b64-398286543a50” TYPE=“ext4” PARTUUID=“0009be66-01”
/dev/sda5: UUID=“b76193d2-2c9e-441b-89bf-044a94fad568” TYPE=“swap” PARTUUID=“0009be66-05”
/dev/sda6: UUID=“ce7e2510-8b25-42cc-b194-b51bee126ffc” TYPE=“ext4” PARTUUID=“0009be66-06”
/dev/sdb: PTUUID=“eb36c25a-ea58-47d3-aefc-5db79d25984d” PTTYPE=“gpt”
/dev/sdb1: SEC_TYPE=“msdos” UUID=“00BC-614E” TYPE=“vfat” PARTLABEL=“modem” PARTUUID=“aa9aa621-ab5a-4488-80b5-fd3a363d1b21”
/dev/sdb10: UUID=“545a0788-f415-477d-baef-9246fd903a89” TYPE=“ext4” PARTLABEL=“rootfs” PARTUUID=“1ddecb0c-cc6f-4f7c-9063-b5afc860a91b”
/dev/sdb2: PARTLABEL=“sbl1” PARTUUID=“4a5e09a8-b32b-41c1-8475-ecc01a5a314f”
/dev/sdb3: PARTLABEL=“rpm” PARTUUID=“dabd4542-3499-4445-83e6-63353a4277ca”
/dev/sdb4: PARTLABEL=“tz” PARTUUID=“e104d831-0888-483d-aa4f-e0f858383419”
/dev/sdb5: PARTLABEL=“hyp” PARTUUID=“afaa3bc6-84b9-436a-aa4b-41a21be74536”
/dev/sdb6: PARTLABEL=“sec” PARTUUID=“98582de5-b6b5-4c2c-b8ea-63a0dc815088”
/dev/sdb7: PARTLABEL=“aboot” PARTUUID=“1384570c-02c1-4a99-a9df-a9c38614bb4b”
/dev/sdb8: PARTLABEL=“boot” PARTUUID=“d1303f3a-f93f-4d9b-b513-53fa56202077”
/dev/sdb9: PARTLABEL=“devinfo” PARTUUID=“a168e810-ffbf-41a6-9525-568a5b5f848e”

then
$ abootimg -u boot.img -c “cmdline=root=/dev/disk/by-partuuid/1ddecb0c-cc6f-4f7c-9063-b5afc860a91b rw rootwait console=tty0 console=ttyMSM0,115200n8”

and
$ dd if=boot.img of=/dev/sdb8

then when booting , I get:
https://drive.google.com/file/d/0B-3Lmv-KSE7RYURJbEk4b3M0TGM/view


#4

I think the problem is in you choice of root= argument.

The by-partuuid directory is a set of softlinks created by udev. Normally udev is launched from an initial ramdisk and this allows the softlinks to be created before the ramdisk interprets the root= argument.

You boot image does not include an initial ramdisk meaning that the kernel itself must interpret the root= argument before by-partuuid has been created. Without a ramdisk you must use names that the kernel recognises such as /dev/mmcblk0p8 and /dev/mmcblk1p8 .

Either you should update your kernel command line to use these names or, alternatively, you can provide an initrd.img to abootimg to get udev running (if you are using the Debian images for DB410C the initrd.img is available for download separately to simplify this for you, if not you may have to assemble one yourself).


#5

Hi,
you are right , I ran
abootimg -u boot.img -c “cmdline=root=PARTUUID=1ddecb0c-cc6f-4f7c-9063-b5afc860a91b rootfstype=ext4 rw rootdelay=20 debug console=tty0 console=ttyMSM0,115200n8”

instead of

abootimg -u boot.img -c “cmdline=root=/dev/disk/by-partuuid/1ddecb0c-cc6f-4f7c-9063-b5afc860a91b rootfstype=ext4 rw rootdelay=20 debug console=tty0 console=ttyMSM0,115200n8”

and it works,
Thanks!

I have a silly problem now, It asks me for login and password, and I don’t know them.
I tried linaro/linaro and root/root but no luck


#6

Great to hear you’ve got the userspace running. However I’ve no idea about the default password. Our debian images use linaro/linaro as the default passwords but I’m not sure where your image came from…