Uboot fails, boots to rescue mode, and error starting reform-hw-setup.service

I think I’m having a recurrence of this: Systemctl: error starting reform-hw-setup.service or maybe several problems are happening at once.

Some suspicious messages during boot:

Device 0: unknown device
Card did not respond to voltage select!
...
ERROR: Did not find a cmdline Flattened Device Tree
Could not find a valid device tree
...
SCRIPT FAILED: continuing...

The “device tree” part repeats for all 6 uboot entries. Then it asks me to unlock my disk. Afterwards:

[FAILED] Failed to start reform-hw-setup.service - MNT Reform Hardware Defaults setup
...
You are in rescue mode...

Maybe these are relevant:

uname -a
Linux reform 6.19.14-mnt-reform-arm64 #1 SMP PREEMPT Debian 6.19.14-1+reform20260409T045900Z (2026-04- aarch64 GNU/Linux
$ cat /proc/device-tree/model
MNT Reform 2
May 02 12:00:07 reform systemd[1]: Starting reform-hw-setup.service - MNT Reform Hardware Defaults Setup...
May 02 12:00:07 reform reform-hw-setup[740]: /usr/bin/reform-hw-setup: 128: cannot create /sys/bus/i2c/drivers/wm8960/bind: Directory nonexistent
May 02 12:00:07 reform systemd[1]: reform-hw-setup.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
May 02 12:00:07 reform systemd[1]: reform-hw-setup.service: Failed with result 'exit-code'.
May 02 12:00:07 reform systemd[1]: Failed to start reform-hw-setup.service - MNT Reform Hardware Defaults Setup.
May 02 12:04:06 reform systemd[1]: Starting reform-hw-setup.service - MNT Reform Hardware Defaults Setup...
May 02 12:04:06 reform reform-hw-setup[965]: Simple mixer control 'Playback',0
May 02 12:04:06 reform reform-hw-setup[965]:   Capabilities: volume
May 02 12:04:06 reform reform-hw-setup[965]:   Playback channels: Front Left - Front Right
May 02 12:04:06 reform reform-hw-setup[965]:   Capture channels: Front Left - Front Right
May 02 12:04:06 reform reform-hw-setup[965]:   Limits: 0 - 255
May 02 12:04:06 reform reform-hw-setup[965]:   Front Left: 255 [100%] [0.00dB]
May 02 12:04:06 reform reform-hw-setup[965]:   Front Right: 255 [100%] [0.00dB]
May 02 12:04:06 reform reform-hw-setup[969]: Simple mixer control 'Left Output Mixer PCM',0
May 02 12:04:06 reform reform-hw-setup[969]:   Capabilities: pswitch pswitch-joined
May 02 12:04:06 reform reform-hw-setup[969]:   Playback channels: Mono
May 02 12:04:06 reform reform-hw-setup[969]:   Mono: Playback [on]
May 02 12:04:06 reform reform-hw-setup[974]: Simple mixer control 'Right Output Mixer PCM',0
May 02 12:04:06 reform reform-hw-setup[974]:   Capabilities: pswitch pswitch-joined
May 02 12:04:06 reform reform-hw-setup[974]:   Playback channels: Mono
May 02 12:04:06 reform reform-hw-setup[974]:   Mono: Playback [on]
May 02 12:04:06 reform reform-hw-setup[975]: Simple mixer control 'Left Input Mixer Boost',0
May 02 12:04:06 reform reform-hw-setup[975]:   Capabilities: pswitch pswitch-joined
May 02 12:04:06 reform reform-hw-setup[975]:   Playback channels: Mono
May 02 12:04:06 reform reform-hw-setup[975]:   Mono: Playback [on]
May 02 12:04:06 reform systemd[1]: reform-hw-setup.service: Deactivated successfully.
May 02 12:04:06 reform systemd[1]: Finished reform-hw-setup.service - MNT Reform Hardware Defaults Setup.
$ find /sys/devices/platform/soc*/ -wholename '*/tty/ttymxc*/power/wakeup'
/sys/devices/platform/soc@0/30800000.bus/30860000.serial/30860000.serial:0/30860000.serial:0.0/tty/ttymxc0/power/wakeup
/sys/devices/platform/soc@0/30800000.bus/30890000.serial/30890000.serial:0/30890000.serial:0.0/tty/ttymxc1/power/wakeup
/sys/devices/platform/soc@0/30800000.bus/30880000.serial/30880000.serial:0/30880000.serial:0.0/tty/ttymxc2/power/wakeup
$ sudo reform-check
I: Contents of /proc/device-tree/model: MNT Reform 2
I: `uname -a` output: Linux reform 6.19.14-mnt-reform-arm64 #1 SMP PREEMPT Debian 6.19.14-1+reform20260409T045900Z (2026-04- aarch64 GNU/Linux
I: Version of linux-image-mnt-reform-arm64: 6.19.14-1+reform20260409T045900Z
I: Version of reform-tools: 1.86-1+reform20260417T215359Z+1
I: Version of system image: System Image v5: 2026-01-27
I: Version of LPC firmware: MREF2LPC 30_R1 20250701
I: Version of upstream U-Boot: 2018.07
I: Version of MNT U-Boot: 2026-01-11
I: probably booting via /boot/extlinux/extlinux.conf (/boot/boot.scr also exists)
I: Mount source of /: /dev/reformvg/root (LVM vg 'reformvg' on LUKS device 'reform_crypt' on SSD)
I: Mount source of /boot: /dev/mmcblk0p1 (eMMC)
I: Recommends of reform-desktop-minimal is not installed: reform-qcacld2
I: the following files differ from how they are shipped by reform-tools (ignore /var/lib/alsa/asound.state):
??5??????   /var/lib/alsa/asound.state                                                                                                I: kernel boot parameters your system does use but which are not the default:
 + single
 + single
 + single
