Pocket Reform, HDMI output lores

In the not-distant past, I was able to use my Pocket reform (imx8mp) with an Acer 1080p monitor, or a 4k monitor in 4k or 1080 mode with no problem. At some point, that changed. I now cannot get more than 800x600 resolution. I’ve tried two different cables on two monitors, and the results are the same. Only low-res on external monitors. the internal display seems fine.

Any suggestions?

thanks,
–murph

A detail that I forgot. Sometime I use a command to set the resolution, it now has no effect over the aforementioned 800x600:

wlr-randr --output HDMI-A-1 --custom-mode “1920x1080@60Hz”

Used to work, now has no effect. Also the displays program within Wayfire doesn’t how higher modes either.

Here’s the output from wlr-randr with no options:

HDMI-A-1 "(null) (null) (HDMI-A-1)"
  Make: (null)
  Model: (null)
  Serial: (null)
  Enabled: yes
  Modes:
    800x600 px, 60.317001 Hz
    800x600 px, 56.250000 Hz
    848x480 px, 60.000000 Hz
    640x480 px, 59.939999 Hz
    800x600 px (current)

Unless there is something funny showing up in dmesg, you might want to bisect your kernel maybe? You could build an old version and see if that makes it work. You could also flash one of the images on reform.debian.net to an SD-Card, verify using uname that it is indeed 6.12 and see if it used to work with that.

I just checked dmesg, and don’t see anything video related. However, I see a bunch of “power_supply BAT0: driver failed to report ‘voltage_now’ property: -16” Which would probably exaplin why my power indicator in wayfire hasn’t reported anything but 6% for a while now.

I have no idea what bisecting my kernel is, but it sounds painful.
I’ll try getting an old image version downloaded and tested. I have to wait a bit though, I have a really busy month or so coming up.

Thanks.

Hi, this looks like an EDID problem, as you can see there’s (null) for a bunch of values that should normally be populated. So the EDID data is not successfully being fetched over the HDMI DDC channel (it’s a fancy name for I2C). A workaround is to give the compositor a modeline of the mode you want to use. I need to sleep now but you can use something like this:

swaymsg output HDMI-A-1 modeline 150 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync

You can find the modelines in the MythTV wiki’s modeline database (check VESA and HDTV).

1 Like

The last time I set modelines manually, I blew up CRT monitor. :slight_smile:

Ok, I’ve downloaded reform-system-any.img.xz, and gotten it flashed to a microsd card. I don’t know how to get it to boot though. If I boot with it in, it drops me to an emergency prompt, but it doesn’t beet into the card, just the already installed system, with the 6.15 kernel.

Am I doing something wrong? How do I set which to boot from?

I think fiddling with modelines as @minute suggests might be your best shot.

Even if you figure out that an older kernel works, all you learn from that is that there is a regression in the kernel somewhere but that does not fix the problem for you.

As I cannot help you with HDMI problems but only with booting problems, here are some follow-up questions about that topic from me:

How did you do the flashing? You probably executed this and made sure to replace /dev/mmcblkX with the device of your sd-card?

sudo bmaptool copy --fingerprint 3AC6EB840FA5CE3FF31BAD80EF93221F8A44FEB2 --keyring /usr/share/keyrings/debian-keyring.gpg https://reform.debian.net/images/reform-system-any.img.xz /dev/mmcblkX

Did you make sure that after this process there were now two partitions on your sd-card? Also note, that it happened several times for others in the forum that their sd-card was broken and that trying another one made it work.

i.MX8M+ has u-boot on eMMC. Which version is it? If you never updated u-boot, then the “any“ image might not work because there is a very old u-boot version for i.MX8M+ which didn’t fill the `${bootargs}` with the right values.

I am confused by the above. I’m reading that you are dropped into an emergency prompt. Is that prompt from the card or from your system on eMMC? The second part of your sentence makes me think that the emerency prompt comes from your already installed system with 6.15?

You do not “set” it. U-boot automatically looks on the first partition of the sd-card first before trying the first partition of eMMC. If it finds a boot.scr or extlinux/extlinux.conf on the first partition of the sd-card, then it will load that. That’s why I suggested above to see whether your sd-card indeed contains two partitions.

