Karlheinz Günster in Haag/Oberbayern



Zurück


Linux auf dem Notebook Highscreen LeBook Premium

Stand: März 2005

Mittlerweile läuft auf diesem altehrwürdigen Notebook Debian in der Version 3.1, dem derzeitigen Sarge. Zuvor waren SuSE 5.3, 6.3, 7.2 und Debian 3.0 installiert. Bei eBay gab es das Notebook recht günstig, so dass ich die Prozessoren von 90 bis 166 MHz testen konnte. Mein Exemplar ist aus dem Jahr 1997. Es hat einen Pentium 133 MHz-Prozessor, eine zehn Gigabyte große Festplatte, Disketten- und ein Mitsumi SR200S 20x CD-Laufwerk, und mittlerweile 128 Megabyte Speicher. Es geht aber auch mit 32 Megabyte. Dazu kommt eine zweite Festplatte und ein Akku und ein Netzteil. Leider passen die ganzen Sachen nicht gleichzeitig hinein, so dass ich öfter gezwungen ist, was umzustecken. Dafür ist es aber recht klein. Es besitzt einen 12,1 Zoll großen TFT-Bildschirm (ohne Fehler) für 800 mal 600 Pixel. Die Grafikkarte ist eine Trident 9385 mit 2 Megabyte.

Die Installation von Linux war bis auf eine Kleinigkeit bei SuSE-Linux 5.3, 6.2 und 6.3, 7.2 und Debian 3.0 problemlos, aber umso höher die Version wird, umso langsamer wird das Teil auch. Das Touchpad ist eine Standard-PS/2-Maus. Weiter sofort erkannt wurde PCMCIA mit Cirrus Logic PD6832 CardBus Controller, es laufen darin ein Eiger Ethernet LAN Adapter, ein Askey-Modem 1428VQC-T5 und eine Adaptec SlimSCSI 1460B-Karte.

Wegen dem Energiesparmodus, der aber auch unter Windows nicht gescheit funktionierte - das Gerät wollte ab und zu nicht mehr aufwachen -, sollte im BIOS das Power Management auf Disabled stehen. Leider ist es mir nie gelungen, Suspend to Disk zum Laufen zu bekommen. Einrichten ging, aber beim Wegschreiben auf die Platte geriet das Ganze ins Stocken und hing irgendwann. Die für Linux wesentlichen BIOS-Einstellungen schauen bei mir folgendermaßen aus (alles was nicht erwähnt ist, kann meiner Erfahrung nach beliebig eingestellt sein). Es meldet sich mit Phoenix NoteBIOS 4.0:

Menüpunkt Programmpunkt Einstellung
Main Large Disk Access Mode: Other
Advanced Plug & Play O/S: Disabled
Power Power Management: Disabled
Power Resume On Time: Disabled
Power Resume Time: 00:00:00
Power Resume On Modem Ring: Disabled

Nicht geschafft habe ich es, die zweite Festplatte als Slave einzurichten. Das ging nur als Master auf der rechten Seite, so dass eine zweite Platte und das CD-Laufwerk gleichzeitig nicht möglich sind, weil das CD-Laufwerk auch nur rechts Platz hat. Unter Windows habe ich Infrarot auch nicht verwendet, so dass ich nicht weiß, ob das läuft.

Bis zur Einrichtung des X-Servers gab es keine Probleme. Achtung! Beim Umschalten in den Grafikmodus wurde bei SuSE's saxdas Display gleichmäßig immer heller bis es weiß leuchtete. Bei SuSE habe ich gelesen, dass man das Gerät dann sofort abschalten oder den X-Server mit Ctrl-Alt-Backspace sofort killen soll, da sonst ein Hardwareschaden auftreten könnte. Deshalb trägt man in die XF86Config am besten die folgenden Werte gleich von Hand ein:

# XF86Config auto-generated by XF86Setup
#
# Copyright (c) 1996 by The XFree86 Project, Inc.

#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
# THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
# OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
#
# Except as contained in this notice, the name of the XFree86 Project shall
# not be used in advertising or otherwise to promote the sale, use or other
# dealings in this Software without prior written authorization from the
# XFree86 Project.
#

