Fedora Core 2/3/4/5/6 on a Dell Precision M60


Hardware | Software | XFree86/Xorg | Network | Modem | Sound | IrDA | Bluetooth | ACPI | Firewire | Misc | Configuration Files | Links

This document covers the installation of RedHat Fedora Core 2/3/4/5/6 on the Dell Precision M60. The installation is straightforward, just follow the instructions of the installation wizard. Therefore, I concentrated on special things not mentioned in official documents or already existing web sites (i.e., ACPI). This notebook was shipped with preinstalled MS Windows XP, therefore I used a dual boot configuration.


Hardware

The mandatory output of lspci
00:00.0 Host bridge: Intel Corporation 82855PM Processor to I/O Controller (rev 03)
00:01.0 PCI bridge: Intel Corporation 82855PM Processor to AGP Controller (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 01)
00:1d.7 USB Controller: Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 81)
00:1f.0 ISA bridge: Intel Corporation 82801DBM (ICH4-M) LPC Interface Bridge (rev 01)
00:1f.1 IDE interface: Intel Corporation 82801DBM (ICH4-M) IDE Controller (rev 01)
00:1f.5 Multimedia audio controller: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 01)
00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 01)
01:00.0 VGA compatible controller: nVidia Corporation NVIDIA Quadro FX Go700 (rev a1)
02:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5705M Gigabit Ethernet (rev 01)
02:01.0 CardBus bridge: Texas Instruments PCI7510 PC card Cardbus Controller (rev 01)
02:01.1 CardBus bridge: Texas Instruments PCI7510,7610 PC card Cardbus Controller (rev 01)
02:01.2 FireWire (IEEE 1394): Texas Instruments PCI7410,7510,7610 OHCI-Lynx Controller
02:01.3 System peripheral: Texas Instruments PCI7410,7510,7610 PCI Firmware Loading Function
02:03.0 Network controller: Intel Corporation PRO/Wireless LAN 2100 3B Mini PCI Adapter (rev 04)


Software

I used the images of RedHat Fedora Core 2/3/4/5/6 as available at Red Hats site or at www.linuxiso.org. For the installation described here, only the binary CDs are needed.
Partition Magic was used to resize the NTFS partition.


XFree86/Xorg

Following the instructions of the installation wizard results in a work X environment. Unfortunately not the highest possible resolution (i.e. "1680x1050") is available up to Fedora Core 3. So I added the correspondig modeline to the monitor section of the X configuration file
Modeline "1680x1050"   147.85   1680 1744 1936 2240   1050 1051 1054 1100  +hsync +vsync
and modified the screen section to use this resolution. The configuration file can be downloaded here.

If you want to use the binary driver from Nvidia, no problems should occur except if you want to use ACPI. This issue is discussed below.

Update regarding Fedora Core 5
Unfortunately, the release kernel of Fedora Core 5 breaks the loading of binary only driver from Nvidia (and ATI). If you want to use this driver you have to use another kernel. :-(
Plus, since Fedora Core 5 is shipped with Xorg 7, the current binary driver from Nvidia will not work out of the box anyway. This is due to the changed directory structure - the files for X are now located in /usr not /usr/X11R6.
I address this issue with the following patch. To apply this patch and install the driver go ahead with the following instructions.

$ ./NVIDIA-Linux-x86-1.0-8178-pkg1.run --extract-only
$ cd NVIDIA-Linux-x86-1.0-8178-pkg1 
$ patch -p0 < /path/to/Makefile.nvidia.patch
$ ./nvidia-installer 

Well, you can also try to provide the needed information for the nvidia installer on the command line.
$ ./NVIDIA-Linux-x86-1.0-8178-pkg1.run --x-prefix=/usr --x-module-path=/usr/lib/xorg/modules
Be sure you have the package xorg-x11-server-sdk installed to do the compilation.

Update of the update regarding Fedora Core 5
The update kernel 2.6.16-1.2080_FC5 is able to load the binary only driver from Nvidia. :-)

