I suspect my Librem 14 with PureBoot may have faulty memory, so I’m interested in running a memtest.
I was going through the PureBoot menu and was surprised to be unable to find a memtest option. Is there one available that I just haven’t found? If not, what are my best options?
I have tried two things so far:
-
Booting into Qubes OS installer, which has a memtest built into it. Librem 14 failed to boot to the memtest:
Loading the new kernel:
kexec -l /media/isolinux/memtest --append="intel_iommu=igfx_off "
Cannot determine the file type of /media/isolinux/memtest
Failed to load the new kernel
!!! Failed to boot w/ options: Run a memory test|elf|kernel /isolinux/memtest
!!! Something failed during USB boot
-
Booting memtest86+: I wrote the ISO to a flash drive and tried booting into this, but this didn’t work either:
I didn’t record the error, but it basically said it couldn’t boot it and threw me into the recovery shell
The best option I’m aware of is to temporarily switch to coreboot/SeaBIOS firmware. If you want to preserve your PureBoot settings, GPG key, etc., you can back up your firmware flash and then write it back after testing (both need to be done manually with flashrom).
PureBoot can boot the memtest86+ GRUB ISO, but there is no video output, and the L14 doesn’t have a serial port, so you can’t see the test status. PureBoot doesn’t provide a video BIOS or UEFI GOP driver, and memtest86+ doesn’t have any native video drivers that I’m aware of.
1 Like
Thank you for the response and mentioning memtest86+, as this confirms the behavior I was seeing. Upon booting up memtest86+ GRUB, the CPU would spike until I shut the machine down, but nothing would display.
Is there really not a better option for memory testing on a Librem 14 with PureBoot? I think that memory testing is a pretty basic feature. I’m not too keen on potentially digging myself into a deeper hole by bricking my system during firmware changes. I also can’t move the memory to another machine for testing because this is the only one I have that supports this type of memory.
It might work if we have PureBoot switch back to text mode before booting memtest - I’m testing something similar for the Debian net installer, which has a similar issue because Debian doesn’t include the i915 driver in that image.
Thanks for the update. It sounds as though memory testing is possible as long as the image you’re booting includes the i915 driver. If this is the case, are you aware of one that does? I’m not picky about what memory tester I use - anything would be better than nothing as long as it’s trustworthy.
That’s the right concept, but since memtest86+ is not Linux-based there is no i915 support for it.
From a quick search, Debian has “memtester”, a userspace memory tester: https://manpages.debian.org/testing/memtester/memtester.8.en.html Since it runs under Linux it will not be able to test memory in use by the kernel, GPU, etc., but I gave it a quick try just now and it seems to do something.
So a quick way to do this from a live environment:
- Boot the Librem 14 EC update ISO (it’s a Debian non-graphical live ISO that includes the i915 driver, exactly what we need)
- Plug in Ethernet (I’m sure you could connect Wi-Fi from the shell, but this is much easier)
sudo apt install memtester
sudo memtester <SIZE>G
You have to tell it how much memory to test. I have 32 GB in my L14 at the moment and 31G was too much (OOM killer killed my shell), 30G worked, just reduce it until it works.
You could do it without network if you add memtester
to the installed packages in the live ISO and rebuild it yourself, it’s easy to do, just a couple of scripts.
JustToAdd: When any RAM it bad the monitor never turn ON, so the easy test it is just exchange the RAM by using only one RAM by each test. Also an external usb serial will tell you too if ram broke. Some time by just unplug the all ram then put back again fix some failures.