# See 'man XF86Config' for info on the format of this file

Section "Files"
   RgbPath    "/usr/X11R6/lib/X11/rgb"
   FontPath   "/usr/X11R6/lib/X11/fonts/local,/usr/X11R6/lib/X11/fonts/misc:unscaled"
   FontPath   "/usr/X11R6/lib/X11/fonts/75dpi:unscaled"
   FontPath   "/usr/X11R6/lib/X11/fonts/Type1,/usr/X11R6/lib/X11/fonts/URW"
   FontPath   "/usr/X11R6/lib/X11/fonts/Speedo,/usr/X11R6/lib/X11/fonts/misc"
   FontPath   "/usr/X11R6/lib/X11/fonts/75dpi,/usr/X11R6/lib/X11/fonts/100dpi"
   FontPath   "/usr/X11R6/lib/X11/fonts/100dpi:unscaled"
EndSection

Section "ServerFlags"
EndSection

Section "Keyboard"
   Protocol        "Standard"
   AutoRepeat      500 30
   LeftAlt         Meta
   RightAlt        Meta
   ScrollLock      Compose
   RightCtl        Control
   XkbKeycodes     "xfree86"
   XkbTypes        "default"
   XkbCompat       "default"
   XkbSymbols      "us(pc101)"
   XkbGeometry     "pc"
   XkbRules        "xfree86"
   XkbModel        "pc104"
   XkbLayout       "de"
EndSection

Section "Pointer"
   Protocol        "PS/2"
   Device          "/dev/psaux"
   BaudRate        1200
   Emulate3Timeout 50
   Resolution      100
   Emulate3Buttons
EndSection

Section "Monitor"
   Identifier      "Primary Monitor"
   VendorName      "Unknown"
   ModelName       "Unknown"
   HorizSync       31.5-37.9
   VertRefresh     45-60
   Modeline  "800x600"    36.00 800 824 896 1024 600 601 603 625
EndSection

Section "Device"
   Identifier      "Primary Card"
   VendorName      "Unknown"
   BoardName       "None"


EndSection

Section "Screen"
   Driver          "Accel"
   Device          "Primary Card"
   Monitor         "Primary Monitor"
   DefaultColorDepth 16
   BlankTime       0
   SuspendTime     0
   OffTime         0
   SubSection "Display"
      Depth        8
      Modes        "800x600"
   EndSubSection
   SubSection "Display"
      Depth        15
      Modes        "800x600"
   EndSubSection
   SubSection "Display"
      Depth        16
      Modes        "800x600"
   EndSubSection
   SubSection "Display"
      Depth        24
      Modes        "800x600"
   EndSubSection
   SubSection "Display"
      Depth        32
      Modes        "800x600"
   EndSubSection
EndSection

Section "Screen"
   Driver          "SVGA"
   Device          "Primary Card"
   Monitor         "Primary Monitor"
   DefaultColorDepth 16
   BlankTime       0
   SuspendTime     0
   OffTime         0
   SubSection "Display"
      Depth        8
      Modes        "800x600"
   EndSubSection
   SubSection "Display"
      Depth        15
      Modes        "800x600"
   EndSubSection
   SubSection "Display"
      Depth        16
      Modes        "800x600"
   EndSubSection
   SubSection "Display"
      Depth        24
      Modes        "800x600"
   EndSubSection
   SubSection "Display"
      Depth        32
      Modes        "800x600"
   EndSubSection
EndSection

Section "Screen"
   Driver          "VGA16"
   Device          "Primary Card"
   Monitor         "Primary Monitor"
   BlankTime       0
   SuspendTime     0
   OffTime         0
   SubSection "Display"
      Depth        4
      Modes        "800x600"
   EndSubSection
EndSection

Section "Screen"
   Driver          "VGA2"
   Device          "Primary Card"
   Monitor         "Primary Monitor"
   BlankTime       0
   SuspendTime     0
   OffTime         0
   SubSection "Display"
      Depth        1
      Modes        "800x600"
   EndSubSection
EndSection

