Feed on
Posts
Comments

This is a collection of notes and links related to a dual installation of Solaris Nevada and Mac OS using Boot Camp. Although all of the links are helpful, this is a rapidly evolving set of technologies, thus there are some adjustments.

Possibly the most important adjustment I ran into is that the Boot Camp Beta was closed on December 31st, so you are compelled to use Leopard.

As you work through the installation, there are several things you can expect not to work, at least as of build 80 of Nevada.

  • Sound does not work.
  • Dual head configurations may result in irritating color differences between the two screens.
  • Solaris does not support HID 1.1. This bit me with my Microsoft Optical Desktop 4000 mouse. The keyboard works. The mouse doesn’t.
  • The one button trackpad won’t cut it. You’ll need a real wired three-buttoon mouse. No bluetooth. No bluetooth mice. The Wireless Mighty Mouse won’t work.

There are probably other issues, but these are the ones I’ve run into.

There are quite a number of links out there with helpful information, and on the whole, the installation works at least as well as I expected, and wasn’t too difficult. The biggest hassles are the Marvell yukon driver, and the Atheros wireless driver.

I somewhat mitigated the color differences between my laptop and my Apple Cinema display by using a Xinerama installation with different “Gamma” options for each monitor, rather than an Nvidia TwinView configuration. This allowed me to set the gamma separately for each monitor. All my attempts to use the Nvidia configuration mechanisms to deal with this were futile. Here is my /etc/xorg.conf

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    Screen      1  "Screen1" RightOf "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "Files"
    RgbPath         "/usr/X11/lib/X11/rgb"
    FontPath        "/usr/X11/lib/X11/fonts/misc/:unscaled"
    FontPath        "/usr/X11/lib/X11/fonts/100dpi/:unscaled"
    FontPath        "/usr/X11/lib/X11/fonts/75dpi/:unscaled"
    FontPath        "/usr/X11/lib/X11/fonts/misc/"
    FontPath        "/usr/X11/lib/X11/fonts/Type1/"
    FontPath        "/usr/X11/lib/X11/fonts/100dpi/"
    FontPath        "/usr/X11/lib/X11/fonts/75dpi/"
    FontPath        "/usr/X11/lib/X11/fonts/TrueType/"
    FontPath        "/usr/X11/lib/X11/fonts/Type1/sun/"
    FontPath        "/usr/X11/lib/X11/fonts/F3bitmaps/"
EndSection

Section "Module"
    Load           "dbe"
    Load           "extmod"
    Load           "type1"
    Load           "IA"
    Load           "bitstream"
    Load           "xtsol"
    Load           "glx"
EndSection

Section "ServerFlags"
    Option         "Xinerama" "1"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/mouse"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "keyboard"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Apple Color LCD"
    HorizSync       30.0 - 75.0
    VertRefresh     60.0
    Option         "DPMS"
    Gamma          1.2 1.0 0.85
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "Apple Cinema HD"
    HorizSync       74.0 - 74.6
    VertRefresh     60.0
    Option         "DPMS"
    Gamma          0.95 1.0 1.0
EndSection

Section "Device"
    Identifier     "Videocard0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 8600M GT"
    BusID          "PCI:1:0:0"
    Screen          0
EndSection

Section "Device"
    Identifier     "Videocard1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 8600M GT"
    BusID          "PCI:1:0:0"
    Screen          1
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Videocard0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "metamodes" "DFP-0: nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
        Modes      "1600x1200" "1280x1024" "1024x768" "800x600" "640x480"
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Videocard1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "metamodes" "DFP-1: nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
        Modes      "1600x1200" "1280x1024" "1024x768" "800x600" "640x480"
    EndSubSection
EndSection

Technorati , , , , , , , , , ,

I have added a V60x to my lab and want to jumpstart it rather than futz with DVDs. I wanted to have a jumpstart server on my Mac laptop, in a VMware Fusion guest, for portable use. I wanted my jumpstart images on a ZFS share, both to ease the NFS configuration and to allow me to move the jumpstart bits around my network with the ZFS commands later if I wanted to. To recap, my requirements were to

  • Jumpstart from a VMware Fusion guest running Solaris Nevada
  • The jumpstart bits need to be in an NFS shared ZFS filesystem
  • The setup must use my existing Ubuntu DHCP server
  • I don’t want physical DVDs, floppies or CDs in the equation

So, when done, my setup consists of the following machines:

  • My Mac laptop with a VMware Fusion guest running a jumpstart server on Solaris Nevada
  • My network DHCP server configured with the PXE parameters
  • My target V60x, booting the install served by the laptop

I haven’t found any step-by-step examples directly applicable to my setup integrating all this, particularly the bit where I need to use a non-Solaris DHCP server. My DHCP server is on Ubuntu. The instructions are all out there, but getting it all put together was a bit confusing.

I could possibly have set up DHCP on the Nevada guest on my laptop, but I was afraid of some manner of conflict with my existing DHCP server. What happens when you run two DHCP servers on the same network? It can’t be good.

The steps are as follows:

  • Set up an "install server" with "setup_install_server" from a Nevada iso image
  • Add the parameters for the V60x I want to jumpstart using "add_install_client"
  • Modify my DHCP server configuration
  • Network boot the V60x

Of course, the first thing to do is download the OpenSolaris DVD iso to the Mac. After downloading, unzipping and concatenating the pieces, I used this image to create a Fusion Nevada guest on my laptop. With build 70, currently the latest, this is pretty straightforward, and the VMware tools install without a hitch. You need to configure the Nevada VM with bridged ethernet and a static IP address.

