Ask Ubuntu is a question and answer site for Ubuntu users and developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I've been coming up to speed on the Haiku operating system, an Open Source clone of BeOS 5 Pro.

I'm using an Apple MacBook Pro as my development machine. Apple's BootCamp BIOS does not support more than four partitions on the internal hard drive. While I can set up extended and logical partitions, doing so will prevent any of the installed operating systems from booting. To run Haiku directly on the iron, I boot it off a USB stick. Using external storage is also helpful because I am perpetually out of filesystem space.

While VirtualBox is documented to allow access to physical drives, I could not actually get it to work. Also VirtualBox can only use one of the host CPU's cores. While VB guests can be configured for more than one CPU, they are only emulated. A full build of the Haiku OS takes 4.5 under VB.

I had the hope of reducing build times by using KVM instead, but it's not working nearly as well as VirtualBox did. The Linux Kernel Virtual Machine is broken in all manner of fundamental ways as seen from Haiku.

But I'm a coder; maybe I could contribute to fixing some of those problems.

The first problem I've got is that Haiku's video in virt-manager is quite painfully slow. When I drag Haiku windows around the desktop, they lag quite far behind where my mouse is. It's quite difficult to move a window to a precise position on the screen. Just imagine that the mouse was connected to the window title bar with a really stretchy spring.

Also Haiku's mouse lags quite far behind where I have moved it.

I found lots of Personal Package Archives that enable Spice from QEMU / KVM at the Ubuntu Personal Package Arhives. I tried a few of the PPAs but none of them worked; with one of them, the command "add-apt-repository" crashed with a traceback.

There is a Wiki page about Spice, but it says that it only works on 64-bit. My Early 2006 MacBook Pro is 32-bit. Its Apple Model Identifier is MacBookPro1,1; these use Core Duos NOT Core 2 Duos.

I don't mind building a source deb for 32-bit if I can expect it to work. Is there some reason that Spice should be 64-bit only? Does it need features of the x86_64 Instruction Set Architecture that x86 does not have?

When I try using SDL from virt-manager, the configuration for Local SDL Window says "Xauth: /home/mike/.Xauthority". When I try to start my guest, virt-manager emits an error.

When I Googled the error message, the usual solution was to make ~/.Xauthority readible. However, .Xauthorty does not exist in my home directory. Instead I have a $XAUTHORITY environment variable. There is no way to configure SDL in virt-manager to use $XAUTHORITY instead of ~/.Xauthority. Neither does it work to copy the value of $XAUTHORITY into the file.

I am ready to scream, because I've been five fscking days trying to make KVM work for Haiku development. There is a whole lot more that is broken than the slow video.

All I really want to do for now is speed up my full builds of Haiku by using "jam -j2" to use both cores in my CPU.

I may try Xen next, but the last time I monkeyed with Xen it was far, far more broken than I am finding KVM to be.

Just for now, I would be satisfied if there were some way to use my USB stick as a drive in VirtualBox. VB does allow me to configure /dev/sdb as a drive, but it always causes a fatal error when I try to launch the guest.

Thank You For Any Advice You Can Give Me. -

share|improve this question
I'm going to get set up to cross-compile from Ubuntu. That really isn't what I want to do, but I expect my builds will go a lot faster. The problem is that Ubuntu cross-builds will be hardwired to use cross-compilation tools that come from the Haiku SVN. If I then want to build from within Haiku, I have to do it all over again. – Michael Crawford Oct 24 '11 at 18:37
Is there a way to loop up questions with more than one tag simultanously? If I click on any one tag, I find all the questions with that one tag. There are a lot of them by now. But if I could look at all the questions that have 11.10, qmeu and sdl tags all on the same question, it would narrow down the search results quite a lot. – Michael Crawford Oct 24 '11 at 18:39
You may need to tweak the kvm settings with virt-manager. On the details page of the vm under video, try the vmvga driver. – aquaherd Oct 24 '11 at 21:26

Well, you said yourself:

All I really want to do for now is speed up my full builds of Haiku by using "jam -j2" to use both cores in my CPU.

and in response to the bug you filed with the haiku project

Changed 3 months ago by bonefish

One question that comes to mind: Why do you want to punish yourself building Haiku on an emulated Haiku? On your Linux host system Haiku can be built a lot faster than on a Haiku installed on the same machine. And an emulated Haiku is dramatically slower even. When you work on individual libraries or applications, building on an emulated Haiku might make sense, but the more has to be built the better are the turn-around times for building on Linux. For kernel or driver work that doesn't need actual hardware, it's the best option anyway.

Using a completely emulated VM as a build server is going to be painfully slow, there's just no getting around it. For you to actually assign a harddisk to the guest would require VT-D extensions. So in your limited laptop setting, you might be able to install a expresscard sata controller and attach an external disk. Then assign the entire bus to the VM, that's predicated on having VT-D though.

You're on the pointy tip of the spear, running an experimental OS with no guest driver support. If were to contribute a set of virtio drivers to haiku it would really speed things up.

There has to be a better developer workflow than what you've proposed. I'm sure the lead developers cross-built all the time before the OS was bootstrapped. There are haiku irc channels and developer FAQs, I suggest that you start there. Good luck.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.