How did you do the flashing? You probably executed this and made sure to replace /dev/mmcblkX with the device of your sd-card?

No, I downloaded the image, as suggested:

I used something like gnome disks to flash the image to a card. I do have two partitons on the card, boot and root, that’s why I thought it would work. I had never used bmaptool before, and did not know I needed to. Also, I searched the documentation quickly after I read your post, and I don’t see any mention of it.

I’m not sure where I would have gotten the fingerprint from either.

If you never updated u-boot, then the “any“ image might not work because there is a very old u-boot version for i.MX8M+ which didn’t fill the `${bootargs}` with the right values.

If an “apt update; apt full-upgrade” does not upgrade u-boot, I have not. That would be a thing that I did not know that I had to do outside of regular updates.

I was confused as well. It appears that it is coming from the emmc/nvme that is already existing. I get the usual prompt to decrypt my nvme, for which I put in my password. The boot looks normal, until it drops to rescue mode, where I can enter my root password, which brings me to a prompt in the updated system with the 6.15 kernel, or I can hit ctrl-d which finishes the boot normally.

I apologize for my lack of knowledge, but I’m done plenty with x86, and that’s why I asked how to set it. From my perspective, it just looks like it’s booting from the nvme, but then fails, asking for rescue mode, which for some reason, I can just bypass and boot normally.

There are indeed two partitions on my sd card, but I suspect that the names are wrong, as I did not do it as you mentioned. I thought that since the image is for THE pocket reform, that the names would have already been set.

Since this is getting pretty crunchy, I’m going to back up all of my data from the machine now, in anticipation of maybe having to wipe my nvme. (Does “booting” the sd mean wiping my system without much notice? maybe?)

I’m sorry to be asking so many questions, but I’m trying to make things work better, and not doing well on my own. Since I got the keyboard to flash a few weeks ago, it hasn’t gone well. Along with this video issue, the keyboard really doesn’t seem better. It still needs to be reset frequently, and the system sometimes doesn’t shut down when I select “systemctl poweroff” or shut down from the menu, the oled sometimes still shows “on”

I’m a bit frustrated, but I’ll try hard to work through the issues. I will not, however be able to bring it to next week’s HOPE conference as I had desired. I can’t depend on it to do a presentation in the state that it’s in.

If you have two partitions on the card, then it probably worked. You can make sure that the first partition is indeed containing a kernel image for 6.12 as it should for Debian Trixie.

You don’t need to. But it is the tool with the least steps involved. When you use bmaptool you do not need to download the file, no need to unpack the image and it verifies signatures for you and it makes sure that you do not write it to a drive that you are currently using for your system. It’s just a normal image. If you know how to flash disk images, then after downloading and extracting you can just do it like that.

The documentation that mentions it is here: reform.debian.net -- MNT Reform system images

The official MNT images also document using bmaptool in a file called README.flashing next to the image download: README.flashing · main · Reform / reform-system-image · GitLab

Are you flashing the image using a Debian based system or a derivative of it? If not then the fingerprint is indeed more fiddly to use.

An “apt update && apt full-upgrade“ does not upgrade u-boot.

You do not have to do it. It is just that without doing it, you are not getting some features. One of them is that you are able to boot the reform-system-any images. It is no problem if you stick with the official MNT images where you are still able to download, flash and boot the pocket-reform–system-imx8mp.img.gz like these from 7 months ago:

Those images come from the sysimage-v4-20250109 tag. Maybe try and see if you have the same HDMI issues after flashing and booting that image?

This sounds like you have a second problem. The reason why you are getting thrown into a rescue shell should be printed on the screen. Are you able to see the error message which explains the reason for this?

That behaviour happens on x86 as well. One possible reason would be if you have a damaged filesystem. The rescue shell gives you the opportunity to attempt repairing your filesystem (if that is indeed the problem) but you are also free to choose to ignore the problem and boot anyway.

No, the names are insignificant. I mentioned bmaptool because it allows you to download (without a temporary file), extract, verify and flash in a single command which you can just copypaste instead of going through a series of commands and have to clean up the downloaded image file afterwards.

Now I’m confused about what “names” you are talking about here.

That is a good idea.

