To keep our librems up-to-date should we all be following the forum and updating our devices ourselves?

I got my machine in the beginning of 2018 and have thought about selling it a few times because I just haven’t made it a priority to dig into and really start using. Recently though I did and realized what a mistake that would have been. I am personally stuck on the coreboot update made in August of last year, if that gives you any idea of how far behind I really am. My question is whether we should be using the following:

https://review.coreboot.org/q/purism

to update our machines on our own, since of course when I search for updates on my machine, nothing shows. I imagine that, just like with building the coreboot from source, there are incredibly important security measures undertaken by the wonderful team here at Purism but that to implement them, it is up to the user to follow along and pay attention?

Thanks, as stupid as my question might seem. Finally, is there any other reference we should be using other than the link I found and pasted above? As soon as I get the coreboot built and my terminal working properly, I plan on starting from august of last year and bringing myself up to speed.

In fact, come to think of it, just like my coreboot wasn’t built when I got the machine in spite of it’s being shipped to me over seven months after the team made the announcement, maybe I’ll be starting all the way at the beginning :frowning:

7 Likes

Not a stupid question at all, I also have been wondering if and when I should consider rebuilding my coreboot. I would expect that if this was a necessary or highly recommended process, we would be notified. And a forum thread that I might or might not look at does not constitute a notification - a flashing red sign on the purism main page saying ‘update your coreboot NOW’ is a notification :wink:
A related question, how often is the factory installed coreboot updated? If I bought a librem today, would it come with today’s latest coreboot update, and if not, how out of date would it be?
A big thank you to all the purism staff for monitoring these forums and responding so quickly to comments and concerns!

3 Likes

I asked myself a similar question these days.
I guess the semi-official way is to follow the sticky-thread:

So far I never bothered to update. I think you only need to do it if the change log convinces you to.

But yes, I totally support the idea of a somewhat official documentation with news on updates.
There is the cleverly hidden, seemingly outdated wiki here: https://tracker.pureos.net/w/
Would be nice to have it linked somewhere on puri.sm or on pureos.net, and updated more frequently, informing about the latest updates by the developers :confused:

4 Likes

To answer the original question : no! that’s definitely not right. I’m not even sure where you found that link but that’s just a search in the commits/review comments for the word ‘purism’, that’s not an actual build or image or even a tree to compile from!
Like @Caliga said, the official way to update coreboot is to use the script for which you can find a link and instructions here : Building coreboot from source (official script)
The reason you’re not seeing “update on the machine” is because if you’re using PureOS, then for that distribution to FSF approved, it cannot have any non-free packages and while coreboot itself is open source, it depends on binary blobs from Intel to initialize parts of the hardware. That’s why coreboot distribution has to happen “out of pureos”.
As for your last sentence, I don’t understand, are you saying your machine was shipped without coreboot? that’s extremely unlikely (unless you have the v1 models which is not possible since you said you bought it in 2018).
@Amarula the factory installed coreboot is usually updated on the same day that I update the build script for everyone, so in theory, if you bought a librem today, it would come with the latest update. Sometimes though, it can take a little longer because machines might have had coreboot installed to them in batches or because the tech in the factory hasn’t updated his USB stick with the new files or any other reason like that.

@Caliga: That wiki is for Pureos, the real ‘purism wiki’ would be at wiki.puri.sm and the coreboot related page would be : https://wiki.puri.sm/fw
I admit to not actually updating/caring about that page so much. It’s a wiki though and it was mostly supposed to be maintained by the community, but I don’t think the community really knows about the wiki (it is pretty recent).
Yes, you don’t really need to update, unless a feature is interesting to you. Usually, as long as the machine boots and works, that’s all that matters.
We are working though on integrating librem support in fwupd so people won’t need to keep checking the forums, they’d get a notification if an update is available. Hopefully that will resolve most of the issues (the build script was really meant to be for internal use, but it ended up being the official method for users to update too).

6 Likes