Update of the update regarding Fedora Core 6
If you wanna use a self-compiled Nvidia driver you need to patch the driver. The discussion can be read in the nvidia forum.
The patch is very simple and can be donwloaded here.


Network


Modem

The modem is supported with the drivers/kernel modules from Linuxant.
These kernel modules is known to have problems if the kernel is compiled with 4K stacks, like the Fedora kernels! I had success with some basic tests, but a reboot resulted in kernel panic, so I removed the kernel modules.


Sound

The sound chip was properly recognized during the installation process, no manual configuration needed.
I managed to get the hardware volume keys working within the X environment - the solution does not depend on special window or session managers. I use the software piece xbindkeys. You can start it manually, I use a start script in /etc/X11/xinit/xinitrc.d/. Here is the output of $HOME/.xbindkeysrc. You can double check the keycode with xmodmap.
# set keycode directly (here control + f with my keyboard)
# use xbindkeys -mk to find the definition


#Vol -5% # 
 "aumix -v -5"
    c:174
#    m:0x0 + c:174 # <- also possible
#    XF86AudioLowerVolume

#Vol +5% # 
 "aumix -v +5"
    c:176
#    XF86AudioRaiseVolume

 #Vol 0% # 
 "aumix -v 0"
    c:160
#    XF86AudioMute



IrDA

Again, no odd things experienced ... the IrDA interface can be accessed via the the second serial interface. The openobex tools are part of the distribution.
I have not yet tested the FIR mode ... one preparation step will be
setserial /dev/ttyS1 uart none
to free the hardware driver binding from the SIR-UART


Bluetooth

Tested, works but not yet documented. :-(


ACPI

Since the precompiled kernels from Fedora 2/3/4 have ACPI not enabled, I have to compile my own kernel, the configuration can be downloaded here. I used a vanilla kernel from www.kernel.org without any patches.
Four things should be taken into account.
  1. suspend partition
  2. hardware keys
  3. kernel PM implementation/nvidia binary driver
  4. cpu frequency scaling/brightness adjustment

add 1.)
I use the swap partition for suspend to disk. The partition can be determined during the kernel configuration (CONFIG_PM_STD_PARTITION) and/or named with the kernel parameter resume (e.g.resume=/dev/hda7) in the bootloader configuration or interactively during the boot process.
add 2.)
I started the acpi daemon with a virgin configuration and checked the output of /var/log/acpid while pressing FN and the corresponding special keys. I decided to use the power button for a normal shutdown, the lid control stick for suspend to disk (S4) and the suspend button for suspend to RAM (S3). Unfortunately, the S3 mode is not available in conjunction with the nvidia binary driver since a change in the kernel APM implementation with 2.6.14 (For S4 I had to patch the nvidia driver). Maybe one of the recent patches for the nvidia driver addresses this issue.
add 3.)
Since a change of the APM implementation of the linux kernel in 2.6.14 the nvidia binary driver (may also valid for other binary-only kernel driver) does not know how to handle the S3 and S4 ACPI mode. See the comment in the file /usr/src/linux-2.6.x/include/linux/pm.h (x ≥ 14)
...
/*
 * There are 4 important states driver can be in:
 * ON     -- driver is working
 * FREEZE -- stop operations and apply whatever policy is applicable to a
 *           suspended driver of that class, freeze queues for block like IDE
 *           does, drop packets for ethernet, etc... stop DMA engine too etc...
 *           so a consistent image can be saved; but do not power any hardware
 *           down.
 * SUSPEND - like FREEZE, but hardware is doing as much powersaving as
 *           possible. Roughly pci D3.
 *
 * Unfortunately, current drivers only recognize numeric values 0 (ON) and 3
 * (SUSPEND).  We'll need to fix the drivers. So yes, putting 3 to all different
 * defines is intentional, and will go away as soon as drivers are fixed.  Also
 * note that typedef is neccessary, we'll probably want to switch to
 *   typedef struct pm_message_t { int event; int flags; } pm_message_t
 * or something similar soon.
 */