No. Booting from SD-card doesn’t even automatically mount anything from your NVMe or eMMC. It doesn’t touch your existing system. The SD-card images are also supposed to be used to rescue an unbootable system. That would be pointless if they were touching anything automatically. :slight_smile:

That is fine. Questions mean that we can update the documentation. I’m trying to find out where I could add more text to reduce the confusion for others.

That got solved for my Pocket Reform with the latest update to the sysctl firmware.

That is a bummer but wonky HDMI is indeed tricky as usual…

Sorry, but I should clarify on this point:

This only happens when the SD card that I flashed is in. It works without issue if I pop that card out, and it works fine if I put a card with just data on it.

I just booted again, to see.

There is an “[ OK ] Finished reform-hw-setup-service…….”

And then:

“You are in rescue mode”

They encourage looking in journalctl, I didn’t see anything before, but something jumped at me now…

“Kernel command line: ro no_console_suspend cryptomgr.notests ro no_console_suspend cryptmgr.notest loglevel=3 ro no_console_suspend cryptomgr.notests loglevel=3 ro no_console_suspend cryptomgr.notests loglevel=3 pci=pcie_bus_perf nvme_core.default_ps_max_latency_us=0 console=tty1 fbcon=rotate:3 cma=256MB console=tty1 console=tty1 single console=ttymxc1 loglevel=3 loglevel=3 console=tty1”

I had to hand-type that, so there may be more ro no_console_suspend cryptomgr.notests that I lost track of in there. Lots of extra redundant redundancy.

Later in the log, there was this:

panel-mnt-pocket-reform 32e6000.dsi.0: error -ENOENT: cannot get reset-gpios 0

panel-mnt-pocket-reform 32e6000.dsi.0: error -ENOENT: cannot get dodc-en-gpio 0

….

panel-mnt-pocket-reform 32e6000.dsi.0: [mnt pocket reform display] read register 12a: 0x70

Those were the ones that looked more alarming. If there’s something else to look for, let me know.

Hrm… can you paste your /etc/fstab here?

While you are at it, maybe there is something interesting in the output of sudo reform-check. Can you paste the output here as well?

I checked what you typed with a script and I do not find typos. What strikes me as weird is the bit that says “single“. Where does that come from? That one boots you into single-user mode. That is, it drops you into a rescue shell…

You tried flashing and booting an image from reform.debian.net. Do you see the same issues with the official MNT images?

Holy moly! After a weekend away at the HOPE conference, I booted up my Pocket, looking to restart working on the video issue, and it seems to be working now. So, maybe the last software update that I did put it over the edge, and if I had rebooted ONE more time, I would have been able to use it to present? my backup machine was SO heavy, it would have been nice to leave it behind.

So thanks for the work. I’ll update again soon, and see if it persists.

I’ll also work on getting an image flashed, and show that I can boot off of an sd card in case I need it in the future, but for now, I’m mostly up and running.

Thanks.

Well, I spoke too soon. Video back to not working. I’ll get back to flashing the other image as you said.

Ok, getting back to this:

Here’s the output you requested:

murph@minute:~$ sudo reform-check
I: Contents of /proc/device-tree/model: MNT Pocket Reform with i.MX8MP Module
I: `uname -a` output: Linux minute 6.16.1-mnt-reform-arm64 #1 SMP PREEMPT Debian 6.16.1-1~exp1+reform20250823T232542Z (2025 aarch64 GNU/Linux
I: Version of linux-image-mnt-reform-arm64: 6.16.1-1~exp1+reform20250823T232542Z
I: Version of reform-tools: 1.76-2+reform20250622T103710Z+1
I: Mount source of /: /dev/reformvg/root (LVM vg 'reformvg' on LUKS device 'reform_crypt' on SSD)
I: Mount source of /boot: /dev/mmcblk2p1 (eMMC)
W: Suggests of reform-desktop-minimal is not installed: firmware-atheros
W: Suggests of reform-desktop-minimal is not installed: firmware-iwlwifi
W: Suggests of reform-desktop-minimal is not installed: firmware-mediatek
W: Suggests of reform-desktop-minimal is not installed: firmware-misc-nonfree
W: unexpected content in /etc/default/flash-kernel:
--- -   2025-08-25 11:31:28.271055466 -0400
+++ /etc/default/flash-kernel   2025-06-16 17:41:38.004894745 -0400
@@ -1,2 +1,4 @@
 LINUX_KERNEL_CMDLINE=""
 LINUX_KERNEL_CMDLINE_DEFAULTS=""
