Completing the Cycle: Fresh Boot Camp with Windows XP SP3

May 24, 2008

I haven’t had a post about Windows yet, so here you go. My MacBook Pro has been dual-booting into Windows XP SP2 since I had OS X 10.4, “Tiger” installed. This is an older version of Boot Camp, with drivers that are now outdated. I also tinkered with them a bit by installing some newer NVidia drivers from

I wanted a fresh Windows install with SP3 and the latest Boot Camp 2.1 drivers. Apple recommends that you install Boot Camp 2.1 before installing SP3. But what if you have a Windows disc with SP3 already slipstreamed? It should work, but I couldn’t find a good answer on the web, and decided to try it myself.

I created a slipstreamed SP3 disc from our University’s volume licensed SP2 disc using nLite. No problem. I then repartitioned my MacBook Pro’s drive using the Boot Camp Assistant and followed Apple’s instructions to the letter. The Windows install, using my SP3 disc, went fine. I did get a black screen after the initial reboot, but manually power cycling the machine gave a clean boot.

I proceeded to install the Boot Camp 2.0 drivers from the Leopard disc. This went mostly smoothly, but the “SM Bus Contoller” was not found in Windows Device Manager. To fix that problem, I re-inserted the Leopard DVD and told it to “repair” the Boot Camp installation. Maddeningly, this robotically proceeded to reinstall every Boot Camp driver. But hey, it fixed the problem! I then used Apple Software Update (which itself had to be updated) to install the Boot Camp 2.1 drivers. You know, the package Apple says should be installed before SP3 — that is true if you’re upgrading from SP2 to SP3. The Boot Camp upgrade took a while, but succeeded. For those who are curious, the NVidia drivers in Boot Camp 2.1 are version 167.73. I still had to run Windows Update to get IE7, WMP11, and a couple of hotfixes on top of SP3, but that’s nothing new under the Sun.

In summary, a Windows XP SP3 slipstreamed disc may successfully be used for a fresh install with Boot Camp.

Lab Install of Fedora 9

May 22, 2008

Fedora 9 was released last week. Our lab’s servers and workstations all run varying versions of Fedora or CentOS, the RHEL-clone server distribution. In preparation for the release of F9, we had decided to replace some aging 32-bit workstations. The new workstations all have Intel Q9300 CPUs, four gigs of RAM, NVidia 9600GT video cards, and a pair of 250GB SATA drives. The 250GB drives are kind of overkill — we do most of the heavy work on our servers and clusters these days — but hard drives are cheap.

When configuring new computers, we usually keep a log in a notebook. This time, I decided to add the log here. Hopefully others performing a clean installation of F9 in a science/programming environment may find it useful.

Clean Install Procedure

The install procedure, guided by Fedora’s Anaconda, is as trouble-free as it was in recent Fedoras. On one older machine, we had trouble booting from the Fedora DVD (in particular, a crc error when loading the kernel and initrd). This was remedied by using another DVD burn of the install disc, but burned at a slower speed. The first burn just wasn’t entirely reliable.

Our dual SATA drivers were partitioned using a custom layout. In our case, we created identical software RAID partitions on each disc: 4 gig for swap, 1 gig for /boot, with / getting the remainder. /boot needs to be partitioned as RAID-1, but swap and / were partitioned as RAID-0 for maximum speed. If a disk fails, it’s not a big deal for us: all of our important data and home directories are on a RAID-5 fileserver. After the RAID, the only time consuming thing in the initial setup is specifying the network info, which includes our static IP addresses.

Our packages to install are in the default “Office and Productivity” section and the “Software Development” section. The most important part of this log is the following list of packages added for our customized install, the first batch of which are on the DVD:

  • emacs – it’s surprising that vi is installed by default, but emacs is not
  • openbabel – a chemistry utility in the science and engineering subsection
  • all optional packages in the graphics subsection – imagemagick is particularly important
  • k3b – the best CD/DVD burner to be found for linux
  • lynx – the classic text-only web browser
  • the fedora packager subsection
  • gnuchess – how can other games be installed, but not chess?!
  • memtest86+ – useful for hardware troubleshooting
  • the system tools subsection
  • the legacy software compatibility subsection
  • tcsh – most of our lab uses this shell! this should be installed by default
  • gnome-netstatus – a useful widget
  • thunderbird – a couple members of our lab use this for reading mail
  • the authoring and publishing subsection – mostly for the TexLive packages

Things to do at Firstboot

After the 1300+ packages finish installing, a couple things (such as NIS logins) are configured on firstboot. Logging in as root, we need to configure two additional repositories: livna and adobe-linux. Then, we install additional packages from the Fedora repository via yum:

  • xpdf – lightweight, fast, and useful pdf viewer
  • xdvik – amazingly, xdvi is not distributed with F9’s TexLive packages
  • autofs – this is needed to mount our /home directories, and is surprisngly omitted from the F9 DVD
  • openmpi and openmpi-devel – parallel (MPI) compilers
  • scipy – a suite of modules for doing science with Python
  • PyX – a nifty module for drawing graphics with Python and LaTeX
  • grace – the best 2D graphing program for GNU/linux
  • readahead – a small package which helps cache files to speed the boot process

