Ok I reverted to a previous version provided by your gitlab repository because I need MX19 for now.
Anyway updating coreboot worth it as it seems to clean an old bug that I had with USB ports.
thank you for your answer.
Ok I reverted to a previous version provided by your gitlab repository because I need MX19 for now.
Anyway updating coreboot worth it as it seems to clean an old bug that I had with USB ports.
thank you for your answer.
Some feedback about the last version of coreboot/SeaBIOS.
The version I still have is from March 2019. I wanted the fix for the SATA speed.
As I setup my Librem 15 V.3 again anyway, I decided to update the BIOS again as described at https://source.puri.sm/coreboot/utility
In short, the process worked flawless, but the software had problems.
I have two disks in my Librem (NVMe 1. disk and AHCI/SSD /dev/sda as 2. disk). Apart from the already described reduced display size for GRUB in the top left corner, the latest BIOS version was no longer able to boot from the 2. disk /dev/sda. I had PureOS installed on a partition on the second disk and it worked with the old BIOS. Even giving the full 2. disk in a new PureOS installation didnāt work after the change. If I selected the 2. disk to boot it hanged. I donāt know if that was related with the SATA problems.
Anyway, I had a backup of the old working ROM and reverted back to it. Now everything works as usual again.
following because this worked.
I have Librem 14 with coreboot/seaBIOS and when I do sudo bash ./coreboot_util.sh
in order to update firmware using precompiled images (either coreboot/seaBIOS or coreboot/Heads) I get Unhandled programmer parameters: ich_spi_mode=hwseq
.
Hereās the full log:
flashrom v1.2 on Linux 5.10.0-6-amd64 (x86_64)
flashrom was built with libpci 3.7.0, GCC 9.3.0, little endian
Command line (7 args): /usr/sbin/flashrom -p internal:ich_spi_mode=hwseq -w ./firmware/pureboot-librem_14-Release-17.1.rom -V -o ./flashrom-20210520-194517.log
Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
Initializing internal programmer
/sys/class/mtd/mtd0 does not exist
Found candidate at: 00000500-00000528
Found coreboot table at 0x00000500.
Found candidate at: 00000000-000004c4
Found coreboot table at 0x00000000.
coreboot table found at 0x99b76000.
coreboot header(24) checksum: 80ab table(1196) checksum: e8d5 entries: 37
Vendor ID: Purism, part ID: Librem 14
Using Internal DMI decoder.
DMI string chassis-type: "Laptop"
Laptop detected via DMI.
DMI string system-manufacturer: "Purism"
DMI string system-product-name: "Librem 14"
DMI string system-version: "1.0"
DMI string baseboard-manufacturer: "Purism"
DMI string baseboard-product-name: "Librem 14"
DMI string baseboard-version: "1.0"
W836xx enter config mode worked or we were already in config mode. W836xx leave config mode had no effect.
Active config mode, unknown reg 0x20 ID: 85.
Found ITE EC, ID 0x8528, Rev 0x0a on port 0x2e.
WARNING: No chipset found. Flash detection will most likely fail.
Super I/O ID 0x8528 is not on the list of flash-capable controllers.
No board enable found matching coreboot IDs vendor="Purism", model="Librem 14".
========================================================================
You seem to be running flashrom on an unknown laptop. Some
internal buses have been disabled for safety reasons.
Laptops, notebooks and netbooks are difficult to support and we
recommend to use the vendor flashing utility. The embedded controller
(EC) in these machines often interacts badly with flashing.
See the manpage and https://flashrom.org/Laptops for details.
If flash is shared with the EC, erase is guaranteed to brick your laptop
and write may brick your laptop.
Read and probe may irritate your EC and cause fan failure, backlight
failure and sudden poweroff.
You have been warned.
========================================================================
Unhandled programmer parameters: ich_spi_mode=hwseq
Aborting.
Error: Programmer initialization failed.
Also, I tried to setup boot order using the script, got the same error. Any ideas what Iām doing wrong?
@juro is this running PureOS? The script appears to be using the built-in flaashrom 1.2, which does not support the Librem 14ās platform (Cometlake). It should recognize this and download/use an updated version of flashrom. If thatās not happening, then thereās a bug in the flashrom version logic in the script that I need to fix
edit: took a look and found the issue. Re-download/re-run the script and you should be good to go now
Yes, Iām running PureOS. I can confirm the fix works. Thanks!
I have coreboot/Heads on my L14 now. Iāve tried to install Guix, but it seems it doesnāt work well with Heads and I canāt boot after the installation. I installed Guix on a different SSD and keep the original SSD with PureOS just in case. So Iām trying to switch back from coreboot/Heads to coreboot/seaBIOS (precompiled images). Iām using the original SSD with PureOS and tried to sudo bash ./coreboot_util.sh
which gives me:
flashrom v1.2-116-gc64486b on Linux 5.10.0-6-amd64 (x86_64)
flashrom was built with libpci 3.7.0, GCC 10.2.1 20210110, little endian
Command line (7 args): ./tools/flashrom/flashrom -p internal:ich_spi_mode=hwseq -w ./firmware/coreboot-librem_14-4.13-Purism-2.rom -V -o ./flashrom-20210523-105823.log
Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
Initializing internal programmer
Found candidate at: 00000500-00000528
Found coreboot table at 0x00000500.
Error accessing high tables, 0x100000 bytes at 0x0000000099b75000
/dev/mem mmap failed: Operation not permitted
Failed getting access to coreboot high tables.
Using Internal DMI decoder.
Error accessing DMI Table, 0x1000 bytes at 0x0000000099b40000
Edit: based on https://puri.sm/projects/coreboot/:
If running PureBoot firmware, the script will prompt you to copy the update to USB and to update via the Heads menu option.
The script doesnāt prompt me to copy the update to USB. I guess the firmware was built correctly and just needs to be flashed from Heads?
Edit2: After adding iomem=relaxed
to grub (howto do it) and flashing it again, it worked, so Iām back to coreboot/seaBIOS (however, I thought I would flash it from PureBoot using USB stick).
let me see why thatās not working properly, the script shouldnāt prompt you to flash at all if youāre currently running Pureboot, because youāre supposed to flash from Pureboot itself
edit: seems we relaxed things and the script will allow you to flash from Pureboot to coreboot from within the script, but we should probably check that flashrom isnāt going to fail due to kernel memory access restrictions
Iāve downloaded the util script and am able to update my firmware without problem, but when attempting to do anything else in the utility (change boot order or set serial number), I get the same error as Juro above. Full log will follow. (This isnāt related to my problem in the other thread, if youāre wondering. As I said in the other thread I was able to clear that up!).
flashrom v1.2 on Linux 5.10.0-7-amd64 (x86_64)
flashrom was built with libpci 3.7.0, GCC 9.3.0, little endian
Command line (6 args): /usr/sbin/flashrom -p internal:ich_spi_mode=hwseq -r /tmp/tmp.CI8Y0Topre/bios.bin -o ./flashrom-20210705-112430.log
Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
Initializing internal programmer
/sys/class/mtd/mtd0 does not exist
Found candidate at: 00000500-00000528
Found coreboot table at 0x00000500.
Found candidate at: 00000000-000004c4
Found coreboot table at 0x00000000.
coreboot table found at 0x99b75000.
coreboot header(24) checksum: 9b6f table(1196) checksum: ce11 entries: 37
Vendor ID: Purism, part ID: Librem 14
Using Internal DMI decoder.
DMI string chassis-type: "Laptop"
Laptop detected via DMI.
DMI string system-manufacturer: "Purism"
DMI string system-product-name: "Librem 14"
DMI string system-version: "1.0"
DMI string baseboard-manufacturer: "Purism"
DMI string baseboard-product-name: "Librem 14"
DMI string baseboard-version: "1.0"
W836xx enter config mode worked or we were already in config mode. W836xx leave config mode had no effect.
Active config mode, unknown reg 0x20 ID: 85.
Found ITE EC, ID 0x8528, Rev 0x0a on port 0x2e.
WARNING: No chipset found. Flash detection will most likely fail.
Super I/O ID 0x8528 is not on the list of flash-capable controllers.
No board enable found matching coreboot IDs vendor="Purism", model="Librem 14".
========================================================================
You seem to be running flashrom on an unknown laptop. Some
internal buses have been disabled for safety reasons.
Laptops, notebooks and netbooks are difficult to support and we
recommend to use the vendor flashing utility. The embedded controller
(EC) in these machines often interacts badly with flashing.
See the manpage and https://flashrom.org/Laptops for details.
If flash is shared with the EC, erase is guaranteed to brick your laptop
and write may brick your laptop.
Read and probe may irritate your EC and cause fan failure, backlight
failure and sudden poweroff.
You have been warned.
========================================================================
Unhandled programmer parameters: ich_spi_mode=hwseq
Aborting.
Error: Programmer initialization failed.
looks like the script is trying to use the built-in version of flashrom (v1.2) which does not support the L14 - it should be building from source for the L14/Mini v1/v2. Iāll see whatās going on
script error on my part - the platform variable wasnāt being set unless you tried to update the firmware, and that variable was being used to determine the version of flashrom needed. So when trying to update the serial or bootorder, the platform variable was unset, leading the script to use the built-in version of flashrom, which doesnāt support the Mini v2/L14.
Just pushed a fix, so should be good to go, but youāll need to download the updated script
I just downloaded the updated script and ran it ā it worked flawlessly! Thank you much.
Hi,
Sorry for this dumbs questions.
Is it possible to performe an external flash (full flash with external programmer) with final rom? Does this rom contain all flash regions or is it just a BIOS region update?
not dumb, and yes - the images we provide (both coreboot and Pureboot) are full flash images, containing the IFD, ME, and BIOS regions.
Ok, thanks for your answer
I started compiling coreboot+seabios from the source using this script and it took me into something called ādetached headā. Didnāt know what to do until it kicked me out after a while.
What should I do then?
I also gleaned at āmake menuconfigā options but already selected items seemed wrong or unrelated to my librem machine, should I import a working config file before I make changes on it?
Are there also some options to stay away from?
How else do I proceed after āmake menuconfigā?
there is nothing you need to do as a user other than press Y/N when prompted by the script. If there was a timeout or some other error when checking out the coreboot source, then simply retry.
I would use a prebuilt image if I just wanted to press y/n.
When is the right time to enter menuconfig and make changes?
Should I first import the default config values for librem mini v2 somehow?
Edit: I also tried to edit coreboot parameters using nvramtool or coreboot configurator (a tweaker with gui by starlabs) but I got an error about a table not being available.(tried iomem=relaxed, same result)
if youāre going to build coreboot from source using a different config than Purismās default, then you donāt use the coreboot utility script for that - itās not what it is meant for.
thatās not going to work, Purism devices donāt support any configuration changes via CMOS
letās approach this a different way: what exactly are you trying to change?
I will disable Hyper-Threading if possible.
Edit: I would rather like to do this on your UEFI firmware releases actually (it runs better for me-reason being purismās coreboot fw weirdly will not initialize my wired keyboard when my logitech mouseās unifying receiver is plugged in)