11 Nov 2005 msevior   » (Master)

Shiny new IBM T43 laptop and Fedora core 4.

I have a cool new IBM T43 laptop. It's, thin, light, fast and runs for 3.5 hours on batteries. My sys-admin guys configured it to have a dual-boot win XP and "blank" where they left it to me install "blank".

I decided to install Fedore Core 4 because I had found it to be a btter distro for development although it was a close run with ubuntu. (I also love Marc's fantastic AbiWord support for Fedore Core.)

OK after some mucking around I finally have it configured to be pretty much perfect.

Firstly, most things "Just worked" out of the box on Fedora Core 4.

What didn't work were:

1. All the cool patent/proprietry protected stuff. (mp3, java, flash, videos)

2. Wireless (needs the ipw2200 firmware for the Intel centrino)

3. ATI proprietry drivers.

4. ntfs filesystem support.

5. Suspend to RAM.

6. External Display

Firstly after installing FC4 from a DVD drive do yum update

Come back next day...

Next install the goodies Redhat leaves out of Fedora because of patent rubbish.

See:

http://www.fedorafaq.org/#installsoftware

Follow the directions to get mp3's, mplayer, java and flash working nicely.

To get wireless working goto:

http://ipw2200.sourceforge.net/firmware.php

and install version 2.2 in /lib/firware

To get the ati and ntfs working follow the directions given in http://www.fedorafaq.org

Which brings me to how to get suspend-to-ram going. This was a real pain. The T43 has this cool SATA disk-drive which I believe is means of employing scsi disks in a laptop. This works really nicely as a development system. Recompiling AbiWord is very fast on this nice little laptop.

Unfortunately Linux does not yet support power-management for SATA systems. There is a kernel patch to support it. You can find pointers to it here.

http://www.thinkwiki.org/wiki/Problems_with_SATA_and_Linux

To make suspend-to-RAM work you have to apply a patch to the kernel. I followed the instructions on how to do this woth fedora here:

http://forums.fedoraforum.org/showthread.php?t=29434"

And used the patch for 2.6.13-rc5. This worked with a few offsets.

I then copied the ntfs and the ati kernel module to the new /lib/modules/kernel directory and ran depmod.

Next my grub.conf needed an extra kernel line to enable suspend-to-RAM

kernel /vmlinuz-2.6.13-martin1 ro root=LABEL=/ rhgb quiet acpi_sleep=s3_bios

OK finally put together the following sleep.sh

-----------------------------------------------------------------------------------

#!/bin/sh # if launched through a lid event and lid is open, do nothing

echo "$1" | grep "button/lid" && grep -q open

/proc/acpi/button/lid/LID/state && exit 0

# remove USB 1.1 driver

rmmod uhci_hcd # sync filesystem and clock

sync

/sbin/hwclock --systohc

# switch to console

FGCONSOLE=`fgconsole`

chvt 6

/usr/sbin/radeontool light off

/usr/bin/dbus-send --system --dest=org.freedesktop.NetworkManager --type=method_call /org/freedesktop/NetworkManager org.freedesktop.NetworkManager.sleep

/sbin/hwclock --systohc

# go to sleep

echo -n 3 > /proc/acpi/sleep

# readjust the clock (it might be off a bit after suspend)

/sbin/hwclock --adjust

/sbin/hwclock --hctosys

# reload USB 1.1 driver

modprobe uhci_hcd

# turn on the backlight and switch back to X

radeontool light on

chvt $FGCONSOLE

/usr/bin/dbus-send --system --dest=org.freedesktop.NetworkManager --type=method_call /org/freedesktop/NetworkManager org.freedesktop.NetworkManager.wake

-------------------------------------------------------------------

and call it in /etc/acpi/events/lid.conf and

/etc/acpi/events/sleep.conf

-------------------------------------

event=button/lid

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

------------------------------------

and

---------------------------------------

event=button/sleep

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

-------------------------------------

The final thing was to make sure the external display worked. For this my xorg.conf is as is shown below:

Notice that the driver used is the "radeon" rather than the proprietry "fglrx". This was because I couldn't get the "fglrx" driver to recover after a suspend to RAM. There are rumours on the net about how to do this but I haven't had the time or patience to track them down yet.

So all in all it has taken a LOT of tweaking to get this laptop to work up to the level of winXP in Fedora Core.

I hope all this info is useful to the Fedora Core community. I no longer have the time to keep up with the email on the FC-devel or FC-user mailing lists. I hope that the FC community is interested in making Fedora "Just work" on laptops. It's clear that we still have a long way to go.

Comments Here

------------------------------------------------------------------------ # Xorg configuration created by system-config-display

Section "ServerLayout"

Identifier "Multihead layout"

Screen 0 "Screen0" LeftOf "Screen1"

Screen 1 "Screen1" 0 0

InputDevice "Mouse0" "CorePointer"

InputDevice "Keyboard0" "CoreKeyboard"

InputDevice "Synaptics" "AlwaysCore"

Option "Xinerama" "off"

Option "Clone" "on"

EndSection

Section "Files"

# RgbPath is the location of the RGB database. Note, this is the name of the

# file minus the extension (like ".txt" or ".db"). There is normally

# no need to change the default.

# Multiple FontPath entries are allowed (they are concatenated together)

# By default, Red Hat 6.0 and later now use a font server independent of

# the X server to render fonts.

RgbPath "/usr/X11R6/lib/X11/rgb"

FontPath "unix/:7100"

EndSection

Section "Module"

Load "dbe"

Load "extmod"

Load "fbdevhw"

Load "glx"

Load "record"

Load "freetype"

Load "type1"

Load "synaptics"

# Load "dri"

EndSection

Section "InputDevice"

# Specify which keyboard LEDs can be user-controlled (eg, with xset(1))

# Option "Xleds" "1 2 3"

# To disable the XKEYBOARD extension, uncomment XkbDisable.

# Option "XkbDisable"

# To customise the XKB settings to suit your keyboard, modify the

# lines below (which are the defaults). For example, for a non-U.S.

# keyboard, you will probably want to use:

# Option "XkbModel" "pc102"

# If you have a US Microsoft Natural keyboard, you can use:

# Option "XkbModel" "microsoft"

#

# Then to change the language, change the Layout setting.

# For example, a german layout can be obtained with:

# Option "XkbLayout" "de"

# or:

# Option "XkbLayout" "de"

# Option "XkbVariant" "nodeadkeys"

#

# If you'd like to switch the positions of your capslock and

# control keys, use:

# Option "XkbOptions" "ctrl:swapcaps"

# Or if you just want both to be control, use:

# Option "XkbOptions" "ctrl:nocaps"

# Identifier "Keyboard0"

Driver "kbd"

Option "XkbModel" "pc105"

Option "XkbLayout" "us"

EndSection

Section "InputDevice"

Identifier "Mouse0"

Driver "mouse"

Option "Protocol" "IMPS/2"

Option "Device" "/dev/input/mice"

Option "ZAxisMapping" "4 5"

Option "Emulate3Buttons" "yes"

EndSection

Section "InputDevice"

Identifier "Synaptics"

Driver "synaptics"

Option "Device" "/dev/input/mice"

Option "Protocol" "auto-dev"

Option "Emulate3Buttons" "yes"

EndSection

Section "Monitor"

Identifier "Monitor0"

VendorName "Monitor Vendor"

ModelName "IBM 9514-B TFT Panel"

HorizSync 48.0 - 65.0

VertRefresh 60.0 - 75.0

Option "dpms"

EndSection

Section "Monitor"

Identifier "Monitor1"

VendorName "Monitor Vendor"

ModelName "External- generic"

HorizSync 31.5 - 57.0

VertRefresh 50.0 - 70.0

Option "dpms"

EndSection

Section "Device"

Identifier "Videocard0"

Driver "radeon"

VendorName "Videocard vendor"

BoardName "ATI Radeon Mobility M300"

# Option "VideoOverlay" "on"

Option "DynamicClocks" "on"

Screen 0

EndSection

Section "Device"

Identifier "Videocard1"

Driver "radeon"

VendorName "Videocard Vendor"

BoardName "ATI Radeon Mobility M300"

# Option "VideoOverlay" "on"

Option "DynamicClocks" "on"

Screen 1

EndSection

Section "Screen"

Identifier "Screen0"

Device "Videocard0"

Monitor "Monitor0"

DefaultDepth 24

SubSection "Display"

Viewport 0 0

Depth 16

Modes "1280x1024" "1024x768" "800x600" "640x480"

EndSubSection

SubSection "Display"

Viewport 0 0

Depth 24

Modes "1400x1050" "1280x960" "1280x800" "1280x1024" "1152x864" "1024x768" "800x600"

EndSubSection

EndSection

Section "Screen"

Identifier "Screen1"

Device "Videocard1"

Monitor "Monitor1"

DefaultDepth 24

SubSection "Display"

Viewport 0 0

Depth 24

Modes "1024x768"

EndSubSection

EndSection

Section "DRI"

Group 0

Mode 0666

EndSection

------------------------------------------------

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!