Thank you for reading my post carefully and responding. As it happens I am in fact on the official link already and was the last to post a question there. It’s good to know that the list isn’t an official updates list, I was worried that I was incredibly far behind. You asked where it is from, it is from someone in that thread that you linked us to for the coreboot script update. I posted my question there about my terminal because in order to download the script there is a prerequisite outlined in the original post and when I try to follow it my terminal tells me my access is denied and then asks if I am root and when I say yes it simply repeats the letter y indefinitely and I have to close the terminal. So I don’t know what to do.

As to your last question, which I quoted, yes you are right that was poorly written on my part, sorry about that. What I meant to say is that said script wasn’t entered into my machine for me when I bought it and since the stick I had paid for and was later refunded on didn’t come in the mail I was directed to the post by your team. Of course the machine works wonderfully so far, it’s just I’d like to get the script for the coreboot downloaded and put into the terminal but I can’t satisfy the prerequisite because my terminal seems to think I don’t have permission. Anyways, since this is likely not the best place to be asking the question I asked it there of course, but just thought I’d mention it here in case you didn’t see it there.

Thank you again for your help :smile:

Likely, you did not make the script executable. Like

chmod +x build_coreboot.sh

or see Building coreboot from source (official script), post #4

1 Like

That’s probably because the command had finished executing and when you typed ‘yes’ you were actually running the command yes from the terminal (there is a linux command called ‘yes’ with the sole purpose of printing ‘y’ indefinitely… this is useful if for example you want to move files and say ‘yes’ to overwrite a lot of them, or you want to run a script that asks a lot of questions and you don’t want to bother and answer yes to everything, you can run ‘yes’ and pipe its output to the input of the new command like this : yes | some_command and it will write ‘y’ for every prompt the new command asks… you can also do yes n or yes hello if you want it to repeatedly print ‘n’ or ‘hello’. Also note, you can stop any command from executing by pressing Control-C, you don’t have to close the terminal to stop it… good to know the next time you accidentally run the yes command).

I doubt that actually. Every librem will ship from the factory with coreboot pre-installed. It’s possible that they didn’t include the script in a usb stick as you requested, but the script would still have run and coreboot would still have been installed on your system. The best way to know if coreboot is installed or not I guess, would be to run the command sudo dmidecode -t 0 in a terminal to get it to show you the BIOS information. You should see that it says “Vendor: coreboot” and it will give you the coreboot version, you can then compare it with the changelog here https://source.puri.sm/coreboot/coreboot-files/blob/master/Changelog.txt to see if there’s any actual need for you to update coreboo.

1 Like

@kakaroto

Your sacrifice to teach me and others as well as to help me with such simple problems, given that I don’t know anything about Linux, takes insight, kindness, and is no doubt part of why Purism is so great! Thank you.

I followed your instructions here and it turns out that my version is 4.6-a86d1b-Purism-5.

When I put myself in your place, I imagine you have a lot more pressing things to do, but I have no idea how to update my version. Would you mind telling me the best way a beginner might go about doing such?

My other question I suppose is likely answered by the fact that advanced Linux users might in only a few special cases need to build the Coreboot script themselves but save those few, beginners to Linux don’t stand to gain much from trying to accomplish what for them will just be a big mess for nothing if they try to build the Coreboot themselves? This question is from the other thread where you kindly offered advice to Linux newcomers on avoiding building the script themselves, not least as you point out as well, because it should already be on the machine.

Thank you again!

1 Like

Thank you again @kakaroto for taking the time to explain things so clearly.

hehe, you’re welcome, and thanks! I know what it is to be completely lost in some new ‘world’ so I try to help. Yes, I’m busy but I don’t mind taking the time to help people like that as long as I don’t do it often (which is why I haven’t been answering until you got stuck and others weren’t able to help you anymore).
Your version is indeed very old (August 2017), it’s probably a good idea to update it indeed. I did answer you in the other thread on the best way to run the script actually, but it probably got lost with all the other info.
I would say you need to do this :

sudo bash
apt-get install git build-essential bison flex m4 zlib1g-dev gnat libpci-dev libusb-dev libusb-1.0-0-dev dmidecode bsdiff pv
wget -O - https://source.puri.sm/coreboot/coreboot-files/raw/master/build_coreboot.sh | bash

