Run OpenBSD from USB on MacBook Pro
1103 words, 6 minutes
I own a MacBook Pro (5,5 with Core 2 Duo) and wish to test running OpenBSD on it. But I don’t want any impact on my OS X installation. So I’m going to install and run OpenBSD from a USB stick.
What I used
- A mid-2009 MacBook Pro (MacBookPro5,5);
- A Corsair VoyagerGT 16GB;
- An OpenBSD 5.0 (/snapshots/) CD;
- The rEFIt 0.14 boot selector.
Install OpenBSD
Prepare the USB stick
From what I understood, you cannot simply boot non-OS X OSes on the Mac. You’ll
need a special boot loader software. People booting Windows on the MacBook are crazy use Boot Camp. People
booting other OSes use Boot Camp or rEFIt. I used the latter because I read
Boot Camp was very Windows-only friendly.
The USB stick has to have a dedicated partition that the MacBook will boot on. The boot loader will be installed on it and will deal with the rest:
- Insert the USB stick in the MacBook;
- In Mac OS X, run the
Disk Utility
; - Partition the USB stick with 2 partitions and a
GUID partition table
: - a (small) HFS+ partition (to host rEFIt);
- a ExFAT partition (to host OpenBSD);
Install OpenBSD
Grab, burn and boot the install50.iso (amd64). On MacBook’s start, press
“alt
” until the boot selector appears and select the CD/DVD. It’s written
“Windows” in the menu but it is not. Install OpenBSD the usual way on the USB
stick overriding the ExFAT partition.
In the “fdisk
” process, edit the “NTFS” partition and set an A6
(“OpenBSD”)
type.
In the “disklabel
” process, select the "(C)ustom layout"
option and
configure root&swap. I kept “i” et “j” as “unknown” slices.
When the install is complete, reboot to Mac OS X.
Install the boot loader
Download rEFIt for Mac .
Mount the rEFIt dmg image and copy the “efi
” directory to USB HFS+ partition.
Then enable it from the Terminal
:
# cd /Volumes/rEFIt/efi/refit
# sh enable.sh
+ sudo bless --folder '/Volumes/rEFIt/efi/refit' --file '/Volumes/rEFIt/efi/refit/refit.efi' --labelfile '/Volumes/rEFIt/efi/refit/refit.vollabel'
I also copied/pasted the icons/os_openbsd.icns
picture on the rEFIt volume
icon. The icon will appear in the boot selection menu.
Reboot the Mac and press “alt” until the boot loader appears.
Boot OpenBSD
On reboot, select rEFIt and OpenBSD. That’s the theory. In my configuration, OpenBSD didn’t start. I got the following message from rEFIt:
(...)
Error: Not Found from LocateDevicePath
Error: Load Error while (re)opening our installation volume
The firmware refused to boot from the selected volume. Note that external hard drives are not well-supported by Apple's firmware for legacy OS booting.
I couldn’t found how to solve this properly. Apparently, it seems it would work if I did the install on the internal disk ; but I don’t want to mess it. The solution I used was booting from the CD again and force the bootloader to use the USB stick:
boot> set device hd2a
boot> set image /bsd
boot> boot
booting hd2a:/bsd: 5640200(...)
Then I could get into OpenBSD!
Run OpenBSD
OpenBSD on the MacBook boots fine:
OpenBSD 5.0 (GENERIC.MP) #63: Wed Aug 17 10:14:30 MDT 2011
deraadt@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP
RTC BIOS diagnostic error b5<clock_battery,config_unit,memory_size,invalid_time>
real mem = 8294412288 (7910MB)
avail mem = 8059494400 (7686MB)
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 2.4 @ 0xe0000 (42 entries)
bios0: vendor Apple Inc. version "MBP55.88Z.00AC.B03.0906151708" date 06/15/09
bios0: Apple Inc. MacBookPro5,5
The full dmesg output is available here . It runs quite well although I’m running it from USB.
Console and keyboard: ok
My French keyboard, using the ‘fr’ layout has strange key alignement. Kind of same weird distribution when I ran OS X on Dell laptops. Here’s a few “where that damm key is” reminder:<
is @
>
is #
@
is (right) alt+0
#
is (right) alt+3
|
is (right) alt+6
-
is §
_
is !
=
is -
+
is _
!
is =
In fact, the keys are mostly located in their PC keyboard expected location. Think of right alt
key as AltGr
, close your eyes, and the keys are where you expect them…
The more/less brightness keys didn’t work.
Backlit keyboard: nok
There’s no light from the keyboard by default. And I didn’t found a option to activate it. In this configuration, the MacBook looks like all those poor PC configuration… I knew I liked that feature. Now I know I just can’t leave without it.
Energy saving: ok
Speedstep works out of the box. Using apmd -C
, you can tell OpenBSD to lower the CPU speed and keep the MacBook quiet. I used it for an hour or so and I didn’t hear the fan whistling.
hw.sensors.cpu0.temp0=61.00 degC
hw.sensors.cpu1.temp0=61.00 degC
hw.sensors.acpiac0.indicator0=Off (power supply)
hw.sensors.acpibat0.volt0=10.95 VDC (voltage)
hw.sensors.acpibat0.volt1=12.52 VDC (current voltage)
hw.sensors.acpibat0.watthour0=45.82 Wh (last full capacity)
hw.sensors.acpibat0.watthour1=0.25 Wh (warning capacity)
hw.sensors.acpibat0.watthour2=0.10 Wh (low capacity)
hw.sensors.acpibat0.watthour3=46.98 Wh (remaining capacity), OK
hw.sensors.acpibat0.raw0=1 (battery full), OK
hw.sensors.acpibat0.raw1=0 (rate)
hw.cpuspeed=798
hw.setperf=0
LAN: ok, WLAN: nok
The Gigabit NIC is recognized since the install process and works like a charm. But the wireless interface, a Broadcom BCM4322, does not seem to be useable by OpenBSD. I installed every non-free firmwares but this doesn’t solve the issue.
X-Window: ok (AMAP)
Xorg starts and works out of the box, providing you with a 1280×800 desktop.
I’m not sure if DRI works or not… The Xorg log says:
[564167.591] (II) AIGLX: Screen 0 is not DRI2 capable
[564167.591] (II) AIGLX: Screen 0 is not DRI capable
[564167.604] (II) AIGLX: Loaded and initialized /usr/X11R6/lib/modules/dri/swrast_dri.so
[564167.604] (II) GLX: Initialized DRISWRAST GL provider for screen 0
and glxinfo
goes:
name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.4
I ran Firefox 5 in WindowMaker and it behaved as I was used to (in my young times…)
glxgears
renders about 28 FPS and Mplayer was lagging when displaying online big_buck_bunny_480p_h264.mov
.
Touchpad: ~ok
The touchpad kind of works. Dragging the mouse is ok, clicking things with the (hidden) button works but click&drag doesn’t. I used a 3-buttons USB mouse to manouver Xorg.
Sound: nok
Sound does not work. Or at least I didn’t get how to have it working. I tried audacious
, VLC
and Mplayer
with various audio and video files but didn’t get a beep ; neither from internal speakers nor from headphones.
The full mixerctl
output is available here
.
Conclusion
I won’t use OpenBSD on the MacBook Pro as a workstation right now. If the wireless and sound had been working, I’d have gone further in the experiment. But right now, I’ll remember that this laptop would be a nice server when my actual Dell XPS will die and/or when I’ll buy another MacBook (Pro|Air).
That’s All Folks!