Trying to install Void Linux, at a Loss

how did you go about installing void? did you mount the boot partition to /boot before you installed the packages? are you able to share the contents of your /boot? Can you share the contents of /boot/extlinux/extlinux.conf

ahh I think I forgot to add extlinux generator u-boot-menu as a dependency. You’ll need that :face_with_spiral_eyes:

Having the package on your system should trigger the hook to have it auto-generate when the kernel install happens. On the off chance that it doesn’t auto-generate when you reinstall your kernel with the package on your system you can put something similar to this in /boot/extlinux/extlinux.conf

Sorry 'bout that

default l0
menu title U-Boot menu
prompt 0
timeout 50


label l0
        menu label Void GNU/Linux 6.11.5_1
        linux /vmlinux-6.11.5_1
        initrd /initramfs-6.11.5_1.img
        fdt /dtb-6.11.5_1

        append   loglevel=3 ${bootargs} console=tty1

Contents of /boot/:

boot.scr
config-6.11.5_1
dtb-6.11.5_1
dtbs
flash.bin
initramfs-6.11.5_1.img
lost+found
vmlinux-6.11.5_1

I did already have u-boot-menu installed manually, but doesn’t generate extlinux.conf, and I haven’t been able to find any hooks for it. Manually creating the extlinux directory and file isn’t working either.

It looks like I really do just need to read from serial, so I’m waiting on a USB-UART adapter to arrive in the meantime.

One more thing for you to try in the meantime. Can you show me the file sizes for all the files in your /boot dir? If the Linux image is too large, it doesn’t boot. Mine is 41M large

1 Like

ls -lh gives me the following sizes (trimmed by me):

4.1K boot.scr
287K config-6.11.5_1
58   dtb-6.11.5_1 → dtbs/dtbs-6.11.5_1/freescale/imx8mp-mnt-pocket-reform.dtb
4.0K dtbs
4.0K extlinux
109M initramfs-6.11.5_1.img
16K  lost+found
29M  vmlinux-6.11.5_1

I’ll give trimming my initramfs down a shot, since 109MiB compressed seems unreasonably large.

Okay, I’m hooked up to serial now!

It looks like it’s failing to load the DTB. I wrote an echo for the exact path and the file is located there, so I assume it’s failing to read it?

I tried changing the path in the boot script, copying over the DTB from Debian, manually preprocessing (cpp) and compiling (dtc) the DTS (taken from pocket-reform-kernel files), all with no luck.

Serial output from u-boot is as follows:

mmc0 is current device
Scanning mmc 0:1...
Found /extlinux/extlinux.conf
Retrieving file: /extlinux/extlinux.conf
1:      Void Linux Version 6.11.5_1
Retrieving file: /initramfs-6.11.5_1.img
Retrieving file: /vmlinux-6.11.5_1
Moving Image from 0x40480000 to 0x40600000, end=42390000
ERROR: Did not find a cmdline Flattened Device Tree
Could not find a valid device tree
SCRIPT FAILED: continuing...
Found U-Boot script /boot.scr
4080 bytes read in 3 ms (1.3 MiB/s)
## Executing script at 40480000
30013952 bytes read in 1246 ms (23 MiB/s)
54114 bytes read in 12 ms (4.3 MiB/s)
14722523 bytes read in 611 ms (23 MiB/s)
ENTERING_THE_VOID_ON 6.11.5_1 from mmc 0:1...
Moving Image from 0x40480000 to 0x40600000, end=42390000
## Flattened Device Tree blob at 43000000
   Booting using the fdt blob at 0x43000000
   Using Device Tree in place at 0000000043000000, end 0000000043010361

Starting kernel ...

After this point it just loops.

Is it possible that you have /boot directories in more than one place (ie, in more than one partition) and you are updating and manipulating the wrong one? I know, for example, that sometimes it’s on an emmc module and then mounted into your root drive at /boot and if it’s not mounted, you have an empty directory there and you can have the package manager manipulate the copy on your root directory instead of on the boot medium…

1 Like

I would’ve been surprised if it were, but to be thorough I did double-check and the root partition (p2) /boot directory is empty and all files are on the boot partition (p1) of the SD card.

1 Like

Is it possible that the boot partition is on the CPU module’s integrated storage? I can’t remember if if the iMX8MP has any or not, but I think it has some. On my classic reform with the A311D, my lsblk looks like this:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
mmcblk1 179:0 0 14.6G 0 disk
├─mmcblk1p1 179:1 0 488M 0 part /boot
└─mmcblk1p2 179:2 0 14.1G 0 part
nvme0n1 259:0 0 953.9G 0 disk
└─reform_crypt 254:0 0 953.9G 0 crypt
├─reformvg-swap 254:1 0 4G 0 lvm [SWAP]
└─reformvg-root 254:2 0 949.9G 0 lvm /
mmcblk1boot0 179:256 0 4M 1 disk
mmcblk1boot1 179:512 0 4M 1 disk
That’s the running system, and the /boot is on the emmc module the cpu card has, not on an SD card or on the nvme drive. But also, you can see I also have those mmcblkboot devices, which I think are either on the emmc module or some other flash storage on the module. I’m wondering if you have something like that messing things up (I haven’t seen that on an MNT machine yet, but I have on an arm SBC before).

Dunno, just random guessing – sorry!

No need to apologize for trying to help!

Serial output tells me UBoot is loading from the SD card (mmc 0:1) rather than the eMMC (mmc 2:1) and correctly shows the relevant extlinux information and kernel version, so I don’t think it’s pulling from the wrong drive for boot.

1 Like

To me it looks like uboot is just ignoring the “fdt” entry in your extlinux.conf, or there may be a typo around it. Can you show your extlinux.conf @sleeplessval ?

1 Like

I thought I had copied the one @joe-albanese sent above, but I was missing some lines. I’m no longer getting the FDT error, but still am not booting successfully. Setting loglevel to 8 yields nothing after “Starting kernel …” so I suspect something is still causing trouble.

Tried Debian’s versus compiled DTBs and regenerating initramfs, but still getting nothing.

/boot/extlinux/extlinux.conf:

TIMEOUT 10
DEFAULT entry0
MENU TITLE Boot menu
PROMPT 0

LABEL entry0
    MENU LABEL Void Linux Version 6.11.5_1
    LINUX /vmlinux-6.11.5_1
    INITRD /initramfs-6.11.5_1.img
    FDT /dtb-6.11.5_1
    APPEND   loglevel=8 ${bootargs} console=tty1

With this setup, if you only substitute our Debian kernel, does it work, i.e. produce output?

1 Like

No, I get the same issue with the Debian kernel, and separately with the Debian initrd.

Okay, more: if I do the Debian DTB and kernel, I do get display where dracut emits some errors about missing drivers for the Debian kernel version (6.15.6-mnt-reform-arm64). No errors over serial, however.

Looking through the kernel xbps archive (.tar.zst), it looks like GPU module (drivers/gpu/drm/imx/mxsfb.ko.zst) and the MMC modules (drivers/mmc/core/) aren’t present. I can build mxsfb out-of-tree with DKMS, but the MMC has to be built in-tree.

Going to try compliing with the kernel configuration used by Debian and see if that builds the relevant modules.

It looks like no matter what my kernel configuration for pocket-reform-kernel, I have missing modules.

I rebased my repo off of master over the weekend, and recompiled my kernel package. I’ll see if that installs successfully on my pocket reform. If that works, you should be able to have good confidence that the kernel itself is built correctly

1 Like

Alright I’m having issues booting. Are you getting a blank cursor on your screen that echos but doesn’t do anything?

If this is the same issue, I feel very good about getting this solved ASAP

1 Like