Skip to main content

OpenSolaris 2008.05 Meet the MacBook Pro

Posted by bleonard on May 27, 2008 at 4:07 PM PDT

Okay, so I'm not the first to document this configuration (1). However, I wasn't successful with any of the other approaches I discovered. Maybe this was because it most cases they were using a pre-release build of OpenSolaris 2008.05. So, for what it's worth, here are the steps that led me to success...

What I've Got

  • MacBook Pro w/ a 2.4 GHz Intel Core 2 Duo processor (model A1226) running OS X 10.5.1. I believe these steps would work for any MacBook w/ an Intel Core 2 Duo processor.

What You'll Need

  • OpenSolaris 2008.05
  • A blank writable CD (to burn OpenSolaris 2008.05)
  • Your OS X Installation DVD
  • rEFIt - a boot menu for EFI-based machines like the Intel Mac.
  • A USB thumb drive (for the network drivers)
  • A USB mouse (Solaris doesn't support ctrl-click :-()

What You Should Know

I still haven't gotten the audio to work :-(.

What I Did

Step 1: Burn the OpenSolaris 2008.05 Live CD

OpenSolaris comes as a live bootable CD, that once loaded provides you the option to install the OS.

  • Download OpenSolaris 2008.05.
  • Start Disk Utility.
  • Select the os200805.iso and the click Burn in the toolbar.

Step 2: Put the Ethernet Drivers on a USB Stick

Unfortunately, the drivers for the Ethernet adapter are not included on the Live CD. Save yukonxsol_x64v8.19.2.3.tar.Z to a USB thumb drive (you could also burn it to a CD if you don't have a USB drive handy).

Step 3: Create a Partition for OpenSolaris 2008.05

First I tried to create a partition from my existing Mac OS installation using "diskutil resizeVolume", but this kept failing on me because of insufficient disk space. Now my MacBook's about 9 months old and has been through an upgrade to Leopard, so I imagine the disk was pretty fragmented. Luckily I'm using Time Machine so I just decided to start from scratch.

  • Insert your OS X installation DVD. When it loads, click Install Mac OS X:

  • Then click the Restart button to launch the installer:

  • When you get to the Welcome screen, select Disk Utility from the Utilities menu.
  • When Disk Utility starts, select the MacBook's hard drive. Mine is a "149.1 GB FUJITSU MHW2160BHPL Media". Then select the Partition tab on the right panel.
  • Change the Volume Scheme to 2 Partitions.
  • Select the Untitled Partition 1 and set the following
    • Format: MS-DOS FAT
    • Size: 55.00 GB
  • Select the Untitled Partition 2 and set the following
    • Name: MacOS
    • Format: Mac OS Extended (Journaled)
    • Size: (whatever's remaining - for me this was 94.05 GB)
  • Click the Options button and verify GUID Partition Table is selected as the partition scheme (we'll have to change this later as the OpenSolaris installer does not recognize GUID Partition Tables).
  • Click Apply and then Partition when the
    Partition Disk dialog appears. It only takes a couple of seconds for
    the new partition map to be created. This is what my disk looks like
    after the disk is repartitioned:

  • Quit Disk Utility

Step 4: Install OS X

  • You should now be back at the installer's Welcome screen. Click Continue to proceed with the installation of OS X.
  • Select the MacOS partition on the Select a Destination screen.
  • Select Install on the Install Summary screen and go do something else for a couple of hours as OS X installs.
  • Once the install is complete you'll be presented with the Welcome screen where you'll select your country, keyboard and then the option to restore from a Time Machine backup. Restoring from Time Machine took several more hours, so this time around I'm going to skip this step (I can always do a restore later) and just complete the vanilla installation (selecting Do not transfer my information now).
  • Complete the installation entering your Apple ID, Registration Information, etc.

Step 5: Install rEFIt

rEFIt is a boot menu that will allow you to choose between Mac OS and OpenSolaris at system start up.

  • Download and install rEFIt using the Mac disk image.

  • To ensure that rEFIt is always enabled, open a Terminal and enter the the following command:

    $ sudo /efi/refit/

  • After OpenSolaris is installed, the rEFIt boot menu is going to display the Linux penguin for OpenSolaris. While we're in Mac OS and have access to the EFI partition, let's replace the Linux icons with OpenSolaris icons:
  • Save these files to your /efi/refit/icons directory. Rename the original files if you don't want to loose them.

Step 6: Change the EFI partition ID

If you attempted to install OpenSolaris now, it would not recognize the new partition that was just created, only giving you the option to install over the entire disk. In this step we change the partition ID for the EFI partition from 'EE' to 'AF'.

  • Open a Terminal and run diskUtil list:

    william-leonards-macbook-pro:~ brianleonard$ diskUtil list
    0: GUID_partition_scheme *149.1 Gi disk0
    1: EFI 200.0 Mi disk0s1
    2: Microsoft Basic Data OPENSOLARIS 55.0 Gi disk0s2
    3: Apple_HFS MacOS 93.7 Gi disk0s3

    Your internal hard drive should show up as /dev/disk0. You'll also see disks for the OS X installation DVD and your Time Machine drive.

  • Next we will alter partition 1, the EFI partition. Run:

    william-leonards-macbook-pro:~ brianleonard$ sudo fdisk -e /dev/disk0
    fdisk: could not open MBR file /usr/standalone/i386/boot0: No such file or directory
    Enter 'help' for information
    fdisk: 1>

  • At the fdisk prompt, type p to print the partition table:

    fdisk: 1> p
    Disk: /dev/disk0 geometry: 19457/255/63 [312581808 sectors]
    Offset: 0 Signature: 0xAA55
    Starting Ending
    #: id cyl hd sec - cyl hd sec [ start - size]
    1: EE 1023 254 63 - 1023 254 63 [ 1 - 409639] <Unknown ID>
    2: 0B 1023 254 63 - 1023 254 63 [ 409640 - 115344664] Win95 FAT-32
    3: AF 1023 254 63 - 1023 254 63 [ 115754304 - 196565320] HFS+
    4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
    fdisk: 1>

You'll see that partition 1 is of type EE <Unknown ID>. Let's change it to AF HFS+:

  • At the prompt type: setpid 1

    fdisk: 1> setpid 1
    Starting Ending
    #: id cyl hd sec - cyl hd sec [ start - size]
    1: EE 1023 254 63 - 1023 254 63 [ 1 - 409639] <Unknown ID>
    Partition id ('0' to disable) [0 - FF]: [EE] (? for help)

  • Enter AF:

    Partition id ('0' to disable) [0 - FF]: [EE] (? for help) AF

  • Then write:

    fdisk:*1> write
    Device could not be accessed exclusively.
    A reboot will be needed for changes to take effect. OK? [n]

  • Then y:

    A reboot will be needed for changes to take effect. OK? [n] y
    Writing MBR at offset 0.
    fdisk: 1>

  • Then quit:

    fdisk: 1> quit
    william-leonards-macbook-pro:~ brianleonard$

  • Eject the OS X Installation DVD and insert the OpenSolaris 2008.05 Live CD.
  • Restart
  • From the rEFIt menu, select the option to "Boot Legacy OS from CD"
  • As the Live CD boots, select your keyboard layout and desktop language and then wait for the desktop to load.
  • Close the license.
  • Click the Install OpenSolaris icon on the desktop:

  • Once the Welcome screen loads click Next to get to the Disk screen:

  • On the Disk screen you'll notice that OpenSolaris recognizes the newly created Win95 FAT32 partition:

  • Change the Partition Type to Solaris:

  • Click Next to select your Time Zone, Date and Time. Note, you can use the Map to select your region:

  • Select your Locale:

  • Set up your users:

  • Review the Installation summary and then Install:

  • It takes about 30 minutes for the installer to complete:

  • Once complete, select Reboot:

Step 8: Start OpenSolaris and Install the Wired Ethernet Driver

  • If you installed the OpenSolaris icons, you'll see them now in the rEFIt menu.
  • Insert your USB mouse.
  • Open System > Administration > Device Driver Utility. You see that both the wired and wireless network drivers are missing. Select the Marvel Technology Group Ethernet Controller and write down the Vendor ID and Device ID. In my case these are 11ab and 436a respectively:

  • Copy yukonxsol_x64v8.19.2.3.tar.Z from the USB drive to the desktop.
  • Open Applications > System Tools > Terminal.
  • You should be in your home directory. CD into the Desktop directory:

    bleonard@opensolaris:~$ cd Desktop


  • Unzip the archive:

    bleonard@opensolaris:~/Desktop$ gunzip yukonxsol_x64v8.19.2.3.tar.Z


  • Untar the archive:

    bleonard@opensolaris:~/Desktop$ tar -xvf yukonxsol_x64v8.19.2.3.tar








  • Install the package:

    bleonard@opensolaris:~/Desktop$ pfexec pkgadd -d . YUKONXsolx

    Processing package instance <YUKONXsolx> from </export/home/bleonard/Desktop>

    Marvell Yukon Ethernet Controller 64 bit driver(i386)



    IP configuration

    printf: ----------------------\n\n: unknown option

    Usage: printf [ options ] format [string ...]

    Do you want to configure the IP interfaces now (y/n)?

  • Yes, configure the IP interfaces now...

    Do you want to configure the IP interfaces now (y/n)? y

    Configuring Marvell Gigabit Ethernet interface 0

    NOTE: If you want to configure the driver for the use of VLANs,

    you should use the script /usr/sbin/yukonx_vlan_config.

    You have to do this after driver installation is finished.

    Please enter a hostname for the Marvell Gigabit Ethernet interface.

    It should be different from all existing hostnames in

    your system (see /etc/hostname.*).

    Hostname [yukonx0]:

  • Select the default Hostname 'yukonx0'...

    Hostname [yukonx0]:

  • DHCP will ultimately set the IP address, so for now I just enter

    Enter the IP address for 'yukonx0' []:

    WARNING: The selected IP address has been found in

    /etc/hosts: opensolaris opensolaris.local localhost loghost

    This can cause problems, but it

    might be intentional in this case.

    Enter the IP netmask for 'yukonx0' []:

  • Enter the IP netmask, I used, and review the settings...

    Enter the IP netmask for 'yukonx0' []:

    Settings for Marvell Gigabit Ethernet interface 0:

    hostname : yukonx0

    IP-address :

    IP-netmask :


    NOTE: If the netmask does not consist of '255's and '0's only,

    the netnumber in /etc/netmasks will require manual correction

    Are these settings OK (y/n)?

  • Answer yes to confirm the settings and then no to configure another adapter...

    Are these settings OK (y/n)? y

    Do you have more Marvell Gigabit Ethernet adapters installed (y/n)? n

    Using </> as the package base directory.

    ## Processing package information.

    ## Processing system information.

    10 package pathnames are already properly installed.

    ## Verifying disk space requirements.

    ## Checking for conflicts with packages already installed.

    ## Checking for setuid/setgid programs.

    This package contains scripts which will be executed with super-user

    permission during the process of installing this package.

    Do you want to continue with the installation of <YUKONXsolx> [y,n,?]

  • Answer yes to continue with the installation of the package...

    Do you want to continue with the installation of <YUKONXsolx> [y,n,?] y

    Installing Marvell Yukon Ethernet Controller 64 bit driver as <YUKONXsolx>

    ## Executing preinstall script.

    ## Installing part 1 of 1.






    [ verifying class <none> ]

    [ verifying class <master> ]

    ## Executing postinstall script.

    /var/sadm/pkg/YUKONXsolx/install/postinstall[14]: /usr/ucb/echo: not found [No such file or directory]

    devfsadm: driver failed to attach: yukonx

    Warning: Driver (yukonx) successfully added to system but failed to attach

    /var/sadm/pkg/YUKONXsolx/install/postinstall[113]: /usr/ucb/echo: not found [No such file or directory]

    pkgadd: ERROR: postinstall script did not complete successfully

    Installation of <YUKONXsolx> partially failed.


  • Don't worry about the failure, we'll update the driver next...

    bleonard@opensolaris:~/Desktop$ pfexec update_drv -a -i '"pci11ab,436a"' yukonx


  • Then plumb the interface...

    bleonard@opensolaris:~/Desktop$ pfexec ifconfig yukonx0 plumb


  • Then in a couple of seconds you should see the interface come up:

  • Test the connection:

    bleonard@opensolaris:~/Desktop$ ping is alive

  • Confirm that all is well (at least for the Marvell card) in the Device Driver Utility:

Step 9: Install the Wireless Adapter Driver

Now that we're connected to the Internet, the world is at your fingertips. However, let's do one more thing (for now) and install the wireless adapter driver.

  • Select the Atheros Communications Wireless PCI Express Adapter in the Device Driver Utility. Write down the
    Vendor ID and Device ID. In my case these are 168c and 24

  • Download the SUNWatheros 0.7.2 package and save it to your desktop.
  • Return to the Terminal and gunzip and untar the package.
  • Install the package:

    bleonard@opensolaris:~/Desktop$ pfexec pkgadd -d SUNWatheros

    The following packages are available:

    1 SUNWatheros Atheros 802.11b/g Wireless NIC Driver

    (i386) 11.11,REV=2007.

    Select package(s) you wish to process (or 'all' to process

    all packages). (default: all) [?,??,q]:

  • Press enter to select the default - all...

    Select package(s) you wish to process (or 'all' to process

    all packages). (default: all) [?,??,q]:

    Processing package instance <SUNWatheros> from </export/home/bleonard/Desktop/SUNWatheros>

    Atheros 802.11b/g Wireless NIC Driver(i386) 11.11,REV=2007.

    # ident "@(#)LICENSE 1.1 05/11/28 SMI"




    Using </> as the package base directory.

    ## Processing package information.

    ## Processing system information.

    5 package pathnames are already properly installed.

    ## Verifying package dependencies.

    ## Verifying disk space requirements.

    ## Checking for conflicts with packages already installed.

    The following files are already installed on the system and are being

    used by another package:

    * /kernel/drv/amd64/ath

    * /kernel/drv/ath

    * /kernel/misc/amd64/net80211

    * /kernel/misc/net80211

    * - conflict with a file which does not belong to any package.

    Do you want to install these conflicting files [y,n,?,q]

  • Answer yes to install the conflicting files and yes to continue with the installation...

    Do you want to install these conflicting files [y,n,?,q] y

    ## Checking for setuid/setgid programs.

    This package contains scripts which will be executed with super-user

    permission during the process of installing this package.

    Do you want to continue with the installation of <SUNWatheros.2> [y,n,?] y

    Installing Atheros 802.11b/g Wireless NIC Driver as <SUNWatheros.2>

    ## Installing part 1 of 1.





    [ verifying class <none> ]

    ## Executing postinstall script.

    Installation of <SUNWatheros.2> was successful.


  • Remove and reinstall the driver...

    bleonard@opensolaris:~/Desktop$ pfexec rem_drv ath

    bleonard@opensolaris:~/Desktop$ pfexec add_drv -i '"pci168c,24"' ath

  • Plumb the interface...

    bleonard@opensolaris:~/Desktop$ pfexec ifconfig ath0 plumb

  • Configure the interface for DHCP:

    bleonard@opensolaris:~/Desktop$ pfexec ifconfig ath0 dhcp

  • Wired connections take precedence over wireless. Unplug the wired connection to test the wireless...

  • Scan for available networks:

    bleonard@opensolaris:~/Desktop$ wificonfig scan

    essid bssid type encryption signallevel

    CowPlanet 00:1e:52:7a:26:e5 access point none 15

  • And connect:

    bleonard@opensolaris:~/Desktop$ wificonfig connect 'CowPlanet'

    wificonfig: connecting to essid 'CowPlanet'


  • See it's status:

    bleonard@opensolaris:~/Desktop$ wificonfig showstatus

    linkstatus: connected

    active profile: none

    essid: CowPlanet

    bssid: 00:1e:52:7a:26:e5

    encryption: none

    signal strength: strong(15)

  • And test:

    bleonard@opensolaris:~/Desktop$ ping is alive

  • Confirm that the network driver issues are now resolved in the Device Driver Utility:


Everything I've summarized here I was able to learn from these various resources:

Related Topics >>


&nbsp;hi! everyone.. i've done everything and everthing ...

hi! everyone.. i've done everything and everthing works out correctly!

0k here's de thing .. i have to sell my macbook pro (i have another one) but i can't use dvds (it's broken).. i what i need is to get my HD partitions as before.. now i have lots of problems trying to make it work.. Disk Utility don't let me do nothing.. it's like the partition are locked!

how i can go back to normalty my HD?? i have to install windows for this guys..

-- please help me

@Oliver - thanks for clarification on the partitioning. Also, are you saying that a German Mac keyboard is different than a German PC keyboard? /Brian

@Brian: No. It has to be the first one. Otherwise Installation of 2008.11 terminates with an error while trying to format the partition. But, I have an other issue: Do you know a easy method to setup a -german- Mac keyboard in 2008.11? The standard layout is useless! I'm missing at least: @, | (pipe)

I have a newer MBP, and loaded an internal CD (beyond 2008.11). I had to add a symlink in /usr/ucb to point at /bin/echo. I could then get the pkgadd to fully succeed. I also had to add, after the install, the following line to the /etc/driver_aliases file: yukonx "pci11ab,436a" (found that by running /usr/X11/bin/scanpci - and finding that my H/W had yet another alias). Rebooting after that worked fine.

Is there a special reason Opensolaris is the second partition befor MacOS?

So I followed every step when i go to install it fail's and I get this in the log Disk contains valid Solaris partition whole_disk = 0 diskname set = c4d0 Set fdisk attrs fdisk fdisk -n -F failed. couldn't create fdisk partition table on disk c4d0 Could not create fdisk target TI process completed unseccessfully ti_create_target exited with status = -1 Target instatiation failed exit_val=-1 Any thoughts?

Great post! I've been walking my way through it on my MacBook Pro. Mine is a little older than yours and I'm running MacOSX Tiger. One difference I've noticed so far is the fdisk command on my MacOSX Tiger wants "rdisk0", not "disk0". Other than that, things are progressing along very well. Keep up the great work!!!

Hello. I have a question for you... Has anyone been able to install Solaris 10 (not OpenSolaris) in a Macbook Pro? I have a late 2007 MBP MacBookPro3,1 But when I tried to boot from the Solaris 10 installation DVD, It hangs on the message "Loading Stage 1...". Has anyone tried this or had any success? Thanks in advance.

Hi Amit, You'll find the Ethernet drivers here: You'll find the Atheros drivers here: Hope that helps, Brian

Brian, Great Post! BTW, where do I get the 32-bit drivers- both for Ethernet card & Atheros wifi chipset? Thanks. Amit

Hi Brian. What is really bothering me is that the function key is not working. In order for delete (Backspace + fn) to work on all applications as well as X11 function keys (Backlight, Sound) function needs to work. Any progress on tools for controlling fan speed (Very much needed) and function key fixes for both X11 and the console? Is the Intel Core 2 Duo T7700 (I have the same MacBook Pro) supported by cpufreq? (NV92 integrates power management features, and through laptop-discuss Sun engineers strongly believe that the Intel 965M will be supported, which is good, but CPUfreq is more important than suspend/resume at the moment due to heat and power draw) James C.

Fabrizio, please let me know how the conversion of your user home directory to ZFS works out for you as that's of interest to me as well. Thanks, Brian

My current setup is: 1) EFI 2) OpenSolaris (still with troubles, going to fix soon I hope) 3) Linux 4) Windows XP 5) Leopard 6) HFS+ partition with my user home