...
Since I normally use suspend to disk instead of shutdown and reboot my system, the S4 ACPI mode is very important for me. I found a patch for the nvidia driver, which reenables the S4 mode (not S3 - didn't test one of the recent patches for the nvidia driver addressing this issue).
--- usr/src/nv/nv.c.ORIG        2005-12-05 20:35:14.000000000 +0100
+++ usr/src/nv/nv.c     2005-12-05 20:35:22.000000000 +0100
@@ -3851,12 +3851,13 @@
 
     switch (state)
     {
-        case PM_SUSPEND_MEM:
+        case PM_EVENT_SUSPEND:
+        case PM_EVENT_FREEZE:
             nv_printf(NV_DBG_INFO, "NVRM: ACPI: received suspend event\n");
             status = rm_power_management(nv, 0, NV_PM_ACPI_STANDBY);
             break;
 
-        case PM_SUSPEND_ON:
+        case PM_EVENT_ON:
             nv_printf(NV_DBG_INFO, "NVRM: ACPI: received resume event\n");
             status = rm_power_management(nv, 0, NV_PM_ACPI_RESUME);
             break;

This patch works ok for me. Hopefully it will not be necessary to apply this patch in forthcoming releases of the nvidia driver.
Update regarding Nvidia driver 8756
This release solves all ACPI problems. Suspend-to-disk and suspend-to-RAM work like a charm. Plus, the consoles are not puzzled after resuming.

add 4.)
No manual intervention needed, works out-of-the box.

Update regarding Fedora Core 5
The kernels shipped with Fedora Core 5 have ACPI enabled. Because CONFIG_ACPI_SLEEP_PROC_SLEEP is not set any script using /proc/acpi/sleep will not work. I changed my scripts to use /sys/power/state, hence they work also with the FC5 kernels. :-)


Firewire

Not tested yet.


Misc

If you want to coexist your linux with Windows you should decide which OS loader loads which operating system. In my case I decided that grub should load the second stage of the Windows loader too. My linux loader resides in the masterbootrecord. Here is my grub.conf
default=1
timeout=5
splashimage=(hd0,2)/grub/splash.xpm.gz
title Fedora Core (2.6.15-1.1833_FC4)
        root (hd0,2)
        kernel /vmlinuz-2.6.15-1.1833_FC4 ro root=LABEL=/ rhgb
        initrd /initrd-2.6.15-1.1833_FC4.img
title Fedora Core (2.6.15.4)
        root (hd0,2)
        kernel /vmlinuz-2.6.15.4 ro root=LABEL=/ rhgb
        initrd /initrd-2.6.15.4.img
title Other
        rootnoverify (hd0,1)
        chainloader +1

Well, I think I should also post the output of /sbin/fdisk -l /dev/hda for better reading of the "grub.conf"
Platte /dev/hda: 60.0 GByte, 60011642880 Byte
255 Köpfe, 63 Sektoren/Spuren, 7296 Zylinder
Einheiten = Zylinder von 16065 × 512 = 8225280 Bytes

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/hda1               1           7       56196   de  Dell Utility
/dev/hda2   *           8        1052     8393962+   7  HPFS/NTFS
/dev/hda3            1053        1083      249007+  83  Linux
/dev/hda4            1084        7296    49905922+   f  W95 Erw. (LBA)
/dev/hda5            1084        3172    16779861   83  Linux
/dev/hda6            3173        7034    31021483+  83  Linux
/dev/hda7            7035        7296     2104483+  82  Linux Swap / Solaris
where /dev/hda3 is mounted at "/boot" and /dev/hda5 is mounted at "/".

So far no chance to get the smart card reader to work under linux. :-(


Configuration Files


Links


Last Modified: 29 October 2006

TuxMobil - Linux on Laptops, Notebooks, PDAs and Mobile Phones Linux On Laptops
udoseidel@gmx.de