[SeaBIOS] Chromebook doesn't boot BSD
johnnywhishbone at gmail.com
Mon Feb 15 17:16:06 CET 2016
> Am 15.02.2016 um 15:40 schrieb edward wandasiewicz <0.w3ntd at gmail.com>:
> On Sun, Feb 14, 2016 at 11:02 PM, Kevin O'Connor <kevin at koconnor.net> wrote:
>> On Sun, Feb 14, 2016 at 08:30:47PM +0100, Ronny Schneider wrote:
>>>> Am 14.02.2016 um 19:29 schrieb Kevin O'Connor <kevin at koconnor.net>:
>>>> On Sun, Feb 14, 2016 at 06:04:16PM +0100, Ronny Schneider wrote:
>>>>> Hello there,
>>>>> i have a Toshiba Chromebook 2 (CB30-B-104) with a flashed on SeaBIOS by the script from John Lewis: https://johnlewis.ie/custom-chromebook-firmware/rom-download/
>>>>> Linux is running very well but i want to see OpenBSD 5.8 on this laptop. But it’s not working, neither do FreeBSD 10.2, NetBSD 7.0 or DragonFly 4.2. The boot stops at the point where the kernel wants to mount the root-filesystem. I even copied an installed OpenBSD-System from an usb-stick onto the emmc-flash of the chromebook but it’s not working.
>>>>> I googled arround and found out the problem is not unknown among the Chromebook Pixel. So i thought i could help a little by providing my cbmem-bootlog for my machine: http://pastebin.com/asLqar5q
>>>>> If i can do more to see OpenBSD booting on this laptop, please let me know :-)
>>>> When you say "it's not working" - what happens - does the machine hang or does it attempt to reboot?
>>>> If it hangs, are you sure the machine is really stuck instead of just the display not working?
>>> The Display is working all the time. Using NetBSD, it also applies the native resolution of the panel.
>>>> If it hangs, can you provide all the information on the screen prior to the hang.
>>> I used the amd64 install-images on an 64GB USB3-Stick for the following pictures. If you want me to copy the installer-images onto the mmc of the chromebook, tell me please.
>>> With FreeBSD 11 it freezes. The machine hangs at the moment the kernel tries to mount the root-filesystem and does not respond to any keypress anymore. I have to shutdown the chromebook by keep pressing on the powerbutton for a few seconds.
>>> Image: http://bilderhochladen.org/i/SFrHFStWws/
>>> With OpenBSD 5.8 it „stalls“. The Cursor is blinking but nothing more happens. Although the chromebook shuts down when the powerbutton is pressed.
>>> Image: http://bilderhochladen.org/i/4jFRYDYO11/
>>> With NetBSD 7.0 it „stalls“ too. The Cursor is not blinking but i can enter a „root device“. If nothing is entered it gives me the choice of either „ddb“, „halt“ or „reboot“. „Halt" and „Reboot" are working properly, the machine shuts down or reboots correctly.
>>> Image 1: http://bilderhochladen.org/i/zgq1usG2Ri/
>>> Image 2: http://bilderhochladen.org/i/EqVSDbn25x/
>>> With Dragonfly 4.2 the kernel stops at the moment it tries to mount the root-filesystem and asks me to enter the device. The machine has to be shut down via holding the powerbutton for a few seconds.
>>> Image 1: http://bilderhochladen.org/i/TRIdjee9VP/
>>> Image 2: http://bilderhochladen.org/i/khPrwt4P0C/
>> So if I understand correctly, you are attempting to launch BSD install
>> media from a USB drive, and the installer fails to start?
>> This doesn't look like a typical SeaBIOS issue
> Try OpenBSD snapshots.
> You're findings on the Toshiba Chromebook 2 may vary from what I found
> with the Chromebook Pixel 2015.
> bsd.rd - you cant directly boot a bsd.rd kernel as it doesn't load
> inteldrm. VGA only, but there's no VGA 800x600 resolution for SeaBIOS
> to use, hence no dmesg output. It does boot, but you don't see the
> screen changes.
> bsd - snapshots only - will load inteldrm
> bsd 5.8 - will not load inteldrm
> It will load the kernel (bsd snapsots) but won't display any dmesg
> output, until the kernel finds inteldrm, then it will output dmesg and
> hey presto, we've booted up.
> If you want to update OpenBSD bsd, I use arch Linux and boot bsd.rd
> through qemu.
> This patch
> Revision 1.95 fixes this issue, hence snapshots only.
> This only refers to the Chromebook Pixel 2015 only.
> If we run
> $ vbeinfo
> in grub2, we only get one resolution available, of 1280 x 850 x 16. No
> 800 x 600, so no dmesg output till inteldrm hits.
> Coolstar organisation on Google+ (search coreboot Google+) has found a
> patch for Coreboot to fix this resolution problem at boot,.
> I used
> from https://wiki.archlinux.org/index.php/Chrome_OS_devices
> to repartition the SSD on the Pixel 2015, install Arch, Grub2 &
> OpenBSD keeping ChromeOS too for updates to Coreboot & SeaBIOS.
> You can install OpenBSD to the SSD and write the MBR (no Grub
> installed) and it will boot up via Ctrl-L keeping ChromeOS via Ctrl-D.
> But you need another OS to boot bsd.rd via qemu to update files from
> snapshots/amd64 to upgrade OpenBSD going forward.
> Haven't tried the other BSD's.
I tried the latest OpenBSD snapshot 5.9 and it doesn’t work - neither using USB-Stick nor SD-Card.
The latest snapshots from FreeBSD, NetBSD and DragonFlyBSD also do not work.
>> - it looks more like the various BSD kernels don't like the USB controller and/or USB drive on your machine. Have you tried using a different type of USB drive for the install media? It's also possible there's something in the ACPI tables that coreboot provides that is confusing the BSDs.
I tried several usb-sticks and sd-cards. Every time the same result: it doesn’t work.
If i boot NetBSD without ACPI-support the screen turns black and stays this way until the machine is shut down.
>> Your logs seem to indicate you also have an eMMC and an SD card. Have you tried placing the install media on an SD card instead of USB?
That’s right. The main storage device of this Chromebook is an eMMC. Booting from SD card is working if it is a linux. BSD won’t start from. The same results as using an usb stick.
>> Another thing you could do is launch the install media with the same verson of SeaBIOS on QEMU emulating an XHCI drive and SD drive - just to see if it's possible to reproduce outside of your particular
>> machine. See below.
Using QEMU it is working flawlessly, wether the SeaBIOS version is 1.8, 1.9 or 1.9.1 (which i compiled myself).
So it really seems to be a problem with the BSDs.
More information about the SeaBIOS