Once this is done, and the Nevada guest VM is booted, the next step is to make the VM jumpstart server. Before this, though, we should create a ZFS filesystem for the bits. In my case, I added another virtual SCSI disk to the VM and created a zpool. After a manadatory paranoia check using "format" to make sure I’m using the right device:

 zpool create zpool01 /dev/rdsk/c1t1d0 

Then we need to create the zfs file system, mountpoint and go ahead and share it read-only. We are creating a jumpstart hierarchy so the various images can be manages separately.

zfs create zpool01/jumpstart
zfs create zpool01/jumpstart/nv70
zfs set mountpoint=/export/jumpstart
zpool01/jumpstart zfs sharenfs=ro,anon=0 zpool01/jumpstart/nv70 

Now that we have the storage set up, we can run "setup_install_server". After mounting the DVD iso to the VMware Fusion VM, we change to the "Tools" directory and run "setup_install_server".

cd /cdrom/sol_11_x86/Solaris_11/Tools
./setup_install_server /export/jumpstart/nv70

This copies the DVD contents to the jumpstart image directory. Time for a coffee break. After the copy is complete, we run "add_install_client". You need the MAC address of the NIC you will be booting from. Since I already had an OS on the V60x, I ran ipconfig -a to get this. If its a new machine, you need to gt this from the BIOS setup screens on the machine. The Intel NICs display the MAC address of the NIC during boot, so this may work for you also. In my case, the MAC address of the V60x is "0:7:e9:7:a:8e".

./add_install_client -d  -e 0:7:e9:7:a:8e  i86pc

This simple command sets up several files on the jumpstart server and returns information you need for configuring the DHCP server:

If not already configured, enable PXE boot by creating
a macro named 010007E9070A8E with:
Boot server IP (BootSrvA) : 192.168.11.133
Boot file      (BootFile) : 010007E9070A8E

You should recognize the IP address as the one of the machine you’ve been typing these commands on. In this case, this is the IP address of the Nevada VM on my Mac. We are ready to update teh configuration on the Ubuntu DHCP server. These instructions should work for most Linux DHCP servers. although file locations may differ. The dhcpd.conf on my server is in /etc. Edit this file adding a "group" block following your other configuraiton entries like the following.

ddns-update-style interim;
ignore client-updates;

subnet 192.168.0.0 netmask 255.255.0.0 {
option subnet-mask 255.255.0.0;
option routers 192.168.1.1;
range 192.168.1.1 192.168.1.170;
option domain-name-servers 192.168.1.165;
option domain-name "home.louspringer.com";
}

group {
        next-server 192.168.11.133;
        filename "010007E9070A8E";

        host iphigenia {
                hardware ethernet 0:7:e9:7:a:8e;
                fixed-address 192.168.11.15;
                option host-name "iphigenia";
        }
}

The hostname of the machine I’m jumpstarting is "iphigenia", and the filename is what we got from running "add_install_client". Their should be a "host" configuration for each server you would like to jumpstart. So far, I have but one.

After this, "pkill -HUP dhcpd" on the DHCP server, and you should be able to reboot the machine you are jumpstarting and PXE boot it. For the V60x, you press F12 on the keyboard as it’s booting. From that point, its a regular Solaris install. As I get better with this, I’ll be adding configurations to fully automate the install and make it completely scripted.

I found several resources to be of help figuring all this out that you can refer to for more details:

Technorati , , , ,

The production release of VMware Fusion 1.0 released yesterday resolves the issues with the VMware tools install inter-operation with xorg 7.2 distributed with current versions of Nevada.  I’ve tested the tools install with Fusion 1.0 (51348) and Solaris Nevada build 69 (SunOS solaris-devx 5.11 snv_69 i86pc i386 i86pc).

Technorati , , ,

ZFS Presentation by Jay Edwards

The presentation on Jay’s blog just reinforces my dismay at not getting my act together to at least try to go to OSCON.

Technorati , , ,

One of the recent Nevada builds introduces xorg 7.2 which breaks the VMware tools installation. Use these instructions to work around the issue.

You may want to enable root logins in /etc/ssh/sshd_config (”PermitRootLogin yes”) or create another login via in case you can’t get back in through the graphical console after these steps. You may also wish to tar up /etc/X11 and /usr/X11/lib just in case.

These instructions create a kludge for the VMware tools install:

  • Copy and untar the vmware tools onto the root desktop.
  • cd to /Desktop/vmware-tools-distrib/lib/configurator/XOrg
  • copy “7.0″ to “7.1″ (cp -r 7.0 7.1)
  • cd 7.1 (step not required)
  • cp /usr/X11/lib/modules/drivers/amd64/vmware_drv.so . (step not required)

Go thorough the normal VMware tools install process:

  • cd /Desktop/vmware-tools-distrib
  • ./vmware-install.pl
  • At the prompt “What is the location of the directory which contains your XOrg modules?” answer /usr/lib/X11/modules

IMPORTANT: Delete or move aside the generated /etc/xorg.conf. YAGNI and it is broken somehow anyway. The tools install will have installed the optimized network adapter and the VMware daemon processes, including the one that should allows your mouse to move off the VM screen w/o the special key sequence.

You need to log out and back in at this point to check you display and mouse configuration.

Technorati , , , , ,

fusion-small.png

Woo-hoo! Now I’m off to try out vnics in Solaris 11!

I’ve encountered one minor issue, so far. Since the Solaris installer is 32 bit, I needed to create a 32 bit vm for the install. VMware was blowing up trying to get Solaris to install inside a 64 bit vm. I’ll need to futz with the Fusion configuration to see if it can stand being 64 bit now that the installation is complete.

Technorati , , ,