Hello Gert,
it's very nice to hear that your customers ask for coreboot :) \o/
I'll start with the annoying part, hopefully bringing more cheerful news later:
coreboot is not a ready-to-install firmware. coreboot is used by ODMs and OEMs like System76 or sometimes enthusiasts to build their very own firmware. Imagine you'd ask a Linux kernel developer how to install Linux. They'd probably start by telling you that there are many diffe- rent Linux distributions, many different ways to do things and many things to consider. Or they might just point you towards Ubuntu. But alas there is no such convenient solution for firmware. For firmware every device is different, every device needs a bit of special care.
So coreboot is like a kernel of the firmware that needs to be adapted to every device. The good news for your Clevo devices is that this part is (almost) already done by System76 (assuming they use identical hard- ware). However, System76 also uses their own EC firmware which coreboot needs to be compatible to. And its interface is unlikely to be compa- tible with Clevo's EC firmware. So either you'd have to install their EC firmware too, or their coreboot ports need to be adapted to Clevo's EC firmware. I have no idea how much trouble it is to replace the EC firmware. If you need coreboot code adapted, you can seek professional help like Paul suggested.
If I say coreboot is like a kernel, you probably already wonder what else you need. coreboot only knows a single storage medium: the flash chip that contains coreboot itself (i.e. the BIOS flash). Thus, it can't load your OS from a hard disk. Instead, coreboot loads another program from the flash chip, which we call the coreboot "payload".
There are many different payload options. Beside loading the OS (or its boot loader), the payload also provides the look & feel of the firmware. Just to mention the most prominent ones:
* SeaBIOS: Provides a PC BIOS implementation. What many people would call a legacy BIOS boot today. * TianoCore: Provides an UEFI implementation. (What I would call legacy today. ^^) * Linux: You can use a Linux kernel + initramfs as a payload. Yes, one can implement the look & feel of their firmware in a Linux user-space program. There are many different imple- mentations yet, if you are interested, just ask :) * GRUB: The GRUB bootloader can act as a coreboot payload directly.
Back to your Clevo devices, obviously you can just copy System76' choice of payload. I assume (not sure though) they use TianoCore. But I can't tell if that is what your customers expect.
Now, hopefully I still have some time to answer some of your specific questions :)
On 28.03.21 09:26, Gert Vanhaerents wrote:
- We i have installed coreboot, can i also boot Windows 10 or boot in
dual-boot (Windows and Linux)?
It's generally possible, with some limitations, though. For Windows, you'll most likely need either SeaBIOS or TianoCore. Windows always needs some jumpstart help by the firmware. There is some effort to implement UEFI services for Linux payloads, but I don't know its status.
- The installation of coreboot is very unclair. I have looking to google
but i don't realy know how can install it.
That's because every device is different. For a start you can install flashrom (for new hardware you might have to build it from source [1]) on Linux and run this to gather some information about the device:
$ sudo flashrom -p internal -o logfile.txt
With some luck we might be able to tell by the log how hard it is to get coreboot on the machine.
- Can i install coreboot like we normally flash a bios? (startup with a
efi boot stick and run a batch file, or startup in the bios and do a bios update directly from the bios with a usb stick with the flash file)
This depends on the expectations of the original firmware. For instance will it accept a random firmware? will it even accept something that is not signed by the manufacturer?
- Or do i need a eeprom programmer or something like that?
- Must itake out the motherboard completely of the laptop?
To work with coreboot it's very important to have a very fast procedure to install it in mass production. We cannot spell a few hours on each laptop. It must be a flash file for a model laptop and a other flash file for a other model laptop. So we can install coreboot on the best selling models. Startup from a usb-stick, do a flash update wait 5 or 10 minutes and reboot, ... done.
When it's possible in the procudure like above can i get some help to make the first coreboot flash.
Yes, of course. But a word of warning: even if flashing from the running system is possible, we recommend to do the first experiments with an external flash programmer. Just so you can recover if something goes wrong and the machine doesn't boot anymore. For urgent help, and in general, you can join us on IRC (freenode.net) #coreboot and #flashrom.
Nico
[1] https://flashrom.org/Download With the prerequisites installed, run: $ git clone https://review.coreboot.org/flashrom.git && cd flashrom && make To run the flashrom binary from the current direcory, prepend it with `./`, i.e. $ sudo ./flashrom ... Oh, if it complains about /dev/mem access failing, try $ sudo modprobe -r lpc_ich