Skip to content

Linux Fedora Core 3 on an HP nw8000 Laptop

Ned C. Forrester, Linux Fedora Core 3 on an HP nw8000 Laptop

Revision 1.0    April 8, 2005

Ned Forrester

Linux On Laptops

1.0 Hardware Features

  • Model: nw8000
  • Processor: Pentium M 755 (2.0GHz)
  • Chipset: Intel 855PM
  • Display: 15inch UXGA (1600x1200), 60Hz
  • Graphics: ATI Mobility FireGL T2, 128MB DDR SDRAM
  • Memory: 1GB, single SIMM
  • Disk: 60GB, 7200 RPM, ATA-6, ATA Security
  • Optical Disk: DVD+RW, EIDE
  • Diskette Drive: yes
  • Ethernet: 10/100/1000 Broadcom NetXtreme Gigabit Ethernet
  • Wireless: HP W500 (Atheros AR5001X+), 802.11a/b/g
  • Bluetooth: ?
  • Sound: AC97 CODEC
  • Modem: Agere Systems AC97

2.0 Installation of Fedora Core 3

2.1 Drive Partition:

Used ntfresize to shrink the factory installed XP installation after running windows defrag . ntfresize is available from:

http://mlf.linux.rulez.org/mlf/ezaz/ntfsresize.html

And a binary executable is available at:

http://mlf.linux.rulez.org/mlf/ezaz/ntfsresize-static-1.9.4.tgz

This worked fine without disturbing the Win2000 installation, but I later re-formatted this partition as FAT32 and reinstalled Win2000 so that I could read/write from Linux without VMWare running.

I then allowed FC3 install to pick partitions and format the remainder of the disk. The final partition is:

Disk /dev/hda: 60.0 GB, 60011642880 bytes

240 heads, 63 sectors/track, 7752 cylinders

Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot Start End Blocks Id System

/dev/hda1 * 1 1577 11922088+ c W95 FAT32 (LBA)

/dev/hda2 1578 1585 48195 83 Linux

Partition 2 does not end on cylinder boundary.

/dev/hda3 1585 2127 4096575 82 Linux swap

Partition 3 does not end on cylinder boundary.

/dev/hda4 2127 7752 42532087+ 5 Extended

Partition 4 does not end on cylinder boundary.

/dev/hda5 2127 7752 42532056 83 Linux

I don't know why fdisk complains about the cylinder boundaries when the FC3 install made these partitions by itself. It does not seem to cause any problems.

2.2 Installation Results

There were no problems installing FC3. Video installs as 800x600 VESA.

Occasionally on changes in video state, the video is "smeared" horizontally. This is easily corrected by closing/opening the cover or pushing cover switch. This problem persists even after all installations and updates (including the ATI driver installation, below), therefore I have not connected any action (like suspend) to the cover switch, as I use it to clear the screen when necessary.

Working natively:

  • X-Windows (800x600)
  • DVD (reads CDs, writes not tested)
  • Diskette
  • Ethernet
  • Bluetooth (recognized on USB, but nothing to test with)
  • Sound (but not modem)
  • Touchpad and force stick
  • Radio power button, turns radios on/off
  • Fnc/F9/F10 screen brightness control

Not working:

  • Mute and volume buttons on front edge of computer
  • Various other function buttons (presentaion, lock) and some of the Fnc (blue) buttons on the keyboard. Some of these produce un-implemented keycodes and so could be tied to some function.
  • Modem, the build in modem is a WinModem, I have not looked for any addon support for this. I plan to use my PCMCIA modem.

3.0 Further Installation and Configuration

3.1 Video

Initially (January 2005), there was no driver directly available from ATI that supported Fedora Core 3, because FC3 uses Xorg, not XFree86. So I started by following the instructions at:

http://www.stanford.edu/~fenn/linux/radeon.shtml

However, ATI now has an X.org driver version on their site that works with FC3. So I have installed the ATI driver exactly according to instructions and all works fine. This is available at:

http://www2.ati.com/drivers/linux/fglrx_6_8_0-8.12.10-1.i386.rpm

