[SeaBIOS] Error while compiling Seabios for Arch Linux ARM

Laszlo Ersek lersek at redhat.com
Fri Feb 19 18:49:58 CET 2016


On 02/19/16 16:38, Kevin O'Connor wrote:
> On Thu, Feb 18, 2016 at 05:49:39PM +0200, XJDHDR wrote:
>>>> Greetings
>>>>  
>>>> I am currently trying to compile Seabios for Arch Linux ARM and I've
>>>> encountered an error during the compilation ‎
>>>
>>> SeaBIOS implements an x86 legacy BIOS. As such, it requires an x86
>>> compiler. So, you need to either compile on an x86 machine or setup
>>> and use an x86 cross compilation toolchain.
>>>
>>> -Kevin
>>
>> Thank you for the response Kevin. Correct me if I'm wrong but won't
>> x86 binaries not work on an ARM system as ARM processors don't
>> understand x86.
>>
>> I am attempting to get QEMU compiled and working on my ARM system
>> and SeaBIOS is a dependency ‎for QEMU, hence my need to have the
>> former compiled for ARM. Do you know if QEMU on ARM is okay with
>> SeaBIOS' binaries being x86? If so, I think this will make things a
>> lot easier for me.
>>
> 
> QEMU uses SeaBIOS when it emulates an x86 machine.  SeaBIOS is always
> compiled with an x86 compiler.

To repeat the same thing, just in a different coating:

SeaBIOS is always built with an x86 compiler -- if you are on a non-x86
build host, then you either need a cross compiler to build it, or a
working virtual machine that has (emulated) x86 architecture, and build
SeaBIOS within it natively.

Once you have it built, it is usually packaged up (for QEMU's purposes)
as a "noarch" package -- installable on any kind of host. That's because
you never run SeaBIOS natively on the host. On the host, the SeaBIOS
binaries are only *data*.

QEMU loads the SeaBIOS binary (+ the SeaVGABIOS oprom) from the host
data files, if it emulates or virtualizes an x86 target. SeaBIOS runs
within the guest.

Note, if you don't build qemu-system-i386 / qemu-system-x86_64 from
QEMU, only qemu-system-arm / qemu-system-aarch64, then you won't need
SeaBIOS at all. The packaging of QEMU might not reflect this on your
distro, but that's a packaging problem then.

Laszlo



More information about the SeaBIOS mailing list