Symbol
MARC A. HANEFELD
http://doc-hanefeld.de/
Schnecken-Navi

-> doc-hanefeld.de  || Debian-Linux-Tips

[Debian-Linux]

Linux

Diese Seite beschäftigt sich mit meinen persönlichen "Must-Have"-Konfigurationen in einem Linux-System, also mit Herstellen von persönlichem Komfort. Dies mag nicht für jeden das richtige sein, aber vielleicht hilft es ja einzelnen Usern bei der Einstellung ihrer Linux-Boxen.

Historie

Seit etwa 1998 arbeite ich regelmäßig mit Linux-Systemen. Meine erste Distribution war SuSE Linux 6.4 auf meinem Arbeitsplatzrechner. Auf diesem hatte ich auch mit Mandrake Linux zu tun (heute Mandriva). Als ADSL verfügbar wurde, habe ich erstmals einen Router mit fli4l aufgesetzt, zunächst nur als Disketten-Version, dann auch als Festplatten-Installation mit Zusatz-Features (damals auf einem Pentium-I mit 133 MHz und 32 MB Speicher).

Um Portforwarding und Ähnliches zu realisieren, wollte ich dann auf iptables zurückgreifen, was aber erst ab Kernel-Version 2.4.* zur Verfügung steht, während fli4l auf Kernel 2.2 aufsetzte. Deshalb und wegen des zusätzlichen Vorteils einer höheren Flexibilität habe ich die sehr schlanke Slackware-Distribution aufgesetzt, die lange Zeit problemlos und stabil lief. Bis eines Tages die (zugegebenermaßen recht alte) Festplatte crashte.

2003 habe ich dann bei einem Freund Debian kennen gelernt. Von dem Paketkonzept, der Schlankheit und der Möglichkeit einfacher Sicherheits-Updates war ich sofort angetan, und da ich sowieso einen neuen Router/Server aufsetzen mußte, stieg ich auf diese Distribution um. Seit 2003 läuft bei mir also der Server "gandalf" erst unter Debian "woody", mittlerweile unter "sarge". Mein Arbeitsplatzrechner hat neben einer Windows-Installation außerdem ebenfalls Debian sarge als Betriebssystem. Und um meine favorisierten Einstellungen in diesem System geht's im Folgenden.

Auflösung der Textkonsole mit Framebuffer verändern

Gerade wenn man einen Router/Server aufsetzt, ist man oft gezwungen, Konfigurationsdateien über der Kommandozeile zu editieren. Eine große Schrift ist schön, schadet aber der Übersicht. Um die Auflösung auf der Kommandozeile zu ändern, greife ich auf den Framebuffer zurück, und zwar auf den (langsamen, aber dafür sehr stabilen) VESA-Framebuffer:

Zunächst muß VESA Framebuffer im Kernel vorhanden sein. Steht /dev/fb0 zur Verfügung, ist dies der Fall. Außerdem kann man in /boot/config[Kernel-Nummer] nach der Einstellung suchen bzw. bei selbst kompiliertem Kernel unter /usr/src/linux/.config. Alle neueren Grafikkarten ab VESA BIOS 2.0 sollten sich mit diesem Modus betreiben lassen.

VESA Framebuffer kann nur beim Systemstart aktiviert werden. Bei der Auswahl des Modus hilft folgende Tabelle:

Videomodes im VESA Framebuffer
Farbe/Auflösung 640x480 800x600 1024x768 1280x1024
256 0x301 0x303 0x305 0x307
32000 0x310 0x313 0x316 0x319
64000 0x311 0x314 0x317 0x31A
16 Mio 0x312 0x315 0x318 0x31B

Um zu testen, welche Einstellung auf dem System funktioniert, bietet es sich an, im Bootloader global oder für das aktuelle Kernel-Image die Option vga=ask anzugeben. Beim Systemstart hat man nun die Möglichkeit, einen der in der Tabelle angezeigten Modi zu wählen. Funktioniert dies, kann man die Änderung dauerhaft im Bootloader eintragen. In Grub sieht das bei mir so aus:

title  Debian GNU/Linux, kernel 2.4.27-2-386
root  (hd1,0)
kernel  /boot/vmlinuz-2.4.27-2-386 root=/dev/hdb1 ro vga=0x305 apm=off acpi=on
initrd   /boot/initrd.img-2.4.27-2-386
savedefault
boot

In /etc/lilo.conf kann man ähnlich vorgehen. Es ist übrigens auch möglich, in den Bootloader-Konfigurationsdateien die Framebuffer-Einstellung als globalen Parameter für alle Kernel-Images zu benutzen indem man die Option vga=[Einstellung] ändert.

nach oben

Beep auf der Konsole abschalten

Das ständige Piepen bei "Fehleingaben" auf der Konsole stört mich jedes Mal erheblich, vor allen Dingen bei längeren Editor- oder Kommandozeilen-Sitzungen. Dies ist zum Glück einfach abschaltbar, indem man die Beep-Länge des PC-Beepers auf 0 stellt:

$ setterm -blength 0

Zur Automatisierung kann man z.B. "/usr/bin/setterm -blength 0" in ~/.bashrc eintragen. Unter KDE schaltet sich der Beep über das Control Center unter "Sounds"Multimedia"\"System Notifications" ab.

nach oben

Farben bei Anzeige des Kommandos ls und im vim

Das farbige Anzeigen der Ausgabe von "ls" macht das Arbeiten auf der Konsole leichter. Es reicht dafür, in der Datei ~/.bashrc folgenden Eintrag zu machen, der eventuell auch nur einkommentiert werden muß:

if [ "$TERM" != "dumb" ]; then
    eval "`dircolors -b`"
    alias ls='ls --color=auto'
fi

Danach dürften die Farben nach erneutem Login zu sehen sein. Wenn nicht, muß man eventuell nachschauen, ob eine .bash_login existiert, die die Einstellungen in .bashrc übergeht.

Möchte man im vim (vi iMproved)-Editor Syntax-Highlighting einschalten, um verschiedene Eingabeformate unterstützt dargestellt zu bekommen, muß man nur in /etc/vim/vimrc die Zeile "syntax on" einkommentieren.

nach oben

Kernel-Meldungen auf eigene Konsole umleiten

Wenn in jeder Konsole Kernelmeldungen angezeigt werden, kann das störend sein, so daß es mir sinnvoll erscheint, alle Meldungen auf eine eigene Konsole umzuleiten. Dadurch kann man dann auch jederzeit sehr einfach Einblick in die aktuellen Systemmeldungen bekommen. Dazu muß man lediglich in /etc/syslog.conf folgende Zeile einfügen:

*.* /dev/ttyx		# (bei mir /dev/tty7)
nach oben

Ausschalten des Computers nach Shutdown

Schon einige Male hatte ich damit zu kämpfen, daß der Rechner nach dem Herunterfahren von Linux nicht abschaltete. Nach einiger Recherchearbeit über http://groups.google.com und Google habe ich das Problem bei mir gelöst. Meine beiden Rechner haben aber unterschiedliche Wege aufgezeigt, obwohl auf beiden Debian sarge läuft:

Rechner 1 ist ein Athlon XP 1800 auf einem K7SOM+ Mainboard, die Kernel-Version ist 2.4.21, selbst kompiliert. Relevante Kernel-Optionen sind die folgenden:

aus /usr/src/linux/.config:

# CONFIG_ACPI is not set
CONFIG_APM=y
# CONFIG_APM_IGNORE_USER_SUSPEND is not set
CONFIG_APM_DO_ENABLE=y
# CONFIG_APM_CPU_IDLE is not set
# CONFIG_APM_DISPLAY_BLANK is not set
# CONFIG_APM_RTC_IS_GMT is not set
# CONFIG_APM_ALLOW_INTS is not set
# CONFIG_APM_REAL_MODE_POWER_OFF is not set