After things consolidate, I will convert partition #6 to ZFS, that would be read both from Ma OS X and OpenSolaris :-)

At home, I have a Mac Mini with two more partitions: one for Tiger (to eventually do compatibility tests) and another for Vista (even though I wasn't able to install it so far, but seeing the very low popularity of Vista I could give up). But on the Mac Mini I still have to install OpenSolaris.

@Oliver - the partitions should work fine in either order. /Brian

Craig, thanks for the updates. I should probably convert this into a wiki. /Brian

Hi, I think the reason you managed to avoid the fdisk stuff above is because you put the Solaris partition first. As Oliver says above he got an error putting the Solaris partition second . When I installed Solaris I didn't have that problem. Also bear in mind this fdisk stuff is done to the Solaris fdisk not OS X fdisk. So -F does something different in Solaris (I won't bother to repeat the Solaris man page). Oh well, will just have to wait till Solaris is happy to work on a EFI GPT partitioned disk. Till then better to run it virtualized :) It has being nice chatting to you, about this stuff. Regards, Ben.

Yikes. No, I didn't have to do anything like that. However, I installed 2008.05, so maybe it's a problem that crept in afterwards. Looking at CR6413235 ( - fdisk won't commit (-F) tables to bootcamp prepared disks - I don't know if it makes a difference, but I didn't use Boot Camp to prepare my disks (at least I don't think I did). I believe if you're using Boot Camp, you don't need rEFIt, which is what I used instead. The bug is still open, so I would assume the problem still exists, unless a new version of Boot Camp has been released which addresses it.

