RedHat 7.3 on Inspiron 8200

What Works (right now, for me!)

Colorcodes (requires CSS to work, so if you can't see colors, donwload mozilla):

ColorMeaning
Works
Have been made to work
Havent tried that
Could NOT make it work

Feature Redhat 7.3 (out of box) Linux 2.4.19 Win2K
CPU/RAM OK OK OK
HD OK OK OK
DVD (data mode) OK OK OK
Floppy bay-drive OK OK OK
Onboard Ethernet OK OK OK
IrDA OK OK OK
Touchpad OK OK OK
Mouse Stick OK OK OK
Analog Audio OK OK OK
USB OK Using "uhci", not "usb-uhci" OK
PCMCIA OK OK OK
Dell TrueMobile 1150
128-bit crypto, 104 bit key
OK Using orinoco_cs, not vmwlan (driver on CD)
X/Video driver Requires nVidia Driver Requires nVidia Driver (Driver on CD, PAIN IN THE ASS TO INSTALL!)
DVD playback Requires player, deCSS Requires player, deCSS WinDVD included
FireWire untested untested untested
TV-out With nVidia Driver, and proper XF86Config-4 With nVidia Driver, and proper XF86Config-4 untested
WinModem not out of box Requires Conexant drivers I failed to make it work

Install

  1. Backup the stuff on the first partition (Dell Utility Partion), I have no clue what it is!
  2. Make sure the boot order is correctly set in the "bios" (use F2 when powering up)
  3. Insert Redhat 7.3 CDROM 1 (or network boot diskette)
  4. Select whichever install method you like (possibly laptop)

    I have left a 640Mb partition at the beginning for suspend2disk, but havent really got that to work yet.

    I chose "custom" and checked the "select packages idividually" box, so I could check the "everything" box, and get on with the install

  5. Network setup
  6. If you got the Dell TrueMobile 1150, just set "eth1" to not be enabled at boot
  7. When you get to setup X: it will not work!
    1. Just setup X, saying you got a GeForce 4
    2. Set Screen to generic laptop 1600x1200 (or whatever you have)
    3. Set "text login", not: "graphical"
  8. Complete installation (3.6Gb) took roughly 50 minutes from CD's
  9. Download linux drivers for nVidia. I DL'ed:
    1. NVIDIA_GLX src-rpm
    2. NVIDIA_kernel src-srm
  10. Use
    rpm --rebuild X.src.rpm
    to recompile these SRPMS, (see nVidia and APM)
  11. Install the produced RPMS
  12. Change
    Driver "nv"
    to
    Driver "nvidia"
    in /etc/X11/XF86Config-4
  13. Setup sound by runnnig
    sndconfig
    It should work without any hazzle.

Tweaking Hardware

Nvidia and APM

Apparently the nVidia GeForce 4 Go cards have issues with APM. Following instructions on the web I:

  1. changed the NVIDIA_kernel code, making the driver ignore some APM checks
  2. Produced a SRPM of the original NVIDIA_kernel SRPM by changing the SPEC file.

Palm and IrDA

My Palm m505 integrates nicely with the IrDA stuff in the inspiron. Simple

  1. open
    /etc/sysconfig/irda
  2. change
    IRDA=no
    DEVICE=/dev/ttyS2
    
    to
    IRDA=yes
    DEVICE=/dev/ttyS1
    
  3. Fire up your Palm-tool, I use gnome-pilot. Just cancel the setup daemon (it crashes) and set everything up from the normal "devices setup" in "pilot link settings"

WinModem

After searching the web for a while, I found out that the WinModem in my inspiron 8200 is an HSF softmodem. Fortunatly, Conexant Systems Inc. has teamed up with MBSI and Open Source developers to provide a driver, available from MBSI.
  1. Download the SRPMS (preferably a newer version)
  2. do:
    rpm --rebuild hsflinmodem-5.03.03.L3mbsibeta02062500-1.src.rpm
    rpm -Uvh hsflinmodem-5.03.03.L3mbsibeta02062500-1.i386.rpm \
             hsflinmodem-doc-5.03.03.L3mbsibeta02062500-1.i386.rpm
    

Adding a USB mouse for use in X11

Adding a second USB mouse is pretty easy. Add

        InputDevice    "MouseUSB" "SendCoreEvents"
To the "ServerLayout" section of /etc/X11/XF86Config-4, and
Section "InputDevice"
        Identifier  "MouseUSB"
        Driver      "mouse"
        Option      "Protocol" "imps/2"
        Option      "Device" "/dev/input/mice"
        Option      "ZAxisMapping" "4 5"
        Option      "Emulate3Buttons" "no"
EndSection
Next to the InputDevice section that defines the normal mouse.

Beginning from redhat-8, kernel-2.4.19, the mouse is found by X11, even though it's plugged in AFTER the X11 server is started (well, it work for me now :)

Setting up WLAN

I wanted to use the orinoco driver for the Dell 1150 TrueMobile lan-card. Do, I changed /etc/modules.conf to include:

alias eth1 orinoco_cs
but that was apparently not enough, you also need to change /etc/pcmcia/config lines from:
card "Intersil PRISM2 11 Mbps Wireless Adapter"
  manfid 0x0156, 0x0002
  bind "wvlan_cs"
to
card "Intersil PRISM2 11 Mbps Wireless Adapter"
  manfid 0x0156, 0x0002
  bind "orinoco_cs"

Ensuring the correct initialization order of LAN and WLAN

Apparently, the internal LAN and WLAN cards gets mapped to eth0 and eth1 in a more or less nonteterministic manner. To ensure the LAN to be eth0 and the internal WLAN to be eth1, add the following to /etc/conf.modules:

pre-install orinoco_cs modprobe eth0

Speed Stepping

The Linux CPUFreq project supports Intel-Speedstep(R).

Install the code (patched for your kernel) as per their instructions. See Section: APM Setup for an example usage that steps the CPU speed depending on whether you are running on AC or battery.

Setting up USB

The "usb-uhci" USB-kernel module generates errors, and seems to work less optimally than the "uhci" module, so compile your kernel with the "uhci alternate driver (JE)" module (CONFIG_USB_UHCI_ALT), and in /etc/modules.conf, replace:

alias usb-controller usb-uhci
with
alias usb-controller uhci

Make the multimedia keys work

  1. The four CD-control keys
    1. Add the following to /etc/X11/Xmodmap
      keycode 129 = XF86AudioPlay
      keycode 130 = XF86AudioStop
      keycode 131 = XF86AudioPrev
      keycode 132 = XF86AudioNext
      
    2. use your window-manager to bind these new keys to relevant commands, i.e:
      xmms --play-pause
      xmms --stop
      xmms --rew
      xmms --fwd
      
  2. Volume keys
    1. Download and install i8kutils from http://people.debian.org/~dz/i8k, or find an RPM somewhere
    2. Install the i8kbuttons daemon startup script into /etc/init.d.
    3. Perform
      chkconfig --add i8kbuttons
      
      The service will not auto-start when the computer boots. You can start it right now with
      service i8kbuttons start
      

APM setup

in /etc/sysconfig/apmd set:
PCMCIARESTART="no"
PCMCIABIOSBUG="no"
PCMCIAWAIT="no"
LOCK_X="no"
NET_RESTART="no"
DELAYSUSPEND="3s"
And I have also edited /etc/sysconfig/apm-scripts/apmcontinue to:
  1. Speedstep the CPU if the "CPUfreq" patches have been applied to the kernel
  2. Reload the internal WLAN card with appropriate delay, such that it actually WORKS when returning from suspends (well, it does sometimes)
  3. Try to tell kupdated to stop flushing all the time (im not sure that actually helps)
  4. Invoke /root/apm_suspend_constrol when the battery becomes low

Low battery handling

See the Section: APM Setup for the requiered actions to invoke the below script.

I wrote a script for handling low battery conditions, it is supposed to be invoked with "--suspend" when the APM "low battery" event occurs.

It calculates a number of minutes until the computer should suspend, warn's everybody via "wall" and then suspends when the set number of minutes has elapsed.

If AC is restored, you should invoke the script with "--cancel", which will cancel the suspend.

#!/bin/sh
#set -x

pids_of_apmsuspend=`ps ax | grep apm_suspend_control | grep -v grep | grep -v $$ | awk '{ print $1; }'`

for pid in $pids_of_apmsuspend; do
  kill $pid >&/dev/jnull

done

case $1 in
  --suspend)
    minutes=`apm --minutes | sed -e 's/^.*(\([0-9][0-9]*\)[ ]*min.*$/\1/g'`
    suspend_minutes=`echo "$minutes - 5" | bc`
    wall <<EOF
