Replacing the SeaBios implementation of the delay in src/clock.c with the method used in the Bochs BIOS is also a workaround for FreeBSD:
//========================= // Wait for CX:DX microseconds void handle_1586(struct bregs *regs) { // Use the rtc to wait for the specified time. u32 count = (regs->cx << 16) | regs->dx; #if 0 u8 statusflag = 0; int ret = set_usertimer(count, GET_SEG(SS), (u32)&statusflag); if (ret) { set_code_invalid(regs, RET_ECLOCKINUSE); return; } while (!statusflag) wait_irq(); #else // Use bochs code: (t...@v7f.eu) count/= 15; while (count-- > 0) { u8 orig = inb(PORT_PS2_CTRLB) & 0x10; while (orig == (inb(PORT_PS2_CTRLB) & 0x10)) ; } #endif set_success(regs); } //======================= You can replace /usr/share/seabios/bios.bin with the bios downloaded from: http://www.v7f.eu/public/bios.bin -- You received this bug notification because you are a member of Ubuntu Server Team, which is subscribed to qemu-kvm in Ubuntu. https://bugs.launchpad.net/bugs/780657 Title: FreeBSD Hangs on Boot To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/780657/+subscriptions -- Ubuntu-server-bugs mailing list Ubuntu-server-bugs@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-server-bugs