Adventures in MacBook land...


... or getting Solaris running on a Macbook Pro. I do of course have an instance running in Sun xVM VirtualBox, but I like having a native environment to work in as well.

A lot of people have gone down this path before me, so I'll focus specifcally here on getting the ndis wrapper working for the onboard broadcom card, however before going there, a quick list of the places I found info at (and the odd credit as well).

First off I used rEFIt, suggested to me by Nicky as an alternative to Bootcamp, although I did use BootCamp to do the initial partioning of the disk up. Before installing you need to do a bit of fiddling around with EFI id's, the details of which I found from an entry by Paul Mitchell, How to Dual Partition a MacBook Pro with MacOS and Solaris.

After that it was a straight install from a dvd, then onto setting up the required networking. The ethernet nic is a Marvell Yukon, scanpci details area

pci bus 0x000c cardnum 0x00 function 0x00: vendor 0x11ab device 0x436a
 Marvell Technology Group Ltd. Marvell Yukon 88E8058 PCI-E Gigabit Ethernet Controller

This is supported by Masayuki Murayama's myk driver (ported from FreeBSD's msk) from and can be downloaded from his driver page. Details are all in the readme. In my case I went with the i386_gcc compile as we need to boot in 32bit mode for the ndis wrapper we will get to in a moment.

Now the awkward part, getting the wireless. The wireless nic in this macbook is a Broadcom, details below

pci bus 0x000b cardnum 0x00 function 0x00: vendor 0x14e4 device 0x4328
 Broadcom Corporation BCM4328 802.11a/b/g/n

The folks over at the laptop community on opensolaris.org have a detailed page on useing ndis. You need to pull down 1.2 ndis kit, and the relevant driver files (search for 14E4,4328). Now with the arrival of Fast Boot (PSARC/2008/382, flag day) in build 100 of Solaris Express we have a new driver entry point which has yet to be reflected in the ndis code, the fix is a simple change to the if_ndis.c (thanks to Michael Li for the correct quiesce option).

+++ if_ndis.c   Mon Nov 10 05:39:52 2008
@@ -159,7 +159,7 @@

 uint32_t identify;
 DDI_DEFINE_STREAM_OPS(ndis_dev_ops, nulldev, nulldev, ndis_attach, ndis_detach,
-    nodev, NULL, D_MP, NULL);
+    nodev, NULL, D_MP, NULL, ddi_quiesce_not_supported);

 static struct modldrv ndis_modldrv = {
        &mod_driverops,         /\* Type of module.  This one is a driver \*/

Guidelines for the rest of the process are listed on on the ndis page mentioned above. Once you have built the modules and copied them in place add the ndis driver with

        add_drv -i '"pci14e4,4328"' bcmndis

Plumb up the interface and you should be ready to go. The trade off here is that you have to use a 32bit kernel, so make sure you've booted into one.

The final item to get working is a right click emulation, covered in detail in Pradhaps entry Solaris Nevada / OpenSolaris Mac book right-click. Anyway after all of that, unless you really want to have Solaris running natively on your macbook I'd suggest using Sun xVM VirtualBox, and OpenSolaris.

Comments:

For those who would like running OpenSolaris natively on a MacBook Pro, Brian Leonard also created a very detailed blog entry on how to install it natively, http://weblogs.java.net/blog/bleonard/archive/2008/05/_opensolaris_20.html. There's also a lot of really good tips found in the OpenSolaris Observatory, http://blogs.sun.com/observatory.

Posted by huntch on November 11, 2008 at 07:09 AM GMT #

Post a Comment:
Comments are closed for this entry.
About

fintanr

Search

Archives
« April 2014
MonTueWedThuFriSatSun
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
    
       
Today