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
For example, remove "rhgb" if you don't like the graphical boot.
Also, you can create additional entries for booting linux
with an added "S" on the end of the "kernel" line to boot
into single user mode, or an added "1" (or other number) to
specify the runlevel.
- 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