In Lilo (Version 22.5.8) ist apm=on als globaler Parameter angegeben. Das Kernel-Image wird dann so geladen:

Auszug aus /etc/lilo.conf:

image=/vmlinuz
        label=Linux
        read-only
        append="apm=power-off hdc=ide-scsi" 

Rechner 1 schaltet sich so problemlos aus.

Rechner 2 ist ein Athlon XP 2100 auf einem Epox 8K3A+ Mainboard. Er will auf alle APM-Funktionen nicht anschen. Ich vermute, daß das daran liegt, daß APM beim Sarge-Standard-Kernel 2.4.27-386 nur als Modul eingebunden ist. Die Module werden ja beim Shutdown beendet, wodurch die APM-Funktionen möglicherweise nicht mehr zur Verfügung stehen könnten. Auch "# modprobe apm" sowie ein Starten des apmd brachten den Rechner nicht zum Abschalten. Mein Versuch, dies durch Umstellung auf ACPI zu beheben, war dann erfolgreich. Zunächst führe ich auch hier die relevanten Kernel-Optionen auf:

Auszug aus /boot/config-2.4.27-2-386:

CONFIG_APM=m
# CONFIG_APM_IGNORE_USER_SUSPEND is not set
# CONFIG_APM_DO_ENABLE is not set
# CONFIG_APM_CPU_IDLE is not set
# CONFIG_APM_DISPLAY_BLANK is not set
# CONFIG_APM_RTC_IS_GMT is not set
# CONFIG_APM_ALLOW_INTS is not set
# CONFIG_APM_REAL_MODE_POWER_OFF is not set
#
# ACPI Support
#
CONFIG_ACPI=y
CONFIG_ACPI_BOOT=y
CONFIG_ACPI_BUS=y
CONFIG_ACPI_INTERPRETER=y
CONFIG_ACPI_EC=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_PCI=y
CONFIG_ACPI_MMCONFIG=y
CONFIG_ACPI_SLEEP=y
CONFIG_ACPI_SYSTEM=y
CONFIG_ACPI_OFF=y
CONFIG_ACPI_AC=m
CONFIG_ACPI_BATTERY=m
CONFIG_ACPI_BUTTON=m
CONFIG_ACPI_FAN=m
CONFIG_ACPI_PROCESSOR=m
CONFIG_ACPI_THERMAL=m
CONFIG_ACPI_ASUS=m
CONFIG_ACPI_TOSHIBA=m
# CONFIG_ACPI_DEBUG is not set
CONFIG_OPTIMISE_SIZE=y

ACPI ist also im Kernel enthalten. Man muß nun zunächst sicher stellen, daß ACPI-Funktionen auch im BIOS eingeschaltet sind, was bei den Standardeinstellungen schon der Fall sein dürfte. Außerdem muß ACPI beim Systemstart eingeschaltet werden, und APM darf nicht gleichzeitig laufen:

Auszug aus /boot/grub/menu.lst:

kernel /boot/vmlinuz-2.4.27-2-386 root=/dev/hdb1 ro apm=off acpi=on

Danach sagt ein "# cat /var/log/dmesg |grep ACPI":

 BIOS-e820: 000000001fff0000 - 000000001fff3000 (ACPI NVS)
 BIOS-e820: 000000001fff3000 - 0000000020000000 (ACPI data)