First line is to get to a root shell, second line is to install the required tools (I added one more from the existing list in the other thread… I need to update that other thread too…) and finally, the last command will download the file and execute it at the same time.
I’d suggest you copy/paste each line one at a time (so you can enter password, select ‘yes’ for installing, etc… in between each command) to avoid typos and mistakes.
As for the reason I say that it’s mostly for advanced users, well it’s probably because a lot of things could go wrong (actually, the script should really be fool-proof, so not much can go wrong), and it’s best for new users not to try and “fix it” on their own if something wrong happens. Specifically, flashing the BIOS is a relatively dangerous task, and if the machine is suspended or shut down or loses power (and battery is drained) while it’s flashing, that could brick the entire machine, it wouldn’t boot anymore and it would require specialized hardware to unbrick it.
Thankfully, the script is like I said “fool proof”, it will make sure that the resulting coreboot image is matching a hash of a known working image that I have tested here personally, so I know for sure that you didn’t have any compilation issue or anything weird/special/different about your system that might cause an issue before it even asks you if you want to flash it (which is the dangerous part) and the flashing process only takes about a minute or two… anyways, due to all that, that’s why I said “it’s for advanced users”, it’s mostly to avoid myself some headaches in the future if everyone starts to use it without understanding what it is and they mess things up then I have to figure out what went wrong and fix it.
Good news though, the script has been available and has been used by countless users since August 25th 2017 (so 1 day short of saying “for a year”), and so far, nobody had ever had any issues or problems with it and no bricks or anything. Just make sure after the script is done compiling coreboot (which should take about an hour) and asks you if you want to flash it now, after you say yes, don’t shut down the machine until it’s done (about 2 minutes), then you’re good to go.

1 Like

Excellent, @kakaroto,

I’ll read the other post in just a minute, first I’d like to say that your explanation of the coreboot makes perfect sense. Like Amarula pointed out, your help is definitely appreciated.

I followed your instructions to the best of my ability here, dragging it to the shell. Once in the shell; it starts and this is what it gives me in return:

Which coreboot image do you want to build:
1 - Librem 13 v1 (Version : 4.8.1-Purism-3)
2 - Librem 15 v2 (Version : 4.8.1-Purism-3)
3 - Librem 13 v2 (Version : 4.8.1-Purism-3)
4 - Librem 15 v3 (Version : 4.8.1-Purism-3)
5 - Librem 13 v3 (Version : 4.8.1-Purism-3)

How do you want to extract binary blob files:
1 - Extract from the current machine (must be same as target machine and run coreboot)
2 - Extract from a pre-built coreboot image (filename must be coreboot-orig.rom)
3 - Files are copied manually (copy to coreboot/3rdparty/blobs/mainboard/purism/librem_bdw/)

_The following files are needed : _

descriptor.bin - The Intel Descriptor - SHA256: be34b19b4de387a07d4fc859d2e4ee44723756f5f54552f236136679b4e52c46
me.bin - The Intel Management Engine image - File contents may vary
mrc.bin - The Memory Reference Code - SHA256: dd05ab481e1fe0ce20ade164cf3dbef3c479592801470e6e79faa17624751343
refcode.elf - The PCH Reference Code - SHA256: 8a919ffece61ba21664b1028b0ebbfabcd727d90c1ae2f72b48152b8774323a4
vgabios.bin - The VGA BIOS - SHA256: e1cd1b4f2bd21e036145856e2d092eb47c27cdb4b717c3b182a18d8c0b1d0f01
cpu_microcode_blob.bin - The CPU Microcode Update - SHA256: 69537c27d152ada7dce9e35bfa16e3cede81a18428d1011bd3c33ecae7afb467