+LINUX_KERNEL_CMDLINE="loglevel=3"
+
W: you do not seem to boot using tuigreet but you the following file sets your loglevel to 3: /etc/flash-kernel/ubootenv.d/00reform2_tuigreet_loglevel -- you may consider removing it and re-running 'sudo flash-kernel'
E: Your /etc/skel/.profile contains an outdated line that attempts to print /etc/reform-help or run reform-help.
E: Consider simply deleting that offending last line of your /etc/skel/.profile.
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
??5?????? c /etc/profile.d/reform.sh
??5?????? c /etc/skel/.config/sway/config.d/input
??5?????? c /etc/skel/.config/wayfire.ini
W: The deprecated meta-package linux-image-arm64 is installed.
W: Since the new meta-package linux-image-mnt-reform-arm64 is installed,
W: the old meta-package linux-image-arm64 should be removed.
I: kernel boot parameters your system does use but which are not the default:
 + loglevel=3
 + loglevel=3
I: kernel boot parameters which are the default but your system doesn't use them:
 - fbcon=font:TER16x32
W: /boot/flash.bin is not the latest uboot
W: You can update it to the latest version by running as root:
reform-flash-uboot

So, ordinarily I would run the suggested “reform-flash-uboot” to see if that changes the boot situation, but I’ll wait and see what you have to say.

I did re-flash that card, with the instructions that you you mentioned above, with bmaptool, and it does the exact same thing.

You also asked for my /etc/fstab

murph@minute:~$ cat /etc/fstab
#/dev/mmcblk2p2 / auto errors=remount-ro 0 1
#/dev/mmcblk2p1 /boot auto errors=remount-ro 0 1
#UUID=bd5f6586-0680-4524-878d-6bb10b65d7bb none swap sw 0 0
/dev/reformvg/root / auto errors=remount-ro 0 1
/dev/mmcblk2p1 /boot auto errors=remount-ro 0 1
UUID=bd5f6586-0680-4524-878d-6bb10b65d7bb none swap sw 0 0

I was also curious if there was a way to boot one of the other kernels that we on /boot, as I might do on an x86 system with grub. There are several there, a 6.14, a 6.15, along with the latest 6.16

So, I also installed the gnome WM in the meantime, and oddly, now I get a 1024x768 mode on an external monitor. So, a little higher, but still limited.

So, what is the next step in trying to get it booting?

I’m also seeing a few other issues cropping up over time, one of which is the keyboard controller. (this is most important) I’m going to go back over the instructions from a previous thread, and see if I can re-flash them with more success before starting another thread on it.

No, it only tells you “/boot/flash.bin is not the latest uboot”. It does not tell you “u-boot on emmc or sd-card is outdated”. Updating /boot/flash.bin does not affect the u-boot version your system is booting with.

Yes, this is possible if you boot via an extlinux.conf typicall generated by u-boot-menu. But it only really make sense if you are on a platform which enables the display at the time that u-boot is running (so before the kernel is loaded) and the only platform that does this right now is i.mx8mq. Or, alternatively you can connect via serial to pick the kernel but you probably do not want to have another device attached to use the boot menu from u-boot.

Wait, I thought it was booting and the problem was the HDMI resolution?

What is the problem?

I thought that we were trying to boot an older kernel from the SD card to see if the external monitor being low-res is some kind of regression.

I still (apparently) boot into the old system, even with a freshly-flashed microSD card in the slot. After the prompt for the filesystem password, I get the same “You are in rescue mode” error as before. Rescue mode is the 6.16.3 kernel, and will boot into the regular system.

I’ll start a new thread with that issue. I’ll try to make a better description and test a bit more before I do so.

I’m sorry, I have no further idea of how to help you. Maybe somebody else sees what I have missed in the output you’ve provided but I’m at a loss.

I may try removing the nvme, and see if it will boot from the sd card.