 |
OpenSolaris 2008.05 Meet the MacBook Pro
Posted by bleonard on May 27, 2008 at 04:07 PM | Comments (9)
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
- Name: OPENSOLARIS
- 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:

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/enable-always.sh

- 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
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
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
Password:
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
fdisk:*1>
- 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
bleonard@opensolaris:~/Desktop$
- Unzip the archive:
bleonard@opensolaris:~/Desktop$ gunzip yukonxsol_x64v8.19.2.3.tar.Z
bleonard@opensolaris:~/Desktop$
- Untar the archive:
bleonard@opensolaris:~/Desktop$ tar -xvf yukonxsol_x64v8.19.2.3.tar
YUKONXsolx/
YUKONXsolx/pkgmap
...
YUKONXsolx/install/yukonx.txt
yukonx.txt
yukonx.htm
bleonard@opensolaris:~/Desktop$
- 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) 8.19.2.3
Marvell
----------------------
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 127.0.0.1...
Enter the IP address for 'yukonx0' []: 127.0.0.1
WARNING: The selected IP address has been found in
/etc/hosts:
127.0.0.1 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 255.255.255.0, and review the settings...
Enter the IP netmask for 'yukonx0' []: 255.255.255.0
Settings for Marvell Gigabit Ethernet interface 0:
hostname : yukonx0
IP-address : 127.0.0.1
IP-netmask : 255.255.255.0
IP-netnumber: 127.0.0.0
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.
/etc/rcS.d/S50yukonx
/kernel/drv/amd64/yukonx
/kernel/drv/yukonx.conf
/usr/sbin/yukonx_vlan_config
/usr/share/man/man7d/yukonx.7d
[ 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.
bleonard@opensolaris:~/Desktop$
- Don't worry about the failure, we'll update the driver next...
bleonard@opensolaris:~/Desktop$ pfexec update_drv -a -i '"pci11ab,436a"' yukonx
bleonard@opensolaris:~/Desktop$
- Then plumb the interface...
bleonard@opensolaris:~/Desktop$ pfexec ifconfig yukonx0 plumb
bleonard@opensolaris:~/Desktop$
- Then in a couple of seconds you should see the interface come up:

-
Test the connection:
bleonard@opensolaris:~/Desktop$ ping www.google.com
www.google.com 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
respectively:

- 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.12.18.15.35
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.12.18.15.35
# ident "@(#)LICENSE 1.1 05/11/28 SMI"
SOLARIS WIRELESS DRIVER FOR THE ATHEROS 52XX CHIPSET (ATH)
LICENSE AGREEMENT
...
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.
/kernel/drv/amd64/ath
/kernel/drv/ath
/kernel/misc/amd64/net80211
/kernel/misc/net80211
[ verifying class <none> ]
## Executing postinstall script.
Installation of <SUNWatheros.2> was successful.
bleonard@opensolaris:~/Desktop$
- 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'
bleonard@opensolaris:~/Desktop$
- 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 www.google.com
www.google.com is alive
- Confirm that the network driver issues are now resolved in the Device Driver Utility:

Resources
Everything I've summarized here I was able to learn from these various resources:
Bookmark blog post: del.icio.us Digg DZone Furl Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment
-
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.
Posted by: fabriziogiudici on May 28, 2008 at 12:32 AM
-
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
Posted by: bleonard on May 28, 2008 at 11:11 AM
-
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.
Posted by: fabriziogiudici on May 29, 2008 at 04:39 AM
-
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
Posted by: bleonard on May 29, 2008 at 05:36 AM
-
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.
Posted by: sparcdr on June 16, 2008 at 02:37 PM
-
Hi James, thereÅ› good news w/ regards to power management. Check out this post:
http://blogs.sun.com/observatory/entry/results_of_power_management
Brian
Posted by: bleonard on June 30, 2008 at 04:47 PM
-
Brian,
Great Post!
BTW, where do I get the 32-bit drivers- both for Ethernet card & Atheros wifi chipset?
Thanks.
Amit
Posted by: amitkumarsaha on August 20, 2008 at 07:37 AM
-
Hi Amit,
You'll find the Ethernet drivers here: http://www.marvell.com/drivers/search.do.
You'll find the Atheros drivers here: http://opensolaris.org/os/community/laptop/wireless/ath/.
Hope that helps,
Brian
Posted by: bleonard on August 20, 2008 at 07:57 AM
-
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.
Posted by: juniel_katarn on August 27, 2008 at 09:29 PM
|