jens.hatlak.de / Über mich    
Atari   PHP    
Dreamweaver Manual   Linux / R40 / Debian  
Akronyme   Mozilla   Notebook  
  SciTE   Samba  
  FASTA-Parser   Archos  
  Ich spreche...   Genius EM700  

R40 / Debian

IBM R40 2722-GDG/D Nachdem sich schon vier meiner Freunde dieses Modell bei NoFoSt geholt hatten und durchweg positiv berichteten, hatte auch ich mich dazu entschlossen, mir das Teil zu holen. Meinen alten Aquado hat jetzt ein Kollege aus dem Junetz-Adminteam von mir; wenn dazu also noch Fragen sind, die praktisches Arbeiten damit erfordern, ist das nach wie vor möglich.

Besonders hinweisen möchte ich auf die Homepage und Mailingliste zum Thema Debian testing/unstable auf dem IBM Thinkpad R40:

S-Video / TV-Out

Kurzanleitung:

  1. apt-get install atitvout
  2. Fernseher/S-Videogerät anschließen
  3. Reboot (das externe S-Video-Gerät muss von Anfang an angeschlossen sein)
  4. Auflösung mit Ctrl+Alt+Ziff.+/- oder xvidtune -prev/-next auf <= 800x600 ändern oder gleich X-Server mit Layout tv (siehe XF86Config unten) starten
  5. Als root die folgenden Kommandos:
    1. atitvout detect
      dort muss dann S-Video attached oder so (zweite Zeile) stehen, sonst geht 5.3/5.4 nicht und man muss wohl nochmal neu starten
    2. atitvout pal (PAL-Modus, außer man hat NTSC)
    3. atitvout -f t (Ausgabe auf Fernseher umschalten)
    4. atitvout -f l (Ausgabe auf Laptop zurück schalten)

Anmerkunng: auto und lt (Laptop+Fernseher) funktionieren mit der Radeon Mobility 7500, die im R40 verbaut ist, leider nicht. Auch kann diese Karte kein Composite-Signal ausgeben, sodass externe Lösungen oder echo S-Video-fähige Geräte erforderlich sind.

NumLock, rechte Steuerungs- und Navigationstasten

Folgende Xmodmap gibt die rechte Strg-Taste als F13 zur weiteren Verwendung frei (da der R30 keine Windows-Tasten hat, ist die rechte Strg-Taste, die ich sonst nie verwende, bei mir mit dem (Windows-/KDE-) Startmenü belegt worden) sowie die beiden Navigationstasten als F19 resp. F20. Außerdem wird die NumLock-Taste aktiviert, die sonst nicht funktioniert.

remove Control = Control_R
keycode 109 = F13

keycode 233 = F19 XF86Forward
keycode 234 = F20 XF86Back

keycode 77 = Num_Lock

Benutzt man jedoch TPB, werden die Navigationstasten standardmäßig von diesem Programm kontrolliert. In der aktuellen Version kann man sie jedoch von der Kontrolle des Programms ausnehmen, wenn man will. TPB ist aber ohnehin anzuraten, alleine schon wegen der Tasten für die Lautstärkeregelung, das OSD und die Definition der "Access IBM"-Taste (was bei mir unter Windows und Linux den Bildschirm sperrt).

autoifup

Folgendes Bootskript sorgt für eine Initialisierung der Interfaces eth0 und ath0 (Interfacename des für die WiFi-Funktionalität des R40 zuständigen Treibers madwifi).

Abhängigkeiten:

  1. pump (DHCP-Request)
  2. mii-diag (eth0-Linkstatus)
#!/bin/sh
#
#  File:    autoifup
#  Date:    11/13/2003
#
#  Start up interfaces eth0 and ath0 using DHCP
#  Try eth0 first (detect link status), then ath0
#
NODHCPIP='192.168.0.123'

if [ -x /usr/bin/id ]; then
    ID="/usr/bin/id"
elif [ -x /bin/id ]; then
    ID="/bin/id"
else
    echo "Unable to determine access level"
    exit 1
fi
WHOAMI=`$ID|sed -e 's/(.*//'`

