Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.
Sign upSupport for Coreboot+SeaBIOS hardware #2553
Comments
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
andrewdavidwong
Jan 6, 2017
Member
This is too localized for qubes-issues. Please consider posting this to the qubes-users mailing list instead. (You can read more about our mailing lists here.)
qubes-users is intended for these sorts of questions and receives much more traffic, which means that your question is more likely to receive a response there.
|
This is too localized for
|
andrewdavidwong
closed this
Jan 6, 2017
andrewdavidwong
added
the
invalid
label
Jan 6, 2017
added a commit
to rustybird/qubes-installer-qubes-os
that referenced
this issue
Mar 6, 2017
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
rustybird
Mar 6, 2017
@andrewdavidwong: I think this should be reopened, because the installer bug affects all coreboot+SeaBIOS users.
Since QubesOS/qubes-installer-qubes-os@1479416, GRUB is not installed on coreboot systems. Nor are Xen/kernel parameters etc. configured in /etc/default/grub, hence e.g. the non-Plymouth boot after calling grub2-install manually.
But if SeaBIOS is running, GRUB actually needs to be configured and installed. I'm working on a patch (seabios branch, untested!) that attempts to detect SeaBIOS and also adds a skip_grub={0,1} boot parameter to override. Does someone have a coreboot-without-SeaBIOS installation around (maybe @tlaurion) to verify that biosdecode (as root) doesn't print the line BIOS32 Service Directory present.?
Meanwhile, a good workaround for SeaBIOS users is to switch to a terminal in the installer and effectively disable coreboot detection: ln -sf /bin/true /usr/sbin/dmidecode && systemctl restart anaconda
rustybird
commented
Mar 6, 2017
•
|
@andrewdavidwong: I think this should be reopened, because the installer bug affects all coreboot+SeaBIOS users. Since QubesOS/qubes-installer-qubes-os@1479416, GRUB is not installed on coreboot systems. Nor are Xen/kernel parameters etc. configured in But if SeaBIOS is running, GRUB actually needs to be configured and installed. I'm working on a patch (seabios branch, untested!) that attempts to detect SeaBIOS and also adds a Meanwhile, a good workaround for SeaBIOS users is to switch to a terminal in the installer and effectively disable coreboot detection: |
andrewdavidwong
changed the title from
R3.2 Not booting on coreboot-4.5-316-gf1395d8 Lenovo x220
to
Support for Coreboot+SeaBIOS hardware
Mar 6, 2017
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
andrewdavidwong
Mar 6, 2017
Member
I think this should be reopened, because the installer bug affects all coreboot+SeaBIOS users.
Thanks, @rustybird. Reopened and updated title.
Thanks, @rustybird. Reopened and updated title. |
andrewdavidwong
reopened this
Mar 6, 2017
andrewdavidwong
added
bug
C: other
and removed
invalid
labels
Mar 6, 2017
andrewdavidwong
added this to the Release 3.2 updates milestone
Mar 6, 2017
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
mfc
Apr 23, 2017
Member
FYI easiest workaround is in this HCL report:
- boot from your Qubes R3.2 installation media
- go to:
Troubleshooting -> Rescue a Qubes system - after booting to anaconda installer please choose
1) Continue(and enter your Qubes partition password if you chose to encrypt it during install) - then enter
chroot /mnt/sysimage - finally enter
grub2-install /dev/sdX(where X is a letter for your hard drive with Qubes, for example:grub2-install /dev/sda)
now exit chroot with exit, exit bash with exit and reboot.
|
FYI easiest workaround is in this HCL report:
now exit chroot with |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
rustybird
Apr 23, 2017
The workaround from the HCL report will leave the system in an undefined state:
Nor are Xen/kernel parameters etc. configured in
/etc/default/grub, hence e.g. the non-Plymouth boot after callinggrub2-installmanually.
Note that some of those parameters, such as dom0_mem, are not just cosmetical.
Hey do you still happen to have access to a coreboot-without-SeaBIOS installation @mfc?
rustybird
commented
Apr 23, 2017
|
The workaround from the HCL report will leave the system in an undefined state:
Note that some of those parameters, such as Hey do you still happen to have access to a coreboot-without-SeaBIOS installation @mfc? |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
mfc
Apr 23, 2017
Member
this was for someone else, should i have also disabled coreboot detection like you suggested? or edited a bootfile for the necessary parameters? not interested in re-flashing SeaBIOS for them.
i run a heads machine which is coreboot without SeaBIOS. if i run biosdecode (as root) in dom0 it does not print the line BIOS32 Service Directory present, only ACPI 2.0 present and SMBIOS 2.7 present (with further details of each).
|
this was for someone else, should i have also disabled coreboot detection like you suggested? or edited a bootfile for the necessary parameters? not interested in re-flashing SeaBIOS for them. i run a heads machine which is coreboot without SeaBIOS. if i run |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
rustybird
Apr 24, 2017
this was for someone else, should i have also disabled coreboot detection like you suggested? or edited a bootfile for the necessary parameters?
Just disabling the Qubes installer's coreboot detection would be the cleanest.
If you don't want to reinstall, I'd at least add the line GRUB_CMDLINE_XEN_DEFAULT="console=none dom0_mem=min:1024M dom0_mem=max:4096M" and rerun grub2-mkconfig. Not sure what to do about GRUB_CMDLINE_LINUX, because it is generated dynamically, depending on installation layout and LUKS UUIDs. But apparently it's not essential (unless they want to try AEM).
i run a heads machine which is coreboot without SeaBIOS. if i run biosdecode (as root) in dom0 it does not print the line BIOS32 Service Directory present, only ACPI 2.0 present and SMBIOS 2.7 present (with further details of each).
Great, thanks!
rustybird
commented
Apr 24, 2017
Just disabling the Qubes installer's coreboot detection would be the cleanest. If you don't want to reinstall, I'd at least add the line
Great, thanks! |
rustybird
referenced this issue
Apr 24, 2017
Open
AEM: Unrecognized encrypted lvm at installation #2512
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
marmarek
Apr 24, 2017
Member
There are two things:
- allowing /boot to be encrypted on coreboot(+grub2)
- not installing grub2 when it's already included as coreboot payload
Currently installed assumes that if coreboot is installed, it has grub2 payload, so does both of above things. Can we somehow detect grub2 payload presence (not only coreboot presence)? If not, I think at least second step should be disabled, so grub2 would be installed even if already included in coreboot payload.
Is the above (biosdecode | grep BIOS32) the way to detect SeaBIOS?
|
There are two things:
Currently installed assumes that if coreboot is installed, it has grub2 payload, so does both of above things. Can we somehow detect grub2 payload presence (not only coreboot presence)? If not, I think at least second step should be disabled, so grub2 would be installed even if already included in coreboot payload. |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
rustybird
Apr 24, 2017
- allowing /boot to be encrypted on coreboot(+grub2)
It is even encrypted automatically in this case, right?
Can we somehow detect grub2 payload presence (not only coreboot presence)?
No idea
Is the above (biosdecode | grep BIOS32) the way to detect SeaBIOS?
Yes, and it really is the wrong thing to check. For example, coreboot's GRUB payload could be chainloaded from SeaBIOS.
Maybe we should just scrap the automagic for now and add two independent boot parameters, encrypt_boot={0,1} and skip_grub={0,1}? There are just so many moving parts - coreboot, SeaBIOS, GRUB payload, @osresearch's Heads, #2442, ...
rustybird
commented
Apr 24, 2017
It is even encrypted automatically in this case, right?
No idea
Yes, and it really is the wrong thing to check. For example, coreboot's GRUB payload could be chainloaded from SeaBIOS. Maybe we should just scrap the automagic for now and add two independent boot parameters, |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
marmarek
Apr 24, 2017
Member
allowing /boot to be encrypted on coreboot(+grub2)
It is even encrypted automatically in this case, right?
Yes.
Maybe we should just scrap the automagic for now and add two independent boot parameters, encrypt_boot={0,1} and skip_grub={0,1}? There are just so many moving parts - coreboot, SeaBIOS, GRUB payload, @osresearch's Heads, #2442, ...
Yes, it would be much less error-prone.
Yes.
Yes, it would be much less error-prone. |
marmarek
added
P: major
C: installer
labels
Apr 24, 2017
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
rustybird
commented
Apr 24, 2017
|
OK, I'll submit a PR. |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
rustybird
Apr 24, 2017
Now I'm really confused:
-
The lines
self.encryption_support = Trueandself.stage2_format_types += ["lvmlv"]do not automatically encrypt the boot partition. In retrospect that makes sense, because otherwise the "manualgrub2-install" partial workaround for SeaBIOS would not be viable. -
The two lines don't seem to change how Anaconda behaves for manual partitioning. With or without them, you can choose LVM and/or encryption for the boot partition. And there will actually be no encryption, even if you choose it.
-
I don't know how what to make of @tlaurion's instructions in #2118 (comment). Is the idea for Anaconda to create
/bootas a regular folder on the encrypted root partition inside the LVM? If I follow the steps, enter/into the "Mount Point:" field for matrix-rootvol in the Manual Partitioning screen, and click Done, Anaconda clears the field and fails with "You have not defined a root partition (/)".
Has anyone successfully installed R3.2 with an encrypted boot partition?
rustybird
commented
Apr 24, 2017
|
Now I'm really confused:
Has anyone successfully installed R3.2 with an encrypted boot partition? |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
marmarek
Apr 24, 2017
Member
In step "3" you need to click "update" first (right bottom corner). AFAIR without self.encryption_support = True and self.stage2_format_types += ["lvmlv"] Anaconda would complain that /boot cannot be on LVM and/or encrypted.
There was some method to make Anaconda not create separate /boot. Maybe it was some older version of this function?
|
In step "3" you need to click "update" first (right bottom corner). AFAIR without |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
rustybird
Apr 24, 2017
In step "3" you need to click "update" first (right bottom corner).
This also just clears the Mount Point field for me, then I get the same error after clicking Done. Is it working for you?
rustybird
commented
Apr 24, 2017
This also just clears the Mount Point field for me, then I get the same error after clicking Done. Is it working for you? |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
marmarek
Apr 24, 2017
Member
I don't have coreboot machine handy, but just checked and setting "/" do work this way. If you're trying to re-use existing partition, you need to select also "reformat" checkbox (there is a warning at the bottom of screen about it, if you don't do that).
|
I don't have coreboot machine handy, but just checked and setting "/" do work this way. If you're trying to re-use existing partition, you need to select also "reformat" checkbox (there is a warning at the bottom of screen about it, if you don't do that). |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
rustybird
commented
Apr 24, 2017
|
Thanks! Somehow the checkbox looked greyed out to me. (PTSD intensifies) |
added a commit
to rustybird/qubes-installer-qubes-os
that referenced
this issue
Apr 26, 2017
marmarek
closed this
in
marmarek/qubes-installer-qubes-os@62cb1ca
May 5, 2017
qubesos-bot
referenced this issue
in QubesOS/updates-status
Jul 5, 2017
Closed
installer-qubes-os v25.20.9-5-anaconda (r4.0) #117
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
DarkCoridor
Sep 3, 2017
I installed Qubes 4 RC1 on a Lenovo x220 with Coreboot + SeaBIOS (1.9.1) successfully but booting stays stuck in endless boot loop. I tried the grub2-install /dev/sda trick (despite that being for Qubes 3.2?), however that does not make any different.
I know it's not my machine that has an issue, as it successfully runs Tails, Subgraph, and Debian. Help or pointers would be appreciated.
DarkCoridor
commented
Sep 3, 2017
|
I installed Qubes 4 RC1 on a Lenovo x220 with Coreboot + SeaBIOS (1.9.1) successfully but booting stays stuck in endless boot loop. I tried the I know it's not my machine that has an issue, as it successfully runs Tails, Subgraph, and Debian. Help or pointers would be appreciated. |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
|
Remove |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
DarkCoridor
Sep 3, 2017
Thanks @marmarek I did that and it is no difference in the looping. Anything else I can try?
DarkCoridor
commented
Sep 3, 2017
|
Thanks @marmarek I did that and it is no difference in the looping. Anything else I can try? |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
h01ger
Sep 4, 2017
h01ger
commented
Sep 4, 2017
|
On Sun, Sep 03, 2017 at 04:59:07PM -0700, DarkCoridor wrote:
Thanks @marmarek I did that and it is no difference in the looping. Anything else I can try?
are you using the intel vga bios blob or the free firmware written in ADA?
(i'm using the latter on my x230 and it works fine.)
…--
cheers,
Holger
|
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
DarkCoridor
Sep 4, 2017
@h01ger I am unsure of that. Did you experience similar issue with one or other? Perhaps worth noting is I also used me_cleaner on the Coreboot BIOS
DarkCoridor
commented
Sep 4, 2017
|
@h01ger I am unsure of that. Did you experience similar issue with one or other? Perhaps worth noting is I also used me_cleaner on the Coreboot BIOS |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
h01ger
Sep 4, 2017
h01ger
commented
Sep 4, 2017
|
On Mon, Sep 04, 2017 at 05:01:35PM +0000, DarkCoridor wrote:
@h01ger I am unsure of that. Did you experience similar issue with one or other? Perhaps worth noting is I also used [me_cleaner](/corna/me_cleaner) on the Coreboot BIOS
I never used the intel vga bios blob (except with the original lenovo firmware
of course) and have not yet any experience with me_cleaner.
…--
cheers,
Holger
|
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
zxyz
Oct 20, 2017
I had the same problem as @DarkCoridor with my X220 and Qubes-Os 4.0 rc1 (corebot from master, Seabios from master and me_cleaner from master) using the free firmware. Using the VGA blob I get to see the grub menu, which is as expected - but the computer reboots as before. But editing the XEN parameters and removing the iommu=no-igfx option as suggested by @marmarek did the trick and Qubes finally boots.
For extracting the BIOS I followed:
https://nroach44.id.au/index.php/2016/12/11/thinkpad-x220-coreboot-and-me-removal/
zxyz
commented
Oct 20, 2017
•
|
I had the same problem as @DarkCoridor with my X220 and Qubes-Os 4.0 rc1 (corebot from master, Seabios from master and me_cleaner from master) using the free firmware. Using the VGA blob I get to see the grub menu, which is as expected - but the computer reboots as before. But editing the XEN parameters and removing the For extracting the BIOS I followed: |
kugg commentedJan 5, 2017
Qubes OS version: Qubes-R3.2-x86_64
Lenovo Thinkpad x220 i7-2620M
Coreboot 4.5
Expected behavior:
Booting from disk after bios stage.
The following log from coreboot shows the same system successfully booting on a (non XEN) live distribution (Tails): https://paste.debian.net/hidden/fdc9fc95/
Note: To add debug prints I had to build another coreboot flash with spkrmodem hence the differing versions and dates. The behavior trying to boot Qubes from disk was the same on both versions of coreboot.
Actual behavior:
Coreboot SeaBIOS cursor blinks OS does not start.
Output is:
Press ESC for boot menu.
(pressing ESC)
Select boot device:
(pressing 1)
Booting from Hard Disk...
Cursor keeps blinking, nothing boots.
The following log from coreboot shows a boot failure trying to boot the successfully installed Qubes OS R3.2 from disk: https://paste.debian.net/906598/
Steps to reproduce the behavior:
1.2 Turn on debuging using either spkrmodem (and record/wait for about 5 hours for bios to boot) or use a EHCI debugger (https://www.coreboot.org/EHCI_Debug_Port). Configure either: CONFIG_HAVE_USBDEBUG=y || CONFIG_SPKMODEM=y
General notes:
I have followed the discussion in: #1594
I have tried to put iommu=0 in xen.conf with no success.
I have also unsuccessfully tried to add the options suggested in: https://www.qubes-os.org/doc/uefi-troubleshooting/
Related issues:
#1594