As suggestion:

From the system that you use to chroot, use hwid software to get all needed to boot.

Compile your own kernel without genkernel assuring that the options of hwid are included in kernel (not as modules).

I never used dracut, grub allows specify the initramfs to use, use genkernel for this.

Bootstrap is more nightmare than you can imagine, grub is a second stage bootloader, you need one that should be u-boot. U-boot can include EFI support or lack them. One uboot from X can be able to boot the grub you made but the u-boot from Y don't.

I tried compile my own u-boot with my own bl31 but I was unable to make it run.

This options are from the u-boot I built

# CONFIG_CMD_UUID is not set
# CONFIG_CMD_FS_UUID is not set
CONFIG_PARTITION_UUIDS=y
CONFIG_LIB_UUID=y
CONFIG_RANDOM_UUID=y

Can you be sure that your u-boot is able to find your partitions?
By this reason firstly boot specify in kernel command line one root=/dev/whateverdevices would.

Grub is something like that, their config can have more of less commands

as with the parameter: GRUB_DISABLE_LINUX_UUID

So my advice to you:

hwinfo from your live system to get your hardware info

If the u-boot calls grub, grub shall support initramfs done with genkernel initramfs

Uboot for example require (at least mine) that kernel was uncompressed and was unable to use genkernel initramfs, I had to do it with mkimage (I did some scripts to make conversions) and with a limit in size kernel and initramfs.

Compile your kernel without modules, get all, even firmware in kernel image to be sure that the kernel itself without third party helpers (as /usr/lib/firmware) are able to boot, discarding at this way the kernel it self as cause of your misfortune.

/dev/root is a "link" to the real partition which is the root parameter passed to the kernel in command line, you can see it using cat /proc/cmdline, after that set it your self in grub config root=/dev/mmcblk1p3 for example



El 24/7/25 a las 23:47, Dennis Clarke escribió:
On 7/24/25 17:24, Javier Martinez wrote:
 > Dennis
 >
 > You have reached to the trully nightmare of embeeded devices. How the
 > hell can I boot this shoe box, I spent nearly 4  months in make rockpi
 > boot.
 >
 > Have you thought in specify the rootfs by device instead by uuid? as in
 > root=/dev/mmcblk0p3. If it works the trouble is that someone has not
 > UUID support.
 >
I am indeed feeling the pain :/

Here is what I find interesting about this bizarre little board :

     1) it has 32G of DDR5 memory

     2) when running the supplied Ubuntu image it is okay
         2.1) the supplied Ubuntu image does boot towards GRUB
         2.2) that GRUB uses a tiny grub.cfg which then points
              towards a much larger grub.cfg on the root fs

     3) I can flash the SiFive supplied Ubuntu onto the board
        and then boot and run that just fine.

     4) I can flash the Sifive supplied Yocto onto the board
        and then copy/backup all of that onto SATA disk and
        it will run entirely from the SATA disk just fine

My initial testing shows the SiFive P550 board is around 75% of
the speed we see in a Raspberry Pi 5. Most things. I tested with
some libGMP and libMPFR stuff and also fairly abusive IEEE-754
strict math stuff. It is about 75% the speed of the Rpi5. Sort of.

Getting Gentoo nice and lean and mean onto this thing is not entirely
a nightmare. More of a pain and frustration wherein the boot process
is a damn mystery. Poorly documented to say the least.

I also have had this board for about four months. It was dead and just
powered off for at least a month because it would not boot anything. I
had to curse and face east on a Tuesday when it was my mothers birthday
under a full moon to get it to boot anything again. Much gnashing of
teeth as they say.

So here I am doing trial and error to figure out WTF works.

I may post updates as I proceed. At the moment I am rebuilding the
kernel with a USE flag that simply says "grub" :

     file /etc/portage/package.use/installkernel says

         sys-kernel/installkernel grub


That may result in nothing much. I will take a look at whatever the
Ubuntu /etc/fstab says. It baffles me. The Yocto image runs and mounts
everything just fine with this :


root@hifive-premier-p550:~# cat /etc/fstab
# stock fstab - you probably want to override this with a machine specific one

/dev/root            /                    auto       defaults   1  1
proc                 /proc                proc       defaults   0  0
devpts               /dev/pts             devpts mode=0620,ptmxmode=0666,gid=5      0  0 tmpfs                /run                 tmpfs mode=0755,nodev,nosuid,strictatime 0  0
tmpfs                /var/volatile        tmpfs      defaults   0  0

# swap on the external SATA spinning disk
UUID=ab60f3c4-7658-44f9-b944-139378afc9f6 none  swap    sw      0       0
root@hifive-premier-p550:~#
root@hifive-premier-p550:~# cat /proc/swaps
Filename                                Type            Size Used            Priority /dev/sda2                               partition       4194300 0               -2
root@hifive-premier-p550:~#


Well gee .... there is a bizarre /dev/root thing. I see nothing for UUID
stuff other than swap.

                       * baffled *



Attachment: OpenPGP_0x57E64E0B7FC3BEDF.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to