Hello, so I am helping a friend that bought a Librem 14 around a year ago and has been having some hardware problems. He showed me his L14 and it was not starting at all, only the power leds were working, but the screen always black. I have some experience with flashing firmware and coreboot to some machines. So I followed every step on puri.sm support to reflash it with a ch341a external programmer, it worked well and the L14 started properly, we enter on pureOS normally as expected, but after a few minutes the L14 got stucked, the mouse was moving but the windows frozen. I am open to try to solve in other ways, but not sure where to start, my guesses were to try another SSD M2, or reflash the other version of coreboot, while building the “coreboot-librem_14-4.18-Purism-1.rom” there were two options, the legacy one(which I chose) and the beta one. If anyone has any tips, please let me know.
I would try a live boot of some distro off of a USB to rule out or confirm hardware issues.
Try testing your Purism L14 with just one RAM module, if ur L14 come with 2 modules of ram, exchange the modules by just one ram modules, so in the way you will see what ram modules it bad, when a module ram it bad, computer get freeze but also black monitor when booting…
Indeed, I will try that tomorrow and give some updates
Also that, thanks
Also make sure that Microcode it there in Coreboot, otherwise the machine will freeze after booting at any time soon. GNU PureOS do not ship Microcode BLOBs.
I went through this tutorial using the precompiled image option, how can I know if it includes microcode?
The precompiled images always include microcode. If you build from source using coreboot_util.sh, it verifies that you exactly reproduce the same image from source, which includes the microcode. You don’t really need to check unless you are hacking on the firmware source.
That said, if you want to check, the firmware utility downloads cbfstool
for you and it can list the content of the ROM, cpu_microcode_blob.bin
is the microcode:
jhall@purism-l14-jh012:~/fw_update$ ./tools/cbfstool ./firmware/coreboot-librem_14-4.18-Purism-1.rom print
Name Offset Type Size Comp
cbfs_master_header 0x0 cbfs header 32 none
fallback/romstage 0x80 (unknown) 61336 none
cpu_microcode_blob.bin 0xf0c0 microcode 308224 none
intel_fit 0x5a500 (unknown) 80 none
fallback/ramstage 0x5a580 (unknown) 129098 LZMA (290200 decompressed)
<snip>
For your original questions:
L14 and it was not starting at all, only the power leds were working, but the screen always black
It sounds like this is corrected now. This could have been a mis-flashed firmware (flashing externally is the right answer, glad you found that). If you change memory or flash firmware, be aware that memory training can take about a minute on the next boot, and for that minute you will have a black screen with power lights on. Then the system will reset itself and boot. Just be patient
after a few minutes the L14 got stucked, the mouse was moving but the windows frozen
This is probably not firmware related. Try booting a PureOS live USB and see if it happens there too. If not, it is most likely an issue in the installed OS, if you don’t need anything from that OS you could just reinstall. You could also try another SSD if you suspect it to be bad, it’s rare IMO but stranger things have happened. Kernel logs would probably show errors reading from the SSD if it is locking up, you could try switching to a VT if you are handy with a terminal to see the kernel log.
It boots from a PureOS live USB, I changed the RAM slot also, it seemed to be part of the problem. My friend the owner left the L14 with me without the SSD, but apparently it should work fine now. I will test with a different SSD isntalling PureOS. Thank you all for the support
I gave it back to my friend, he put the SSD inside and it works perfectly as before, thank you all for the help. It was a good experience flashing the coreboot to the L14 with the ch341.