[SeaBIOS] [Qemu-devel] problems with freeBSD

Aurelien Jarno aurelien at aurel32.net
Thu Mar 7 09:43:04 CET 2013


On Wed, Mar 06, 2013 at 07:53:51PM -0500, Kevin O'Connor wrote:
> On Thu, Mar 07, 2013 at 12:12:08AM +0100, Aurelien Jarno wrote:
> > On Wed, Mar 06, 2013 at 08:21:11AM +0000, Dietmar Maurer wrote:
> > > Using qemu 1.4.0:
> > > 
> > > # qemu -hda test.raw -m 512 -cdrom pfSense-LiveCD-2.0.2-RELEASE-amd64-20121207-2239.iso
> > > 
> > > Results in:
> > > 
> > > trap 12: page fault while in kernel mode
> > > ...
> > > stopped at x86bios_emu_rdw+0x2f: movzwl (%rbx),%eax
> > > 
> > > Any ideas? Can somebody reproduce that?
> > > 
> > > To get the FreeBSD VM boot use the console, enter the boot loader, then:
> > > # set hint.atkbd.0.disabled="1"
> > > # boot
> > > 
> > > But that disables the keyboard.
> > 
> > I was actually digging about that problem. It is indeed present in
> > version 1.4.0, but is fixed in the current git master. The problem is
> > actually not directly in QEMU but in seabios, the update to version
> > 1.7.2.1 commit 5c75fb10) fixes the issue. Maybe it is worth 
> > cherry-picking it into stable-1.4 (hence the Cc:). In the meantime
> > using bios.bin from master with QEMU version 1.4.0 should also fix the
> > issue.
> > 
> > What is strange is the seabios commit fixing the issue:
> > 
> >     commit 4219149ad2b783abfa61e80e9e9f6910db0c76c9
> >     Author: Kevin O'Connor <kevin at koconnor.net>
> >     Date:   Sun Feb 17 10:56:10 2013 -0500
> >     
> >         build: Don't require $(OUT) to be a sub-directory of the main directory.
> 
> That change is definitely just build related - I don't see how it
> could impact the final SeaBIOS binary.  How did you conclude that this
> commit is what fixes the issue?
> 

I did a git bisect to find the commit fixing the issue. Then, as I was
not believing the result, I tried the following sequence a dozen of
times (for some unknown reasons the FreeBSD install CD doesn't exhibit
the issue, so I used the Debian GNU/kFreeBSD installer):

| mkdir qemu-freebsd-bug
| cd qemu-freebsd-bug
|
| wget http://ftp.debian.org/debian/dists/squeeze/main/installer-kfreebsd-amd64/current/images/netboot/mini.iso 
|
| git clone git://git.qemu.org/qemu.git
| cd qemu
| git checkout -b stable-1.4 v1.4.0
| ./configure --target-list=x86_64-softmmu
| make
| cd ..
|
| git clone git://git.seabios.org/seabios.git
| cd seabios
| git checkout -b 1.7.2-stable origin/1.7.2-stable
| git reset --hard 4219149ad2b783abfa61e80e9e9f6910db0c76c9
| make
| cp out/bios.bin ../qemu/pc-bios
| cd..
|
| # debian-installer boots correctly 
| ./qemu/x86_64-softmmu/qemu-system-x86_64 -enable-kvm -cdrom mini.iso
|
| cd seabios
| git reset --hard d75c22fcb6521dad11428b65789d92f89675c600 
| git clean -fdx
| make
| cp out/bios.bin ../qemu/pc-bios
| cd ..
|
| # debian-installer fails to boot
| ./qemu/x86_64-softmmu/qemu-system-x86_64 -enable-kvm -cdrom mini.iso 


Maybe I am doing something wrong or there is a bug in my toolchain
(Debian Sid). It would be nice if someone could try to reproduce that on
another distro/system.

-- 
Aurelien Jarno                          GPG: 1024D/F1BCDB73
aurelien at aurel32.net                 http://www.aurel32.net



More information about the SeaBIOS mailing list