@Brian - I only skim read your instructions but I don't see anything like step 6 of Paul Mitchell's which I have copied below. It would be cool if it is no longer necessary but when I installed Solaris myself last year I still had to do it, admittedly the version I installed was a few builds before 11.2008 so things may have changed for the better. Thanks Ben. Now implement the workaround for CR6413235. In the Terminal run the following commands. mount -o remount,rw / mv /sbin/fdisk /sbin/fdisk.real cat > /sbin/fdisk #!/bin/sh echo "$*" | grep -- "-F" > /dev/null if [ $? = 1 ] ; then /sbin/fdisk.real $* fi CTRL-D chmod +x /sbin/fdisk

@Ben - Isn't my Step 6 the "fdisk hack"? Unfortunately, no, OpenSolaris will not recognize an EFI partition. I haven't been using my Mac for OpenSolaris in a quite a while, but I've never had a problem updating OS X. /Brian

@Brian A couple of questions? I don't see listed in your steps the fdisk hack does that mean is now as of 11.2008 Open Solaris is happy to install and boot on a EFI GPT partitioned disk? If so could you change the partition type back to what it was, after Open Solaris is installed? I tried this last time and Solaris would no longer boot :-( It would be cool, if Open Solaris does now work on a EFI GPT partitioned disk as otherwise when you go to install OS X updates on the mac they don't work. Or am I wrong? Do they work with your configuration? i.e did you have any problems installing the 1.5.7 os x update? /Ben

Hi James, thereÅ› good news w/ regards to power management. Check out this post: Brian

What a great post, Brian! :-) A first quick question: I imagine that we must have the partition for Solaris in the first four ones, right? I'm asking because my disk is already partitioned and the free one is disk0s5. Leopard is in disk0s1, so I think I should move Leopard to disk0s5 and free disk0s1, right? Thanks.

Hi Brian, are these above steps compatible with the new relase of opensolaris 2009.06 on my Macbook Pro,5,1 running OS X10.5.5. i am getting the "Error 15: File not found" after loading of the grub of opensolaris 2009.06... //scvivek

Hi Fabrizio, I would love to hear what you're doing with the other 3 partions on your MacBook :-). But yes, I believe OpenSolaris needs to be installed into a primary partition. /Brian