# See how we were called.
case "$1" in
  start)
	echo -n "Starting up interfaces: "
	if [ "$WHOAMI" != "uid=0" ] ; then
		echo "Failed (super user access required)"
		exit 1
	fi
	echo -n "eth0 "
	ifconfig eth0 up
	echo -n "ath0 "
	ifconfig ath0 up
	echo
	INT=0
	trap "echo 'interrupted, continuing...'; INT=1" SIGINT
	echo -n "Setting up eth0... "
	/usr/sbin/mii-diag eth0 -s > /dev/null
	if [ $? == 2 ]; then
		echo -n "Failed. Trying ath0... ";
		/sbin/pump -i ath0 2> /dev/null
		if [ $INT == 1 -o $? == 1 ] ; then
			echo "Failed. Giving up.";
			exit 1;
		else
			echo "Successful: ath0 running on DHCP.";
			exit 0;
		fi
	else
		/sbin/pump -i eth0;
		if [ $? == 1 ]; then
			echo "No DHCP available. Setting up as $NODHCPIP.";
			ifconfig eth0 $NODHCPIP;
			exit 0;
		else
			echo "Successful: eth0 running on DHCP.";
			exit 0;
		fi
	fi
	;;
  stop)
	echo -n "Shutting down interfaces: "
	if [ "$WHOAMI" != "uid=0" ] ; then
		echo "Failed (super user access required)"
		exit 1;
	fi
	echo -n "eth0 "
	ifconfig eth0 down
	echo -n "ath0 "
	ifconfig ath0 down
	if [ $? == 1 ] ; then
		echo "Failed (ifconfig)"
		exit 1;
	fi
	;;
  status)
        iwconfig ath0
        ifconfig ath0
	ifconfig eth0
	pump -s
	;;
  restart|reload)
	$0 stop
	echo
	$0 start
	;;
  *)
	echo "Usage: $0 {start|stop|restart|reload|status}"
	exit 1
esac

exit 0

XF86Config

Die folgende X-Konfigurationsdatei für den R40 2722-GDG/G startet X standardmäßig mit 1400x1050 intern und extern (Clone). Das Touchpad wird in dieser Konfiguration vom synaptics-Treiber bedient, in den anderen jedoch von GPM (gepatchte Version, die mit Synaptics-Touchpads kommunizieren kann).

Section "Module"
        Load  "GLcore"
#        Load  "apm"
### synaptics driver has to be installed!
        Load  "synaptics"
        Load  "bitmap"
        Load  "dbe"
        Load  "ddc"
        Load  "dri"
        Load  "extmod"
        Load  "freetype"
        Load  "glx"
        Load  "int10"
        Load  "record"
        Load  "speedo"
        Load  "type1"
        Load  "vbe"
EndSection

Section "DRI"
    Mode	0666
EndSection

Section "Files"
  FontPath      "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"
  FontPath      "/var/lib/defoma/x-ttcidfont-conf.d/dirs/CID"
  FontPath      "/usr/X11R6/lib/X11/fonts/TrueType"
  FontPath      "/usr/X11R6/lib/X11/fonts/misc"
  FontPath      "/usr/X11R6/lib/X11/fonts/Speedo"
  FontPath      "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
  FontPath      "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
  FontPath      "/usr/X11R6/lib/X11/fonts/Type1"
  FontPath      "/usr/X11R6/lib/X11/fonts/TrueType/windows"
  FontPath      "/usr/X11R6/lib/X11/fonts/TrueType/larabie-straight"
  FontPath      "/usr/X11R6/lib/X11/fonts/TrueType/larabie-deco"
        RgbPath      "/usr/X11R6/lib/X11/rgb"
        ModulePath   "/usr/X11R6/lib/modules"
EndSection

Section "ServerFlags"
#       Option "AllowMouseOpenFail"
        Option "noPM"
        Option "BlankTime"   "99999"
        Option "StandbyTime" "99999"
        Option "SuspendTime" "99999"
        Option "OffTime"     "99999"
EndSection

Section "InputDevice"
    Identifier  "Tastatur"
    Driver      "keyboard"
    Option      "CoreKeyboard"
    Option      "XkbRules" "xfree86"
    Option      "XkbModel" "pc102"
    Option      "XkbLayout" "de"
    Option      "XkbVariant" "nodeadkeys"
EndSection

Section "InputDevice"
  Driver        "synaptics"
  Identifier    "Mouse[1]"
  Option        "Device"        "/dev/psaux"
  Option        "Edges"         "1900 5400 1800 3900"
  Option        "Finger"        "25 30"
  Option        "MaxTapTime"    "200"
  Option        "MaxTapMove"    "220"
  Option        "VertScrollDelta" "100"
  Option        "MinSpeed"      "0.02"
  Option        "MaxSpeed"      "0.18"
  Option        "AccelFactor"   "0.0010"
  Option        "TapButton1"    "1"
  Option        "TapButton2"    "2"
  Option        "TapButton3"    "3"
#  Option       "Repeater"      "/dev/ps2mouse"
#  Option       "SHMConfig"     "on"
EndSection

### For use with patched gpm
Section "InputDevice"
        Identifier  "Maus"
        Driver      "mouse"
        Option      "CorePointer"
        Option      "Protocol" "MouseSystems"
        Option      "Device" "/dev/gpmdata"
        Option      "Emulate3Buttons" "off"
        Option      "ZAxisMapping" "4 5"
EndSection

### USB mouse with scroll wheel
Section "InputDevice"
        Identifier  "MouseUSB"
        Driver      "mouse"
        Option      "Protocol"   "ImPS/2"
        Option      "Device"     "/dev/input/mice"
        Option      "ZAxisMapping" "4 5"
EndSection

Section "Monitor"
    Identifier  "CRT"
        Option "DPMS"
        HorizSync    60-75
        VertRefresh  30-90
EndSection

