you might have to accept that adding VGA compatibility
for Windows may
break compatibility with the secondary payloads. That"s not generally
the case but about the last thing that gets tested.
From what I have learned so far it seems that the usecase Coreboot + Windows is that
common which I can understand as it may sound strange to reduce the possible attacks via
BIOS/AMT but then use an OS like Windows.
If you don"t get this setup with SeaBIOS running,
there are alterna-
tives. One that comes to mind: Do native GFX init in coreboot, add the
VGA blob (so far your config below) but use GRUB as primary payload and
run SeaBIOS as secondary. You"d have to hand-craft your grub.cfg, some-
thing like four choices: 1. Run your favorite open source OS 2. SeaBIOS
for legacy compatibility 3. coreinfo 4. nvramcui
using grub as primary payload (instead of SeaBIOS) means that I have small linux running
from my BIOS?
honestly this sounds like this is something that can be done by Coreboot Pro's to
which I wouldn't count myself yet.
As my current Coreboot installation (SeaBIOS + VGA.rom) has not only break secondary
payloads but also standby/resume, I want to rebuild my BIOS from scratch - unfortunately I
need to wait until I have a new Clip for flashing as my old broke.
> I"ve seen the following option in make
nconfig for coreboot under
> "General Setup": │ [*] Include the coreboot .config file into the ROM
> image │
> QUESTION: How can I extract this .config file?
You can do that with cbfstool, e.g.
$ build/cbfstool build/coreboot.rom extract -n config -f config.txt
where your replace `build/coreboot.rom` with the path of your image and
`config.txt` with the path to the output file.
I've done this but the resulting config is very short and doesn't include all
settings which have been made in the first place.
A good approach might be:
1) Use a recommended config for X230 which will run Linux as OS and 2ndary payloads and
2) Change the config slightly to get windows boot running (adding a vga.rom)
Then do troubleshooting in case that the boot of secondary payloads and/or Standby/Resume
is broken (with an included VGA.rom).
This is the config for Coreboot on a X230 which is in the coreboot wiki.
Is this the "best practise" configuration or just "a" configuration
which has been stored there?
I tried to build a rom with this config but run into errors when building the ROM.
Another question about your setup, do you configure
anything in SeaBIOS
that is not visible from your coreboot .config? Anything GFX related?
splashscreen? VESA mode?
I haven't configured SeaBIOS I've just git'ed coreboot, run make nconfig and
added SeaBIOS as Payload there.
Haven't tweaked any SeaBIOS configs.
I have seen that I can also get Seabios via GIT and then use nconfig to adapt that
configuration, but this wasn't covered in the wiki for the x230 and as such I have
only used the coreboot configuration screen.
Any guidance how to build a specific SeaBIOS and how to include this in coreboot?
│ Graphics initialization (Use native graphics init)
With this option you let
coreboot initialize GFX. But you also let Sea-
BIOS run the VGA BIOS. The former will be completely overrun. I doubt
that it causes your secondary payload trouble, though.
Ok, as soon as I have a new flash clip, I will try to investigate this.
Which settings to you suggest in "Devices > Graphics initialization"?
> | --> Framebuffer mode (Legacy VGA text mode)
> │ Display
> │ -*- Enable PCIe Common Clock │
> │ -*- Enable PCIe ASPM
> [*] Add a VGA BIOS image
> │ (./3rdparty/blobs/mainboard/lenovo/x230/pci8086,0166.rom) VGA BIOS
> │ (8086,0166) VGA device PCI IDs
> [Generic Drivers]
> │ [*] Serial port on SuperIO
What is the problem here? Is this a bad choice?
I took this from existing documentation without knowing what the last option is.
All other optiions
> │ [*] Support Intel PCI-e WiFi adapters
> │ [*] PS/2 keyboard init
Is this required? It"s odd to set it when using
The PS/2 Keyboard init was suggested in one of the howtos.
regarding Intel PCI-e Wifi, I am not sure - I can make a test without this option and look
if this has impact to my wifi card.
> │ [*] Enable TPM support
> │ [*] Squelch AP CPUs from early console.
> │ [*] Send console output to a CBMEM buffer
> │ (0x20000) Room allocated for console output in CBMEM
> │ [*] Send POST codes to an external device
> │ Device to send POST codes to (None)
> │ [*] Send POST codes to an IO port
> │ (0x80) IO port for POST codes
> [System tables]
> │ [*] Generate SMBIOS tables
> │ Add a payload (SeaBIOS) ---> │
> │ SeaBIOS version (1.10.2) ---> │
> │ (0) PS/2 keyboard controller initialization timeout (milliseconds) │
Why override the default? If it works that"s just
fine. I"m just wondering
if we should have different defaults then.
What do you mean with overriding? Which option is not correct or might be optimized?
Will there coreboot configuration file be optimized for all settings when choosing the
If so this would mean that I start from scratch to look what is working with the default
settings and then slowly modify the configuration to get windows running and see what
breaks at which point (2ndary payloads / standby resume etc).