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 X.org
One thing I haven’t mentioned yet is the NVidia 3D video driver. Fedora 9 includes a pre-release version of X.org, 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 X.org 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:
- 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.
- Install, with
rpm -Uvh --oldpackage --replacefiles --replacepkgs --nodeps xorg*
- 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*
- 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.
- 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 ;; 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”:
- In the address bar, type “about:config” and hit enter.
- Accept the “void your warranty” warning
- Filter for “urlbar”
- Double click on browser.urlbar.autoFill
- Double click on browser.urlbar.matchOnlyTyped
- 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.