Michael J. McGuffin, document mostly written August 2006, updated in September 2006
This document started out as a personal log, and later I decided to make it publicly available. Note that I have very little or no prior experience with Fedora, the yum package manager, the grub loader, SELinux, or wireless networking under linux; and I also prefer to not use GNOME or KDE and instead have my own ~/.xsession file and do some things manually (like mounting USB devices, or setting up Dvorak and accented characters with xmodmap); therefore the document goes into a little more detail about certain things than may be typical in reports of getting linux to work on laptops.
This is the 5th time in 2006 that I've had to install linux on a laptop, and although I'm a little better at it now, it's still a major chore that requires many hours.
Acknowledgements: Thanks to Derrick Moser for his repeated and invaluable help with this installation and previous ones, where I've tried to get the "perfect" linux box set up :)
Disclaimer: The information below is provided "as is", with no warranty, implied or otherwise. Use this information at your own risk.
Hardware Specs: Dell Latitude D820 laptop weight: ~ 6.5 pounds CPU: Intel Centrino Duo (dual core) 1.83 GHz RAM: 2 GB screen: 15.4 inch WSXGA+ LCD, 1680x1050 pixels video card: nVidia Quadro NVS 120M with 512 MB memory HDD: 100 GB, 7200 RPM CD/DVD burner ("8x DVD+/-RW") ethernet card: Broadcom wireless network card: Intel 3945 (IMPORTANT: get this instead of the Broadcom wireless card; Broadcom isn't well supported by linux from what I understand) Bluetooth soundcard: SigmaTel 3 year warranty with protection against accidental damage primary battery: 9 cell additional "Media Bay" battery: 6 cell (can be slipped in to the bay after removing the CD/DVD) The machine arrived via Purolator, with MS Windows XP pre-installed. Status of my system under Fedora Core 5: CPU - an "smp" (symmetric multi processor) kernel was installed out of the box and seems to work fine screen, video card - 800x600 without hardware acceleration out of the box; I got full resolution and the nVidia driver working after following the instructions below soundcard - works after doing "yum update" (see below) However when plugging/unplugging headphones, the speakers are supposed to automatically mute or unmute, and sometimes this doesn't work. Sometimes I have sound coming out of both or neither. My current solution is to reboot when this happens :( ethernet card - works out of the box plugging / unplugging generic USB keyboard and mouse - works out of the box, as does the scroll wheel on mouse plugging / unplugging USB memory key - works out of the box suspend - doesn't work wireless - doesn't seem to work yet, but I haven't tried very hard. Running /sbin/iwconfig outputs lo no wireless extensions. eth0 no wireless extensions. sit0 no wireless extensions. bluetooth - untested Comments: I chose Dell because my previous laptop was a Dell and had served me well. I chose the above model because I wanted an nVidia card, so I could expect the graphics card to work under linux (I have no previous experience with ATI drivers) and because I may do some graphics programming involving nVidia extensions to OpenGL. Given these constraints, I opted for the Latitude D820, with the best nVidia card available, the largest amount of RAM available, and the largest and fastest HDD available for the Latitude D820. I didn't bother paying an extra ~270 $ CAN for the 2.16 GHz CPU that was available because I suspect the improvement in performance would not have been worth the extra cost. To order, I went on the dell.ca website, chose the specs I wanted, and then phoned Dell's 800 number and managed to barter the price down a bit. One drag about the machine is it has a vent on the bottom of the laptop. The vent is along an edge of the bottom, so I can still stack the laptop on top of a small book or pile of small books, but I can't plop the laptop onto a bed because then the vent is blocked. The bottom also gets too hot to put on bare thighs, even when plugged in to AC power. Another minor drag is that the design of the touchpad's lower buttons prevents me from hitting them with the side of my thumb, as I could on the Dell Inspiron 8200. The redundant upper bottons, on the other hand, sometimes don't work the first time they are pressed (this occurs with MS Windows XP as well). Note that http://mikehardy.net/linux_latitude_d800/ reports problems with burn-in ("Be very careful with the brightest setting ..."). I don't know if this applies to my machine, but I've been cautious and have been using it at 2 notches below the max brightness. ===================================================================== How I set up the machine to be dual boot MS Windows XP / linux Fedora Core 5: - Boot from MS Windows XP installation CD. - The XP installation procedure involves a step where the user can repartition the harddrive. During this step, delete the ~95 GB partition on the HDD containing the pre-installed copy of XP, and create a 60 GB partition to contain a new installation of XP. Leave the remaining ~35 GB on the HDD unpartitioned for now, to be partitioned later by the linux installer. (Of course, change these numbers to suit your needs.) - Install XP in the newly created 60 GB partition. You'll also have to install the device drivers for XP that are on the Dell Resource CD for nVidia, soundcard, ethernet card, wireless, bluetooth, modem, etc. - Install Fedora Core 5, allowing the installation procedure to create a default partitioning in the remaining unpartitioned space of the HDD. - During the installation of Fedora Core 5, - I chose US International as my keyboard type, and later found that I was able to enter accented characters, e.g. hitting the ` a keys would produce an a with a grave accent, and hitting the ' e keys would produce an e with an acute accent. If you don't want this behaviour, you'll probably want to choose US English as the keyboard type. You can change your mind later in GNOME with System/Administration/Keyboard or by running system-config-keyboard (Following more experimentation, it seems that the keys ` ' " ^ ~ followed by a vowel produce the accented character, hitting ' twice produces an acute accent, hitting RightAlt+' produces a single quote, hitting " twice produces an umlaut, hitting Shift+RightAlt+" produces a double quote, hitting RightAlt+, produces a c with a cedilla, and hitting Shift+RightAlt+< produces a C with a cedilla. Furthermore, by playing around with xmodmap, I'm able to change this behaviour and use RightAlt and Shift+RightAlt to access any 2 additional characters, accents, or "dead keys" for each keyboard key. If I switch to a US English keyboard, however, then RightAlt ceases to allow me to access such additional characters.) - Do *not* specify that the system clock store time in UTC, because XP assumes the clock stores local time. - I disabled SELinux, because in the past after installing an earlier version of Fedora Core (4 I think), SELinux prevented Java from working for some reason, and I want to avoid further hassles. I'm not familiar with SELinux and don't want to ever have to worry about it. - I think there's a step where you can specify the desired hostname for the machine, but I skipped over that step by accident, and had to set the hostname after installation, by logging in to a GNOME session and selecting System/Administration/Network, DNS tab (If you don't have GNOME or don't want to run it, try running system-config-network instead, and selecting the DNS tab.) Note that this caused /etc/hosts to be updated automatically with the new hostname. - Carefully go through all the optional packages to install, making sure you get all the ones you'll need or want. It can be tough doing this if you don't know what's necessary, but if you miss something you may need to install it later, which can be a minor hassle -- I find it's worth going through every single package at installation time rather than installing packages later whenever they're needed. Pay attention to development tools and libraries (e.g. *-devel packages), command line utilities, and any other software that you're accustomed to and would expect to be included in your installation; some packages you might think of as standard may not be installed by default unless you explicitly select them. Personally, when in doubt, I select more packages for installation, and only deselect ones that I *know* I won't need, because there's plenty of disk space on the HDD. (After completing my installation, which included many packages, only about 4 GB of HDD space was used up by the system.) - After booting up linux, and logging in, and getting internet connectivity, do su yum update (this updates *all* packages, including your kernel, by fetching them from the internet, and takes a while) Reboot. Notice that the grub loader allows you to boot either with the updated kernel or the old one (in my case, these are 2.6.17-1.2174_FC5smp and 2.6.15-1.2054_FC5smp respectively). With the new kernel, the SigmaTel soundcard should now work. - Feel free to modify the boot loader settings by editing /etc/grub.conf - Look under /etc/rc.d/rc5.d/ and disable services you don't need to plug potential security holes, and also to speed up the boot sequence. I disabled S13portmap S14nfslock S25netfs S55sshd S80sendmail S95anacron S95atd I think services are started by some script that looks for symlinks under /etc/rc.d/rc5.d/ whose names are of the form S* I manually disable these things by prepending their name with a period, e.g. mv S80sendmail .S80sendmail That way an implicit record is kept for me of what's been disabled, and it's easy for me to reenable something at a later date if the need arises. - Install nVidia driver. (Note: before doing anything below, create a backup of /etc/X11/xorg.conf ) To do this, you could download the driver directly from nvidia.com and use their installation procedure, but this requires you to also download kernel source files to recompile the nVidia driver, and I found their installation procedure to be buggy and required me to manually fix some stuff. Also, if you use their installation procedure, then the next time you do "yum update" you'll have to manually re-install the nvidia driver. An alternative is to use yum to get the driver from a repository called livna (see http://rpm.livna.org ) I recommend this course. First, you must add livna to the set of repositories that yum accesses when looking for a package. This can be done by installing an rpm: rpm -ivh http://rpm.livna.org/livna-release-5.rpm This causes some files to be added to /etc/yum.repos.d/ Next, yum can be used to install the nVidia driver from livna, however before doing so, to be cautious (I don't know if this is necessary) I first switched to a text-only console (with Ctrl-Alt-F3 (use Ctrl-Alt-F7 to switch back to X)), logged in as root, and brought down X with /sbin/init 3 (Due to some bug, the above may leave your screen blank; just try hitting the Shift or Enter key or hitting Ctrl-Alt-F3 again to get back to the text-only console.) Now, with X down, I did yum install kmod-nvidia-smp and then /usr/sbin/nvidia-config-display enable (I don't know what the latter does or why it's necessary, but http://www.fedorafaq.org/ says to do it.) After that was complete, I brought X back up with /sbin/init 5 but found that my screen was still not at full resolution :( Confirm that your /etc/X11/xorg.conf file now contains Load "glx" in the "Module" Section, and no longer contains Load "dri" in the same section, and furthermore that it contains Driver "nvidia" in the "Device" Section instead of Driver "nv" in the same section. I had to make one minor modification by hand to /etc/X11/xorg.conf : in the "Screen" Section, in the "Display" SubSection that has "Depth 24", I changed Modes "800x600" "640x480" to Modes "1680x1050" "1280x800" "800x600" "640x480" and rebooted. X was then running with my screen at full resolution :) You may find that every time you boot, a comment is inserted into your /etc/X11/xorg.conf file that looks like ### Comment all HorizSync and VertSync values to use DDC: To avoid having an unbounded number of these comments inserted over time, I found that simply commenting the HorizSync and VertRefresh lines in the "Monitor" Section seemed to stop more comments from being inserted, and seemed to have no ill effects. - With the livna repository, there are some nice things that can be easily installed: yum install xmms (to play audio files / music) yum install xmms-mp3 (to enable xmms to play mp3 files) yum install xmms-skins yum install mplayer (to play movie files, DVDs, VCDs) I also tried yum install xmms-wma (to enable xmms to play wma files) but that failed. A google search for xmms-wma.rpm fedora core 5 found xmms-wma-1.0.5-3.fc5.rf.i386.rpm at http://dries.ulyssis.org/rpm/packages/xmms-wma/info.html and I installed it with rpm -ivh xmms-wma-1.0.5-3.fc5.rf.i386.rpm - Other stuff I installed yum install aterm (a virtual terminal I sometimes use) yum install rxvt (another virtual terminal I sometimes use) yum install gkrellm (for monitoring battery, temperature, CPU usage, etc.) yum install octave (a number-crunching package similar to matlab) yum install pine (the email client) yum install xlockmore (for xlock) yum install gv (a postscript viewer) yum install banner (an old UNIX utility for outputing large text) yum install latex2html (to convert LaTeX to HTML) yum install python-imaging (for the Python Imaging Library (PIL)) yum install ncftp (to be able to perform recursive ftp'ing) On my former laptop(s), I would use xapm to monitor battery, but on this system it seems I can't use that, so instead I use gkrellm or simply do more /proc/acpi/battery/BAT*/* Similarly, I used to use xcalc as my calculator, but it now appears to be unavailable, but I can now use gcalctool instead. (Actually, running python in interactive mode is even better for performing simple arithmetic calculations.) Finally, for controlling audio volume, I used to use aumix, which also appears to now be unavailable or obsolete, but now I can use alsamixer or gnome-volume-control instead. - I downloaded a graphical memory monitor called "gmemusage" from http://www.highend3d.com/downloads/tools/os_utils/100.html - To install Flash (for Mozilla), I ran a google search for download flash went to the top website found, downloaded a .tar.gz file, unpackaged it, and ran the script inside it as root. This caused 2 files to be added to /usr/lib/mozilla/plugins/ and Flash now works in Mozilla. - To install Java SDK + Java for applets in mozilla, I ran a google search for download jdk went to the top website found, downloaded jdk-1_5_0_06-linux-i586.bin then, as root, mkdir /opt/java cd /opt/java mv .../jdk-1_5_0_06-linux-i586.bin . sh jdk-1_5_0_06-linux-i586.bin cd /usr/lib/mozilla/plugins ln -s /opt/java/jdk1.5.0_06/jre/plugin/i386/ns7/libjavaplugin_oji.so . and Java applets now work in Mozilla. (For the reason why I chose to put java under /opt, see http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard ) Then, after installing eclipse, to make it use the above Java installation, run eclipse and select Window/Prefences..., Java/Installed JREs, and hit the "Search" button to add a new JRE definition pointing to /opt/java/jdk1.5.0_06 See also Help/Help Contents, Java Development User Guide/Getting Started /Basic Tutorial/Preparing the workbench - When I tried to compile one of my own OpenGL / GLUT programs, I got an error: GL/glut.h: No such file or directory After doing yum install glut-devel which caused freeglut-devel-2.4.0-4 to be installed, I was able to compile and run the program just fine. - To mount my MS Windows XP partition as read-only from linux, I did yum install kmod-ntfs-smp (requires livna repository) mkdir /media/win fdisk -l mount /dev/sda2 /media/win -t ntfs -r -o umask=0222 For more information, see http://www.fedorafaq.org/ http://wiki.linux-ntfs.org/doku.php?id=ntfs-en#4.1_can_i_mount_an_ntfs_volume I think there's a way to add a line to /etc/fstab so that this gets mounted automatically whenever linux is booted, but I haven't bothered to figure out how. Update: I added these 2 lines to /etc/fstab # MS Windows XP partition /dev/sda2 /media/win ntfs ro,umask=0222,user,noauto 0 0 and now I can mount the windows partition by invoking mount /media/win as a user, i.e. I don't have to be root to mount it. I think to have this mount automatically at boot time, removing the ",noauto" option would be enough. Do "man fstab" and "man mount" for more information. - How to manually mount and unmount a USB storage device: mkdir /media/my_usb mount /dev/sdb1 /media/my_usb ... umount /media/my_usb I added these two lines to /etc/fstab # USB key /dev/sdb1 /media/my_usb vfat rw,user,noauto 0 0 so that now I can mount a USB key by invoking mount /media/my_usb as a user, i.e. I don't have to be root to mount it. Do "man fstab" and "man mount" for more information. - How to manually mount and unmount a CD ROM: mkdir /media/cdrom mount /dev/hdc /media/cdrom ... umount /media/cdrom - If for some reason you need to get kernel source files, I think the command to use is yum install kernel-smp-devel - I haven't tried yet to get wireless networking working ... If you want to try, check out http://www.linux-on-laptops.com/dell.html http://mysite.verizon.net/vze2j8bn/D820-FC5.html http://www.math.dartmouth.edu/~ahb/laptop_setup/ - Output from "/sbin/fdisk -l": Disk /dev/sda: 100.0 GB, 100030242816 bytes 255 heads, 63 sectors/track, 12161 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 1 7 56196 de Dell Utility /dev/sda2 * 8 7656 61440592+ 7 HPFS/NTFS /dev/sda3 7657 7669 104422+ 83 Linux /dev/sda4 7670 12161 36081990 5 Extended /dev/sda5 7670 12161 36081958+ 8e Linux LVM Disk /dev/dm-0: 34.8 GB, 34829500416 bytes 255 heads, 63 sectors/track, 4234 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk /dev/dm-0 doesn't contain a valid partition table Disk /dev/dm-1: 2080 MB, 2080374784 bytes 255 heads, 63 sectors/track, 252 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk /dev/dm-1 doesn't contain a valid partition table - Output from "cat /etc/fstab": /dev/VolGroup00/LogVol00 / ext3 defaults 1 1 LABEL=/boot /boot ext3 defaults 1 2 devpts /dev/pts devpts gid=5,mode=620 0 0 tmpfs /dev/shm tmpfs defaults 0 0 proc /proc proc defaults 0 0 sysfs /sys sysfs defaults 0 0 /dev/VolGroup00/LogVol01 swap swap defaults 0 0 # USB key /dev/sdb1 /media/usb1 vfat rw,user,noauto 0 0 # MS Windows XP partition /dev/sda2 /media/win ntfs ro,umask=0222,user,noauto 0 0 (I addded the last 4 lines manually.) - To read my linux partition from MS Windows XP, in the past I've used ltools, but with this system ltools didn't seem able to read the the "Linux LVM" partition reported by fdisk -l, so I ended up using explore2fs ( http://www.chrysocome.net/explore2fs ) instead. - Adding a personal touch to your machine: - run "chfn" as root to give the root account a name, displayed when you "finger root" - if you use grub, edit the background image at /boot/grub/splash.xpm.gz