W: Your kernel cmdline has 'single' in it and will boot into rescue mode on each boot. Maybe booting via extlinux.conf failed?
I: eMMC contains the latest bootloader version 2026-01-11

$ cat /boot/extlinux/extlinux.conf
## /boot/extlinux/extlinux.conf
##
## IMPORTANT WARNING
##
## The configuration of this file is generated automatically.
## Do not edit this file manually, use: u-boot-update

default l0
menu title U-Boot menu
prompt 1
timeout 1


label l0
        menu label Debian GNU/Linux forky/sid 6.19.14-mnt-reform-arm64
        linux /vmlinuz-6.19.14-mnt-reform-arm64
        initrd /initrd.img-6.19.14-mnt-reform-arm64


        append   ro no_console_suspend cryptomgr.notests plymouth.ignore-serial-consoles pcie_aspm=off ${bootargs} console=tty1
label l0r
        menu label Debian GNU/Linux forky/sid 6.19.14-mnt-reform-arm64 (rescue target)
        linux /vmlinuz-6.19.14-mnt-reform-arm64
        initrd /initrd.img-6.19.14-mnt-reform-arm64

        append   ro no_console_suspend cryptomgr.notests plymouth.ignore-serial-consoles pcie_aspm=off ${bootargs} console=tty1 single


label l1
        menu label Debian GNU/Linux forky/sid 6.19.13-mnt-reform-arm64
        linux /vmlinuz-6.19.13-mnt-reform-arm64
        initrd /initrd.img-6.19.13-mnt-reform-arm64


        append   ro no_console_suspend cryptomgr.notests plymouth.ignore-serial-consoles pcie_aspm=off ${bootargs} console=tty1

label l1r
        menu label Debian GNU/Linux forky/sid 6.19.13-mnt-reform-arm64 (rescue target)
        linux /vmlinuz-6.19.13-mnt-reform-arm64
        initrd /initrd.img-6.19.13-mnt-reform-arm64

        append   ro no_console_suspend cryptomgr.notests plymouth.ignore-serial-consoles pcie_aspm=off ${bootargs} console=tty1 single


label l2
        menu label Debian GNU/Linux forky/sid 6.19.11-mnt-reform-arm64
        linux /vmlinuz-6.19.11-mnt-reform-arm64
        initrd /initrd.img-6.19.11-mnt-reform-arm64


        append   ro no_console_suspend cryptomgr.notests plymouth.ignore-serial-consoles pcie_aspm=off ${bootargs} console=tty1

       label l2r
        menu label Debian GNU/Linux forky/sid 6.19.11-mnt-reform-arm64 (rescue target)
        linux /vmlinuz-6.19.11-mnt-reform-arm64
        initrd /initrd.img-6.19.11-mnt-reform-arm64

        append   ro no_console_suspend cryptomgr.notests plymouth.ignore-serial-consoles pcie_aspm=off ${bootargs} console=tty1 single

I would appreciate any help!

Thank you for reaching out with your bug report!

You can see the problem in the extlinux.conf you pasted above. This is the problem we diagnosed here two weeks ago: Ptyxis high CPU utilization

It will be fixed in the next release of reform-tools. Sorry for the mess. If you cannot wait, you could manually edit /etc/u-boot-menu/conf.d/reform.conf and make sure it contains the following and then re-run sudo u-boot-update.

U_BOOT_FDT_DIR="/dtbs/"
U_BOOT_FDT="/freescale/imx8mq-mnt-reform2.dtb"

What I don’t understand is how this problem only shows up now because reform-display-config had this bug since 2024.

I should add a check for this to reform-check.

1 Like

This has been happening for a while, but the machine works fine once I exit single-user mode, so I’ve just been procrastinating reporting it :sweat_smile:

Good to know that a fix is forthcoming!

About the reform-hw-setup failure, I think this is harmless. It tries to rebind the audio card, but it’s not available yet. Then the service is automatically started again a few seconds later by systemd, where it seems to work this time around.

@minute Can/should that issue not be solved by either retrying binding the audio card in a loop with a maximum number of tries and a short sleep until it succeeds? This is how @stephano suggested to solve a race with NetworkManager in reform-hw-setup here: reform-hw-setup: bring down end0 before a311d PHY fix (!168) · Merge requests · Reform / MNT Reform Tools · GitLab

I also wonder why the service is automatically started again even though it is Type=oneshot?