Das Notebook läuft auch gut mit einem externem Monitor, da schafft die Grafikkarte sogar 768 mal 1024 Pixel. Dabei kann der entsprechende Eintrag in der XF86Config wie folgt ausschauen. Der Monitor war ebenfalls ein TFT, ein NEC Multisync, der auch korrekt eingetragen wurde, deshalb die 60 Hertz. Bei einer Farbtiefe von 8 und 16 Bit funktionierte das einwandfrei. Eine höhere Farbtiefe habe ich nicht verwendet, weil dann bei Programmen wie WordPerfect plötzlich die Icons eigenartig aussahen. Das hat aber mit dem Notebook nichts zu tun.

Section "Monitor"       
  Identifier    "Primary Monitor"
  VendorName    "NEC"
  ModelName     "MULTISYNC LCD 1500M"
  HorizSync     30-61
  VertRefresh   50-77
  Modeline "1600x1000" 120.85 1600 1616 1968 2080 1000 1000 1008 1044
  Modeline "1280x960" 101.50 1280 1296 1552 1664 960 960 969 1003
  Modeline "1024x768" 81.01 1024 1088 1264 1336 768 768 777 802
  Modeline "640x480" 32.03 640 656 720 832 480 480 486 501
  Modeline "1600x1200" 120.85 1600 1616 1968 2080 1200 1200 1208 1253
  Modeline "1280x1024" 101.50 1280 1296 1552 1664 1024 1024 1033 1070
  Modeline "1152x864" 91.26 1152 1168 1384 1496 864 864 873 902
  Modeline "800x600" 50.13 800 816 928 1040 600 600 607 626
EndSection

Section "Device"
  Identifier    "Primary Card"
  VendorName    "!!! GENERIC SERVER SELECTION !!!"
  BoardName     "TRIDENT"
EndSection

Section "Screen"  
  Driver        "SVGA"
  Device        "Primary Card"
  Monitor       "Primary Monitor"
  DefaultColorDepth     16
  SubSection "Display"
    Depth       32
    Modes       "640x480" 
  EndSubSection
  SubSection "Display"
    Depth       24
    Modes       "640x480" 
  EndSubSection
  SubSection "Display"
    Depth       16
    Modes       "1024x768" 
    Virtual     1024 768
  EndSubSection
  SubSection "Display"
    Depth       8
    Modes       "1024x768" 
  EndSubSection
EndSection


Section "Screen"  
  Driver        "Accel"
  Device        "Primary Card"
  Monitor       "Primary Monitor"
  DefaultColorDepth     16
  SubSection "Display"
    Depth       32
    Modes       "640x480" 
  EndSubSection
  SubSection "Display"
    Depth       24
    Modes       "640x480" 
  EndSubSection
  SubSection "Display"
    Depth       16
    Modes       "1024x768" 
    Virtual     1024 768
  EndSubSection
  SubSection "Display"
    Depth       8
    Modes       "1024x768" 
  EndSubSection
EndSection

Die Soundkarte, eine ES 1878, habe ich mit OSS zum Laufen bekommen. In der /sbin/init.d/boot.local befindet sich ein Eintrag zum Starten davon:

#! /bin/sh
#
# Copyright (c) 1996 SuSE GmbH Nuernberg, Germany.  All rights reserved.
#
# Author: Florian La Roche <florian@suse.de>, 1996
#         Werner Fink <werner@suse.de>, 1996
#         Burchard Steinbild <bs@suse.de>, 1996
#
# /sbin/init.d/boot.local
#
# script with local commands to be executed from init on system startup
#
. /etc/rc.config
#
# Here you should add things, that should happen directly after booting
# before we're going to the first run level.
#
# Sound aktivieren
/opt/oss/soundon
# Damit das Notebook nicht losbrüllt, wird zuerst mit
# aumix die Lautstärke eingestellt
/usr/bin/aumix -f /etc/aumixrc -L
#
# Festplattenparameter für Standby auf 20 Minuten, 32bit-Zugriff und die Werte
# auch behalten. 
hdparm -S120 -c1 -k1 /dev/hda
#

Trotz im BIOS stillgelegtem Power-Management funktioniert die Abschaltung. Dafür gibt es das Programm xautolock, das ich so aufrufe:


$ xautolock -time 30 -locker 'apm -s' -notify 120 &

Das wird nach 30 Minuten aktiv, führt apm -s aus, das bedeutet Suspend, und benachrichtigt zwei Minuten vor der Abschaltung mit einem Piep. Ein großes S, also apm- S, bedeutet Standby.

Bei Benutzerwechsel deaktiviere ich das mit:

$ killall xautolock

Eingebaut ist das in Autostart und Logout-Skripte.

Der Monitor lässt sich sofort mit

$ xset dpms force off

ausschalten

Die zweite Festplatte mounte ich mit einem Eintrag in /etc/su1.priv, so dass ein Eintrag in einem Menü mit su1 vol2mount, oder su1 vol2umount, ausreicht.

Gerade bei einem Notebook kann man nicht immer davon ausgehen, dass ein Server in der Nähe ist. Deshalb befindet sich in Autostart des Benutzers ein Skript, das -in meinem Fall - die Existenz zweier Server prüft, dann Verzeichnisse mounted und einen Link auf das Mail-Verzeichnis des Servers legt. Es kann auch mit dem Parameter umount aufgerufen werden. Das geschieht übers Menü, wenn man das Gerät im laufenden Betrieb abstöpseln will. Zum Verständnis: die beiden Server heißen mimoculo und radjah. Es wird beim mounten und unmounten mit su1 nfs-mount $USER aufgerufen. Je nach Zustand - ist gemounted, dann unmounted es und umgekehrt - tut es das Gegenteil. Gezielt kann man ihm aber den Parameter mount oder umount angeben.


