Installing BeOS 5.0.3 Professional in VirtualBox

Here are my notes on how to install version 5.0.3 Pro of BeOS in a virtual machine (VM) using Oracle's VirtualBox, version 4.2.8 (update 20150828: got it working in 4.3.30). After much fiddling around with settings and drivers, I got almost everything working really well, except sound which is choppy.

Installing BeOS in VirtualBox

Install VirtualBox on your computer, as in the previous story about installing Haiku.

Then make a new virtual machine in the VirtualBox VM Manager, starting with the Other/Other template. Adjust the settings for these items (this was the hard part to figure out):

  1. Set up the new virtual machine with VT-x (general hardware virtual machine support) turned off. You can turn it on after installation for better speed. But leave "Nested Paging" turned off, it makes BeOS unbootable on some Intel Core CPUs, though it works on more recent ones.
  2. Set the VM to 768MB memory (avoid the over 1GB of RAM BeOS bug).
  3. Just 1 CPU (unfortunately the VM will crash with an access to the $A000 video memory area if you have 2 virtual CPUs), so you can't get all the multitasking goodness of BeOS. Also turn the multi-CPU related IO APIC off (if it is on, then BeOS networking doesn't work).
  4. 32MB of video is fine, since it just runs in VESA mode, and only 16 bit at that. The highest resolution I can get is 1280x1024x16. The other possible resolutions are the ones listed in the BeOS safe mode boot menu (hit space bar while booting to get it).
  5. BeOS needs an IDE controller, not a SATA one, to attach the virtual hard disk storage to. The PIIX3 variety of IDE is way faster (factor of 10 or more) than the newer emulated ones. Unfortunately Windows 2000 needs the PIIX4 one (or may need a fresh install to force it to use PIIX3), which BeOS can use but only very slowly. Linux can use either.
  6. For the network, use the Intel PRO/1000 T Server (82543GC) in the VM. It will need later installation of a BeOS driver, but it does work well.
  7. If using VirtualBox NAT mode, BeOS DHCP doesn't work so you need to manually specify IP addresses etc, use a bootable Linux CD to find out which numbers get assigned. Mine were Address 10.0.2.15, Mask 255.255.255.0, Gateway 10.0.2.2, DNS is your usual one.

    For better performance (and no mysterious dropped connections every few minutes, making BeShare unuseable), instead of NAT use Bridged mode, which will give the virtual machine its own presence and IP address on the network. Note that the VirtualBox Windows installer has an option to install the Bridged Mode Network feature, hope you had it selected when you installed VirtualBox.

  8. Sounds - use Soundblaster 16 (SB16) emulation in VirtualBox.
  9. The emulated CD doesn't handle CDs with multiple tracks/sessions like the real BeOS R5 Pro CD has. So use some other OS copy the partitions off the BeOS CD, and make a fake hard drive with the data dd'd into separate partitions. Then make a BeOS boot virtual floppy disk (I had a real one, the Personal Edition may have a way of making one). Boot from the floppy, hit the space bar to get the boot menu, and use it to select the fake CD main partition for booting, then install BeOS on a different virtual drive than the fake CD. Alternatively, you may have better luck using a "Personal Edition" of BeOS, which comes in one file that you put onto a FAT32 formatted disk.

Now install BeOS into the virtual computer. Use BeOS's Drive Setup to format a virtual disk partition with 2048 bytes per block. 4K blocks trigger bugs and 1K is slow. There's also a maximum of 60GB volume size with plain BeOS R5 due to a bug in mkbfs, use the Bone version of "mkbfs" to format larger partitions. Finally, there's a whole disk maximum of 128GB due to the way BeOS runs the IDE controller (the SCSI one can go to 2TB, but the VirtualBox SCSI emulation doesn't work well enough to be useable).

Then install a few more things. It's best if you prepare by downloading them all to an MSDOS FAT32 disk partition that the virtual machine can see (boot up Knoppix in the virtual machine using a virtual DVD .iso file, that will let you download files and copy them to a virtual FAT32 partition, then reboot without the virtual Knoppix DVD in the virtual DVD disc drive to get BeOS going, and use BeOS to install the files).

  1. Video - use a VESA safe mode from the boot menu. Can make it automatic by adding the line "mode 1024 768 16" (adjust resolution numbers to your needs) to the file /boot/home/config/settings/kernel/drivers/vesa. Maximum is 1280x1024x16.
  2. Fix the BeOS cache bug by editing /boot/home/config/settings/kernel/drivers/kernel to include the line "disk_cache_size 16384".
  3. Install the R5.0.3 update. BeOS5-5.0.0Pro-to-5.0.3-Update3-Pro-x86.zip
  4. Install the FAT file system improvement. FAT_filesystem_add-on_2001-12-11.zip
  5. Process Controller. Always useful. ProcessController3.1.pkg.bin
  6. CPU Fix - time calculations on high speed CPUs are wrong due to a bad calculation, making all timing operations wrong. It affects things like double clicking on Tracker columns. Install this patch to fix it, and also adjust mouse settings until the timing feels right. cpu_fix_1.4.pkg.zip
  7. Updated time zone data from Linux TZ files, since the BeOS ones have the wrong date for daylight savings time. They're stored in /boot/beos/etc/timezones
  8. Install the BeOS R5 Intel Pro 1000 driver by Marcus Overhagen from ipro1000_0.4.zip (available in many places, but apparently not BeBits now). Use BeOS Network Preferences to set a static address, which is more reliable than DHCP (which only works in Bridged mode, and depends on your home network DHCP server being BeOS compatible).
  9. If using an ADSL modem to connect to the Internet, where the MTU is less than the standard 1500 bytes, you may have dropped connections when web browsing. This patch reduces the MTU to make data transfer more reliable. ADSL-Upload-fix.pkg.zip
  10. Sounds - Install the SoundBlaster 16 driver for BeOS, with default IRQ, DMA and other ports. It's a bit choppy in sound quality due to VirtualBox bugs (other people have complained about this elsewhere). Also it causes a crash on shutdown. So I usually turn off sound in the BeOS Media Preferences (set in and out to "None"). The alternative would be to fix VirtualBox. AC97 sound almost works; you hear a bit of the first sample, but then it crashes BeOS. You may also wish to experiment with turning on VT-d and using a BeOS compatible real sound card. sb16-1.2-x86.pkg
  11. Replace Tracker with OpenTracker for many desktop improvements. OpenTracker-5.3.0-x86.zip
  12. Replace the mail system with Mail Daemon Replacement 2.3.0. 3.0.3 also works (and has SSL encryption), but the install seems to be missing a few files. mail_daemon_v2.3.0_x86.zip

There are still a few bugs that may cause problems. One is that the mouse sometimes locks up and gets stuck in the top left corner. Restart the media server to fix it. The keyboard still works so if you can Alt-Fn and Ctrl-tab to a Terminal window, you can type in "/system/servers/input_server -q" to get it working again, or use VNC to remotely move the mouse. The other problem is that sometimes the Tracker application (which runs those desktop windows full of file icons) gets stuck at 100% CPU. To fix that, use ProcessController to quit application "Tracker" and then use ProcessController's menu option to "Launch Tracker". After one quit and relaunch, Tracker seems to work properly the rest of the time.

And that should be enough to get you started with a virtual BeOS system. After that there are many other things to try, have a look at BeBits for things like BeShare, BePDF, SeaMonkey/Firefox, VLC and so on. Besides chat, BeShare also lets you find yet more BeOS related files.

Copyright © 2013 by Alexander G. M. Smith.