Already up to date.
HEAD is now at e7792e3 Fix the documentation and DOS port
Replacing all version templates with v1.0.
Checking for a C compiler… found.
Target arch is x86
Target OS is Linux
Checking for libpci headers… found.
Checking version of pci_get_dev… new version (including PCI domain parameter).
Checking if libpci is present and sufficient… yes.
Checking for libusb-0.1/libusb-compat headers… found.
Checking if libusb-0.1 is usable… yes.
Checking for libusb-1.0 headers… found.
Checking if libusb-1.0 is usable… yes.
Checking for FTDI support… not found.
Checking if Linux SPI headers are present… yes.
Checking for utsname support… found.
Checking for clock_gettime support… found.
make[1]: Entering directory ‘/home/private/coreboot/flashrom/util/ich_descriptors_tool’
make[1]: Nothing to be done for ‘all’.
make[1]: Leaving directory ‘/home/private/coreboot/flashrom/util/ich_descriptors_tool’
Using ‘sudo flashrom’ to grab the local machine’s flash content
flashrom v1.0 on Linux 4.14.0-3-amd64 (x86_64)
flashrom is free software, get the source code at https://flashrom.org

Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
coreboot table found at 0x7ab8f000.
========================================================================
WARNING! You seem to be running flashrom on an unsupported laptop.
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.
========================================================================
Proceeding anyway because user forced us to.
Found chipset “Intel Skylake U Premium”.
This chipset is marked as untested. If you are using an up-to-date version
of flashrom and were (not) able to successfully update your firmware with it,
then please email a report to flashrom@flashrom.org including a verbose (-V) log.
Thank you!
Enabling flash write… Warning: Setting Bios Control at 0xdc from 0x8b to 0x89 failed.
New value is 0x8b.
Warning: SPI Configuration Lockdown activated.
OK.
Found Programmer flash chip “Opaque flash chip” (16384 kB, Programmer-specific) mapped at physical address 0x0000000000000000.
Reading flash… done.
File …/coreboot-orig.rom is 16777216 bytes
_ Flash Region 0 (Flash Descriptor): 00000000 - 00000fff _
_ Flash Region 1 (BIOS): 00200000 - 00ffffff _
_ Flash Region 2 (Intel ME): 00001000 - 001fffff _
_ Flash Region 3 (GbE): 07fff000 - 00000fff (unused)_
_ Flash Region 4 (Platform Data): 07fff000 - 00000fff (unused)_
_ Flash Region 5 (Reserved): 07fff000 - 00000fff (unused)_
_ Flash Region 6 (Reserved): 07fff000 - 00000fff (unused)_
_ Flash Region 7 (Reserved): 07fff000 - 00000fff (unused)_
_ Flash Region 8 (EC): 07fff000 - 00000fff (unused)_
E: File not found: mrc.bin
E: Failed while operating on ‘COREBOOT’ region!
E: The image will be left unmodified.
sha256sum: 3rdparty/blobs/mainboard/purism/librem_bdw/mrc.bin: No such file or directory

Extracted binary ‘mrc.bin’ has the wrong SHA256 hash
root@debian:/home/private#

@kakaroto,
Next, with the second line, I did the same and got the exact same message. I closed the shell and reopened and tried it under a different user than root and it gave me the same message.

@OntheMain It asks you to select which machine you have AND THIS IS EXTREMELY IMPORTANT NOT TO MAKE A MISTAKE HERE. From the error you showed me you got later, it seems you selected ‘1’ which is Librem 13 v1, and you most definitely do not have that (since those are the 2016 models). I suggest you flip over your laptop and see what the model is, it should be printed on the bottom of your machine and select that when it asks you for it!
Selecting the wrong machine can definitely cause you to brick it. Thankfully (and quite unexpectedly), the fact that you chose the wrong machine caused an error further down the line.
I guess that’s another reason why I said the script is really meant for people who know what they are doing… although I guess if it had tried to flash the librem 13 v1 image on your librem 13 v3 machine (or v2, not sure which one you got), the flasher program would have complained because the ROM image is 8MB but the flash is 16MB. Anyways, please be careful with the options and select the right ones!
Good luck!
(note, it’s the weekend now, I made an exception here in reading your comment and answering, and that’s because I saw the danger of what you did, but I usually do not check my emails or do anything work-related during the weekend, so if you have any further issues, please wait patiently until Monday).

1 Like