**************************************************************************
 LOW BATTERY LOW BATTERY LOW BATTERY LOW BATTERY LOW BATTERY LOW BATTERY

  The computer will suspend in $suspend_minutes minutes
  unless you attach AC-power
**************************************************************************
EOF
    suspend_seconds=`echo "$suspend_minutes * 60" | bc`
    sleep "$suspend_seconds"
    apm --suspend
     ;;
  --cancel)
    # nothing to do, we have already killed the other processes
wall <<EOF
*************************************************************************
  AC POWER RESTORED, suspend cancelled
*************************************************************************
EOF
     ;;
esac

TODO

  1. Make hibernate work
  2. Find out how to trigger suspend-to-disk (hibernate) from software/keyboard

Problems

  1. Dell's W2K driver for the builtin softmodem crashes W2K
  2. Builtin mouse-pad changes between ps/2 and imps/2 protocol depending on whether an external PS mouse is attached

External Advice

Stuff I heard on the net, and have tried but not completed or will try later.

Hibernate

  1. http://theory.gsi.de/~vanhees/dell-inspiron/, Refers to a zip file on Dell:
  2. http://support.euro.dell.com/de/de/filelib/download/index.asp?fileid=R22768, download RH7S2d.exe to /tmp from there
  3. Unpack with:
  4. Write s2d.img to a floppy using:
  5. Delete all partitions, fdisk is on the floppy
  6. Run mks2d (takes forever, about 4 min. on my 1.6Ghz P4, 512Mb RAM)
  7. Create whatever WIN/DOS partitions you want (remember W2K cannot be on extended!