Lastly, the media packages, (mostly) from livna and adobe-linux:

  • nspluginwrapper.i386 and alsa-lib.i386 – needed for getting i386 (32-bit) Flash to work with x86_64 (64-bit) Firefox. alsa-lib is needed for sound.
  • flash-plugin – flash itself, via the adobe-linux repository
  • mplayer – for playing movies and mp3s, via livna
  • lame – a mp3 encoder/decoder
  • libdvdcss – a DVD decoder
  • amarok-extras-nonfree – more plugins for Amarok, an alternative to mplayer (will install h.264 support as a dependency)

While using yum to install all these packages, many dependencies will also be installed. This is normal.


Now that autofs and other packages have been installed, the default services need to be configured at System>Administration>Services.
The following are switched to disabled:

NetworkManager – a new service being pushed by Fedora, but it overrode our static IPs with DHCP IPs
bluetooth – not needed on workstations
ip6tables – we don’t use IPv6
isdn – we don’t use ISDN

The following are switched to enabled (all these are needed for our lab’s local network):

autofs – automounting remote nfs shares
netfs – needed for autofs and other remote mounting
network – replaces NetworkManager
ypbind – NIS client

Additionally, smartd and lm_sensors may be enabled if you plan on carefully monitoring your hardware.

NVidia 3D Drivers and Fedora 9’s

One thing I haven’t mentioned yet is the NVidia 3D video driver. Fedora 9 includes a pre-release version of, and NVidia’s proprietary, closed-source drivers have not yet been updated to support it. Even the supposed -ignoreABI and Disable “glx” workarounds completely fail. The solution is to downgrade some key packages to the Fedora 8 versions. A minimal downgrade can be successful by only changing five packages. However, depending on your own particular hardware and software configuration, more packages may have to be downgraded. Here’s the procedure:

  1. Get the following files:


    Other packages some people may need include xorg-x11-drv-void, xorg-x11-drv-vesa, xorg-x11-drv-evdev, xorg-x11-drv-fbdev, xorg-x11-drv-vmmouse, and xorg-x11-xkb-utils.

  2. Install, with
    rpm -Uvh --oldpackage --replacefiles --replacepkgs --nodeps xorg*
  3. Get the nvidia driver from Livna:
    yum install xorg-x11-drv-nvidia-173.08-1.lvn9.x86_64

    NOTE: that exact version is important. The 173.08-2-lv9.x86_64 package (note the -2 instead of the -1) was found to fail on our workstations. If you do not see the -1 version as an option and do not want to download and install it by hand, try installing the “yum-allowdowngrade” package and then seeing if the older version shows up.
    xorg-x11-drv-nvidia will also want to install the following, as dependencies:

    kmod-nvidia, xorg-x11-drv-nvidia-libs, akmod-nvidia, livna-config-display, kmodtool, kernel-devel, akmods

    Make sure the kmod-nvidia, xorg-x11-drv-nvidia-libs, and akmod-nvidia versions match the xorg-x11-drv-nvidia version (-1 instead of -2). The kernel-devel rpm that is installed will typically be the newest one, which will not match a non-updated Fedora 9 kernel. Now would be a good time to do a

    yum update kernel*

    as well.

  4. Finally, add the line:

    to the end of /etc/yum.conf so that the next time you upgrade anything it doesn’t replace all the F8 files with F9 ones.

  5. Reboot; the nvidia driver should get built during the boot sequence. Might require two reboots for this, or manually restarting
    service nvidia restart

emacs and Firefox 3 tweaks

There are a few other tweaks a fresh install of F9 needs. In particular, emacs defaults to courer 12, which is a bit larger than needed. To have it default to courier 10, add the following to your .emacs file:

  ;; custom-set-faces was added by Custom.
  ;; If you edit it by hand, you could mess it up, so be careful.
  ;; Your init file should contain only one such instance.
  ;; If there is more than one, they won't work right.
 '(default ((t (:stipple nil :background "#ffffff" :foreground "#000000" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 122 :width normal :family "adobe-courier")))))

Also, the Firefox 3 beta 5 address bar may be particularly ugly to people accusomted to the cleaner Firefox 2 interface. Much of the previous style can be restored by modifying some settings in “about:config”:

  1. In the address bar, type “about:config” and hit enter.
  2. Accept the “void your warranty” warning
  3. Filter for “urlbar”
  4. Double click on browser.urlbar.autoFill
  5. Double click on browser.urlbar.matchOnlyTyped
  6. Double click on browser.urlbar.maxRichResults and changed the number from 12 to something more tolerable, like 2 or 3.

Now the address bar should behave a little more like Firefox 2.