Hey, Kakaroto, the thing is it doesn’t ask me that. When I drag the line into the shell, it only starts processing the command and then asks me if I’m sure I want to continue. Then when it gets to the bottom and shows that the hash is not the same, I scroll back up to the top to start trying to identify where the errors started and instead of seeing the original yes/no question asked I see the same menu you do since of course it’s the text I pasted. To see more clearly what I mean, the part of what I pasted that shows the various machine options is the beginning insofar as I cannot select anything above it because there is nothing above it to be selected, I cannot scroll up any further than that. However it’s the shell, so ordinarily it should be showing how I got to that stage since the shell doesn’t merely open that way. You see? The original question that it asked me, all that is no longer there and only a clean menu is there.

I’ll wait until Monday before trying the feat again, but I think that maybe I entered the command in the wrong way perhaps. Ah, yes, I remember now. The first part of the two lines is I think prefaced by sudo bash, and so when I entered that first, perhaps it is trying to change the user to sudo and so when I entered the first line of the two and hit enter, it malfunctioned, since when I entered the second line after that, it did the same thing as well, which also makes no sense since admittedly they are two separate commands. That was why I closed the shell and opened it again and tried the same thing under a different user.

I’m really happy it didn’t brick for the obvious reason of shipping and time and all the ensuing frustration, so thank you for being so kind about warning me in spite of your being on your weekend! Luckily you did that for me and potentially saved my entire machine! One thing I am two hundred percent sure of though is that it never asked me what machine I have nor even showed the menu it later shows once it arrives to the hash error at the bottom. --Ah, I think I know what I did, actually. When I was asked the original question, which was whether I wanted to proceed, I simply typed y, and so y was perhaps carried out indefinitely to every question (and perhaps even the question or questions that were supposed to be answered with numbers). That is my best bet given how little I know.

Hi, Kakaroto,

I just wanted to let you know that today when I logged into my computer it said I had like 49 or some odd number of updates to confirm and since it wasn’t in the shell but came from the update center itself, I went ahead and updated. After doing so, my machine works fine. I wanted to confirm the coreboot version and it’s still the same: 4.6-a86d1b-Purism-5. I’ll wait to hear back from you during the week. Thank you again! :smile:

Hi,
The update you got was for PureOS, the linux distribution, and that’s unrelated to coreboot which is in the BIOS, that’s why the version didn’t change.
The script should ask you to select which machine it is as well as a couple of other questions, if it doesn’t, then I think I know why… you said :

I think that’s your problem, you probably drag the line along with some empty lines below it, so when you basically paste it, it enters the command and enters a couple of “Enter” which selects the defaults (option 1, in this case librem 13v1) . So I will suggest that you don’t drag and drop any line, but instead do an actual copy & paste, and only copy/paste up to the character before the last, then manually enter the last letter (the ‘h’ from ‘bash’) before pressing Enter yourself, that will ensure that you’re not doing any mistakes.
Also, the script doesn’t ask you if you want to continue, it asks you to make a selection, like :

After that though, it should say : "Enter your choice (default: 1): " which I don’t see in your paste, which is weird.
Maybe the “do you want to continue” question you referred to is the one from the apt-get install command which would then make sense, yes.

That’s because the script itself clears the terminal window, that’s why you don’t see anything above it. Also FYI: note that the terminal probably has a limit on how many lines it will show you (let’s say 3000 lines) so if the output is very long, it might also be why the text gets cut off and doesn’t go all the way back to when the shell was first opened.

No, the script would consider ‘y’ as invalid and would tell you invalid choice and ask you to make the selection (only valid values is 1 to 5, or pressing enter without entering anything which counts as the default of ‘1’… I guess I should probably change the script so it doesn’t consider a ‘default machine’ since that doesn’t really make sense).
So yeah, I think there probably was two new lines that got entered for no reason and caused this.

1 Like

I am one hundred percent sure I did not paste any extra unneeded lines into the shell.
I selected the first two words, above the line itself sudo bash and along with them I also selected the first line only, from beginning to end, with not so much as a space pasted after the pv, meaning that what I pasted into the shell was the following:

sudo bash
root@debian:/home/private# apt-get install git build-essential bison flex m4 zlib1g-dev gnat libpci-dev libusb-dev libusb-1.0-0-dev dmidecode bsdiff pv