ACPI: RSDP (v000 VIA694                                    ) @ 0x000f74e0
ACPI: RSDT (v001 VIA694 AWRDACPI 0x42302e31 AWRD 0x00000000) @ 0x1fff3000
ACPI: FADT (v001 VIA694 AWRDACPI 0x42302e31 AWRD 0x00000000) @ 0x1fff3040
ACPI: DSDT (v001 VIA694 AWRDACPI 0x00001000 MSFT 0x0100000c) @ 0x00000000
ACPI: IRQ9 SCI: Level Trigger.
ACPI: Subsystem revision 20040326
ACPI: Interpreter enabled
ACPI: Using PIC for interrupt routing
ACPI: System [ACPI] (supports S0 S1 S4 S5)
ACPI: PCI Root Bridge [PCI0] (00:00)
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Link [LNKA] (IRQs 1 3 4 5 6 7 *10 11 12 14 15)
ACPI: PCI Interrupt Link [LNKB] (IRQs 1 3 4 5 6 7 10 *11 12 14 15)
ACPI: PCI Interrupt Link [LNKC] (IRQs 1 3 4 5 6 7 10 *11 12 14 15)
ACPI: PCI Interrupt Link [LNKD] (IRQs 1 3 4 5 6 7 *10 11 12 14 15)
ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 11
ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 11
ACPI: PCI Interrupt Link [LNKA] enabled at IRQ 10
ACPI: PCI Interrupt Link [LNKD] enabled at IRQ 10
PCI: Using ACPI for IRQ routing

Jetzt schaltet auch Rechner 2 nach dem Shutdown ab. Zunächst hatte ich gedacht, daß ein Starten von acpid erforderlich sei, aber dem ist nicht so.

nach oben

JAVA JDK in Sarge installieren

Um in den Genuß von JAVA z.B. zum Anzeigen bestimmter Website-Elemente zu kommen, ist lediglich das Einfügen folgender Quelle in /etc/apt/sources.list erforderlich:

# Java Backport
deb ftp://ftp.informatik.hu-berlin.de/pub/Java/Linux/debian stable non-free

Dann muß man noch folgende Schritte ausführen, danach ist Java verfügbar:

# apt-get update
# apt-get install j2dsk1.4

Mit dieser Konfiguration war ich zwar in der Lage, Java in meinen Browsern zu nutzen, jedoch war der Zugang zu meinem Bank-Konto immer noch nicht möglich, da das dortige Java-Applet zwar startete, nach Eingabe der Kontodaten jedoch nicht zu den Kontodaten sprang.

Gelöst wird dieses Problem durch die Nutzung des offiziellen Java-JRE von Sun Microsystems. Leider gibt es dies nach meinen Recherchen nicht als offizielles Debian-Paket, aber durch die erweiterete Funktionalität lohnt sich der Einsatz unter Debian.

Um das Paket zur Deinstallation/Änderung jederzeit wieder zu finden, habe ich die *.bin-Datei von der o.g. Sun-Seite herunter geladen, diese in das neu erstellte Verzeichnis /usr/local/java/ kopiert, sie ausfürbar gemacht und gestartet. Nach der Ausgabe der Nutzungsbedingungen, die man mit "q" verlassen kann, installiert das Programm die Java JRE unterhalb dieser Verzeichnis-Ebene. Um Java danach im Browser (hier: Firefox) zu nutzen, ist dann das Anlegen eines SymLinks notwendig:

# ln -s /usr/local/java/jre1.5.0_06/plugin/i386/ns7/libjavaplugin_oji.so \
/usr/lib/mozilla-firefox/plugins/libjavaplugin_oji.so

Nun muß in den Browser-Einstellungen nur noch Java aktiviert werden, ab da läuft auch das Internet-Banking problemlos. Einen Kommentar zur Sinnhaftigkeit der Java-Nutzung spare ich mir hier absichtlich, da man hier sehr stark geteilter Meinung sein kann und meine Kenntnisse nicht ausreichen, um da vernünftig mitzureden.

nach oben

NFS-Fehler "Value too large for defined data type"

Diese Fehlermeldung wir generiert, wenn man versucht, ein NFS-Mount einzubinden, auf dem Dateien größer als 2 Gigabyte vorhanden sind. Um dies zu umgehen, darf auf dem Rechner, der das entsprechende Mount anbietet, nicht der nfs-user-server, sondern unbedingt der nfs-kernel-server laufen. Damit wird das Problem behoben.

nach oben Schnecken-Navi

-> doc-hanefeld.de  || Debian-Linux-Tips

 

/linux.shtml , zuletzt geändert 07. 02. 2010

Valid XHTML 1.0 Valid CSS
Valid XHTML 1.0 Valid CSS