After installation, fglrxinfo says the video system is Radeon 9600, although there were references to FireGL in the fglrxconfig script.

CAUTION: Before running the fglrxconfig program, make a copy of /etc/X11/xorg.conf . The configuration program does not retain the existing Synaptics mouse driver, which was correctly selected by the FC3 install process and which has many useful features (see below). After running the config program, hand edit the xorg.conf file to restore the Synaptics driver.

See notes below at end of Sleep/Suspend section regarding the ATI driver setup. In order for suspend to work, you must not run with the fglrx module installed, and thus only 2D acceleration is available, not 3D. If you want 3D, then you can't use suspend.

To make the VGA output work, it seems that a monitor has to be connected at the time the X server starts. If the external monitor does not support the mode of the primary display, the server makes the external display a panning window on the primary regardless of the xorg.conf "virtual" setting in the "Screens" section. To make a full screen appear on the external display, one may restart X with a different max resolution. I have put two server configurations in xorg.conf so that I can easily choose a "small" screen, using:

startx -- -layout small

The driver appears to ignore the "Virtual" screen size xorg.conf command and always displays a pan-able virtual screen that is the size of the maximum "Mode" listed. Otherwise it would not be necessary to issue the above command but simply to use the cntl-fn-alt/ with num+/- commands to change screen size. What, if any, hotkey allows the external VGA to be turned on without restarting, I don't know.

3.2 Wireless

Need MADWiFi support for Atheros chip. Download by cvs using instructions on:

http://madwifi.sourceforge.net/

I needed to add uudecode to my system in order to do this (it does not seem to come with FC3, or maybe I did not select something correctly during FC3 install). To download I used:

up2date sharutils

and then I could:

make

makeinstall

The nw8000 has a button above the keyboard to turn on and off the RF devices (both WiFi and Bluetooth). To make a long story short, after installing the MADWiFi drivers, it is necessary to turn on the RF devices (blue light on) and then reboot Linux. During the reboot the blue light should come back on and then the scan for new hardware will detect the WiFi and do whatever is necessary to configure the drivers. Without this step, nothing seems to work, afterward everything worked fine. The hardware is detected as "Atheros 5212".

iwconfig, iwlist and iwpriv can be used to explore and set various WiFi status and configurations. I fiddled a lot with these before discovering the reboot-with-RF-on requirement, so I don't know for sure if I inadvertently set anything useful that helped achieve later success, but I think that things are largely automated after the complete install and reboot. Note that the network device name for WiFi is ath0 , not eth<n> . I have tested on an open network and a WEP authorized network. I also have displayed the registration screen for the wireless service at an airport.

Our company wireless requires a vpn client to log in. I have successfully used vpnc-0.3.2.tar.gz from:

http://www.unix-ag.uni-kl.de/~massar/vpnc/

For this to work, the kernel needs TUN/TAP enabled, but FC3 comes that way, so it is ok. Also needs crypt and crypt-devel . Un-tar the distribution an install with:

make

make install

I start with the command:

/usr/local/sbin/vpnc --udp --pid-file ~/vpnc.pid ~/user_vpnc.conf

Where user_vpnc.config contains:

IPSec gateway <system IP address>

IPSec ID <system ID NAME>

IPSec secret <system password>

Xauth username <username>

Config Script /usr/local/sbin/vpnc-connect

3.3 Sleep/Suspend:

I am using kernel 2.6.10-766, compiled as below. I don't believe a stock FC3 kernel is properly configured for suspend. Follow directions at:

http://www.fedoraforum.org/forum/archive/index.php/t-26571.html

which points to:

http://www.suspend2.net/fedora/

which calls for software-suspend-2.1.5.15:

http://www.suspend2.net/ (for download)

http://www.suspend2.net/downloads/all/apply

http://www.suspend2.net/FAQ-6.html#ss6.4