When I did that, it did not show me any option to select or choose from or the like. It merely asked me if I wanted to continue and I typed yes and hit enter and then the pasted text you see from last week was displayed and when I scrolled back up, the main menu was the beginning of the text and the original question asked was no where to be found. The text itself is not very long in my opinion, but I suppose such could be the reason that although that which was originally asked was was indeed asked, it was in the end no longer displayed. It would seem strange intuitively speaking but possible of course.

At any rate, now when I type in the same line in the (tilix) shell, whether I paste only sudo bash or sudo bash and then a space and then the rest of the first line (which thus looks like the following: sudo bash apt-get install git build-essential bison flex m4 zlib1g-dev gnat libpci-dev libusb-dev libusb-1.0-0-dev dmidecode bsdiff p) where I type in the last letter, v, so as to be sure that nothing else was carried over, such as an improper format, for example-- maybe misinterpreted by the shell somehow–the response from the shell is now the same regardless, and is no longer the same as that which was pasted last week to show you what went wrong. First, I am asked to enter my password, which I do. That part is the same. But then, the following is what I see:

E: dpkg was interrupted, you must manually run ‘sudo dpkg --configure -a’ to correct the problem.

Perhaps such is due to my having updated various software over the weekend because the update center notified me that there were several updates that should be carried out? At any rate, it looks like I’ve really messed things up somehow. In the event that you have wondered about it while reading my response, the bold text here in this response to you is only bold because I have made it so for your convenience, it is not bold when I paste it (not drag it) into the shell. Perhaps a last resort would be to simply type the whole thing from beginning to end into the shell after restarting or something?

This part I’m absolutely sure of: it did not ask me anything even remotely like that. It really did ask me a yes/no question and no other question. That is why I pasted such in the forum, it just didn’t make any sense. I tried it a few times too, logging out, trying it from my other user name, then from the root user, etc, but in each case the response was the same. I also closed the shell and started it back up again and entered sudo bash and then as well dragged the second line over, rather than the first, which looks like the following:

sudo bash wget -O - https://source.puri.sm/coreboot/coreboot-files/raw/master/build_coreboot.sh | bash

And when I pasted that exact line that you see pasted, and also once without the initial sudo bash, both in the root and then in my private user name, the response was exactly the same as when I pasted the first line, as shown further up above. The exact same message is what it showed, so maybe what happened is what you said in dragging the text over, where perhaps the shell interpreted the format after the sudo bash in such a way as to respond to it in said way where we ourselves think we entered into the shell that which we copied, but in fact did not? No idea.

Sorry this is such a hassle! I don’t know what else to do and surely how else to get around it. What I can do though if you like is a video of what I’m doing so you can see and be totally sure that what I am saying is as I say it is, since of course I could be doing something along the way that I’m overlooking and that is causing the problems. Otherwise accessing the machine from afar might be the most practical? I’m not sure, I’ll do whatever is easiest.

Thank you again!!! :smile: It is very much appreciated!!!

Hi @OntheMain

That error generally means that the update process was interrupted - either the updates you were installing via the Software center were interrupted, or one of your terminal sessions running apt install were interrupted.

You should run the command suggested, which is sudo dpkg --configure -a

I’m not an expert, but the way I understand things, is that apt fetches various .deb files for the programs you want to install, and then uses dpkg to install them. dpkg and .deb files are the formats used by Debian and Linux distributions (distros) based on Debian, like PureOS.

So when apt gets interrupted, the packages get kinda misconfigured and stuck, so you need to use dpkg --configure -a to fix things. The --configure tells the program to configure unconfigured packages, and the -a tells it to configure all the unconfigured packages (-a for “all”)

So after sudo dpkg --configure -a , I think you will need to rerun this command (as root)
apt-get install git build-essential bison flex m4 zlib1g-dev gnat libpci-dev libusb-dev libusb-1.0-0-dev dmidecode bsdiff pv

1 Like

