Joined: 14 Apr 2006
|Posted: Wed Oct 25, 2017 7:33 pm Post subject: dracut on arm64
For arm64 /boot I use dracut to generate uInitrd as follows
|# export ARCH=arm64
# export LINUX=4.13.0-gentoo
# dracut --kernel-cmdline "root=LABEL=ROOTFS boot=LABEL=BOOT" initramfs-dracut-arm64-$LINUX $LINUX
# cp -p initramfs-dracut-arm64-$LINUX initrd.img
# mkimage -A $ARCH -O linux -T ramdisk -C none -a 0 -e 0 -n uinitrd -d initrd.img uInitrd
This has worked pretty well and last time was on Sep 6 (for 4.13.0-gentoo).
(I may need to change --kernel-cmdline in the future)
But if today I make same 4.13.0-gentoo uInitrd this way, system stays
on boot logo. Same code.
Also for newer kernels.
I believe dracut upgraded. It is now sys-kernel/dracut-045-r2. I also
noticed /lib/ld-linux-aarch64.so.1 link is no longer in initramfs and
some crypto modules are there now. If I put /lib/ld-linux-aarch64.so.1
there still no go.
I tried minimx-g spot-i7-pro and kvim2. For another kernel I noticed
on the console that no valid /init was found. Which is how I came upon
spotting the missing ld-linux-aarch64.so.1.
On kvim2 I have serial kermit for u-boot and I do not spot any different output
between working and failing uInitrd for 4.13.0-gentoo.
Hereby I should mention I do not (yet) managed to spawn a serial console (see later) so the output is minor.
Note that, unlike on amd64, on arm64 /lib is not a link to
/lib64. Maybe I should make it so?
Meanwhile can anyone recommend other way to make initramfs? Does someone use 'genkernel' perhaps?
update: FYI genkernel seems not yet supported for aarch64 (one needs to write config files).
So any other alternative ?
While on boot topic. What kernel config and inittab etc... is needed for spawning a console on serial port?
have a nice day
if dracut upgraded it must have been minor (say dracut-045 to dracut-045-r1 to dracut-045-r2) because working one also was 45:
|# dmesg | grep dracut-045
[ 0.780598] dracut: dracut-045
I tmp gave up on initrd and try to boot without now.
It is also possible I need to make some =m into =y in kernel .config
I could boot without initrd too (thanks balbes for help) but for some reason slow network preformance.
Now I use tmp work around dracut by making the initramfs using artful ubuntu chroot inside gentoo and having /usr/src and /lib/modules 'bind' mount-ed from gentoo to appear into that chroot.