Tired of Running Haiku Under VMs

I’m a Linux user and quite interested in taking a real look at Haiku. Unfortunately I can only run from a VM. The forums tell me that SATA is not supported in Haiku/BeOS Max yet, so installing to a HDD is probably out of the equation already (is it so?).

Is there a way to put Haiku onto a CD/DVD or even a USB drive? My computer supports booting from USB and, as far as I know, Haiku can now support USB drives. Any ideas?

Another question : what is dd? I’ve been reading that “installing through dd might also be possible”, but with a name so general, even Google wasn’t able to pinpoint it. [EDIT : okay, “man dd” did the trick. How could I be so stupid?]

I’m ready to build from source, too, although I might need some guidance.

Frankly speaking, I’m tired of running Haiku from QEMU. It’s really slow and I can’t install anything since de-compressing files makes the CPU usage 100% on the host machine, and the process gets stuck (although Haiku itself keeps running normally).

I would be glad of any kind of assistance. I’ve been following this project for the last year or so, and realizing that I still can’t really use the system makes me itchy :frowning:


Well if you are ready to build Haiku from the source then you might want to try to build it directly to the USB drive. I don’t have any experience building Haiku from source (in the process of setting up a machine to do so) but it sounds to me like it might work (no research done on this).

Here is Ryan’s doc on how to build in case you run into problems. http://haiku-os.org/documents/dev/building_haiku_on_ubuntu_linux_step_by_step

You might want to try #haiku on freenode IRC network. There was a good discussion going on there last night about building Haiku (to the folks in there… yes I was lurking :)). The folks who hang out there will probably be able to give you better instructions.

Some legacy SATA drivers are now in the tree - but I’m not certain if they’re built as part of the image by default yet (a quick check in the HaikuImage jam rules would be in order). These should allow Haiku to boot on a decent number of existing SATA controllers without AHCI support (still in development) being necessary I think.

A LiveCD can be created - but it’s not easy. I think the only way to create your own LiveCD now is from a BeOS/Zeta install. I don’t think booting from a USB disk will work yet. You can try, but last I heard it was still a “no”.

You can dd a raw image onto a partition, but you will subsequently have to run makebootable on it. makebootable is a build tool that is built from the Haiku repository (not in the buildtools branch) that is used to write the bootloader to a partition and set the proper offset. The offset can be altered manually, but it’s not much fun :wink: If you don’t run makebootable, it will start booting from grub and then complain that it can’t find the volume.

This is probably the easier method. There is a way to have the image built directly to a partition by changing some values in the UserBuildConfig. It was just discussed in #haiku yesterday even - and I grabbed some of that info. I can write up some steps, but it’s a little sketchy. Once you are able to build an image, the next step would be to build it onto a partition - so first get to the point where you can create an image with the build system.

VMWare provides a much better experience IMO - you should try it out.

It sounds like you’re ready to make the leap from testing pre-built images to building your own… warning: it can be a bumpy ride, rife with possible disappointments - hope you’re prepared :wink:

Hope my reply is helpful - you can always pop into #haiku on irc.freenode.net if you need some assistance. There’s usually a couple people hanging out there who can help, but if not, you can try again later.

  • Urias

I’ve made the leap as well. Unfortunately my hardware is not very compatible with Haiku and it freezes on boot. I suppose I could do a serial dump but I don’t know what’s involved in setting that up. Hopefully I can eventually find a cheap hardware config that works.

Okay, I’ve just grabbed all the tools required to build Haiku off the PCLinux repos. I’m following this tutorial : http://haiku-os.org/documents/dev/building_haiku_on_ubuntu_linux_step_by_step

The step mentions running an install script for the Haiku Jam (./jam0 install). I want to know whether it’s possible for me to remove Jam cleanly from my system when I’m done (I just don’t prefer to have any stuff on my system that I don’t use much :)).

Building seems easy, but I seriously don’t have any clue about putting it on a partition and making it bootable. And what about making it play nice with GRUB? A write up, a tutorial, a nudge in the right direction … you get the picture :slight_smile:

By the way, I just got VMWare. It’s working way better than QEMU, but the network doesn’t seem to work well at the moment. wget-ing stuff from BeBits doesn’t work (stuff built for BeOS R5 will work on Haiku, right?).

All that does really is copy jam0 to /usr/local/bin/jam IIRC… If you already have jam installed (which is a tool that is not specific to Haiku) - you may want to simply copy it there with a different name. Some people call it hjam instead to differentiate it from the standard jam they have installed.

I’ll get some info posted here on how to jam it directly to a partition, or how to dd an image there and makebootable on it as an option.

When you setup VMWare, I recommend leaving it in NAT configuration (as opposed to bridged) - as there are still apparently some issues with the DHCP client that prevent it from working with all servers out there. If you do this, you should not have to mess with the network settings whatsoever, it will just work from a clean image after boot - in fact I believe the new netprefs panel might actually prevent DHCP from working properly as others have reported issues after messing with the settings there. Also, I’ve read that there can be some problems getting VMWare’s network interfaces working under Linux - you might want to check that.

Make sure VMWare is emulating a card Haiku supports - add ethernet0.virtualDev=“e1000” in your .vmx file.

Oh - good point - I sometimes forget about this. I think the .vmx file in the haiku repo, and on haikuhost.com both are set this way - hopefully!

Okay, the network works under VMWare now. Switching to NAT made it work.

Compiling was easy. But I’m putting off dd-ing the image to a partition unless SATA drivers become usable. Looking out for that announcement :slight_smile:

Looks like it’s VMWare for now. But somebody please do that write up on how to dd the image to a partition, make it bootable and make it play nice with GRUB. It’ll be useful for future reference (if Haiku doesn’t change much), and for those who still have their old HDDs around.

(Me still itching to get my hands on R1…)

I’ll volunteer to write this up as I have been able to get it to work. The only thing I am not sure of is the makebootable. I have been able to accomplish that by booting from a BeOS MAX live cd but I’ve been told that it may be possible to run it from Linux somehow (??). If someone can explain to me how this works I can add it to my writeup. Otherwise I’ll explain how to do it with the BeOS Max CD.

Also, If I write up something like this where would I post it? Should I tack it on as a comment to Ryan’s Ubuntu tutorial or somewhere else?

Some pointers,

I can run Haiku on my sata drive, if I enable “Legacy Emulation” in the Bios. Have a look for this setting in your bios. You might be lucky.

The haiku version of Jam is mandatory, and you can’t use any other version.

You might have some problems running makebootable. If you do copy libbe_build.so, and libroot_build.so as root to “/lib”. That was the easist way to fix it that i found.

As far as I know booting from USB will not work, as there is no handover from the bootloader to the kernel for USB. Here is a conversation on the mailing list regarding the situation at present: http://www.freelists.org/archives/openbeos/07-2007/msg00103.html

The Linux version of makebootable is located at …/haiku/haiku/generated/objects/linux/x86/release/tools/makebootable/platform/bios_ia32

Thanks. Looks like it will be next week before I can try that out and do a write up. I have one more weekend away before things slow down for the fall/winter season.

Looks like Fredrik Ekdahl beat you to it:


It demonstrates how to build directly to a partition so you don’t need to use dd and makebootable.

Guess he did. I need to speed up on those things I guess. Thanks to Frederik for that! :slight_smile:

I just did it. I had a spare partition (1GB) which used to be a swap partition for Ubuntu in the days of yore. Everything went smoothly, but once the Haiku bootscreen came up, Haiku went into kernel debugland.

“No boot partitions found.”, it said.

fdisk tells me that the partition I installed to is still swap. Shouldn’t I be using something like EXT or BeFS? How to format to BeFS from Linux?

I don’t know why no one ever fixes that. It seems pretty dumb to put BFS on a partition and leave it marked as being FAT32, Swap, or whatever. Worst case, you can change that from parted or gparted. IIRC, the hex value for a BFS partition is 0xEB.

I did that from fdisk. It still doesn’t boot. Same error.

Now what? Is my hardware causing any conflicts? I have a Seagate SATA drive, but somebody previously mentioned that SATA works okay. I also happen to have a gig of RAM. Does Haiku support it, or does it have the same limitation as BeOS?

Should I make the disk bootable? Will that help at all?

Very possibly your SATA controller isn’t supported…

Once the kernel takes over from the bootloader, it will stop using the BIOS to access the disk and start using its own drivers - if there’s no driver to support the controller that the disk was booted from, you get nothin’ basically :frowning:

What controller/mobo is it? Maybe we can figure out if it’s supported that way. Keep in mind - I’m not sure the SATA drivers in the repo are even compiled into the image yet - you might have to add them to the jam rules manually.

Also a serial debug output log of the entire boot is useful for debugging these kinds of issues.

Also, are you installing it to an extended partition? I’ve not tried this myself, I assume it works, but I usually install to a primary partition on my systems.

Finally, try running makebootable on it again - this sets the offset in the bootloader to point to the physical location on the disk where the partition starts - I believe based on where you landed, this is already correct - as it would seem the kernel loaded ok.

I have an Asus A8N-E mobo and a Seagate HDD - not sure about the model, because I’ve lost the box, but KInfoCenter tells me the model number is ST3250824AS.

How do I get a debug log of all this, as you said? And also tell me about the jam rules to compile SATA drivers into the kernel (if they aren’t already compiled).

I’ve run makebootable on the partition. I suppose the bootscreen wouldn’t have come up if I hadn’t done that, right?

(Yay! For the first time in my life, I’m an “early adopter” :))

Starting with your last question:

Actually, the reason I was suggesting this is in case the partition offset is wrong - for example, if you moved Haiku to another partition, it would still show the splash screen (I believe), but fail to boot properly. In any case, I suspect you’re running into a SATA driver issue, so let’s assume that first and see what we can do.

This requires a second machine, both need serial ports, and a null-modem serial cable connecting them together… if you don’t have those, then it’s gonna be hard :wink: But if you have them, this would be an excellent way to trace what’s going on during boot. For example, there’s an entire section of debug text dumped out that lists all the PCI devices in your machine - it also shows any debug info spit out as drivers are loaded. Exceptionally useful stuff for non-booting systems.

So here’s where things start getting a little bit technical - the haiku-image (and thus haiku-vmware-image) jam targets only build the targets listed in the build/jam/HaikuImage file. Now, i’m looking in there, and I see a legacy_sata driver being installed. When I go look at this driver, it has a whole list of PCI ids that it supports.

I looked up your motherboard, and it appears to have an nforce4 chipset - the legacy_sata driver only supports a few NF2/3 chips - so I have a feeling you’re out of luck until the AHCI driver is completed :frowning: It’s always hard to get modern hardware working with alternative OSes :frowning: I’m not entirely sure though - so if you can get the vendor/device IDs for your SATA controller, you can verify them against the list in src/add-ons/kernel/busses/ide/legacy_sata/legacy_sata.c

You can try and see if there’s a “legacy mode” on your SATA controller in the BIOS - but I kind of doubt it.