No need and also, no need to be sorry, as I’m the one who should be sorry. I had tried that command myself but not all the way through. My mistake was with the command I gave you, I just tried it here and let it run its course and I got the same behavior as you. My mistake was not realizing that when you do that (download the file and send it to bash as input), you’re basically running bash in non-interactive mode which is why it’s not asking you for any input. So… yeah… sorry, my mistake!
One question though, why did you try merging the first and second (then the first and third) lines ? I’m not sure what that’s supposed to achieve…
Second thing, I don’t really remember why I told you to do sudo bash to get a root shell, since the script itself can be run as a normal user and it will itself use sudo when appropriate.
So here’s what you actually need to do and this time, it should work!

rm -f build_coreboot.sh
wget https://source.puri.sm/coreboot/coreboot-files/raw/master/build_coreboot.sh
bash build_coreboot.sh

The first line is to remove the file build_coreboot.sh (just in case it’s already there, the ‘rm’ means remove, the ‘-f’ is the “force” option, which means it will not ask you to confirm the deletion and it will not show you an error if the file doesn’t exist), the second line is to download the file (if the file already existed, it would have saved it under build_coreboot.sh.1 which is not what we want, I want you to run the latest version, which is why we deleted the file if it already exists). The third line just runs the script using bash.
Since the script is given to bash as an argument, it means that bash will execute it, then ask you for input if needed, as opposed to the previous command I gave you where the script was given as an input to bash instead of as a file argument.
An alternative to that last line would have been to run the command chmod +x build_coreboot.sh to Change Mode and ‘+x’ to “Add Executable flag” to the file, to make it an executable file, then just running it with ./build_coreboot.sh, but the file doesn’t need to be set as executable if you use bash build_coreboot.sh instead.
Now with that, it should finally work and I hope you don’t encounter any other problems!
sorry again, I should have tested this a bit more last time before giving you the command.

1 Like

YES, @kakaroto you were right! It worked. The first line I entered worked (and by the way the input you added helped since it did not do anything and I’d have otherwise entered it a few times under the impression that it did nothing, which would have led me to the conclusion that it didn’t work and which would have also potentially led me to the conclusion that it might need to be added to the second line for either to work. Very helpful indeed!)

The second line also worked and very quickly. Literally three seconds of download time and it was done, with about maybe five lines only.

The third line was a bit more tricky and your extra alternative option is what worked, so there again, thank you for going the extra mile.

Where I’m at now is here, and since I don’t know which hash to choose, by the way I have the Librem 13 version 2, I’ll just paste what it says in the shell now so you can tell me how to proceed.

How do you want to extract binary blob files:
1 - Extract from the current machine (must be same as target machine and run coreboot)
2 - Extract from a pre-built coreboot image (filename must be coreboot-orig.rom)
3 - Files are copied manually (copy to coreboot/3rdparty/blobs/mainboard/purism/librem_skl/)

The following files are needed :

descriptor.bin - The Intel Descriptor - SHA256: d5110807c9d67cea6d546ac62125d87042a868177241be4ae17a2dbedef10017
me.bin - The Intel Management Engine image - SHA256: 3042150c7f655293a69bcf886836732fc451439ae551a2babf3173f4f0d9a8d3
vbt.bin - The Video BIOS Table - SHA256: 51fa214ca44a61b171662d4c2ca6adc1aa3dc6c3d7a24bf9ae5f249f012d61c0
fspm.bin - The Intel Firmware Support Package - SHA256: 7a1acc72073969e6753bbfe145f06c3f4d35e2516cb241641eae968705e2cc46
fsps.bin - The Intel Firmware Support Package - SHA256: 0dac94d249473e9d366597fd1f96a0232fb7bf045a3d08f16784961273351822
vgabios.bin - The VGA BIOS - SHA256: 18d861485b86f93dad2b294cebd40b99eb03493d32b514e731ddb8dcf3a1ce83
cpu_microcode_blob.bin - The CPU Microcode Update - SHA256: 9c84936df700d74612a99e6ab581640ecf423d25a0b74a1ea23a6d9872349213

The vbt.bin, fspm.bin and fsps.bin can automatically be downloaded, the me.bin can also be
downloaded, configured and patched so it will match the expected SHA256.
Enter your choice (default: 1):

(Ill just leave the shell open until I hear back from you)