Section "Monitor"
    Identifier  "TV"
        Option "DPMS"
        HorizSync    50
        VertRefresh  50
EndSection

Section "Monitor"
    Identifier   "LCD"
    Option       "DPMS"
EndSection

Section "Device"
    Identifier   "Radeon"
    Driver       "radeon"
    Option       "SWcursor" "true"
    Option      "DRIReinit"
    Option      "ForcePCIMode" "false"
    Option      "AGPMode" "4"
EndSection

Section "Device"
    Identifier  "ATI_intern"
    VendorName  "ATI"
    Driver      "ati"
    Option      "AGPMode" "1"
    Option      "UseFBDev" "false"
    Option      "MonitorLayout" "LVDS,CRT"
    BusID       "PCI:01:0:0"
    Screen      0
    Option      "SWcursor" "true"
    Option      "DRIReinit"
    Option      "ForcePCIMode" "false"
    Option      "AGPMode" "4"
EndSection

Section "Device"
    Identifier  "ATI_extern"
    VendorName  "ATI"
    Driver      "ati"
    Option      "AGPMode" "1"
    Option	"UseFBDev" "false"
    Option	"MonitorLayout" "LVDS,CRT"
    BusID	"PCI:01:0:0"
    Screen 	1
    Option      "UseEdidFreqs"          "false"
    Option      "IgnoreEDID"            "true"
    Option      "NoDDC"                 "true"
    Option      "SWcursor" "true"
    Option      "DRIReinit"
    Option      "ForcePCIMode" "false"
    Option      "AGPMode" "4"
EndSection

Section "Device"
    Identifier  "ATI_clone"
    VendorName  "ATI"
    Driver      "ati"
    Option      "AGPMode" "1"
    Option      "UseFBDev" "false"
    Option      "MonitorLayout" "LVDS,CRT"
    Option	"CloneHSync"	"30.0-100.0"
    Option	"CloneVRefresh"	"50.0-160.0"
    Option	"OverlayOnCRTC2"
    BusID       "PCI:01:0:0"
    Screen      0
    Option      "SWcursor" "true"
    Option      "DRIReinit"
    Option      "ForcePCIMode" "false"
    Option      "AGPMode" "4"
EndSection

Section "Screen"
    Identifier  "Screen_intern"
    Device      "ATI_intern"
    Monitor     "LCD"
    DefaultDepth 16

    Subsection "Display"
        Depth 16
        Modes "1400x1050" "1280x1024" "1024x768" "800x600"
    EndSubsection
    Subsection "Display"
        Depth 24
        Modes "1400x1050" "1280x1024" "1024x768" "800x600"
    EndSubsection

EndSection

### Clone XGA
Section "Screen"
    Identifier "Screen_clone"
    Device "ATI_clone"
    Monitor "LCD"

    DefaultDepth 16

    Subsection "Display"
        Depth 16
        Modes "1024x768" "800x600"
    EndSubsection
EndSection

### 1400x1050 external (not all CRTs can do that!)
Section "Screen"
    Identifier "Screen_extern"
    Device "ATI_extern"
    Monitor "CRT"

    DefaultDepth 16

    Subsection "Display"
        Depth 16
	Modes "1400x1050" "1280x1024" "1024x786" "800x600"
    EndSubsection
EndSection

### TV: 800x600 max
Section "Screen"
    Identifier "Screen_tv"
    Device "Radeon"
    Monitor "TV"

    DefaultDepth 16

    Subsection "Display"
        Depth 16
	Modes "800x600" "640x480"
    EndSubsection
EndSection

### Clone 1400x1050
Section "ServerLayout"
    Identifier "intern"
    Screen "Screen_intern"
    InputDevice "Mouse[1]" "CorePointer"
    InputDevice "Tastatur" "CoreKeyboard"
    InputDevice "MouseUSB" "AlwaysCore"
EndSection

### Clone XGA
Section "ServerLayout"
    Identifier "clone"
    Screen "Screen_clone"
    InputDevice "Maus" "CorePointer"
    InputDevice "Tastatur" "CoreKeyboard"
    InputDevice "MouseUSB" "AlwaysCore"
EndSection

### Xinerama: 1400x1050 twice
Section "ServerLayout"
    Identifier	"dual"
    Option      "Xinerama" "On"
    Screen	"Screen_intern"
    Screen	"Screen_extern" LeftOf "Screen_intern"
    InputDevice	"Tastatur" "CoreKeyboard"
    InputDevice	"Maus" "CorePointer"
    InputDevice "MouseUSB" "AlwaysCore"
EndSection

### PAL TV
Section "ServerLayout"
    Identifier	"tv"
    Screen	"Screen_tv"
    InputDevice	"Tastatur" "CoreKeyboard"
    InputDevice	"Maus" "CorePointer"
    InputDevice "MouseUSB" "AlwaysCore"
    Option      "TVOut" "on"
    Option      "TVStandard" "PAL"
EndSection

 

Valid HTML 4.0!
Jens Hatlak
28. Februar 2004