#!/bin/bash
# Netzlaufwerke vom Server mounten
#
# Mount
#
function mount-nfs {
  if [ "$mounted" = "no" ]; then
    #
    # mimoculo?
    if [ "$server" = "mimoculo" ]; then
      # Die Verzeichnisse mounten:
      echo "Mounting $server home..."
      mount /mnt/$server/home
      echo "Mounting $server opt..."
      mount /mnt/$server/opt
      echo "Mounting $server tmp..."
      mount /mnt/$server/tmp
      echo "Mounting $server cdrom1..."
      mount /mnt/$server/cdrom1
      echo "Mounting $server cdrom2..."
      mount /mnt/$server/cdrom2
      echo "Mounting $server floppy..."
      mount /mnt/$server/floppy
      echo
      echo "$server directory mounted."
      echo "Updating... Please Wait."
      # Gemeinsam benutzte Dateien, wie Adressbücher und so weiter,
      # aktualisieren. Das geschieht hier nur in einer Richtung!
      cp -Rfvu /mnt/mimoculo/opt/Public/* /tmp/gemeinsam
      #
      # Einstellungen des Notebooks sichern
      # Sichern von /etc und /var/spool mit einem extra Skript
      echo
      echo "Saving config files..."
      /usr/local/bin/sichern &
      echo
      echo "Finished."
      #
      echo
    fi
    #
    # radjah?
    if [ "$server" = "radjah" ]; then
      echo "Mounting $server home..."
      mount /mnt/$server/home
      echo "Mounting $server opt..."
      mount /mnt/$server/opt
      echo "Mounting $server tmp..."
      mount /mnt/$server/tmp
      echo "Mounting $server cdrom1..."
      mount /mnt/$server/cdrom1
      echo "Mounting $server cdrom2..."
      mount /mnt/$server/cdrom2
      echo "Mounting $server cdrom3..."
      mount /mnt/$server/cdrom3
      echo "Mounting $server floppy..."
      mount /mnt/$server/floppy
      echo
      echo "$server directory mounted."
    fi  
    #
  else
    echo
    echo "$server directory already mounted."
        echo
  fi
  # Mail-Verzeichnis verlinken
  test -e /home/$name/Mail && echo "Remove existing Mail-Link.";\
    rm /home/$name/Mail
  echo "Creating new Mail-Link for $name to $server."
  ln -s /mnt/$server/home/$name/Mail ~/Mail
  #
  # Zeit syncronisieren
  echo "Syncronize time with $server"
  /usr/sbin/netdate $server
  # und niederschreiben
  /sbin/clock -uw
# Ende function mount-nfs
}

# Umount
function umount-nfs {
  if [ "$mounted" = "yes" ]; then
    # mimoculo?
    if [ "$server" = "mimoculo" ]; then
      echo "Unounting $server home..."
      umount /mnt/$server/home
      echo "Unounting $server opt..."
      umount /mnt/$server/opt
      echo "Unounting $server tmp..."
      umount /mnt/$server/tmp
      echo "Unounting $server cdrom1..."
      umount /mnt/$server/cdrom1
      echo "Unounting $server cdrom2..."
      umount /mnt/$server/cdrom2
      echo "Unounting $server floppy..."
      umount /mnt/$server/floppy
      echo
      echo "$server directory unmounted."
      #
    fi
    #
    # radjah?
    if [ "$server" = "radjah" ]; then
      echo "Unounting $server home..."
      umount /mnt/$server/home
      echo "Unounting $server opt..."
      umount /mnt/$server/opt
      echo "Unounting $server tmp..."
      umount /mnt/$server/tmp
      echo "Unounting $server cdrom1..."
      umount /mnt/$server/cdrom1
      echo "Unounting $server cdrom2..."
      umount /mnt/$server/cdrom2
      echo "Unounting $server cdrom3..."
      umount /mnt/$server/cdrom3
      echo "Unounting $server floppy..."
      umount /mnt/$server/floppy
      echo
      echo "$server directory unmounted."
    fi
  else
    echo
    echo "$server directory not mounted."
    echo
  fi
}
#
# Parameter
name=$1
zutun=$2
#
echo "User: $name $zutun"
# Server mimoculo
# mimoculo's Adresse
server1num="192.168.10.10"
server1nam="mimoculo"
#
# radjah's Adresse
server2num="192.168.10.49"
server2nam="radjah"
#
server="no"
#
# Server 1 erreichbar?
ping $server1num -c 1 -w 1 | grep -q -n "100% packet loss"

if [ "$?" = "1" ]; then
  server=$server1nam
fi

#
# Server 2 erreichbar?
ping $server2num -c 1 -w 1 | grep -q -n "100% packet loss"

#echo $server2nam: $?

if [ "$?" = "1" ]; then
  server=$server2nam
fi

echo Server is: $server
echo "/mnt/"$server > /tmp/server

if [ "$server" = "no" ]; then
  echo
  echo "No Server found."
  # Datei mit Namen des Servers loeschen und neu aber leer anlegen.
  test /tmp/server && rm /tmp/server
  touch /tmp/server
  echo

  # Achtung! Das funktioniert nicht immer. Deshalb benutze ich es nicht:
  # Aber vielleicht klappt es ja bei jemand anderem.
  #
  #  echo "Restarting Network."
  #  sleep 5
  #  /sbin/init.d/pcmcia restart
  #  /sbin/init.d/network restart
  #  /sbin/init.d/route stop
  #  /sbin/init.d/route start
  #
  exit 0
fi

#
# Sonst gehts weiter.
#
# Ist bereits gemounted?
mounted="no"
mount | grep -w $server > /dev/null
#
if [ $? = 0 ]; then
  mounted="yes"
else
  mounted="no"
fi
#
echo mounted? $mounted
#

# Kein Parameter, dann mounten wenn nicht gemounted und umgekehrt.
if [ "$zutun" = "" ]; then
echo $zutun 'ist leer'
  if [ "$mounted" = "yes" ]; then
    umount-nfs
  else
    mount-nfs
  fi
  echo
  sleep 3
  echo
  exit 0
fi

# Mit Parameter mount oder umount
if [ "$zutun" = "mount" ]; then
  mount-nfs
else
  umount-nfs
fi
#
#
echo
sleep 3
echo


Nach oben

Dieser Text kann heruntergeladen werden. (Bei Datensalat rechte Maustaste drücken -> Link speichern als...). Informationen zu vielen anderen Notebooks mit Linux gibt es auf der Seite von TuxMobil.org. Texte und Bilder sind urheberrechtlich geschützt.