Build and test the kernel before patching, see configuration below (suspend2 functions probably don't appear until after patch/install). Then, to install suspend, I used the following:

  • 990-2.6.10-1.760_FC3-to-2.1.5.15-post (patch for FC3)
  • 010-2.6.10-1.760_FC3-to-2.1.5.15-pre (patch for FC3)
  • software-suspend-2.1.5.15-for-2.6.10.tar.bz2 (swsusp2 kernel patches). Note: I did not have good lock with software-suspend-2.1.7-for-2.6.10.tar.bz2
  • hibernate-script-1.05.tar.gz

from the above directions:

  • install 2.6.10-766-FC3 kernel source (done above)
  • unpack software-suspend-2.1.5.15-for-2.6.10.tar.bz2 patches to a working directory.
  • copy into working directory the pre/post patches for FC3
  • cd to top of kernel tree ( /usr/src/redhat/BUILD/kernel-2.6.10/linux-2.6.10 or if linked: / usr/src/linux )
  • apply patches using: /<path to patches>/apply
  • to configure kernel, put copy of present .config file in current directory (top of kernel source), stock config files are in the configs directory of the kernel source.

make oldconfig

(accepting defaults for new features)

make xconfig

(or your favorite config method)

set the following (may not need all):

Power Management:

PM = Y

SOFTWARE_SUSPEND = Y

PM_STD_PARTITION = swap:/dev/hda3 (or where ever the swap partition resides.

Software Suspend 2:

SOFTWARE_SUSPEND2 = Y

SOFTWARE_SUSPEND_DEFAULT_RESUME2 = swap:/dev/hda3 (or where ever the swap partition resides)

all other swsusp2 items as Y (compiled in) except:

SOFTWARE_SUSPEND_KEEP_IMAGE

SOFTWARE_SUSPEND_DEBUG

SOFTWARE_SUSPEND_DEVELOPER

ACPI Support:

ACPI = Y

ACPI_SLEEP = y

ACPI_AC = M

ACPI_BATTERY = M

ACPI_BUTTON = M

ACPI_VIDEO = M

ACPI_FAN = Y

ACPI_PROCESSOR = Y

ACPI_THERMAL = Y

X86_PM_TIMER = Y

some other laptop support is enabled as modules

APM BIOS Support:

APM = N

CPU Frequency Scaling:

CPU_FREQ = Y

The rest is enabled as in the FC3 config

Character devices:

AGP Support:

AGP = M (changed from FC3)

all else enabled as modules

DRI support:

DRM = Y

All else enabled as modules

ACP Modem support:

MWAVE = M

HPET timer:

HPET = Y

USB support, as set in FC3 config, except:

USB_SUSPEND

NOTE: there is no CONFIG_X86_4G as mentioned in the directions, instead I turned off: CONFIG_HIGHMEM4G

  • in kernel top directory:

save .config somewhere, then

make

make modules_install

make install

(this puts kernel in /boot and fixes up /boot/grub/grub.conf to boot the new kernel, but check that you get what you want)

  • to patch the /boot/initrdxxxx file:

mkdir <somewhere>

cd <somewhere>

gzip -dc < /boot/initrd-2.6.10-prep.img | cpio -i

add bold " echo " command to the file " init " between the lines, as shown:

mount -t proc /proc /proc

setquiet

echo Mounted /proc filesystem

echo > /proc/software_suspend/do_resume

echo Mounting sysfs

then

find . | cpio -o -c | gzip -9 > boot/initrd-2.6.10-prep.img

  • install hibernate script package according to directions (unpack and run " install.sh " script)
  • Create/edit:

/etc/hibernate/hibernate.conf (set up hibernate)

/etc/acpi/actions/hibernate.sh (invoke hibernate, could be done in power.conf)

containing:

#!/bin/sh

logger "Starting hibernate from /etc/acpid/actions...."

/usr/local/sbin/hibernate

and

/etc/acpi/events/power.conf (define action on power switch)

containing:

event=button/power .*

action=/etc/acpi/actions/hibernate.sh

I did not set any action for the lid switch, because the screen is sometimes corrupted on display changes and this seems to be fixed by cycling the lid switch. Also, I want to be able to close the laptop and move it without hibernating.

If desired, set up sudo to allow users to hibernate. This is not needed for the power button action.

At this point, system will suspend/resume to disk (mode 5, not to ram mode 3), except that I find it fails to resume about 1/10 of the time. Here are the non-default hibernate.conf settings I am using:

UseSwsusp2 yes

Reboot no

EnableEscape yes

DefaultConsoleLevel 1

ImageSizeLimit 1024

SuspendDevice swap:/dev/hda3

PowerdownMethod 5

AsyncIOLimit 8

Verbosity 1

LogFile /var/log/hibernate.log

LogVerbosity 2

SaveClock yes

IncompatibleDevices /dev/dsp /dev/video*

UnmountFSTypes smbfs nfs

UnmountGraceTime 1

ChangeGrubMenu yes

OnResume 05 /sbin/rmmod button

OnResume 03 /sbin/modprobe button

UnloadModules floppy

UnloadBlacklistedModules yes

LoadModules auto

# NCF, leave off ath0, it is not found unless powered up

DownInterfaces eth0_Bigelow eth0_OSL eth0_Home eth0_Hydroid_NoDHCP eth0_DHCP

# NCF, auto tries to do eth0 first and chokes because ifcfg files are named

# by nickname, not device names and it can't find them all

# DownInterfaces auto

# UpInterfaces auto

SwitchToTextMode yes

UseDummyXServer yes

These settings are spread throughout the provided sample hibernate.conf file. Note the OnResume commands. I found that the button module does not work after resume, even though is was reloaded by LoadModules auto . It does work if reloaded very late in the resume sequence, as shown above.

NOTE: The above kernel compile and install likely disables the ATI driver fglrx kernel module. This is not such a bad thing, as suspend does not work with that module. To make the graphics work as well a possible, it seems to be best to reinstall the ATI driver, after the kernel compile, and then remove/rename the fglrx module, as noted below. I cannot resume with ATI driver properly installed. Furthermore, with the ATI rpm un-installed, only the generic VGA drivers run (maybe), and I can't run above 800x600.

If the ATI rpm is re-installed, it runs fine in all screen resolutions, and reports that it is running with fglrxinfo , but will not resume. If the module

/lib/modules/2.6.10-prep/kernel/drivers/char/drm/fglrx.ko

is removed, and depmod run (not sure if this is needed), and any loaded fglrx is unloaded, then display runs in 1600x1200, but reports MesaGL rather than ATI, and the X log shows that only 2D acceleration is active.

So, MesaGL is needed (or fglrx module must be omitted) to allow suspend/resume. To get full GL 3D support, must run with ATI driver active and forgo the ability to suspend.

3.4 DVD +R/W Recorder

I have not used the DVD a lot, yet. For cdrecord, device has to be ATA:0,1,0 not /dev/hdb. For XCDRoast, this can be set by adding the device manually in setup and specifying this directly. For K3b, I have not succeeded in getting parameters for cdrecord to work, although cdrdao seems to work.

Oddly, cdrecord fails with both K3b and XCDRoast, and yet if I invoke some cdrecord functions directly at the command line, they seem to work fine. I have not pursued this.

3.5 Synaptics Touchpad

I did not like the Synaptics touch pad set up. This is a very personal thing, of course. Some button/scroll emulation on the bottom edge caused Firefox to move fwd/backward by pages when I did not want that to happen. I Disabled this in / etc/X11/xorg.conf using output of

synclient -l

as a guide for settable parameters to add to xorg.conf . To make synclient work, I first had to set SHMConfig=1 in xorg.conf to get synclient to work; the default X installation had this set to SHMConfig=on , which is apparently not defined.

Enabled circular scroll starting to on right edge. Disabled taps! Yes!

The force stick on the keyboard seems to work fine in parallel with the touch pad. I did not have to change anything for this to work.

4.0 Supporting Files

See links below for supporting files.

4.2 /etc/hibernate/hibernate.conf

Suspend2 hibernate configuration

4.3 PDF version of This Document

PDF version of Fedora Core 3 on HP nw8000