http://www.dcoul.de/faq/

de.comp.os.unix.linux - FAQ

Stand: 29.01.2005

Technisches Design: Thomas Nesges (thomas@dcoul.de)
Maintainer a.D.: Karsten Merker (dcoul-faq@cologne.de)
Project Lead: Andreas Metzler (dcoulfaq@downhill.at.eu.org)
Nichts spezielles: Christopher Splinter (chris-linux-faq@splinter.inka.de)
Nichts spezielles: Nikolaus Rath (Nikolaus@rath.org)
Nichts spezielles: Sven Hartge (linux-faq@ds9.argh.org)
Nichts spezielles: Kai Haberzettl (kai@khaberz.de)
Nichts spezielles: Jo Moskalewski (public@jmos.de)
Nichts spezielles: Wolfgang Kaufmann (wk-articles@theparallax.com)

Vorwort

Diese FAQ beinhaltet Antworten (oder Verweise auf die Antworten, soweit sie hier den Rahmen sprengen wuerden) auf die in der de.comp.os.unix.linux- Hierarchie und vorher in der de.comp.os.linux-Hierarchie am häufigsten gestellten Fragen.

Alle Angaben erfolgen ohne Gewähr, da die Autoren nicht alles selbst ausprobieren können; die hier gesammelten Informationen entstammen häufig den Artikeln der vorgenannten Newshierarchie und die Benutzung erfolgt auf eigene Gefahr. Die Autoren übernehmen keinerlei Haftung für durch die Verwendung von Informationen aus dieser FAQ eventuell auftretende Schäden, gleich welcher Art.

Mitteilungen über Fehler, Änderungs- oder Ergänzungswünsche bitte per Mail an feedback01@dcoul.de senden.

Vielen Dank an alle, die Änderungs- und Erweiterungsvorschläge geschickt haben!

Die FAQ wird monatlich in den Newsgroups de.comp.os.unix.linux.infos, de.answers und news.answers gepostet und ist unter dem URL http://www.dcoul.de/faq/ im Web zu finden.

    de.comp.os.unix.linux.* FAQ
    Copyright (C) 2001  Karsten Merker (dcoul-faq@cologne.de)
    
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.
    
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
    
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
Thomas Nesges

0. Ist Linux das Richtige für mich? oder: Einarbeiten in Linux

0.1  Warum Linux? oder: Ist Linux das richtige für mich?
Häufig taucht in den Newsgroups die Frage auf, ob es sich lohnt, von einem anderen Betriebssystem auf Linux umzusteigen oder ob man das besser lassen sollte. Dazu möchte ich mit freundlicher Genehmigung des Autors hier auszugsweise einen Artikel von Bernhard Oemer wiedergeben, den er mit der Message-ID <912226238.889907@kelly.bundy.at> in de.comp.os.unix.linux.newusers gepostet hat und der IMHO eine recht gute Zusammenfassung von Pro und Kontra eines Umstiegs darlegt:


From: Bernhard Oemer <oemer@tph.tuwien.ac.at>
Subject: Re: Warum Linux?

> Hallo, ich, bisher Window'95 -Benutzer, moechte mich verbessern und eventuell
> umsteigen. Bin allerdings kein Computerfreak, habe nur geringe bis keine
> Grundkenntnisse und wuerde trotzdem gerne wissen, ob was an Linux so toll ist

Also erstmal - never change a running system. Wenn Du (was ja vorkommen
soll) mit Win95 wirklich zufrieden bist, dann gibt es keinen Grund
umzusteigen. Ein Umstieg auf Linux (ohne jede Unixerfahrung) ist mit
einem erheblichen Lernaufwand verbunden, da Linux konzeptionell in
mehr als einer Hinsicht das diametrale Gegenteil von Win95 darstellt:

Transparenz vs. Black Box:

Linux ist ein offenes System, d.h. *alle* Systemparameter sind
zug"anglich, wichtige Ereignisse werden mitgelogt und umfangreiche
Diagnosem"oglichkeiten stehen zur Verf"ugung. Viele Win95 user haben
Schwierigkeiten, diese Informationen richtig zu verwenden, da sie
gewohnt sind, Programme als blackboxes zu betrachten und bei Problemen
gleich zum Holzhammer (Neuinstallation, Service-Pack einspielen)
greifen.

Konfigurierbarkeit vs. Plug'n'Play:

Linux ist als System auf maximale Konfigurierbarkeit und Flexibilit"at
ausgelegt, w"ahrend Windows oft die M"oglichkeiten des Useres
zugunsten einfacherer Bedienung und schnellerer Anfangserfolge
einschr"ankt.

M"achtigkeit vs. "Intuitiver" Bedienung:

Unix Programme sind i.a. auf effiziente Bedienung durch den erfahrenen
User und auf weitestgehende Automatisierbarkeit hin optimiert. Fast
kein Programm ist ohne vorheriges Studium der Doku benutzbar, viele
wichtige Progamme haben "uberhaupt kein graphisches Interface, sondern
sind nur via Kommandozeile zu bedienen.

Orthogonalit"at vs. Integration:

Mit ein Grund f"ur die hohe Stabilit"at von Linux ist das Prinzip der
Orthogonalit"at d.h. ein Programm erf"ullt genau einen Zweck.
W"ahrend z.B. Dein Outlook Express gleichzeitig Newsserver, NTA
(News Tranport agent) und Newsreader spielt, werden unter Unix f"ur
jede dieser Aufgaben spezialisierte (und austauschbare) Tools verwendet.
Die so gewonnene Flexibilit"at wird nat"urlich mit einem erh"ohtem
(einmaligen) Installationsaufwand bezahlt.

Multiuser vs. Singleuser:

Unix ist ein Multiuser/Multitasking OS. Das hei"st mehrere User
k"onnen das System gleichzeitig benutzen und werden durch System von
User- und Gruppenrechten voneinander abgeschirmt. Auch als einzelner
User kannst Du von der erh"ohten Sicherheit durch die strikte Trennung
von Administration und Benutzung profitieren, was allerdings (wie
jedes Sicherheitssystem) eine gewisse Disziplin erfordert.

Wenn Du Dich entscheiden solltest, auf Linux umzusteigen (auch ein
dual-boot Betrieb mit Windows ist m"ogl.), dann solltest Du Dir
jedenfalls ein Buch zulegen und mit einer mehrw"ochigen
Einarbeitungszeit rechnen, bis Du mit dem System halbwegs
zurechtkommst.
0.2  Welche Linux-Distribution ist die beste?
Diese Frage wird sehr oft gestellt und wurde daher schon ad nauseam in dcoul* durchgekaut, wenn dir die folgenden Informationen nicht ausreichend erscheinen, sieh dir bitte die unzähligen Diskussionen dazu im Archiv von Google an, anstatt die Frage erneut zu stellen.
Es gibt keine beste Linuxdistribution, das ist eine Frage der persönlichen Vorlieben. Die verschiedenen Distributionen haben unterschiedliche Schwerpunkte, jeder muss für sich entscheiden, was ihm besser gefällt. Häufig ist es sinnvoll, sich zumindest etwas an dem zu orientieren, was Bekannte benutzen, da man so einfacher Ansprechpartner bei Problemen findet, ohne dabei die Besonderheiten verschiedener Distributionen beachten zu müssen, welche in manchen Fällen für Einsteiger etwas verwirrend sein können. Die in Deutschland am weitesten verbreiteten Distributionen dürften nach den News zu urteilen Debian, RedHat und SuSE sein (Aufzählung in alphabetischer Reihenfolge).
Im folgenden werden die Distributionen etwas genauer beschrieben. Sollte eine Distribution dabei besser aussehen, ist das nicht beabsichtigt.
  • Debian. Diese Distribution ist dafür bekannt, dass sie komplett von Freiwilligen entwickelt wird und keinerlei kommerzielle Interessen verfolgt. Im Gegensatz zu den von Unternehmen herausgebrachten Distributionen muss man sich deshalb bei Debian Support von Drittfirmen kaufen. Früher galt Debian als wenig einsteigerfreundlich, das darf man aber inzwischen als Vergangenheit bezeichnen. Die Debian Distribution wird im Vergleich eher selten aktualisiert, dafür sind die Versionen aber durch lange Tests als sehr ausgereift und sicher bekannt. Wichtig: Debian Benutzer sollten darauf achten, immer die stable Version zu verwenden. testing und unstable können (und das kommt auch durchaus vor) jederzeit gravierende Fehler aufweisen, die Datenverluste o.ä. nach sich ziehen.
    Debian benutzt ein eigenes Paketformat .deb
    Debian produziert keine eigenen Installations-Medien, es gibt aber CDs oder DVDs (diese erstmals mit dem neuen Release Debian 3.0/Woody) von diversen Firmen, eine Liste findet sich unter http://www.de.debian.org/CD/vendors/#de.
  • SuSE. Bekannt geworden als erste "echte" deutsche Linuxdistribution wird SuSE oft für Einsteiger empfohlen. Diese Empfehlung kann man auch auf Grund eines umfangreichen Handbuchs durchaus beibehalten; allerdings sind andere Distributionen inzwischen ebenso weit. Kauft man eine "echte" SuSE (und keine Evaluationsversion aus einer Zeitschrift o.ä.) bekommt man 60 Tage (SuSE Linux Personal) bzw. 90 Tage (SuSE Linux Professional) kostenlosen Installationssupport dazu.
    SuSE verwendet das RPM Paketformat und bringt quartalsweise neue Versionen heraus. SuSE ist auch auf DVD zu bekommen.
  • RedHat TODO
  • Mandrake TODO
0.3  Wo finde ich deutschsprachige Dokumentation zu Linux?
Im Deutschen Linux HOWTO Projekt (DLHP). Die Texte sind unter

http://www.linuxhaven.de/dlhp/ bzw.
http://www.linuxhaven.de/dlhp/FTP/

zu beziehen. Weiterhin werden regelmäßig deutschsprachige Infotexte in de.comp.os.unix.linux.infos gepostet, die man unbedingt gelesen haben sollte, bevor man Fragen in der de.comp.os.unix.linux-Hierarchie stellt.
0.4  Welche Bücher gibt es zu Linux?
In de.comp.os.unix.linux.infos wird wöchentlich eine Bücherliste gepostet, im Web ist sie unter http://strg-alt-entf.org/buecherfaq.txt zu finden.
0.5  Welche Zeitschriften gibt es zu Linux?
Mittlerweile existieren sowohl mehrere internationale als auch deutsprachige Zeitschriften die sich dediziert Linux und Artverwandten Themen widmen.
Beispiele:

1. Fragen zu ISPs, Mail, News und Mailboxnetzen (Fido/ZConnect)

1.1  Wie kann ich Mails und News offline lesen, also ohne dabei dauernd eine Verbindung zum Internet haben zu müssen?
Für einen kleinen Newsfeed bzw. den typischen Ein-Benutzer-Rechner ist Leafnode, zu finden unter http://www.leafnode.org/.
eine gute Wahl. Beim Betrieb eines lokalen Newsservers ist darauf zu achten, dass dabei korrekte Message-IDs (eindeutige ID eines jeden Newsartikels) erzeugt werden. Informationen dazu finden sich in der Message-ID-FAQ unter http://www.hanau.net/usenet/faq/messageid.php.
1.2  Gibt es für Linux ein Fido-Pointprogramm?
Software zur Einrichtung eines Fido-Points gibt es per ftp auf ftp://ftp.gwdg.de unter /pub/linux/fido. Weitere Informationen finden sich auf der Homepage von Roland Rosenfeld: http://www.spinnaker.de/FidoPnt/

Wie mir mitgeteilt wurde, funktioniert die dort beschriebene Vorgehensweise allerdings nicht mehr mit der aktuellen Version von Fidogate, die Dokumentation von Fidogate wurde aber bezüglich der Einrichtung von Points überarbeitet.
Alternativ gibt es ein fertiges Pointpaket per ftp von ftp://ftp.fido.de. Weitere Informationen zu FIDO unter Linux sind unter http://control.zcu.cz/~flidr/fido/ zu finden.
1.3  Gibt es für Linux ein ZConnect-Pointprogramm?
Nicht im herkömmlichen Sinne, aber es gibt eine Gatewaysoftware, mit der ein ZConnect-System in einen ganz normalen News- und Mailserver eingebunden werden kann. Das Paket heißt Unix-Connect und ist auf ftp://ftp.dinoex.org/pub/unix-connect/ zu finden.
Unix-Connect kann zusammen mit einem lokalen Newsserver (INN) auch als Point eingerichtet werden. Zur Einrichtung eines lokalen Newsservers verweise ich auf Wie kann ich Mails und News offline lesen.
1.4  Kann ich CrossPoint unter Linux verwenden?
Ja, CrossPoint läuft im DOSEmu, zumindest mit analogen Modems. Bei einigen funktioniert es auch mit ISDN-Karten, jedoch scheint es dabei gelegentlich Probleme zu geben.
Nach der Freigabe der Sourcen durch den Autor Peter Mandrella haben sich zwei Teams gebildet, die CrossPoint unabhängig weiterentwickeln.
Zumindest OpenXP http://www.openxp.de hat auch einen Linux-Port im Programm.
1.5  Warum stellt mein tin (Newsreader) statt Umlauten nur Fragezeichen dar?
In Tin ist eine Funktion enthalten, die überprüft, ob die in einem Artikel enthaltenen Zeichen auf dem System überhaupt dargestellt werden können. Dazu greift der Tin auf die Locales zurück. Falls das nicht korrekt funktioniert, liegt meist ein Problem mit den Locales vor. Siehe dazu: "Wie ist das mit den Locales?". Führt auch das nicht zum Erfolg, sind wahrscheinlich die Locale-Dateien unvollständig oder gar nicht installiert. In diesem Fall besteht (neben der Installation aktueller Locales) noch die Möglichkeit, zur brute force-Methode zu greifen und den Tin aus den Sourcen mit der Option --disable-locale selbst zu compilieren. In diesem Fall werden die Locales völlig ignoriert und jedes Zeichen als darstellbar bewertet. Diese Lösung sollte aber wirklich nur im Notfall angewandt werden.
1.6  Wie kann ich mit Linux über T-Online in Netz kommen?
Informationen zur Konfiguration des Systems zur Nutzung des T-Online-PPP-Zuganges finden sich unter

http://home.t-online.de/home/albert.rommel/ppp.htm bzw.
http://home.t-online.de/home/albert.rommel/linux/.
Kurzüberblick: Die Verbindung zu T-Online wird über PPP aufgebaut. Die Authentifizierung erfolgt durch PAP. Der Benutzername entspricht dabei Zugangskennung + T-Online Nummer + Mitbenutzernummer (4-Stellig). Das Passwort dem gewohnten T-Online Passwort. Die Zugangsnummer ist sowohl für ISDN als auch für Modem 0191011. Die ISDN Verbindung erfolgt nicht über RawIP. Die IP wird dynamisch zugewiesen. Der Nameserver hat die IP 194.25.2.129.
1.7  Wie kann ich die dynamisch vergebene IP-Adresse meines Rechners herausfinden?
Dazu gibt es (mindestens) zwei Lösungen:
-Die diversen PPP-Daemonen (pppd, ipppd,...) rufen nach erfolgtem Verbindungsaufbau das Skript /etc/ppp/ip-up auf. Dieses bekommt die zugeteilte IP-Adresse als vierten Parameter übergeben. Durch Einfügen von echo $4 > /var/run/aktuelleIP kann man sie speichern. Fügt man zusätzlich rm -f /var/run/aktuelleIP in /etc/ppp/ip-down ein, kann man als Bonus durch test -f /var/run/aktuelleIP überprüfen, ob man online ist. Lesehinweise: pppd (8), ipppd (8)
-Die zweite Variante funktioniert mit beliebigen IP-Netzwerkinterfaces: env LC_ALL=C /sbin/ifconfig Devicename | sed -n '/addr:/s/ [^r]*..//gp' Devicename ist an die eigene Konfiguration anzupassen. Bei einer Modemverbindung ppp0, beim ersten ISDN-SyncPPP-Device ippp0, bei ISDN-rawIP isdn0, ...
1.8  Ich benötige einen ordentlichen telnet- oder ssh-Client für Windows.
Diese Frage ist in de.comp.os.unix.* offtopic. putty, teraterm-pro mit ssh-Plugin oder SecureCRT.
1.9  Wie kann ich die Systemzeit meines Rechners mit Timeservern im Internet abgleichen?
Für Rechner ohne dauerhafte Internetverbindung ist chrony die genaueste Lösung. Eine Alternative mit geringerem Konfigurationsaufwand (dafür aber auch weniger genau) ist der regelmäßige Einsatz von ntpdate (mit Option -B).
Von netdate ist abzuraten, da es die Systemuhr direkt umstellt, anstatt sie eine gewisse Zeit lang schneller oder langsamer laufen zu lassen und daher Zeitsprünge verursacht. Manche Programme, z.B. make, kommen damit nicht zurecht. Überdies ist netdate berüchtigt dafür, in manchen Fehlerfällen (Zielserver wird via UDP angesprochen und auf dem Port läuft ein anderer Dienst bzw. der Time-Dienst ist falsch konfiguriert) die Zeit ins Jahr 2038 zu stellen. Desweiteren ist der klartext-basierte Time-Dienst auf immer weniger Server zu finden.
1.10 Welchen ftp-Daemon soll ich verwenden?
Wenn du nicht unbedingt ftp brauchst, solltest du darauf verzichten, denn bei ftp wandert das Passwort wie bei telnet im Klartext über die Leitung. Für anonymen Zugang ist http eine brauchbare Alternative.
Abgesehen davon zahlt es sich aus, einen möglichst fehlerfreien, sicheren ftp-Daemon zu verwenden, du sparst dir dadurch viel Arbeit, weil du nicht jeden Monat wegen eines Sicherheitslochs ein Update durchführen musst. Deshalb sollte man auf wu-ftpd verzichten, er ist in der Vergangenheit zu oft negativ aufgefallen. ProFTPd steht etwas besser da, aber auch ihn sollte man wirklich nur einsetzen, wenn man die enorme Menge Optionen und Features braucht. Andernfalls empfiehlt sich der Einsatz einer der kleinen, schlanken Alternativen, die meisten Linux-Distributionen beinhalten mindestens einen davon (RedHat beispielsweise vsftpd). Lesetipp: http://www.linuxmafia.com/pub/linux/security/ftp-daemons

2. Allgemeine Linux-Fragen

2.1  Ich bekomme beim Compilieren die Meldung, es sei ein Signal 11 aufgetreten. Was bedeutet das?
Das weist häufig auf fehlerhafte Hardware hin (z.B. defekte oder zu langsame Speicherchips). Zu Signal 11 gibt es eine ausführliche FAQ unter http://www.bitwizard.nl/sig11/.
Enthält der Rechner einen AMD K6 älterer Bauart und mehr als 32MB RAM, kann es durch einen Fehler im Prozessor zum Auftreten des Signal 11 kommen. Der Fehler wird u.a. durch einige im gcc vorkommende Codesegmente ausgelöst (der K6 hält die Sequenz fälschlicherweise für selbstmodifizierenden Code und behandelt sie falsch). Ab der Prozessorrevision B9732 (auf dem Prozessor aufgedruckt) ist der Fehler behoben. AMD hat für die Prozessoren mit dem Fehler einen Umtausch angeboten.
2.2  Ich habe mir ein kleines Testprogramm compiliert, aber wenn ich es aufrufe, passiert gar nichts. Warum?
Ein häufig unter Linux (und natürlich anderen Unix-Derivaten) gemachter Fehler ist es, ein Programm test zu nennen. Es gibt ein Systemkommando mit dem Namen test, das einen logischen Ausdruck auswertet und mit dem man z.B. überprüfen kann, ob eine bestimmte Datei existiert (und noch einiges mehr). Wenn man ein Programm test nennt und es aufruft, wird der eingestellte Suchpfad (enthalten in der Shellvariable PATH) von vorne nach hinten durchsucht, bis ein Programm mit dem Namen test gefunden wird. Das Verzeichnis, in dem sich das Systemkommando test befindet, steht in der PATH-Variable in der Regel weiter vorne als das eigene Home- oder Arbeitsverzeichnis, so das nicht das gerade selbst compilierte Programm ausgeführt wird, sondern das System-test. Dieses erzeugt keine Ausgabe, sondern setzt, je nach dem Ergebnis des als Parameter übergebenen logischen Ausdrucks, lediglich einen Fehlercode, den man in der Shell abfragen kann. Es sieht also so aus, als ob das Programm nichts tut.
Bei manchen Shells ist test auch ein in die Shell integrierter Befehl, so dass bei der Eingabe von test überhaupt kein externes Programm ausgeführt wird. Dies lässt sich umgehen, indem das aufzurufende Programm mit vollem Pfad (/foo/test) bzw. in dem entsprechenden Verzeichnis mit ./test aufgerufen wird (vgl. auch Warum kann ich ein Programm als normaler User starten, aber nicht als root?).
2.3  Warum kann ich ein Programm als normaler User starten, aber nicht als root?
Wenn das Programm im aktuellen Verzeichnis steht, ist es wahrscheinlich so, dass der Suchpfad für den normalen Benutzer das Verzeichnis ".", d.h. das jeweils aktuelle Verzeichnis, enthält, der Suchpfad für root aus Sicherheitsgründen aber nicht. Unter Linux/Unix ist es standardmäßig so, dass das aktuelle Verzeichnis NICHT im Suchpfad steht, da man andernfalls sehr einfach ein trojanisches Pferd mit einem gebräuchlichen Namen irgendwo ablegen könnte und nur darauf warten müsste, dass root im entsprechenden Verzeichnis (versehentlich) das Programm startet. Bsp: ein trojanisches Pferd mit dem Namen sl (ls als Dreher) in /tmp. Sobald root in /tmp wäre und versehentlich sl statt ls tippt, kann das trojanische Pferd alles tun, was es möchte, da es Root-Rechte hat, so z.B. irgendwo eine SUID-root-Shell anlegen o.ä.
Möchte man das Programm trotzdem starten, kann man es explizit mit voller Pfadangabe aufrufen (/foo/bar/Programm) oder in Kurzform mit ./Programm, da der Punkt für das aktuelle Verzeichnis steht.
2.4  Welche Libc-Version ist neuer: 5.4.4 oder 5.4.38?
Libc 5.4.38 ist neuer. Die verschiedenen Versionsteile bzw. minor releases sind bei der libc immer durch Punkte getrennt, d.h. 38 ist als achtunddreißig zu verstehen, nicht als drei acht.
2.5  Warum kann ich mich nicht als root über telnet einloggen?
Das ist ein Sicherheitsfeature. So wird verhindert, dass man direkt mit einem Brute-Force-Attacke versuchen kann, das Root-Passwort heraus- zubekommen. Man muss sich als normaler User einloggen und dann mit su -l Root-Rechte erlangen, wobei das Root-Passwort abgefragt wird. Ein Eindringling muss somit mindestens zwei Passworte knacken, um root zu werden. Sinnvollerweise ist das Root-Passwort dabei natürlich ein anderes als das User-Passwort.
Immer daran denken: wer selbst (z.B. über PPP) ins Netz kommt, ermöglicht damit auch Anderen, an den eigenen Rechner zu kommen.
Telnet hat dabei ein grundsätzliches Sicherheitsproblem: es überträgt auch die Kennworte im Klartext und ermöglicht es dadurch einem Angreifer, vergleichsweise einfach an Kennworte zu kommen. Es ist daher durchaus lohnenswert, sich Gedanken über die Verwendung eines verschlüsselnden Verfahrens zu machen, z.B. SSH o.ä., wobei telnet dann vollständig deaktiviert werden kann. Die aktuellen Revisionen der kommerziellen ssh1-Implementierung unterliegen afaik inzwischen dem selben restriktiven Copyright wie ssh2. Daher habe ich den folgenden Absatz durch einen Verweis auf OpenSSH ersetzt. Mit OpenSSH liegt inzwischen eine komplette freie Implementierung des SSH-Protokolls vor. Sie wird inzwischen bei den meisten Linuxdistributionen (bei Debian im Paket "ssh") mitgeliefert.
2.6  Warum kann ich meine CD nicht mehr aus meinem CD-Laufwerk nehmen?
Wenn eine CD mit dem Kommando mount in den Verzeichnisbaum eingebunden ist (manche Distributionen machen das beim Booten automatisch, falls eine CD eingelegt ist), ist der Auswurfknopf des Laufwerks gesperrt, damit die CD nicht versehentlich entnommen werden kann. Dies hat mehrere Gründe: Bei einem beschreibbaren Wechselmedium (MO, PD, ZIP etc.) darf dieses erst entnommen werden, wenn alle Puffer auf das Medium zurückgeschrieben wurden (Linux arbeitet mit Write-Cache, d.h. Daten werden nicht immer sofort auf das Medium geschrieben, sondern zunächst nur im Hauptspeicher gesammelt und erst bei Bedarf auf das Medium geschrieben). Erst nach dem Unmounten des Mediums (mit umount) kann man sicher sein, dass die Daten auch wirklich geschrieben wurden, so dass das System die vorherige Entnahme des Mediums verhindert.
Außerdem wird so verhindert, dass einem anderen Prozess bzw. dessen Benutzer, der noch Dateien auf dem Medium geöffnet hat, dieses entzogen wird, was zu Programmfehlern und ggf. Datenverlust führen würde. Wenn ein umount-Befehl ausgeführt wurde, kann man sicher sein, dass keine Dateien auf dem Medium mehr geöffnet waren.
Der Befehl zum Unmounten lautet umount <Verzeichnis>, wobei <Verzeichnis> dasjenige ist, in das die CD eingeklinkt wurde, in der Regel /cdrom.
Einige ältere CDROM-Laufwerke unterstützen die Verriegelung des Auswurfknopfes nicht, dennoch sollte auch hier immer erst ein umount-Kommando ausgeführt werden, bevor das Medium entnommen wird.
2.7  Warum kann ich keine ZIP-Disk mounten, obwohl der Kernel das Laufwerk beim Booten ordnungsgemäß erkannt hat? Ich erhalte beim Mountversuch lediglich die Meldung mount: wrong fs type, bad option, bad superblock on /dev/hdc, or too many mounted file systems.
ZIP-Medien sind standardmäßig partitioniert wie eine Festplatte, d.h. man muss beim Mounten die Partition und nicht nur das Gerät angeben. Gegeben sei ein ATAPI-ZIP als Master am sekundären Controller, also wäre das ZIP-Laufwerk über /dev/hdc anzusprechen. Bei Medien von Iomega ist die Partition an vierter Stelle in der Partitionstabelle angelegt, d.h. der Mount-Befehl müsste mount /dev/hdc4 /mnt lauten. Bei Fremdherstellermedien kann die Partitionsnummer eine andere sein.
2.8  Was bedeutet die Meldung /dev/hdaX has reached maximal mount count; check forced beim Booten?
Beim Booten wird normalerweise das Programm fsck (FileSystemChecK) aufgerufen, welches überprüft, ob die interne Struktur des Dateisystems noch konsistent ist. Wenn Linux korrekt beendet wird und die Platten sauber unmounted sind, wird auf der jeweiligen Partition eine Markierung gesetzt, die alles ok besagt (Clean-Flag). Wenn diese Markierung vorhanden ist, nimmt fsck beim nächsten Aufruf keine detaillierte Überprüfung der Partition vor. Da sich eventuell aber doch irgendwann ein Fehler eingeschlichen haben könnte, wird nach einer gewissen Anzahl von Mountvorgängen (maximal mount count) trotzdem eine Prüfung durchgeführt, auch wenn die Markierung alles ok signalisiert (daher die Meldung check *forced*). Die Überprüfung kann bei großen Partitionen mit vielen Dateien durchaus einige Minuten dauern. Die Anzahl der Mountvorgänge, nach denen zwangsweise ein fsck-Lauf stattfindet, lässt sich mit Hilfe des Programms tune2fs einstellen.
2.9  Ich benutze für meinen Internetzugang ISDN mit SyncPPP (ipppd) und Dial-On-Demand. Das funktioniert auch, aber nur einmal. Sobald die Verbindung abgebaut wurde, wird sie nicht automatisch wieder aufgebaut.
Beim Abbau der Verbindung wird vom ipppd die Defaultroute auf das ISDN-Interface gelöscht, so dass weitere IP-Pakete keinen neuen Verbindungsaufbau triggern können, da sie mangels Route nicht auf das ISDN-Interface geleitet werden. Abhilfe: in /etc/ppp/ip-down die Defaultroute wieder auf das ISDN-Interface setzen. /etc/ppp/ip-down wird vom ipppd nach dem Abbau der Verbindung automatisch ausgeführt.
2.10 Wie kann ich ein ext2-Dateisystem defragmentieren?
Es gibt dazu ein Programm im Alphastadium auf sunsite.unc.edu, allerdings wird von der Benutzung regelmäßig abgeraten, sowohl wegen der damit verbundenen Gefahren als auch aus grundsätzlichen Erwägungen, welche ein Text von Kristian Koehntopp erklärt, zu finden in der SuSE-Support-Datenbank unter http://sdb.suse.de/sdb/de/html/ext2frag.html.
2.11 In meiner Shell kann ich keine Umlaute eingeben und die Del/Entf- Taste arbeitet nicht so, wie sie soll (das Zeichen unter dem Cursor löschen). Wie kann ich das ändern?
Das lässt sich (zumindest für die Standard-Shell unter Linux, die bash) ändern, in dem man in die Datei .inputrc im Homeverzeichnis die folgenden Zeilen einträgt:

set meta-flag on
set convert-meta off
set output-meta on
"\e[3~": delete-char
Bei halbwegs aktueller bash (bzw. readline) genügt es, stattdessen die locales richtig zu setzen, z.B. LC_CTYPE=de_DE.
2.12 Warum kann ich ein RPM-Paket, das ich gerade mit rpm -i foo-1.0-1.i386.rpm installiert habe, nicht mit rpm -e foo-1.0-1.i386.rpm wieder deinstallieren? RPM meldet nur: package foo-1.0-1.i386.rpm is not installed.
RPM unterscheidet zwischen dem Namen der Datei und dem Namen des Paketes. Dies ermöglicht es z.B., ein RPM-Paket auch mit verkürztem Namen auf einer DOS-Diskette abzuspeichern und es trotzdem mit dem korrekten Namen zu installieren. Der Name des Paketes ist in der Datei abgelegt und kann mit rpm -qp foo-1.0-1.i386.rpm abgefragt werden. Im vorgenannten Beispiel soll das Paket foo-1.0-1 heißen, so dass die Deinstallation einfach mittels rpm -e foo-1.0-1 oder auch mit der Kurzform rpm -e foo (Weglassen der Versionsnummern) erfolgen kann.
2.13 Wie kann ich auf der Kommandozeile (d.h. ohne X-basierte Programme verwenden zu müssen) ftp über einen Proxy benutzen?
In diesem Fall bietet sich Lynx an. Lynx ist ein Webbrowser für die Textkonsole, der auch ftp über ftp-fähige http-Proxies beherrscht. Um Lynx den passenden Proxy bekanntzumachen, muss man lediglich die beiden Shell-Variablen http_proxy und ftp_proxy auf die URL des jeweiligen Proxies setzen, z.B. so:
bash> export http_proxy=http://mein.http.proxy.de:8080/
bash> export ftp_proxy=http://mein.http.proxy.de:8080/

Alternativ kann man die Proxies für lynx auch in /etc/lynx.cfg setzen.
Eine andere Möglichkeit ist die Verwendung des Programms wget, das entgegen seinem Namen nicht nur mit Web- sondern auch mit ftp-Servern und entsprechenden Proxies umgehen kann.
2.14 Bei Anleitungen zur Netzwerkkonfiguration findet man häufig Angaben wie 192.168.1.0/24. Was bedeutet das /24?
Es handelt sich hier um eine Kurzschreibweise der Netzmaske. Die Zahl steht für die Anzahl der 1-Bits, die in der Netzmaske den Netzwerkteil der davorstehenden Adresse angeben. In diesem Beispiel sind es 24 1-Bits, die Netzmaske ist also in binärer Schreibweise 11111111.11111111.11111111.00000000 bzw. dezimal 255.255.255.0.
2.15 Warum werden Textdateien im Querformat (jeweils 2 Seiten auf einem A4-Blatt) gedruckt und wie kann man das ändern?
Das ist abhängig von der Konfiguration des Druckerfilters. Bei Systemen, die Apsfilter verwenden (z.B. SuSE), kann man das in der Datei /etc/apsfilterrc konfigurieren. Dort gibt es einen Eintrag FEATURE, bei dem die verschiedenen Möglichkeiten in den Kommentarzeilen beschrieben sind.
2.16 Wie kann ich auf meine DOS-formatierten Disketten zugreifen?
Eine Diskette ist für Linux prinzipiell nichts anderes als jeder andere Datenträger, d.h. man kann eine Diskette genauso mounten, wie eine Festplattenpartition. In diesem Fall muss nur der passende Dateisystem-Typ angegeben werden, also z.B. so:
mount -t vfat /dev/fd0 /mnt/floppy.
Dabei steht vfat für lange Dateinamen in Windows95-Art und das Verzeichnis /mnt/floppy muss existieren. Vor dem Entnehmen der Diskette muss diese _unbedingt_ mittels umount /mnt/floppy wieder unmounted werden, sonst kann es zu Datenverlusten kommen ! Da es doch recht umständlich ist, auf diese Art auf Disketten zuzugreifen, gibt es die mtools. Das sind Befehle, die den wichtigsten DOS-Befehlen mit einem vorangestellten m entsprechen, also z.B. mdir, mcopy, mtype etc. Damit kann man, ohne die Diskette mounten zu müssen, z.B. eine Datei von Diskette auf die Platte kopieren: mcopy A:foo.txt /tmp/.
2.17 Wie kann ich LILO wieder aus dem MBR entfernen?
Am einfachsten ist es, MS-DOS zu booten und fdisk /MBR aufzurufen. Eine hinreichend neue DOS-Version vorausgesetzt, wird damit der MBR mit dem Standard-Bootblock überschrieben. Diese Funktion von fdisk ist AFAIK nicht offiziell dokumentiert und funktioniert mit einigen fdisk-Versionen nicht.
Bei WindowsXP sollte es genügen (ungetestet), von der XP Installations-CD zu booten und anschließend folgend Schritte auszuführen: Installation reparieren (R), Reparaturkonsole wählen (K), Partition wählen (1), FIXMBR und FIXBOOT starten.
Soweit unter Linux ein Backup des Original-Bootblocks vorhanden ist, kann dieser auch unter Linux wie im Manual zu lilo beschrieben per dd oder mit lilo -u wieder installiert werden.
2.18 Wie kann ich auf meinen Streamer zugreifen?
Häufig wird gefragt, wie denn ein Streamerband gemounted werden kann. Die Antwort ist recht einfach: gar nicht (zumindest nicht unter Linux).
Ein Streamer ist unter Linux ein sogenanntes Character-Device, d.h. es gibt darauf kein Dateisystem, das man mounten könnte. Zum Schreiben auf und zum Lesen vom Band verwendet man entsprechende Programme, z.B. tar und cpio. Für diese Programme ist ein Streamer eine Blackbox, d.h. dass z.B. tar nicht weiß, an welche Stelle auf dem Band gerade geschrieben wird und tar kann das Band auch nicht vor- oder zurückspulen. Für Bandoperationen (vor- oder zurückspulen, löschen, Suchen einer bestimmten Bandstelle, etc.) gibt es das Programm mt (magnetic tape). Für mt ist das Band wiederum eine Blackbox: mt kennt nicht die Daten auf dem Band, es kennt aber z.B. die Position des Bandes. Tar und mt ergänzen sich daher.
Bei beiden Programmen muss man das zum Streamer gehörende Device angeben. Wie das Device heißt, hängt von der Art des Streamers ab. Der erste SCSI-Streamer im System heißt /dev/st0, ein QIC-80- oder Travan-Floppystreamer wird über /dev/ftape angesprochen und einer der bisher noch recht seltenen ATAPI-Streamer heißt z.B. /dev/hdb, d.h. er erhält die Bezeichnung, die eine Festplatte an gleicher Stelle erhalten würde. Bei den Device-Bezeichnungen muss noch eine wichtige Unterscheidung getroffen werden: die bisherigen Beispiele sind sogenannte rewinding devices, d.h. nach dem Ende jeder Schreib- oder Leseoperation wird das Band automatisch an den Anfang zurückgespult, so dass ein weiterer Schreibvorgang die vorhandenen Daten überschreiben würde. Möchte man, dass das Band nach dem Ende eines Schreib- oder Lesevorgangs an der Stelle stehen bleibt, an der es zuletzt war, muss als Device das entsprechende nonrewinding device angegeben werden, also z.B. /dev/nst0 oder /dev/nftape.

Wie bekommt man jetzt die Daten aufs Band? Dazu ein Beispiel mit einem SCSI-Streamer:
  • Zurückspulen des Bandes, falls noch nicht erfolgt:
    bash> mt -f /dev/st0 rewind
  • Sichern des Verzeichnisses /etc auf den Streamer:
    bash> cd /; tar -cvf /dev/st0 etc/
    Da als Device /dev/st0 angegeben ist, wird das Band anschließend automatisch zurückgespult.
  • Vergleich der geschriebenen Daten:
    bash> tar -dvf /dev/st0
Die Option -dv bei tar bewirkt, dass die jeweils gerade überprüfte Datei auf dem Bildschirm ausgegeben wird. Falls eine Abweichung zwischen Band und Platte festgestellt wird, gibt tar eine entsprechende Meldung aus.
2.19 In /var/log/messages erscheint regelmäßig der Eintrag -- MARK --. Was hat das zu bedeuten?
Mit diesem Eintrag zeigt der Syslogd, welcher für das Protokollieren von Systemereignissen zuständig ist, an, dass er noch läuft. Das Zeitintervall zwischen den Einträgen lässt sich beim Aufruf des Syslogd mittels des Parameters -m Intervall einstellen bzw. mit dem Intervall 0 ganz abschalten.
Einige Syslogd-Versionen unterdrücken den Eintrag, wenn während des Intervalls andere Ereignisse protokolliert wurden, so dass er nur erscheint, wenn ansonsten keine Lebenszeichen des Syslogd sichtbar wären.
2.20 Wie ist das mit den Locales?
Locales sind Konfigurationsdateien, die den Rechner an nationale Gegebenheiten anpassen sollen. Dazu gibt es Dateien, die Informationen über nationale oder regionale Besonderheiten enthalten, u.a. die Sprache, das Zahlen-, das Datums- und das Zeitformat sowie den verwendeten bzw. darstellbaren Zeichensatz. Sind die Locales unvollständig oder nicht richtig konfiguriert, werden sehr restriktive Defaults verwendet, die z.B. nur die Anzeige von 7 bit us-ascii Zeichen erlauben. Die Konfiguration, welche Locale-Einstellungen verwendet werden sollen, erfolgt durch folgende Environmentvariablen. Umgebungsvariablen setzt man entweder mit export VARIABLE=WERT (bash) oder setenv VARIABLE WERT (tcsh).
  1. $LC_ALL Diese Variable überschreibt alle weiter unten erläuterten. Deshalb sollte man sie tunlichst ungesetzt lassen, und die anderen Variablen verwenden.
  2. $LC_CTYPE Diese Variable gibt an, welche Zeichen / welcher Zeichensatz auf dem aktuellen Terminal verwendet werden kann. Wenn diese Variable nicht korrekt gesetzt ist, geben viele Programme z.B. statt Umlauten nur Fragezeichen aus.
  3. $LC_COLLATE Damit kann man die Sortierreihenfolge beeinflussen. Im Locale de_DE beispielsweise ist ä gleichwertig zu a zu behandeln. (ab,äb,ac)
  4. $LANG Der hier eingestellte Wert wird für die anderen LC-Variablen verwendet, sofern nicht diese selbst oder LC_ALL gesetzt sind. Einige wenige Programme wie man werten diese Variable auch direkt aus.
  5. $LC_TIME Diese Variable gibt an, in welchen Formaten Datum und Zeit ausgegeben werden sollen.
  6. $LC_NUMERIC Gibt an, wie Zahlen, die keine Geldbeträge sind, formatiert werden sollen. (z.B. '.' oder ',' als Dezimaltrenner)
  7. $LC_MONETARY Das selbe wie vorhin, diesmal allerdings für Geldbeträge.
  8. $LC_MESSAGES Gibt an, in welcher Sprache Programme ihre Nachrichten ausgeben sollen. Das hat nichts mit automatischer Übersetzung o.ä. zu tun, sondern ein Programm muss für jede Sprache die es unterstützen soll, entsprechend vorgesehen sein. Deshalb werden durch setzen dieser Variable längst nicht alle Nachrichten in Deutsch ausgegeben. Teilweise sind die Übersetzungen auch nicht sehr gelungen.
Ich persönlich setze nur LC_CTYPE, aber das ist eine Sache des pers. Geschmacks.
Für deutsche Einstellungen müssen die Variablen auf "de_DE" gesetzt werden.
Anmerkung: Bei manchen Distributionen müssen die Locales selbst kompiliert werden. Bei Debian (ab woody) macht man das am einfachsten mittels dpkg-reconfigure locales, alternativ kann man die gewünschten locales auch direkt in /etc/locale.gen eintragen und danach als root das Programm locale-gen ausführen.
2.21 Wie [lösche/verschiebe/bearbeite] ich Dateien, die mit - beginnen?
Das hängt vom Programm ab. Oft zum Erfolg führt, nach dem letzten echten Parameter -- und dann den Dateinamen anzugeben. Also etwa so:
$ touch -file
touch: invalid option -- i
Try touch --help' for more information.
$ touch -- -file
nikratio:~/foo$ ls
-file
$ rm -file
rm: invalid option -- l
Try rm --help' for more information.
$ rm -- -file
$ ls
Eine weitere Möglichkeit ist, vor dem Dateinamen das Verzeichnis einzugeben, also z.B. rm ./-file oder rm /home/me/-file.
2.22 Ich benötige die Datei foo.bar, welches Paket muss ich installieren?
Das kommt auf die Distribution an:
  • Debian: Auf den CDs und dem ftp-Server befindet sich im Verzeichnis dists/$Version/ die Datei Contents-$arch.gz, die einfach mittels zgrep durchsucht werden kann.
    zgrep foo.bar /cdrom/dists/potato/Contents-i386.gz
    Alternativ kann man auch die untere Suchmaske ("Search the contents of packages") im Formular auf Debians WWW-Site verwenden.
  • SuSE: YaST bietet die Funktion Paketauskunft.
  • RedHat: Installiert man das Paket rpmdb-redhat (ab RedHat Version 6.2 enthalten), kann man mittels
    rpm -qf `rpm -qla --define '_dbpath /usr/lib/rpmdb/%{_arch}-%{_vendor}-%{_os}/redhat' |
    grep gesuchte.Datei` --define '_dbpath /usr/lib/rpmdb/%{_arch}-%{_vendor}-%{_os}/redhat'
    das entsprechende Paket finden.
  • Alternative für alle rpm-basierten Distributionen: Man erzeugt selbst eine Liste, indem man die Installations-CDs (DVD) der Reihe nach einlegt, mountet und anschließend
    find /mnt/cdrom -type f -name "*.rpm" -print |
    { while read paketdatei ; do
    paket=`basename $paketdatei`
    rpm -qpl "$paketdatei" | sed -e "s/$/ $paket/"
    done
    } >> ~/InhaltallerCDs

    aufruft. Jetzt kann man die Liste einfach mittels
    grep gesuchte.Datei ~/InhaltallerCDs durchsuchen.
2.23  Wie kann ich mit einem Kommandozeilenprogramm Mails mit MIME-Attachment verschicken?
  • mutt -n -F /dev/null -s "Anhang" -a Datei email@adresse < /dev/null
  • mpack -s "Anhang" Datei email@adresse
  • nail -s "Anhang" -a Datei email@adresse < /dev/null
  • metasend -b -s "Anhang" -f Datei -t email@adresse -m application/octet-stream
  • uuenview -b -s "Anhang" -m email@adresse Datei
2.24 Manchmal fängt die Festplatte aus heiterem Himmel an zu rattern - und erst nach einigen Minuten ist der Spuk wieder vorbei.
Dafür ist in aller Regel ein Cronjob verantwortlich. Es handelt sich hierbei um regelmäßige Aufräumarbeiten (z.B. im Spool eines Proxies, Newsservers oder in den Logfiles) und Aktualisierungen (so wird z.B. für das Tool locate mit updatedb eine Datenbank erstellt). Mit top und pstree lässt sich das genauer feststellen.
Sofern nicht anacron eingesetzt wird, wird die Festplatte immer zur selben Uhrzeit aktiv werden. Anacron hingegen richtet sich nicht nach Uhrzeiten, sondern verrichtet seinen Dienst täglich, wöchentlich, oder wie auch immer gewünscht.
2.25  Wie kann ich Audio-CDs mounten?

Das ist normalerweise nicht nötig, da sowohl Programme zum Abspielen der CD wie z.B. xmms als auch solche zum digitalen Grabben (cdparanoia, cdrdao) direkt auf das Device zugreifen.

Sollte diese Antwort nicht überzeugend genug sein, bietet sich cdfs an.

2.26  Beim Versuch, ein rpm-Paket zu installieren, erhalte ich die Fehlermeldung only packages with major numbers <= 3 are supported by this version of RPM.
Das Paket wurde mit der neuen Version 4 von rpm gebaut, deine Version kann mit dem geänderten Format aber nichts anfangen. Der Hersteller deiner Distribution stellt dir vermutlich ein Update auf rpm Version 3.0.5 bereit, das auch mit dem rpm4-Format umgehen kann.
Siehe auch Red Hat, Inc. Product Enhancement Advisory RHEA-2000:051-01 "New version of rpm required to install Red Hat updates" bzw. http://sdb.suse.de/sdb/de/html/thallma_rpm_40.html.
RedHat empfiehlt inzwischen in RHSA-2001:016-03 für alle Versionen von RedHat Linux das Update auf RPM4.
Vorsicht, obwohl RedHat und SuSE beide RPM-basiert sind, unterscheiden sie sich in bestimmten Punkten, wie Paketnamen und Pfaden, so dass ein RedHat-RPM auf einem SuSE-System (und vice versa) laufen kann, aber nicht muss. Vor allem bei den Abhängigkeiten wird es aufgrund der unterschiedlichen Paketnamen Probleme geben.
Wenn man sich nicht mit den entstehenden Problemen herumschlagen will, so sollte man nur zur Distribution passende Pakete installieren.
2.27  Wie kann ich einem Netzwerkinterface mehrere IP-Adressen zuweisen?
Sofern dein Kernel mit "IP Aliasing" unterstützt, genügt beispielsweise
ifconfig eth0:0 127.0.8.15, um eth0 zusätzlich die IP-Adresse 127.0.8.15 zuzuweisen.
Genauer steht das in Kernelquelltext/Documentation/networking/alias.txt.
2.28  Ich habe mein Root-Passwort vergessen, wie komme wieder in mein System?
Du übergibst (wie BootPrompt-HOWTO beschrieben) am lilo-Bootprompt zusätzlich den Parameter init=/bin/sh, gibst dann mit mount -n -o remount,rw / das Rootfilesystem zum Schreiben frei und setzt das Passwort mittels passwd wieder auf einen bekannten Wert. Mounte anschließend mit mount -n -o remount,ro / das Rootfilesystem wieder readonly und boote neu.
Das passwd-Kommando liegt üblicherweise in /usr/bin/, und daher eventuell nicht auf der Rootpartition, in diesem Fall musst du auch diese Partition händisch mittels mount -n -r /usr mounten.
Während der ganzen Prozedur hast du normalerweise keine deutsche Tastaturbelegung, wähle daher ein Passwort ohne Sonderzeichen.
"/" liegt auf "-", "-" auf "ß" und "=" auf der Akzent-Taste, zwischen Backspace und ß.
2.29  Wenn ich versuche, ein Programm auszuführen, bekomme ich immer die Meldung PROGRAMMNAME: No such file or directory (obwohl das angegebene Programm tatsächlich existiert), Backslash found where operator expected at ... oder : command not found.
Es handelt sich bei dem Programm höchstwahrscheinlich um ein Script. Ein Script liegt immer als Textdatei vor. Die Textdateien unter Unix und DOS/Windows sind nun aber verschieden aufgebaut (sie verwenden einen anderen Zeichensatz und andere Zeilenendezeichen). Da Entpacker Textdateien oft an die Gegebenheiten des laufenden Betriebssystems anpassen, sind diese dann unter einem anderen Betriebssystem nicht mehr direkt lesbar.
Du kannst jetzt entweder alle Textdateien mit recode ibmpc..latin1 dateiname ins Linuxformat konvertieren, oder, wenn es sich um ein Linuxarchiv (tar.gz, tgz, tar, tar.bz2) handelt, das Paket direkt unter Linux entpacken beziehungsweise deinem Windowsentpacker das konvertieren abgewöhnen.
Handelt es sich um ein Archiv für Windows, musst du einen Linuxentpacker auftreiben, der ebenfalls automatisch konvertiert, oder aber besser unter Windows entpacken und dann manuell konvertieren.
2.30  Ich habe ein Shell-Skript geschrieben, das als root laufen muss, dazu habe ich mit chmod u+s script.sh das SUID-Bit gesetzt, es hat aber anscheinend keine Wirkung.

Aus Sicherheitsgründen ignoriert Linux das SUID-Bit bei Skripts. Es gibt eine Race-Condition, zuerst öffnet der Kernel die Datei, um herauszufinden mit welchem Interpreter das Skript ausgeführt werden soll (das steht hinter #! in der ersten Zeile), dann öffnet der nun Set-ID laufende Interpreter das Skript. In der Zeit dazwischen kann das Skript verändert worden sein.

Es gibt mehrere Lösungsansätze:

  • Du verwendest ein Programm wie super oder sudo, das es ermöglicht, bestimmte Kommandos zum Ausführen als root freizugeben. Folgender Eintrag in /etc/super.tab erlaubt beispielsweise mason und dixon den Rechner mit super apm in den Standbymodus zu schalten:
    apm "/usr/bin/apm -s" uid=root nargs=0\
    info="Suspend-mode" mason dixon
  • Du verwendest perl als Skriptsprache, siehe perlsec (1p).
  • Du schreibst ein Programm statt eines Skripts.
2.31  Ich suche ein Notfall-Linux, das möglichst auf eine Diskette passen sollte.
Hier eine unvollständige Liste: Auf der letzten Seite gibt es noch mehr Links zu anderen Linux-Systemen auf Floppy.
2.32  Wo kann ich ISO-Images von SuSE Linux herunterladen?
Nirgends, SuSE gibt nur CD-Images der Live-Eval-Version zum Download frei, die direkt von CD läuft und nicht installiert wird. Die Begründung ist unter ftp://ftp.suse.com/pub/README.iso-images.deutsch nachzulesen.
Es besteht allerdings die Möglichkeit, SuSE ohne CD direkt per ftp zu installieren, dies ist in http://sdb.suse.de/sdb/de/html/lmuelle_suselinux_internet.html genauer erklärt.
2.33  Wie installiert man Programme aus dem Internet richtig? Alle meine Versuche mit ./configure, make, make install sind bisher gescheitert.
I.d.R. handelt es sich dabei um gepackte Archive im tar.gz- oder tar.bz2-Format (sog. Tarballs), die zunächst entpackt werden müssen:
tar -xvzf archivname.tar.gz
tar -xv --bzip2 -f archivname.tar.bz2
Nun solltest Du nachsehen, was hierbei genau entpackt wurde. Denn: Tarballs enthalten nicht zwangsläufig Sourcecode, der compiliert werden will. Und nicht alle Programme werden auf die gleich Weise installiert. Meist ist eine Datei INSTALL und/oder README vorhanden, in der der Programmautor erklärt, was zu tun ist.
Oft bricht die Installation ab, da angeblich etwas fehlt - obwohl man sich sicher ist, dass dies vorhanden ist:
  • Zu fast allen Libs existieren sog. "devel"-Pakete; Entwicklerpakete, die zum Compilieren anderer Software benötigt werden. Wer z.B. die GTK-Libs installiert, muß - um GTK-Programme nicht nur ausführen, sondern auch compilieren zu könnnen - das separat erhältliche GTK-Devel-Paket seiner Distribution installieren. Ein anderes Beispiel ist in der Frage über fehlende X11-Dateien zu finden. Der Punkt Ich benötige die Datei foo.bar, welches Paket muss ich installieren? in der FAQ hilft dir vielleicht, das nötige Paket selbst zu finden.
  • Wer Libs selber installiert (und kein fertiges Distributionspaket einsetzt), muß den Pfad zu diesen in der Datei /etc/ld.so.conf eintragen (mit Ausnahme von /lib und /usr/lib). Existieren verschiedene Versionen der gleichen Lib, so wird später jene zuerst gefunden, deren Pfad in dieser Datei zuerst eingetragen ist. Allerdings werden Libs nicht anhand den Einträgen in ld.so.conf gefunden - vielmehr wird /etc/ld.so.cache gefragt. Erstellt und aktualisiert wird diese Datei mittels dem Tool ldconfig anhand der ld.so.conf.
  • Ein weiterer Lauf von ./configure durchsucht nur dann wirklich das System auf Veränderungen, wenn zuvor die Datei config.cache gelöscht wurde.
Ein Blick in Wie werde ich selbst kompilierte Software wieder sauber los vor dem Aufruf von make install ist empfehlenswert.
2.34  Wie werde ich selbst kompilierte, mit make install installierte Software wieder sauber los.
Wenn du das Makefile des Programms noch hast, kannst du es mit make uninstall probieren, sonst bleibt dir nur händisches Suchen, es sei denn, du hast schlauerweise schon beim Installieren Vorkehrungen getroffen, und z.B. einen der folgende Vorschläge befolgt.
  • Verwende Software wie stow, graft oder depot, welche die Software in eigene separate Verzeichnisse ablegt.
  • Erzeuge Pakete im Paketformat deiner Distribution und installiere diese.
    Siehe RPM-HOWTO, Maximum RPM, Debian New Maintainers' Guide und Debian Policy Manual
    Ein kleiner Tipp noch: Erzeuge die RPM- oder DEB-Pakete nicht als root sondern als normaler User, so kannst feststellen, ob die entsprechenden Skripts den Fehler haben, die Dateien direkt ins root-Dateisystem zu kopieren, anstatt in das Verzeichnis, in dem das Paket gebaut wird. Bei Debian musst du dazu fakeroot verwenden und bei rpm folgende Zeile in ~/.rpmmacros aufnehmen
    %_topdir /ein/beliebiges/Verzeichnis
    und (zumindest) die Verzeichnisse BUILD, RPMS/i386, RPMS/noarch, SOURCES, SPECS und SRPMS unter /ein/beliebiges/Verzeichnis anlegen.
  • Installwatch zeichnet auf, welche Dateien bei make install hinzugefügt werden.
  • CheckInstall verwendet Installwatch, um automatisch rpm- oder Slackware-Pakete zu erstellen.
2.35  Wie kann ich verhindern, dass ich die Ausgabe bestimmter cronjobs per Mail zugestellt bekomme.
Du kannst die Ausgabe des Kommandos nach /dev/null umleiten:
08 15 * * * /pfad/zu/blabla > /dev/null
Mit
08 15 * * * /pfad/zu/blabla > /dev/null 2>&1

leitest du zusätzlich auch eventuelle Fehlermeldungen um, die auf Stderr ausgegeben würden. Dies lässt sich auch schöner mit gezieltem (mehrfachen) Setzen von MAILTO erreichen:
MAILTO="ich@here.org"
47 11 * * * job/mit/interessanter/Ausgabe
#
MAILTO=""
* * * * * job/mit/laestigen/Meldungen
2.36  Ich erhalte die Fehlermeldung Argument list too long, wenn ich in einem Verzeichnis mit sehr vielen Dateien mit rm * versuche, alle Dateien zu löschen.

Im Linuxkernel gibt es eine Beschränkung für die Länge der Kommandozeile, bei rm * ersetzt die shell den * durch die Dateinamen und ruft rm mit dieser langen Liste als Argument auf.

Es gibt mehrere Lösungsmöglichkeiten dafür:
  • Eine Schleife: for i in *; do rm "$i"; done
    Hier wird der * von der Shell intern aufgelöst und rm für jede einzelne Datei separat aufgerufen (langsam!).
    Wichtig sind die doppelten Anführungszeichen um $i, sonst würde rm Dateinamen mit beispielsweise Leerzeichen für zwei kurze Dateinamen halten, probiere es mal aus:
    touch "mit Leerzeichen"; rm mit Leerzeichen
  • Die schnellste, bitte nicht erschrecken:
    find ./ -type f -maxdepth 1 -print0 | xargs -r0 rm
    find ./ -maxdepth 1 -mindepth 1 -name ".*" -or -print0 | xargs -r0 rm
    find sucht im aktuellen Arbeitsverzeichnis (./), steigt nicht in Unterverzeichnisse ab, um dort weiterzusuchen (-maxdepth 1), ignoriert aber "./" selbst (-mindepth 1), versteckte Dateien, d.h. die welche einen Punkt als erstes Zeichen im Dateinamen haben, werden ignoriert -name ".*", die Namen der anderen werden auf Stdout ausgegeben, dabei werden die einzelnen Dateinamen durch ein "null character" getrennt (-or -print0).
    xargs liest diese Liste auf Stdin, teilt sie in gerade so große Teile, dass die Kommandozeile nicht zu lang wird, und ruft dann jedesmal rm mit diesen kurz genugen Teillisten als Argument auf. -r steht für --no-run-if-empty und erspart uns eine Fehlermeldung, wenn das Verzeichnis leer wäre und find keine Dateien fände. Sonst würde nämlich xargs rm einmal ohne Argumente aufrufen.
    -print0 und -0 sind wieder nötig, um auch Dateinamen mit Leerzeichen korrekt zu behandeln, sonst würde xargs auch bei Leerzeichen splitten. Diese Lösung ist nicht portabel, d.h. sie läuft praktisch nur mit GNU-find und -xargs, wie es bei Linuxsysteme üblicherweise Verwendung findet. Die Implementationen von find auf anderen unixartigen Systemen verstehen diese Optionen meist nicht, und man muss eine der anderen hier aufgeführten Lösungen verwenden.
  • find ... -or -exec rm '{}' ';' find findet wieder dieselben Dateien wie oben, anstatt aber deren Namen auszugeben, ruft es wieder für jede einzelne Datei einmal rm auf. ({} wird jeweils durch den Namen der Datei ersetzt, das Semikolon kennzeichnet für find das Ende des Kommandos. Beides sind auch für die Shell Zeichen mit besonderer Bedeutung und müssen daher mit Anführungszeichen oder Backslash vor dieser "geschützt" werden.)
  • find ... -or -exec rm '{}' + Nur der Vollständigkeit erwähnt, funktioniert nicht mit GNU find, ist so schnell wie find ... | xargs ..., d.h. es wird nicht für jede Datei ein neues rm gestartet. Diese Syntax ist im Standard Single UNIX Specification Version 3 (bzw. IEEE-1003.1-200x) spezifiziert und schon sehr lange bei Solaris und UnixWare verfügbar.
Lesehinweise: Die Dokumentation zu find im info-Format, das BASH Programming - Introduction HOWTO, die Newsgroup de.comp.os.unix.shell, http://www.heise.de/ix/artikel/2001/07/164/.
2.37  Wie kann ich bestimmten Benutzern Schreibzugriff auf gemountete Windowspartitionen gewähren?
Erstelle einen neue Gruppe und mache die entsprechenden User (im folgenden Beispiel "ich" und "sonstwer") zu Mitgliedern dieser Gruppe (mit groupadd, addgroup, adduser, usermod, YaST, linuxconf, etc.). - Bei Debian geht das so:
groupadd winwrite
adduser ich winwrite
adduser sonstwer winwrite
Jetzt brauchst du die GID der neuen Gruppe.
grep winwrite /etc/group
winwrite:x:4711:ich,sonstwer
Die GID ist die Zahl in der Mitte, also 4711. Füge jetzt in /etc/fstab die Mountoptionen gid=4711,umask=002 ein (direkt durch Editieren oder mit dem Administrationsprogramm deiner Distribution (YaST, linuxconf, etc.), um den Schreibzugriff zu ermöglichen,
/dev/hda1 /mnt/win vfat rw,gid=4711,umask=002 0 0
Das erlaubt den Usern in der Gruppe winwrite (und root) Schreib- und Lesezugriff, allen anderen nur Lesezugriff. Mit mount -o remount /mnt/win treten die Änderungen in Kraft.
Lesetipps: mount (8), umask (2) und fstab (5).
2.38  Wie kann ich den Speicherbedarf eines Verzeichnisses einschließlich der Unterverzeichnisse abfragen? Wie viel freier Platz ist auf der Festplatte noch verfügbar?

Mit dem Kommando du -sxh Verzeichnisname kannst du einfach die gesamte Größe eines Verzeichnisbaums herausfinden. -s sorgt dafür, dass nur der insgesamt verwendete Speicherplatz angeführt wird, anstatt alle Unterverzeichnisse einzeln aufzuführen, -h fordert Angabe der Größe in leichter lesbaren Einheiten (Megabyte oder Kilobyte statt Byte) an. -x bewirkt, dass unter dem Verzeichnis gemountete andere Dateisysteme nicht mitgezählt werden.

Das Kommando df liefert Informationen über belegten und freien Platz.

2.39  Mein Bildschirm wird auf Console nach einiger Zeit schwarz. Wie schalte ich das ab?
Für die Console gibt es das Tool setterm. Ein Aufruf von setterm -blank 0 verhindert, dass das Monitorbild deaktiviert wird. Um die Energiespar-Funktionen des Monitors zu nutzen sind die Parameter powersave und powerdown zu verwenden.
2.40  Ich habe ein Skript geschrieben, das direkt aufgerufen tadellos funktioniert, aber nicht wenn ich es als cronjob starte.
Das liegt höchstwahrscheinlich daran, dass für cronjobs der Standardsuchpfad (PATH) auf einen anderen Wert gesetzt ist, z.B. ist /sbin/ nicht inkludiert. Rufe die Kommandos entweder mit vollem Pfad auf oder setze am Beginn der crontab PATH richtig.
2.41  Was bedeutet es, wenn "ps" einen Prozess als "<defunct>" anzeigt?

Es handelt sich um einen sogenannten Zombie. Die Dokumentation der meisten unix-ähnlichen Systeme bietet dazu als Erklärung an:
"dead, but parent is not waiting"
Um das schlüssig zu erklären, muss man wohl etwas weiter ausholen. Bei der Prozess-Verwaltung gibt es für jeden Prozess einen Eintrag in der Prozesstabelle, in dem bestimmte Daten zur Prozessverwaltung abgelegt werden. Wird der Prozess beendet, werden diese Daten wieder frei gegeben. Allerdings würden mit dem Freigeben des Eintrags in der Prozesstabelle auch Informationen wie der "Exit-Status" des Prozesses unwiderbringlich verlorengehen, und möglicherweise möchte der Parent- Prozess genau diese Information ja noch weiter benutzen.

Um dieses Problem zu lösen, hat man sich folgendes ausgedacht: Der Eintrag in der Prozesstabelle wird eben nicht sofort nach Beendigung des Prozesses freigegeben, sondern erst, wenn der Parent sich diese Informationen abgeholt hat. Dies tut er duch Aufruf der Systemfunktion wait(). Solange also der Parent (Elternprozess) nicht wait() aufgerufen hat, um den Exit-Code des Kindprozesses abzuholen, gibt das System den Eintrag in der Prozesstabelle noch nicht frei. Prozesse in diesem Zustand (sie laufen nicht mehr, sind aber noch in der Prozesstabelle verzeichnet) nennt man Zombies, und diese Prozesse werden in der Ausgabe von "ps" als "<defunct>" markiert.

Eine Schlussfolgerung aus dem bisher gesagten ist, dass jeder Prozess, der sich beendet für kurze Zeit zum Zombie wird (genau so lange, bis der Eltern-Prozess wait() aufgerufen hat). Normalerweise sollte ein Prozess aber nur sehr kurz in diesem Status verbleiben. Bleibt ein Prozess länger in diesem Zustand, liegt meistens ein Programmierfehler vor (in aller Regel beim Eltern-Prozess).

2.42  Wie kille ich einen Zombie?

Die Antwort darauf kann nach der obigen Erklärung eigentlich nur lauten "gar nicht, weil er schon tot ist". Die Frage zielt aber meistens auf etwas anderes hin: Wie beseitigt man den Eintrag in der Prozesstabelle? Dieses Problem würde sich von selbst erledigen, wenn der Elternprozess einmal wait() aufrufen wuerde, um den Exit-Status des Zombies abzuholen (und eigentlich ist nur der Elternprozess dazu in der Lage). Wenn der Elternprozess aber diese Systemfunktion nicht aufruft (Stichwort: "Rabeneltern, die sich nicht mehr um die Kinder kümmern"), wird man diesen Prozess erst einmal nicht los ... ... bis sich der Elternprozess beendet.

Damit "erbt" nun nämlich der Prozess "init" (der Prozess, der beim Systemstart als erstes gestartet wird, mit der Prozess-ID 1) diesen Prozess, und der hat kaum etwas anderes zu tun, als auf seine Kinder zu warten, "init" wird dann also diesen Prozess abräumen. Damit hat man nun bereits eine Methode gefunden, um Zombies los zu werden: Man killt ihre Eltern.

2.43  Ich möchte das Dateisystem meiner Linuxpartition wechseln und z.B. von ext2 auf ReiserFS umsteigen. Kann ich da irgendwie direkt konvertieren?

Nein. Die gängigen Dateisysteme für Linux (ext2, xfs, ReiserFS, ...) unterscheiden sich in ihrer internen Struktur so stark, dass ein direktes Konvertieren nicht möglich ist. (Und wenn schon, würde man es nicht ohne aktuelles, getestetes Backup probieren wollen.)

Es bleibt daher die klassische universelle Methode: Backup, neues Dateisystem erstellen, Daten wieder aufspielen. Siehe Hard Disk Upgrade Mini How-To

Nur zwischen ext2 und ext3 kann man mit tune2fs -j bzw. tune2fs -O ^has_journal hin und her konvertieren.

2.44 Wie kann ich verhindern, dass die Benutzer ihr Homeverzeichnis verlassen können?
Beim Zugriff über ftp ist das ganz einfach, konsultiere die Dokumentation deines ftp-Daemons und suche nach chroot.
chroot für lokales Login oder Anmeldung mit ssh erfordert, dass du alle Programme, die der User verwenden können soll, sowie deren Konfigurations- (/etc) und andere Daten (/usr/share) und zusätzlich natürlich auch die benötigten dynamischen Bibliotheken(/lib, /usr/lib) in sein Homeverzeichnis packen musst. Das ist so aufwendig, wie es sich anhört, und sprengt daher den Umfang dieser FAQ. Dieser Aufwand macht nur in Spezialfällen Sinn z.B., wenn man beim login über ssh nur einen extrem reduzierten Kommandoumfang zur Verfügung stellen möchte.
2.45 Ich brauche ein Shellskript, das ...? Kennt jemand eine Einführung in die Shell-Skriptprogrammierung?

Shell-Skripting ist nicht Linux-spezifisch, und es gibt sogar eine eigene Newsgroup dafür, de.comp.os.unix.shell, stelle Detailfragen bitte dort.

Im WWW finden sich eine ganze Reihe Einführungen in Shellprogrammierung, die bekanntesten dürften wohl Kristian Koehntopps UNIX Shellprogrammierung und BASH Programming - Introduction HOW-TO sein. Eine Suche nach "Shellprogrammierung Einführung" liefert weitere.

2.46  Ich möchte eine Datei, deren Namen mit ".bin" endet, entpacken oder verwenden.
Es sind zwei grundsätzlich verschiedene Typen von bin-Dateien üblich:
  • Selbstentpackende Archive, z.B. Sun Java. file blah.bin wird die Datei als "Bourne shell script text executable" identifizieren. Die Datei wird einfach ausgeführt, d.h. chmod +x blah.bin ; ./blah.bin, wie auch der beiliegenden Dokumentation zu entnehmen wäre.
  • Der Datenteil eines bin/cue CD-Images. Wenn die zugehörige cue-Datei vorhanden ist, kann man das Image mit cdrecord oder cdrdao auf eine CD-ROM brennen oder mit bchunk wandeln. Sonst wird es schwieriger, bin2iso versucht ein passendes cue-Sheet zu generieren. Handelt es sich um ein (S)VCD-Image, kann man es mit MPlayer abspielen oder mit VCDGrab dem MPEG-Teil extrahieren.

3. Fragen zur Hardware

3.1  Funktioniert Linux auf meinem Laptop?
Informationen zur Lauffähigkeit von Linux auf Laptops und zu den besonderen Problemen von Laptops finden sich auf der Linux-Laptop-Page unter http://www.linux-on-laptop.com/. Zusätzlich empfiehlt es sich, http://tuxmobil.org/ zu Rate zu ziehen.
3.2  Funktionieren GDI-Drucker (auch als WinPrinter bezeichnet) unter Linux?
Im Regelfall nein, und sie werden es auch aller Voraussicht nach in näherer Zukunft nicht.
GDI-Drucker haben keine Eigenintelligenz und keinen oder kaum eigenen Speicher, sie verstehen daher auch keine Standard-Druckerkommandos. Sie funktionieren nur unter Windows mit dem mitgelieferten Treiber, unter DOS z.B. sind sie bereits nicht mehr nutzbar. Die Datenübertragung an einen solchen Drucker ist in der Regel sehr zeitkritisch und funktioniert in einer echten Multitasking-Umgebung meistens nicht sauber.
Weiterhin sind die verwendeten Protokolle proprietär, in den meisten Fällen nicht bekannt und man müsste für jeden Drucker- bzw. Protokolltyp einen eigenen Treiber schreiben. Im Printing HOWTO ist ein Abschnitt, der den Treiberstatus diverser GDI-Drucker wiedergibt.
3.3  Warum funktioniert mein internes Modem nicht unter Linux?
Wenn es sich um ein sogenanntes WinModem handelt, gilt das gleiche, wie im Abschnitt GDI-Drucker beschrieben. Ein WinModem ist kein Modem im herkömmlichen Sinn (ein Gerät mit einer seriellen Schnittstelle, das selbständig Daten in Töne und wieder zurück verwandelt und dabei gleichzeitig ggf. Fehler korrigiert). Bei einem WinModem muss der Prozessor des Computers all diese Aufgaben übernehmen. Die verwendete Hardware ist proprietär, die Ansteuerung ist extrem zeitkritisch und in einer Multitasking-Umgebung wie unter Linux derzeit nicht vernünftig zu realisieren. WinModems funktionieren nur unter Windows, unter DOS z.B. schon nicht mehr. Das gleiche Problem ergibt sich mit PCI-Modemkarten, die ebenfalls nur mit einem speziellen Treiber funktionieren. Über den aktuellen Stand der Entwicklung informiert die Webseite http://www.linmodems.org/.

Handelt es sich nicht um ein WinModem, aber um einen plug'n play-Typ, kann es sein, dass die Einstellungen für IRQ und Basisadresse nicht stimmen. Sind diese bekannt, können sie dem System mit dem Kommando setserial übermittelt werden. Ggf. muss man mit Hilfe der isapnptools das Modem umkonfigurieren.
3.4  Funktioniert das Parallelport-ZIP unter Linux?
Ja. Wenn ein neuer Kernel mit make config konfiguriert wird, ist der Parallelport-Treiber unter den anderen SCSI-Treibern zu finden, da es sich bei dem Parallelport-ZIP eigentlich um ein SCSI-ZIP mit einem Parallelport->SCSI-Wandler handelt.
Eine Alternative zu dem (vergleichsweise langsamen) Standard-Treiber gibt es unter http://people.redhat.com/twaugh/parport/.
Ab Kernel 2.2 wird auch das ZIP-Plus unterstützt. Neuere Zip-Laufwerke haben anscheinend eine gegenüber dem ursprünglichen Parallelport-ZIP geänderte Schnittstelle. In diesen Fällen soll u.U. die Verwendung des ZIP-Plus-Treibers helfen.
3.5  Funktionieren Parallelport-Streamer unter Linux?
Nicht mit dem in den 2.0.X-Kerneln integrierten FTape-Treiber. Unter http://www.instmath.rwth-aachen.de/~heine/ftape/ ist jedoch ein aktuelleres FTape-Paket zu finden, welches einige Parallelport-Streamer unterstützt (u.a. einige Iomega-Ditto-Parallelport-Laufwerke). Genauere Informationen zu den unterstützten Typen sind dem Paket zu entnehmen.
3.6  Kann ich mit meiner ISDN-Karte unter Linux Faxe empfangen?
Mit manchen aktiven Karten oder Karten mit integriertem Analogteil ist analoges Faxen teilweise möglich. Der Empfang analoger Faxe mit isdn4linux ist bei passiven ISDN-Karten nicht möglich.
Da das Programmieren der sehr zeitkritischen Routinen für die passiven Karten bisher noch niemand übernommen hat (und es auch relativ kompliziert ist), wird dies wahrscheinlich auch in der näheren Zukunft nicht möglich sein.
Digitale G4-Faxe werden bisher ebenfalls nicht unterstützt.
AVM stellt aber auch für seine passiven Karten wie z.B. FRITZ!Card PCI eine Implementierung von CAPI 2.0 für Linux, CAPI4Linux, zur Verfügung, die auch analogen Faxversand und -empfang ermöglicht. Genauere Hinweise zur Konfiguration und Installation sind auf den WWW-Seiten von AVM unter http://www.avm.de/ zu finden.
3.7  Warum funktionieren unter Linux zwar MO-Medien mit einer Kapazität von 230MB, nicht aber solche mit 640MB?
Linux unterstützt mit Kernel 2.0.x auf MOs nur eine Blockgröße von 512 Bytes, wie sie bei den 230MB-Medien verwendet wird, die 640MB-Medien benutzen jedoch eine Blockgröße von 2048 Bytes. In den 2.2-Kernels befindet sich auch Unterstützung für Blöcke mit 2048 Bytes.
Es wird dazu geraten, beim Erzeugen des Ext2-Filesystems auf einem 640MB-MO mittels mke2fs explizit eine Blockgröße von 2048 Bytes anzugeben, da es ansonsten zu Problemen kommen kann.
Außerdem sind alte a.out-Binaries im QMAGIC-Format nur von Medien zu starten, deren Blockgröße identisch mit der des Gerätes ist, auf dem sie erzeugt wurden, da die Headerinformationen im QMAGIC-Format abhängig von der Blockgröße sind. Mit a.out-ZMAGIC und den aktuellen ELF-Binaries tritt das Problem nicht auf.
3.8  Wenn ich ein externes SCSI-Gerät (z.B. einen Scanner) erst nach dem Booten einschalte, ist es nicht ansprechbar. Wie kann ich es trotzdem benutzen?
Der SCSI-Bus wird normalerweise nur bei der Initialisierung des Hostadapters nach Geräten abgesucht. Initialisiert wird der Hostadapter entweder beim Booten, wenn der Treiber fest eincompiliert ist, oder, falls er als Modul vorliegt, beim Laden des Moduls. Wenn ein SCSI-Gerät zu diesem Zeitpunkt nicht eingeschaltet ist, kann es nicht gefunden werden. Neben der unbefriedigenden Lösung, beim Systemstart alle Geräte einzuschalten, besteht die Möglichkeit, dem Kernel auch im laufenden Betrieb mitzuteilen, dass nach einem SCSI-Gerät gesucht werden soll. Dazu wird das Kommando

scsi add-single-device <Host> <Channel> <ID> <LUN>"

in die Pseudo-Datei /proc/scsi/scsi geschrieben. Dabei bedeuten

Host : die Nummer des Hostadapters (bei nur einem Hostadapter wird hier 0 angegeben),

Channel : die Nummer des SCSI-Kanals auf dem ausgewählten Hostadapter (bei einem einkanaligen Adapter, was wohl der häufigste Fall sein wird, wird eine 0 angegeben),

ID : die SCSI-ID des neu hinzugekommenen Gerätes,

LUN : soweit mit LUNs (Logical Unit Numbers) gearbeitet wird, die LUN des hinzugekommenen Gerätes.


Um also z.B. einen Scanner mit der SCSI-ID 6 an einem einzelnen einkanaligen Hostadapter nachträglich anzumelden, genügt in der Shell das Kommando

echo "scsi add-single-device 0 0 6 0 " >/proc/scsi/scsi

Dabei sollte das später eingeschaltete Gerät die höchste SCSI-ID im Strang haben, da es ansonsten zu Problemen mit der Vergabe der Device-Namen kommen kann. SCSI-Devicenamen (/dev/sdx für Festplatten, /dev/stx für Streamer, /dev/scdx für CDROMs und /dev/sgx für generic SCSI-Devices wie z.B. Scanner oder CD-Brenner) werden in der Reihenfolge der SCSI-IDs vergeben. Damit wäre z.B. sda die Platte mit der kleinsten SCSI-ID, sdb die Festplatte mit der nächstgrößeren SCSI-ID etc. Es gibt aber keine feste Kopplung der Buchstaben an die SCSI-ID, sondern es kommt nur auf die Reihenfolge an, d.h. die erste Festplatte muss nicht unbedingt ID 0 und die zweite Festplatte ID 1 haben, sondern sie könnten z.B. auch die IDs 3 und 6 haben.
Wird jetzt nachträglich ein Gerät eingebunden, das eine kleinere ID hat, als ein bereits angemeldetes, würden sich die Devicenamen aller Geräte mit einer höheren ID verschieben, was ein ziemliches Chaos zur Folge hätte.
WICHTIG: Auch wenn es möglich ist, nachträglich eingeschaltete Geräte zu erkennen, dürfen während des Betriebes keine Geräte physikalisch an den Bus angeschlossen oder von ihm abgetrennt werden (sogenanntes Hot-Plugging), da das zu schweren Hardwareschäden führen kann. Dies ist nur mit speziell dafür ausgelegten Hostadaptern und SCSI-Geräten möglich.
3.9  Seit ich meinen Speicher aufgerüstet habe, ist Linux viel langsamer geworden. Unter DOS tritt der Effekt aber nicht auf. Woran liegt das?
Dieser Effekt tritt auf, wenn mehr Speicher im Rechner vorhanden ist, als die Cache-Logik des Mainboards verwalten kann. Das führt dazu, dass Speicher, der oberhalb einer gewissen Grenze (häufig 64MB, bei vielen 486er-Boards aber auch schon 32MB) liegt, nicht mehr gecachet wird, so dass Zugriffe in diesem Bereich sehr langsam sind.
Dies ist eine Hardwarebeschränkung, die nichts mit Linux zu tun hat, aber unter Linux sichtbar wird, da Linux den Speicher vollständig nutzt und viele Daten im oberen Adressraum ablegt. Unter DOS werden standardmäßig nur die unteren 640KB verwendet, die natürlich innerhalb des cachebaren Bereichs liegen, und bei der Verwendung von EMS/XMS wird der Speicher von unten nach oben belegt, so dass der Effekt erst sichtbar wird, wenn ein DOS-Programm wirklich mehr als die o.g. Obergrenze verwendet. Ein DOS-Programm, das mehr als 64MB Speicher anspricht, ist mir bisher allerdings noch nicht untergekommen.

Bei manchen Boards kann man im BIOS einen Wert für die cacheable area setzen. Dieser sollte natürlich möglichst hoch eingestellt werden. Die maximale Größe der cacheable area ist von mehreren Faktoren abhängig: von der Größe des Cache, von der Breite des Tag-RAMs und vom Chipsatz. Von den Intel-Chipsätzen für Pentiums (FX, HX, VX, TX) haben AFAIK alle bis auf den HX eine im Chipsatz liegende Beschränkung auf 64MB cacheable area, auch wenn der Chipsatz insgesamt mehr Speicher verwalten kann, der jedoch dann nicht gecachet wird.
Bei einem HX-Board muss außerdem für eine cacheable area über 64MB ein 11 Bit breites Tag-RAM verwendet werden. Manche HX-Boards werden standardmäßig mit einem 8Bit breiten Tag-RAM ausgeliefert und müssen mit einem 11 Bit breiten Tag nachgerüstet werden, um mehr als 64MB cachen zu können.
Der ALI Aladin 4/4+ und seine Clones sowie der VIA Apollo VPX/VP-2 können wie der HX-Chipsatz bis zu 512MB cachen, SiS 5581/82 und 5597/98 schaffen immerhin bis zu 128MB RAM (alle Angaben ohne Gewähr). Die Fähigkeit des Chipsatzes alleine reicht allerdings nicht, das Board muss ebenfalls für eine entsprechend große cacheable area ausgelegt sein. Je nach Board/Chipsatz kann eine Erweiterung des Tags und/oder der Cachegröße notwendig sein. PII und Celeron(A) haben den 2nd-Level-Cache bereits im Prozessor integriert und können daher unabhängig vom Chipsatz mindestens 512MB cachen.
3.10 Welche CD-Brenner funktionieren unter Linux?
Eigentlich müßten alle heutzutage verkauften CD-Brenner funktionieren.
Für Linux gibt es derzeit zwei Programme zum Brennen von CDs, cdrtools (cdrecord) und cdrdao (interessant vor allem für Audio-CDs). Zum Erzeugen von Daten-CDs benötigt man mkisofs aus den cdrtools. Auf den Homepages beider Programme finden sich Listen von unterstützten und nicht unterstützten (alten) Geräten.
Beides sind Kommandozeilenprogramme, für die es eine Reihe graphischer Frontends wie z.B. X-CD-Roast und GCDMaster gibt. Oft (meist?) ist es aber schneller und komfortabler, direkt auf die Komandozeilenprogramme zurückzugreifen, anstatt auf ein Frontend zurückzugreifen, als kleines Beispiel möge cdrecord meincd-image.iso (Brennen eines heruntergeladenen CD-Images) dienen.
Lesetipps: CD-Writing-HOWTO und die ausführliche Dokumentation, die cdrecord beiliegt.
3.11 Ich benütze einen ATAPI (IDE) CD-Brenner, wenn ich Audio-CDs brenne, ist das System zu 100% ausgelastet und es kommt sogar zu buffer-underruns. Bei Daten-CDs tritt das Problem nicht auf.
Das ist ein bekanntes Problem des Linux Kernels, genauer gesagt im ide-scsi Modul: Der resourcenschonende DMA Modus wird nur bei der Standardblockgröße (2048 Bytes/Sektor) verwendet, d.h. für "normale" Daten CDs verwendet. Das Erstellen von Audio CDs oder von Daten CDs mit cdrecord -raw -data blah.iso bzw. cdrdao lastet das System stark aus.
Seit Linux 2.6 gibt es eine alternative, besser funktionierende Zugriffsmethode, die nicht unter dieser Beschränkung leidet. Sie wird bei cdrecord durch dev=ATA:1,0,0 (ab 2.01a25) bzw. dev=/dev/hdc ausgewählt. cdrdao unterstützt diese Zugriffsmethode ab Version 1.1.8 (--device ATA:1,0,0 bzw. --device /dev/hdc).
3.12 Ich möchte einen Rechner ohne Tastatur und Monitor unter Linux (z.B. als Kommunikationsserver) betreiben. Wie geht das?
Soweit es Linux betrifft, problemlos. Ob es in der Praxis funktioniert, ist abhängig vom BIOS. Viele BIOS-Versionen prüfen, ob eine Tastatur angeschlossen ist und booten nicht, falls das nicht der Fall ist. Meistens gibt es jedoch eine BIOS-Option, mit der man diese Überprüfung deaktivieren kann. Ein weiteres Problem kann die Grafikkarte bzw. deren BIOS sein. Einige Karten prüfen bei der Initialisierung des VGA-Bios, ob ein Monitor angeschlossen ist und liefern einen POST-Error (Piepser), falls nicht. In einem solchen Fall hilft in der Regel leider nur der Austausch der Karte oder der Anschluss eines entsprechend verdrahteten Blindsteckers, welcher der Karte einen angeschlossenen Monitor vorgaukelt.
3.13 Wie kann ich meine Festplatten nach einer gewissen Zeit der Inaktivität automatisch abschalten lassen (sog. Spindown)?
Bei IDE-Platten geht das mit hdparm -S, für SCSI-Platten ist ein Kernelpatch (SCSI-Idle) notwendig. In der Praxis ist ein solcher Spindown aber nur selten sinnvoll. Unter Linux, wie unter jedem Unix, erfolgt normalerweise spätestens alle paar Minuten irgendein Plattenzugriff, es sei denn, es handelt sich z.B. um eine reine Datenplatte, die nicht gemountet ist. Dadurch wird eine Platte, falls der Timeout so kurz ist, dass sie zwischen den Zugriffen den Motor abschalten kann, dauernd herunter- und und wieder heraufgefahren, was die Lebensdauer der Platte rapide verkürzen kann, insbesondere, wenn es sich um eine Desktopplatte handelt, die im Gegensatz zu einer Notebookplatte nicht für solche Stromsparmaßnahmen ausgelegt ist. Abhilfe schaffen kann hier der noflushd/, der die Zugriffe bei Inaktivität unterbindet. Unbedingt die Warnhinweise im README beachten!
3.14 Ich möchte den bei meinem Scanner mitgelieferten SCSI-Hostadapter AVA 1505 oder 1502 unter Linux benutzen, finde jedoch keinen Treiber.
Sowohl der AVA 1505 wie auch der 1502 funktionieren mit dem Treiber für die Adaptec 152x-Reihe. Wichtig ist, dass die Typen 1505 und 1502 kein BIOS haben und deshalb vom Treiber nicht automatisch erkannt werden können. Es ist daher nötig, dem Kernel IRQ und IO-Basisadresse als Bootparameter zu übergeben, z.B. durch einen Eintrag in /etc/lilo.conf in der Form append="aha152x=0x340,11" (für Basisadresse 0x340 und IRQ 11). Nähere Erläuterungen zu Bootparametern finden sich im BootPrompt-HOWTO.
3.15 Welche Scanner funktionieren unter Linux?
Unter http://www.mostang.com/sane/sane-backends.html stehen die von SANE (Scanner Access Now Easy) unterstützten Scanner-Typen. SANE bietet ein einheitliches API für verschiedene Scanner-Treiber und verfolgt insoweit einen ähnlichen Ansatz wie TWAIN unter Windows.
3.16 Unterstützt Linux USB-Geräte?
Erst ab Kernel 2.2.9 standardmäßig, allerdings hat auch dort die USB-Unterstützung den Status experimentell. Informationen zu USB unter Linux sind unter

http://www.linux-usb.org/

erhältlich.
Ab Kernel 2.2.18 ist der USB-Backport von 2.4 offiziell auch in den 2.2er Kerneln enthalten. Damit muss man keinen Patch mehr einspielen oder auf den 2.4er-Zweig upgraden, wenn man USB unter Linux nutzen will.
3.17 Wie kann ich Disketten vom Amiga oder vom Mac auf einem PC unter Linux lesen?
Amigadisketten im normalen AmigaDOS-Format mit 880KB (DD) oder 1,72MB (HD) lassen sich auf einem PC prinzipiell nicht lesen, da der PC-Diskettenlaufwerkscontroller dazu hardwaremäßig nicht in der Lage ist.
Beim Mac muss auch zwischen dem alten 800KB-Format und dem 1,44-MB-Format unterschieden werden. Bei den 800KB-Disketten gilt das gleiche wie beim Amiga, die 1,44-MB-Disketten sind physikalisch in einem PC lesbar. Für den Zugriff auf die Disketten stehen die hfs-utils zur Verfügung (ähnlich den mtools).
3.18 Wie kann ich die FritzX PC oder die Eumex 404 (ISDN-Anlagen) unter Linux benutzen?
Gar nicht. Beide Geräte verwenden ein eigenes Protokoll zur Kommunikation mit dem Rechner, welches vom jeweiligen Hersteller nicht zugänglich gemacht wird, so dass entsprechende Treiber nicht entwickelt werden können.
3.19 Läuft meine analoge TV-Karte unter Linux?
Momentan werden fast alle erhältlichen Karten grundsätzlich unterstützt, es gibt allerdings deutliche Unterschiede im nötigen Aufwand.
  • Ältere Modelle verwenden den Bt848- oder Bt878 chip, diese werden vom BTTV-Treiber schon recht lange und zuverlässig unterstützt, der Treiber ist schon in Kernel 2.2.* enthalten.
  • Philips 7134 wird vom saa7134-Treiber inzwischen auch recht gut unterstützt. Dieser ist in Kernel 2.6 integriert, für ältere Versionen muss der Kernel gepatcht werden.
  • Die Unterstützung für den Nachfolger der Bt8x8-Serie, Conexant 2388x, befindet sich noch in recht frühen Teststadium und erfordert einen Kernelpatch. (http://bytesex.org/cx88/)
Siehe auch http://www.multimedia4linux.de/.

4. Fragen zum Kernel

4.1  Ich habe Linux gerade erst hochgefahren und fast mein gesamter Speicher ist schon belegt. Verbraucht Linux soviel Speicher?
Linux versucht, den vorhandenen Speicher möglichst effizient zu nutzen. Daher wird der von Programmen zur Zeit nicht benötigte Speicher als Plattencache benutzt. Sobald ein Programm mehr Speicher anfordert, wird der Plattencache automatisch verkleinert und der freigewordene Speicher dem Programm zur Verfügung gestellt. Es ist also vollkommen normal, dass der Speicher immer sehr voll zu sein scheint.
4.2  Linux erkennt nur einen Teil meines Speichers. Wie kann ich das ändern?
Du teilst einfach dem Kernel explizit mit, wie viel Speicher du hast, indem du einen Kernelparameter übergibst, bei 96 MB z.B. mem=96M. Wie Kernelparameter übergeben werden, ist im BootPrompt-HOWTO beschrieben.
Aber Windows erkennt doch problemlos den ganzen Speicher?
Zum Abfragen der Speichergröße gibt es verschiedene BIOS-Funktionen, int15/88, die älteste, kann nur Speichergrößen bis 64 MB übermitteln. Linux benutzt sie, wenn keine der "besseren" Funktionen implementiert ist. int15/e801 wird seit Kernel 2.0.36 (anno 1998) unterstützt und kann auch Speichergrößen über 64 MB zuverlässig zurückliefern, aktuelle BIOS (seit ca. 1999) bieten diese Funktion aber nicht mehr an. Kernel 2.4 verwendet daher wie Windows int15/e820, womit das Problem hoffentlich beseitigt ist. (Mittels fancy-memory-patch kann man auch älteren Kerneln die neue BIOS-Funktion beibringen.)
int15/e801 und besonders int15/e820 melden nicht nur schlicht das obere Ende des Hauptspeichers zurück, sondern können z.B. auch über "Löcher" im Speicher (Memory Holes) und andere Dinge mehr informieren.
Eine Beispielausgabe von Kernel 2.4.x:
BIOS-provided physical RAM map:
BIOS-e820: 000000000009fc00 @ 0000000000000000 (usable)
BIOS-e820: 0000000000000400 @ 000000000009fc00 (usable)
BIOS-e820: 0000000000010000 @ 00000000000f0000 (reserved)
BIOS-e820: 0000000000010000 @ 00000000ffff0000 (reserved)
BIOS-e820: 0000000003f00000 @ 0000000000100000 (usable)
4.3  Ich habe gehört, es gibt Linux auch auf anderen Plattformen wie z.B. DEC Alpha, Sun SPARC, MIPS oder m68k. Kann ich meine Linux-Programme auch auf diesen Plattformen ausführen?
Grundsätzlich nein. Die verschiedenen Plattformen verwenden unterschiedliche Prozessoren und sind daher nicht binärkompatibel. Für die Alphas gibt es eine Intel-Emulation, mit der auch Linux-Programme für Intel-Prozessoren dort ausgeführt werden können, aber diese ist wohl noch nicht vollkommen ausgereift.
Sofern zu einem Programm der Sourcecode vorhanden ist, stellt es jedoch in der Regel kein Problem dar, ihn auf einer anderen Plattform unter Linux zu kompilieren.
Die verschiedenen Linux/68k-Varianten sind untereinander binärkompatibel, d.h. ein auf einem Amiga unter Linux/68k kompiliertes Programm läuft auch z.B. auf einem Atari TT unter Linux/68k und umgekehrt.
4.4  Warum zeigt mein Rechner einen geringeren (höheren) BogoMips-Wert an als ein Rechner mit einem anderen Prozessor, obwohl mein Rechner tatsächlich schneller (langsamer) ist?
Der BogoMips-Wert ist kein Maß für die Geschwindigkeit des Rechners, daher auch die Bezeichnung _Bogo_, das kommt vom engl. Wort bogus, was unsinnig, falsch oder irreführend bedeutet. Der Wert ist vom verwendeten Prozessortyp abhängig und zwischen verschiedenen Prozessortypen nicht vergleichbar (beispielsweise liefert ein 486DX4-100 einen höheren BogoMips-Wert als ein Pentium 100, obwohl der Pentium deutlich schneller ist, noch extremer ist der Vergleich zwischen einem AMD-K5 und einem Pentium). Näheres dazu ist im BogoMips-Mini-HOWTO zu finden.
4.5  Unterstützt Linux FAT32 (das mit Win95b a.k.a. OSR2 eingeführte neue Dateisystem)?
Ja, ab Kernel 2.0.35. Für ältere Kernelversionen gibt es entsprechende Patches, jedoch ist es ratsam, statt der Verwendung des Patches auf Kernel 2.0.35 oder neuer upzudaten.
4.6  Welchen Zweck hat die Datei /proc/kcore und warum belegt sie soviel Platz auf meiner Platte?
Die Dateien in /proc sind nur virtuell, d.h. sie belegen keinen Plattenplatz, auch wenn sie scheinbar eine Länge haben. Der Inhalt der Dateien in /proc wird vom Kernel bei Bedarf generiert. /proc/kcore ist ein Abbild des Hauptspeichers, d.h. die Datei ist genauso groß, wie der vorhandenen Hauptspeicher (plus 4 KB).
Das Proc-Dateisystem hat den Zweck, den Zugriff auf Systeminformationen mit normalen Dateioperationen zu ermöglichen, so dass man sie z.B. leicht in Skripten verwenden kann.
4.7  Ich habe einen Kernel mit Unterstützung für APM (advanced power management), aber es funktioniert nicht bzw. nicht korrekt.
Die APM-Funktionen arbeiten in der Regel nur, wenn im BIOS des Rechners ebenfalls APM aktiviert wurde. Weitere Informationen zu APM im Allgemeinen und auf Laptops im Besonderen finden sich im Battery-Powered Mini-HOWTO, welches in den meisten Distributionen irgendwo unterhalb des Verzeichnisses /usr/doc liegt, sowie auf der Linux-Laptop-Page (vgl. Funktioniert Linux auf meinem Laptop?)
4.8  Ich kann keinen Kernel mehr kompilieren: nach make zImage meldet das System System is too big. Try using bzImage or modules.
Die Meldung besagt, dass das erzeugte Kernel-Image zu groß ist. Bei der traditionellen Methode der Kernelerzeugung darf der resultierende Kernel maximal 512KB groß sein, ist er größer, kann er von der Initialisierungsroutine nicht mehr korrekt entpackt werden. Um dieses Problem zu lösen, gibt es zwei Alternativen: entweder man erzeugt mehr Treiber als Module und verkleinert damit das erzeugte Kernel-Image oder man verwendet statt make zImage (bzw. make zlilo oder make zdisk) make bzImage (respektive bzlilo oder bzdisk). Dabei wird ein anderes Speicherlayout verwendet, welches auch größere Kernel-Images zulässt. Die Bezeichnung bzImage steht dabei für big zImage, hat also nichts mit bzip2 zu tun. Heutzutage ist es weitgehend unproblematisch, generell make bzImage statt make zImage zu verwenden, lediglich ältere LILO- und Loadlin-Versionen können damit nicht umgehen.
4.9   Seit Kernel 2.2.15 funktioniert BattleNet über meinen Linux-Router mit Masquerading nicht mehr.
In Kernel 2.2.15 wurde eine Variable sysctl_ip_masq_udp_dloose eingeführt und standardmäßig auf 0 gesetzt. Dies verhindert nunmehr, dass für das Spiel notwendige UDP-Pakete in Richtung Windows-PC gelangen.

Lösung:
Stelle sicher, dass Port 6112/udp durch einen evtl. vorhandenen Paketfilter gelangt. Füge zusätzlich diese Zeile in dein Firewallscript oder in dein ip-up-Script ein:
echo "2" > /proc/sys/net/ipv4/ip_masq_udp_dloose

WARNUNG:
Alan Cox bewertet dies als Sicherheitsrisiko. Diese Einstellung stellt allerdings ein Verhalten wieder her, das bis einschließlich Kernel 2.2.14 Standard war. Also Vorsicht damit!
4.10 Was bedeutet die Meldung mount fs type devpts not supported by Kernel?
Mit der glibc-2.1 wurden neue Pseudo-Terminals eingeführt, die sich am Unix98-Standard orientieren und deshalb als Unix98-PTYs bezeichnet werden. Für deren Nutzung wurde ein zusätzliches Pseudo-Filesystem, devpts, geschaffen.
Daher muss für die Verwendung von Unix98-PTYs bei der Kernelkonfiguration unter Character Devices der Punkt Unix98 PTY Support und unter Filesystems der Punkt /dev/pts filesystem for Unix98 PTYs aktiviert sein.
4.11 Ich möchte einen neuen Kernel compilieren, erhalte auf make menuconfig aber nur die Meldung make: *** No rule to make target `menuconfig'. Stop.
Das kann mehrere Ursachen haben. Die einfachste Variante: man befindet sich nicht im Kernel-Source-Verzeichnis (im Normalfall /usr/src/linux). Falls doch, ist kein Kernelsource installiert und muss nachinstalliert werden. Für SuSE-Nutzer: anscheinend werden bei SuSE 6.2 die Kernelsourcen nicht mehr standardmäßig installiert, sofern sie bei der Installation nicht explizit ausgewählt wurden.
4.12 Was hat es mit den 2.5.x-Kerneln auf sich? Sollte man von 2.4.x updaten?
Alle Kernel mit einer ungeraden Minor-Nummer (die Nummer an zweiter Stelle, also bei 2.5.x die 5) sind Entwickler-Kernel. Diese enthalten experimentelle Funktionen, lassen sich eventuell gar nicht kompilieren oder können im Extremfall auch Daten auf der Festplatte zerstören. Daher sollte man diese Kernel nur verwenden, wenn man wirklich weiß, was man tut. Für den Normaluser sind Entwicklerkernel ungeeignet und Beschwerden über Probleme mit Entwicklerkerneln werden in den de.comp.os.unix.linux-Newsgroups im Regelfall ignoriert.
4.13 Ich habe auf Kernel 2.6.x geupgradet und es werden keine Module mehr geladen.
Für Kernel 2.6 sind die module-init-tools und nicht mehr die modutils für das Laden von Modulen zuständig. Installiere enweder ein vom Hersteller deiner deiner Distribution bereitgestelltes Paket oder kompiliere die Sourcen von ftp://ftp.kernel.org/pub/linux/kernel/people/rusty/modules/.
Damit wirst du aber vermutlich nicht alle Probleme, die mit einem neuen Kernel auf dich zukommen, gelöst haben, lies Kernelquelltext/Documentation/Changes und überprüfe, ob du die erforderlichen Programme in den nötigen Versionen installiert hast.
4.14  Wie kann ich unter Linux mit Dateien größer 2 GB arbeiten?
Zuerst einmal müssen die Programme, welche mit Dateien > 2 GB arbeiten sollen, andere Betriebssystemaufrufe verwenden als bisher (Natürlich kann man mit diesen trotzdem auch kleinere Dateien erzeugen), da der Zeiger für die Dateiposition von 32 auf 64 Bit gestiegen ist. Dies ist bei längst noch nicht allen Programmen der Fall. Dann müssen Kernel und glibc noch entsprechende Unterstützung anbieten. Auf einer 64-Bit Maschine (z.B. Alphastation) ist das bereits der Fall. Auf 32 Bit Maschinen wie i386 und PowerPC muss man dazu auf einen 2.4 Kernel (oder einen 2.2 Kernel entsprechend patchen) und eine glibc > 2.1.3 umsteigen.
In Stichworten:
  • Kernel 2.4. (Oder einen 2.2er Kernel mit LFS-patch)
  • Glibc 2.1.3 oder glibc 2.2, die gegen die Header eines LFS-fähigen Kernels (s.o.) kompiliert ist.
  • Anwendungen, die LFS verwenden sollen, müssen entsprechend modifiziert worden sein
  • Ein Filesystem, das LFS unterstützt. Ext2, ReiserFS
Genauer steht das alles auf http://www.suse.de/~aj/linux_lfs.html.
4.15  Ich habe einen neuen Kernel kompiliert, dieser bootet aber nicht, sondern gibt die Fehlermeldung Kmod: failed to exec /sbin/modprobe -s -k binfmt-464c, errno = 8 aus.
Du hast beim Konfigurieren des Kernels
Kernel support for ELF binaries
CONFIG_BINFMT_ELF

nicht ausgewählt. Diese Unterstützung für das unter Linux übliche Format von ausführbaren Programmen und Bibliotheken muss fest im Kernel einkompiliert sein und nicht als Modul, da insbesondere modprobe und insmod, die für das Laden von Kernelmodulen nötig sind, im ELF-Format vorliegen.
4.16  Seit dem Upgrade auf Kernel 2.4 verbraucht der Prozess kapm-idled den Großteil der CPU-Leistung.

Wenn dein Linux Kernel mal nicht mit irgendwas beschäftigt ist, sprich ein paar Mikrosekunden lang kein Prozess was erledigt haben möchte ist der Kernel "idle" (im Leerlauf). (z.B: alle Prozesse schlafen und warten auf ein bestimmtes Event, wie das Beenden einer I/O-Operation auf der Festplatte, also auf den Interrupt vom HDD-Controller o.ä.) Hast du nun APM (Advanced Power Management) aktiviert und wird es auch von deiner Hardware unterstützt, so weckt der Kernel nach einer bestimmten Zeit, die er idle ist, den "kapm-idled" Daemon (siehe "d" am Ende des Namens), der wiederum über einen APM BIOS Call die Hardware in "idle" (Powersaving) versetzt, was dann dazu führt, dass während dieser Phase, in der der Kernel eh nichts zu tun hat, Strom gespart werden kann (o.ä.), was vor allem bei Notebooks sehr hilfreich sein kann.

Die Aussage, der APM-idle Daemon "verballere" deine knappe CPU-Leistung, ist damit also vollkommen unsinnig, da der kapm-idled immer nur dann dran kommt, wenn der Kernel eh eine gewisse Zeit lang nichts zu tun hat. Aber wenn es dich beruhigt, kannst du es auch ausschalten oder es gleich aus dem Kernel heraus lassen beim nächsten neuen Kernel. Dafür musst du die Option CONFIG_APM_CPU_IDLE deaktivieren.

4.17  Wie viel Swapspace brauche ich?

Swapspace dient dazu, den verfügbaren Arbeitsspeicher zu vergrößern, d.h. Festplattenspeicher als RAM-Ersatz zu benützen. Wie viel man davon braucht, ist abhängig vom Nutzungsprofil und der Kernelversion. Insgesamt sollte soviel zur Verfügung stehen, dass nie mehr benötigt wird. Da Linux sehr unwillig reagiert, wenn der Speicher ausgeht (es werden der Reihe nach Prozesse gekillt.), sollte du den Swapspace großzügig bemessen. Als grobe Faustregel kann daher Swap = RAM dienen.

Wie groß darf eine einzelne Swappartition bzw. Swapdatei sein?
Bis einschließlich Kernel 2.0.* gab es eine Beschränkung auf 128MB, seit Kernel 2.2 liegt sie bei 2 GB.

Swappartition oder Swapdatei?
Eine Swappartition ist prinzipiell schneller, da der umständliche Zugriff über das Dateisystem, auf dem Swapdatei liegt, weg fällt; allerdings kann dieser Gewinn durch ungünstige Platzierung der Swappartition zunichte gemacht werden (Swap am einen Ende der Festplatte, Daten am anderen, der Festplattenkopf muss dauernd hin und her schwenken.). Siehe Multi-Disk HOWTO.

4.18  Seit dem Upgrade auf Kernel 2.4 zeigt /proc/meminfo immer 0 Byte Shared Memory an.

Wegen interner Änderungen kann der Kernel diesen Wert nicht mehr billig berechnen, um kompatibel zu alten Utilities zu bleiben, gibt er daher immer 0 aus. Siehe http://www.tux.org/lkml/#s14-3.

Damit POSIX Shared Memory nutzbar ist, muss bei der Kernelkompilation Virtual memory file system support aktiviert werden und das entsprechende Filesystem muss gemountet werden.

Bis Kernel 2.4.3 lautet der entsprechende Eintrag in /etc/fstab
none /dev/shm shm defaults 0 0,
ab 2.4.4 (und für frühere Kernel mit tmpfs-patch)
tmpfs /dev/shm tmpfs defaults 0 0.
POSIX Shared Memory wird momentan nur von wenigen meist kommerziellen Programmen (SAP) verwendet, wesentlich häufiger wird SYSV-shmem verwendet, welches auch ohne Mounten von tmpfs verwendet werden kann und über dessen Nutzung das Programm ipcs Aufschluss gibt.

4.19  Seit dem Upgrade auf Kernel 2.4 kann ich bestimmte Hosts im Internet nicht mehr erreichen.

Das kann daran liegen, dass dein Kernel Explicit Congestion Notification (ECN) verwendet, damit kann man in den Headern der IP-Pakete Informationen darüber, ob die Leitung ausgelastet ist, mit übertragen. Leider gibt es noch Router oder Firewalls, die damit nicht zurechtkommen, und solche Pakete nicht weiterleiten, die Rechner dahinter sind daher nicht erreichbar.

Du kannst mit cat /proc/sys/net/ipv4/tcp_ecn den Status von ECN überprüfen, 0 bedeutet aus, 1 ein.

Lösungsmöglichkeiten:

  • Kernel mit
    TCP Explicit Congestion Notification support
    CONFIG_INET_ECN N
    kompilieren
  • ECN beim Booten deaktivieren, trage einfach
    net/ipv4/tcp_ecn = 0
    in /etc/sysctl.conf ein. Debian verwendet modifizierte Kernelsourcen, die als Alternative die Möglichkeit bieten, mit
    Disable ECN support by default
    CONFIG_INET_ECN_DISABLED Y
    ECN in den Kernel einzubauen, ohne es automatisch zu aktivieren.

Lesetipps:

  • RFC3168
4.20  Was bedeutet Journaling-Filesystem? Welches Dateisystem ist das beste?

Journaling funktioniert so: Jeder Schreibzugriff auf das Dateisystem wird zuerst im Journal bzw. Transaktionslog vorgemerkt, wenn die Daten später wirklich ins Dateisystem eingetragen wurden, wird der entsprechende Eintrag im Journal als erledigt markiert. Das Transaktionslog wird nicht gecacht sondern synchron geschrieben. Wenn der Computer jetzt mittendrin abstürzt, geht der fsck (File System Check) viel schneller und einfacher: Man schaut einfach im Journal nach, welche Daten noch zu schreiben sind, und macht das. Unvollständige Einträge im Journal werden entfernt. Beim klassischen fsck muss man dagegen das ganze Dateisystemen darauf untersuchen, ob noch irgendwo durch halbfertige Schreibvorgänge kaputte Daten liegen. Der Nachteil ist, dass diese zusätzliche Komplexität ein wenig Platz auf der Festplatte und Rechenzeit kostet.

Die Frage nach dem besten Dateisystem ist schwer zu beantworten, alle haben ihre Vor- und Nachteile:

  • ext2: Es ist das Älteste und daher ohne Zweifel das am Besten getestete, daher ist es extrem stabil, außerdem gibt es mit fsck.ext2 ein funktionierendes Reparaturprogramm. Ext2 ist aber kein Journaling-FS. Ext2 und ext3 sind bei Verzeichnissen mit sehr vielen Dateien wesentlich langsamer als die anderen Dateisysteme.
  • ext3: Das ist einfach ext2+Journaling. Es ist daher geringfügig langsamer als ext2. Die großen Vorteile im Vergleich den anderen J-FS sind, dass es gegenüber ext2 nur ganz wenig neuen (und daher möglicherweise fehlerträchtigen) Code enthält und dass es kompatibel zu ext2 ist: Man kann ohne Datenverlust von ext2 zu ext3 konvertieren, außerdem kann man ext3-Dateisysteme z.B. mit älteren Kerneln einfach auch als ext2 mounten.
  • ReiserFS: Es ist das Journalling-FS, das schon am längsten im Linux-Kernel enthalten ist und daher auch über eine recht große Anwenderbasis verfügt. Weil es gänzlich anders als ext2 ist, gab es etliche Inkompabilitäten z.B. im Zusammenhang mit NFS. Quota-Support liegt nur als separater Kernelpatch vor. ReiserFS kann bei sehr vielen kleinen Dateien viel Platz sparen, da es nicht für jede einzelne Datei eine ganze Anzahl Blöcke belegt.
  • XFS/Linux: Port des bewährten Dateisystem XFS von IRIX auf Linux. XFS bietet alles was das Herz begehrt (inklusive Quota und ACL) und ist auf IRIX seit 1994 im Einsatz. Das Projekt liegt als externer Kernelpatch vor, der Linux Port ist noch recht jung, über seine Stabilität kann man daher noch keine definitiven Aussagen machen.
  • JFS: Port des Dateisystems JFS von OS/2 auf Linux. Auf Grund seines Entwicklungsstandes nur mäßig interessant.

Lesetipps:

4.21  Inzwischen ist Kernel 2.6 freigegeben worden, soll ich den neuen Kernel verwenden, was muss ich beachten?
Ja, der neue Linux-Kernel ist da - aber langsam, es gibt einiges, was vor einem Update zu bedenken ist:
  • Was versprichst du Dir von dem neuen Kernel konkret? Warum möchtest du ihn einsetzen?
  • Bist du in der Lage herauszufinden, welche zusätzlichen Programme oder neuen Programmversionen zu diesem Kernel benötigt werden? Lies Kernelquelltext/Documentation/Changes!
  • Bist du in der Lage, die geforderten Programm(versionen) zu finden und zu installieren?
  • Bedenke, dass die von den Distributoren üblicherweise standardmäßig verwendeten Kernel gepatcht sind und damit bestimmte zusätzliche Funktionen haben, die du evtl. auch nutzt. Diese Funktionalitäten sind mit dem neuen Kernel evtl. nicht mehr vorhanden.

Wenn du die ersten drei Fragen nicht wirklich sicher beantworten kannst, solltest du auf ein Update so lange verzichten, bis der Hersteller deiner Distribution eine für 2.6 angepasste Version bereitstellt.
Abgesehen von neuen Programmversionen sind beim Upgrade auch noch Änderungen an der Modul- (Sound, CD/DVD, etc.) und Systemkonfiguration (sysfs, X11 ohne nice, Bootparameter, etc.) nötig. Das "post-halloween document" Änderungen im Linuxkernel 2.6 zählt die wichtigsten Änderungen auf.

5. Fragen zu X11 und X-Programmen

5.1  Warum funktionieren unter XFree bei 16Bit Farbtiefe (65535 Farben) die höheren Auflösungen nicht mehr, obwohl sie unter Windows mit der gleichen Hardware möglich sind?
Wenn XFree beim Start des X-Servers eine Meldung der Art

(--) S3: Clock for mode "1024x768" is too high for the configured hardware.
Limit is 80.000 MHz
(--) S3: Removing mode "1024x768" from list of valid modes.

ausgibt, liegt es daran, dass nach der Spezifikation des Grafikchip-Herstellers die maximale Pixelclock, d.h. die maximale Taktrate, mit der der RAMDAC (der Teil der Grafikkarte, der für das Auslesen der Pixeldaten und deren Umwandlung in ein Bildsignal zuständig ist) betrieben werden darf, bei höheren Farbtiefen als 8 Bit begrenzt ist. So dürfen beispielsweise die S3 Trio64-Chips bei 8 Bit Farbtiefe mit 135 MHz Pixelclock betrieben werden, bei 16 Bit Farbtiefe aber nur noch mit maximal 80 MHz.
In dem obenstehenden Beispiel ist für den Modus 1024x768 in der XF86Config eine Pixelclock von mehr als 80 MHz eingetragen, was bei 16 Bit Farbtiefe das Limit überschreitet, weshalb XFree den Modus nicht zulässt.
Häufig halten die Windows-Treiber die Spezifikation des Chipherstellers im Gegensatz zu XFree nicht ein, so dass sie auch in 16 Bit mehr als den eigentlich erlaubten Takt zulassen. Das funktioniert in der Praxis zwar meistens, muss es aber nicht immer und kann zum frühzeitigen Defekt der Grafikkarte führen, da der Chip bei zu hohem Takt überhitzt werden kann (die in Wärme umgesetzte Verlustleistung steigt mit der Frequenz).

Ab XFree 3.3.1 gibt es eine Option, mit der man die maximale Taktrate, die man seiner Grafikkarte in Abhängigkeit von der Farbtiefe zumuten will, in der XF86Config einstellen kann. Die Benutzung erfolgt auf eigene Gefahr. Wer die vorgesehenen Limits überschreiten will, sollte genau wissen, was er tut!

Im o.g. Beispiel (S3 Trio 64) lässt sich bei 80MHz Pixelclock immer noch ein 1024x768-VESA-Modus mit 70Hz Bildwiederholfrequenz nutzen. Mit einer angepassten Modeline sind auch noch 75 oder 76 Hz möglich.
5.2  Nach einer Weile funktioniert meine Maus unter X nicht mehr richtig, ich kann keine Fenster mehr verschieben und auch (manche) Knöpfe nicht mehr betätigen. Woran liegt das?
Wahrscheinlich ist NumLock (Taste oben links am 10er-Tastenblock auf der Tastatur) aktiviert. Unter X11 ist die NumLock-Taste (genau wie Shift, Ctrl, Alt etc.) ein sogenannter Modifier-Key, d.h. eine Taste, die einer anderen Taste eine andere Bedeutung verleiht. Eine Maustaste ist auch eine Taste in diesem Sinne, so dass NumLock+Maustaste etwas Anderes ist als Maustaste. Wenn ein Programm so geschrieben bzw. konfiguriert ist, dass es bei Mausereignissen (z.B. Maustaste gedrückt) die Modifier-Keys nicht ignoriert, tritt das oben beschriebene Verhalten auf.
Beim Windowmanager FVWM2 kann man z.B. für die windowmanager-eigenen Funktionen angeben, auf welche Modifier reagiert werden soll. Nähere Informationen dazu bietet die Manpage unter dem Schlüsselwort Key.
Es ist auch möglich, das Problem zu umgehen indem man X so konfiguriert, dass der 10er-Block auch ohne aktivierten NumLock Zahlen produziert. Dazu muss man folgende Zeilen in ~/.xmodmap bzw. /etc/X11/Xmodmap einfügen:
! Nummerntastatur
keycode 90 = KP_0
keycode 91 = KP_Decimal
keycode 87 = KP_1
keycode 88 = KP_2
keycode 89 = KP_3
keycode 83 = KP_4
keycode 84 = KP_5
keycode 85 = KP_6
keycode 79 = KP_7
keycode 80 = KP_8
keycode 81 = KP_9
keycode 112 = KP_Divide
keycode 63 = KP_Multiply
keycode 82 = KP_Subtract
keycode 86 = KP_Add
5.3  Warum kann ich KDE nicht starten? Das Kommando startkde bringt etliche Fehlermeldungen der Art k*: cannot connect to X server.
KDE ist ein Desktop-Environment, d.h. es setzt auf einem laufenden X-Server auf. Das Script startkde startet nicht den X-Server, sondern lediglich die KDE-eigenen Programme.
Am einfachsten ist es, startkde in die Datei .xinitrc bzw. .xsession im Homeverzeichnis einzutragen. Bei Distributionen, die beim Start von X die Variable WINDOWMANAGER auswerten (z.B. SuSE), genügt es, diese auf startkde zu setzen, da diese Variable in .xinitrc bzw. .xsession ausgewertet wird.
5.4  Warum kann ich in Netscape 4 weder Mail- noch Newsserver angeben? Netscape meldet nur Mail host foo is unknown, News host foo is unknown bzw. <Protokoll> proxy foo is unknown.
Netscape 4 versucht offenbar, die eingegebenen Hostnamen sofort aufzulösen, um die IP-Adresse zu ermitteln, was im Offline-Betrieb ohne Zugriff auf einen Nameserver in der Regel nicht möglich ist und zu der vorgenannten Fehlermeldung führt. Die entsprechenden Einstellungen müssen also entweder im Online-Betrieb vorgenommen werden, oder die entsprechenden Hostnamen müssen zusammen mit ihren IP-Adressen in /etc/hosts eingetragen werden, so dass auch im Offline-Betrieb eine Namensauflösung möglich ist. Alternativ kann man in den Netscape-Preferences auch direkt die IP-Adresse des jeweiligen Mail- bzw. Newsservers angeben.
5.5  Wie kann ich unter Linux Divx-, wmf-, oder asf-Videos wiedergeben
xanim scheitert leider daran, avifile und MPlayer kommen aber weitgehend problemlos damit zurecht.
5.6  Wie kann ich unter Linux Quicktime-Videos mit Sorenson Codec wiedergeben?
Die aktuelle Version von MPlayer(Stand: 2002-01-05) kann das.
5.7   Wieso bekomme ich die Fehlermeldung Can't find X includes. Please check your installation and add the correct paths, wenn ich ein Programm compilieren will, das X benutzt?
Das liegt daran, dass du die zu X gehörenden Headerfiles nicht installiert hast. Je nach Distribution hat das Paket, das diese enthält, einen anderen Namen; bei Debian z.B. heißt es "xlib6g-dev", bei SuSE bis Version 8.1 "xdevel", bei neueren Versionen ebenso wie bei RedHat "XFree86-devel".
5.8   Wenn ich mit su als root versuche ein X11-Programm zu starten, erhalte ich die Fehlermeldung Error: Can't open display: oder Xlib: connection to ":0.0" refused by server Xlib: Client is not authorized to connect to Server Error: Can't open display: :0.0.
Im Artikel Alle Macht dem User von Jo Moskalewski werden die meisten gängigen Lösungsansätze für dieses Problem erläutert. Der Text ist unter http://www.dcoul.de/infos/user2root.html zu finden, überdies wird er wöchentlich in de.comp.os.unix.linux.infos gepostet. Eine nette Alternative/Abrundung der dort genannten Möglichkeiten ist das Skript sux.
5.9  Wie kann man das Rad der Scroll-Mäuse unter Linux nutzen?
Eine einheitliche Unterstützung existiert bisher leider nicht, da diese Funktionalität noch recht neu ist. In der Regel sind die Funktionen des Rades über die Maustasten 4 bzw. 5 implementiert, so dass sie sich prinzipiell in allen Programmen nutzen lassen, die diese Tasten abfragen können. Unter der URL http://www.inria.fr/koala/colas/mouse-wheel-scroll/ sind einige Möglichkeiten beschrieben.
Mit http://jcatki.dhs.org/imwheel/ kann man wiederum Klicks der Maustasten je nach Programm auf verschiedene Tastendrücke abbilden. Dies ist aber meist nicht nötig, da sich die meisten Programme über X-Ressourcen so konfigurieren lassen, dass sie direkt auf die entsprechenden "virtuellen Mausklicks" reagieren.
5.10  Wie kann ich das Scrollrad meiner Maus im Adobe Acrobat Reader nutzen?
Trage folgendes in ~/.Xresources ein und rufe anschließend xrdb -merge ~/.Xresources auf. - Jetzt sollte das Mausrad zumindest auf dem Scrollbalken funktionieren und bei gedrückter Umschalttaste um ganze Seite, in Verbindung mit Strg um ein Zeile und ohne zusätzliche Taste um fünf Zeilen scrollen.
        AcroRead*XmScrollBar.baseTranslations: #augment \n\
        Ctrl<Btn4Down>: IncrementUpOrLeft(0) IncrementUpOrLeft(1)\n\
        Ctrl<Btn5Down>: IncrementDownOrRight(0) IncrementDownOrRight(1)\n\
        Shift<Btn4Down>: PageUpOrLeft(0) PageUpOrLeft(1)\n\
        Shift<Btn5Down>: PageDownOrRight(0) PageDownOrRight(1)\n\
        <Btn4Down>: IncrementUpOrLeft(0) IncrementUpOrLeft(0) \
        IncrementUpOrLeft(0) IncrementUpOrLeft(0) IncrementUpOrLeft(0) \
        IncrementUpOrLeft(1) IncrementUpOrLeft(1) IncrementUpOrLeft(1) \
        IncrementUpOrLeft(1) IncrementUpOrLeft(1)\n\
        <Btn5Down>: IncrementDownOrRight(0) IncrementDownOrRight(0) \
        IncrementDownOrRight(0) IncrementDownOrRight(0) \
        IncrementDownOrRight(0) IncrementDownOrRight(1) \
        IncrementDownOrRight(1) IncrementDownOrRight(1) \
        IncrementDownOrRight(1) IncrementDownOrRight(1)\n
        
5.11  Kann man mehrere Monitore gleichzeitig unter Linux betreiben?
Seit XFree86 Version 4.0 gibt es Unterstützung für den Betrieb mehrerer Monitore und Grafikkarten unter X11. Das Xinerama-HOWTO gibt eine kurze Einführung zur Konfiguration. In der Console ist dies mittels des noch experimentellen Framebuffer Devices möglich.
5.12 Wie kann ich meine von XFree86 nicht unterstützte Grafikkarte trotzdem im Grafikmodus benutzen?
Dazu gibt es drei Möglichkeiten: Jede VGA-kompatible Karte funktioniert mit dem VGA16-X-Server von XFree3 bzw. dem Treiber "vga" von XFree4. Dieser arbeitet im Standard-VGA-Modus, den jede VGA-Karte unterstützt. Da VGA leider nur bis maximal 640x480 bei 60Hz Bildwiederholrate und 16 Farben spezifiziert ist, kann auch der XF86_VGA16 nicht mehr darstellen. Die interessantere Möglichkeit für moderne Grafikkarten ist das VESA-Framebuffer-Device, welches es seit Kernelversion 2.2 gibt, in Verbindung mit dem Framebuffer-X-Server XF86_FBDev (bei XFree4 Treiber "fbdev"). Voraussetzung für deren Benutzung ist eine Grafikkarte mit VESA-BIOS 2.0 oder neuer.
Dabei wird mit folgendem Trick gearbeitet: der Bootloader aktiviert (noch im Real-Mode) über das VESA-BIOS den Grafikmodus und fragt ebenfalls über das VESA-BIOS die Lage des Bildspeichers ab. Diese Daten werden an den Kernel übergeben, welcher einfach den durch das VESA-BIOS konfigurierten Videocontroller verwendet, so dass der Kernel und auch der auf dessen Routinen aufsetzende X-Server XF86_FBDev nichts über den Videocontroller der Karte wissen muss, sondern einfach die voreingestellten Werte übernimmt.
Die großen Nachteile dabei:
  • Da der X-Server den Videocontroller nicht direkt anspricht, kann er keinerlei Beschleunigungsfunktionen nutzen, d.h. X ist relativ langsam.
  • Es sind nur die Videomodi möglich, die das VESA-BIOS zur Verfügung stellt, und die bieten bei den meisten Grafikkarten leider nur 60Hz Bildwiederholrate.
    Bei Karten mit VESA BIOS Version 3 lässt sich diese Beschränkung dem DOS-Programm vbehz beheben. Man startet zuerst DOS, ruft vbehz auf und bootet nachher mit loadlin Linux.
Informationen zur Konfiguration des VESA-Framebuffer-Devices sind im Linux-Kernelsource unter /usr/src/linux/Documentation/fb/vesafb.txt zu finden.
Die dritte Möglichkeit bietet der Treiber "vesa" von XFree4. Er spricht die Grafikkarte im VESA-Modus an, ohne den Umweg über den Framebuffer zu gehen, dadurch ist die Konfiguration einfacher, die oben erwähnten Beschränkungen bleiben aber bestehen.
5.13  Werden Grafikkarten mit Kyro- oder Kyro2-Chip von XFree86 unterstützt?

Seit Ende Februar 2002 sind unter http://www.powervr.com/Downloads/index.asp binäre Treiber erhältlich. Die Treiber bieten 2D- und 3D-Beschleunigung und verwenden DRI. Sie liegen als rpm-Paket für die Kernel von Suse 7.3 (Kernel 2.4.10-4GB), RedHat 7.2 (Kernel 2.4.7-10, 2.4.9-31) sowie Mandrake 8.1 (Kernel 2.4.8-26mdk, 2.4.8-34.1mdk) und 8.2 (Kernel 2.4.18-6mdk), sowie kernelunabhängig als src.rpm (wenn man eine RPM-basierte Distribution mit einem anderen Kernel verwendet) und tar.gz-Paket vor.

Die Treiber stehen unter einer recht restriktiven Lizenz und liegen nicht im Quelltext vor, daher ist es (zumindest vorläufig) nicht möglich, sie bei diverse Linuxdistribution mitzuliefern oder gar in XFree86 aufzunehmen.

Ich kann das nicht ausprobieren, aber wenn die Treiber wie versprochen ordentliches DRI machen, sollten sie doch eigentlich auch ohne das Kernelmodul, dann aber ohne 3D-Beschleuigung laufen. Ich frage nochmal in dcoulh nach, ob das jemand testen kann.

Installationsanleitung und Liste bekannter Probleme (Unterstützung für mehrere Grafikkarten, angepasste Modelines - nur Anpassung der Bildwiederholfrequenz - und Betrieb auf SMP-Systemen) ist in http://www.powervr.com/Downloads/Drivers/2-01-21-0007/README zu finden.

5.14  Wird die ATI Radeon VE von XFree86 unterstützt?
Ja, seit Version 4.1.0 gibt es Support für diese Grafikkarte inklusive DRI (3D-Beschleunigung).
Solltest du trotzdem kein Bild erhalten, hilft es vermutlich, den Monitor (mittels dem der Karte beiliegenden Adapter) am DVI-Anschluss anzuschließen und den Computer neu zu starten.
5.15  Mein Bildschirm wird auf unter X11 nach einiger Zeit schwarz. Wie schalte ich das ab?
Unter X11 existiert der Befehl xset, der korrekte Aufruf wäre xset s noblank. Für die Energiespar-Funktionen existiert weiterhin die Option dpms. Der Energiespar-Modus kann auch in der Konfigurationsdatei des X-Servers komplett abgeschaltet werden; näheres findet man in XF86Config-4 (5)(XFree 4.*) bzw. XF86Config (7).

A. Wissenswertes für Autoren

A.1  Kommandos der Mailingliste
Die Mailingliste wird per Mailman gemanaged. Mailman wird primär über ein Webinterface administriert. An- und Abmeldung und Einstellen der persönlichen Optionen ist auf https://buug.de/cgi-bin/mailman/listinfo/linux-faq/ möglich.
Man kann das auch per E-Mail an linux-faq-request@buug.de erledigen, folgende Kommandos sind bekannt, die Angaben in eckigen Klammern sind optional:
  • subscribe [address=E-Mail-adresse]: Anmeldung
  • unsubscribe Passwort [address=E-Mail-adresse]: Abmeldung
  • info: Informartionen über die Liste
  • set option on|off Passwort: (de)aktiviert bestimmte Optionen.
    • ack: Bestätigung für an die Liste versandte Mails.
    • digest: Zustellung als einzelne Mails oder gesammelt.
    • plain: Sammelmails als plain-text statt MIME verschicken.
    • nomail: Keine Mails zustellen, z.B. anstelle sich temporär abzumelden
    • norcv: Kein Empfang selbst versandter Mails an die Liste
Ausführlichere Informationen und Hinweise auf weitere Kommandos und Optionen und Informationen erhält man nach einem Mail mit Betreff help an linux-faq-request@buug.de.
A.2  Wie ist die XML Struktur der Sektionen zu verstehen?
Um die Struktur der XML Files zu verstehen sieht man sich am besten die DTDs (Document Type Definition) dazu an. Die Datei section.dtd beschreibt die Element-Struktur der XML Dateien für Sektionen (section?.xml).
                <!ELEMENT section (title, sectionid, preamble?, faq+)>
                
Eine Section beginnt immer mit einem Element section. Diese Element wird auch root-node (Wurzel-Knoten) genannt, da es die Wurzel einer Baumstruktur bildet.
Das section Element muss ein title, ein sectionid und mindestens ein faq Element enthalten, und es bildet damit die Grundstruktur für ein Section-File.
                        <!ATTLIST section
                                date    CDATA   #REQUIRED
                                title   CDATA   #IMPLIED>
                
Damit das section Element nicht nur die Eigenschaft des root-nodes hat, transportiert es in den Attributen date und title Informationen über das Dokument. date enthält das Datum der letzten Änderung an der Datei und ist zwingend notwendig. title enthält den Titel des Dokumentes. Dieser Titel ist nicht derjenige, der später oben als Überschrift erscheint, sondern dient zur Identifizierung der Datei. Dieses Attribut ist nicht vorgeschrieben (#IMPLIED).
                        <!ELEMENT title (#PCDATA)>
                        <!ELEMENT sectionid (#PCDATA)>
                                <!ATTLIST sectionid
                                        id      ID      #REQUIRED>
                
Das Element title bildet die Überschrift der Section (die, die später oben auf der Seite erscheint). Über das Element sectionid muss eine Section eindeutig identifizierbar sein. Die sectionid dient als Grundlage für Querverweise innerhalb und von außerhalb der FAQ und bildet gleichzeitig den Dateinamen der HTML Dateien (z.B. 1.html wäre das HTML Dokument, das aus der Section mit sectionid 1 erzeugt wurde).
Das id Attribut dient zurzeit als Dummy Attribut für die Einträge in der Datei changes.xml und muss den ID-Wert "sec" + sectionid enthalten. Ein Beispiel: <sectionid id="secX">X</sectionid>
                        <!ELEMENT preamble ANY>
                                <!ATTLIST preamble
                                        author  IDREF   #IMPLIED>
                
Das Element preamble dient dazu ein Vorwort zur Sektion zu verfassen. Es kann jeden möglichen Markup enthalten. Das Attribut author sollte der Autor des Vorwortes mit seiner ID füllen.
                        <!ELEMENT faq (question, answer, comment*)>
                                <!ATTLIST faq
                                        id      ID     #REQUIRED>
                
Das Element faq bildet einen Container für eine Frage (question), die dazu gehörende Antwort (answer) und eventuelle Kommentare (comment). Frage und Antwort müssen jeweils genau einmal vorkommen, Kommentare können beliebig viele enthalten sein (beliebig schließt 0 mit ein!). Das Attribut id ist ein eindeutiger Bezeichner der FAQ, mittels dessen auf die FAQ referenziert werden kann.
                                <!ELEMENT question (#PCDATA)>
                                <!ELEMENT answer ANY>
                                        <!ATTLIST answer
                                                author  IDREF   #IMPLIED>
                                <!ELEMENT comment ANY>
                                        <!ATTLIST comment
                                                type    (noprint|print) "noprint"
                                                author  IDREF   #REQUIRED>
                
Das question Element enthält eine Frage, zu der das answer Element die Antwort gibt. Im author Attribut sollte sich der Autor der Antwort mit seiner ID verewigen. Wenn jemand diese kommentieren möchte, kann er dies mit Hilfe des comment Elementes tun. Das comment Element hat zwei Attribute: type gibt an, ob der Kommentar in der HTML Ausgabe erscheinen soll ("print") oder nicht ("noprint"). Standardmäßig wird "noprint" angenommen. Im author Attribut muss der Kommentator seine ID angeben.
A.3  Wie sieht die Struktur der übrigen XML-Files aus?
Auch hier schaut man am besten wieder in die DTDs der einzelnen Dateien.

authors.xml

                <!ELEMENT authors (author+, user*)>
                        <!ATTLIST authors
                                date    CDATA   #REQUIRED
                                title   CDATA   #IMPLIED>

                        <!ELEMENT author ANY>
                                <!ATTLIST author
                                        name    CDATA   #REQUIRED
                                        job     CDATA   #REQUIRED
                                        mail    CDATA   #IMPLIED
                                        id      ID      #REQUIRED>

                        <!ELEMENT user ANY>
                                <!ATTLIST user
                                        name    CDATA   #REQUIRED
                                        mail    CDATA   #IMPLIED
                                        id      ID      #REQUIRED>
                
Die Datei authors.xml enthält Informationen über alle Mitwirkenden an der FAQ. Aktive Mitglieder in der Mailingliste, die auch einen CVS Account haben, werden normalerweise als authors betrachtet, während Leser, die eine Kommentar, eine Korrektur oder einen neuen Vorschlag eingereicht haben, als user aufgeführt werden. Beide Elemente haben ähnliche Attribute. name enthält den Namen des Autoren/Users, mail die E-Mail Adresse (die Angabe ist optional). Über das Attribut id, kann der Autor referenziert werden. Der Wert der id muss FAQ-weit eindeutig sein! Für Autoren werden normalerweise die Initialen in Großbuchstaben, für User der volle Name in Kleinbuchstaben verwendet.
Das author Element hat zusätzlich noch das Attribut job welches die Hauptaufgabe des Autoren enthält (meine Hauptaufgabe ist z.B. die XML/HTML Struktur der FAQ).
Beide Elemente können zusätzliche Informationen zur Person einschließen. Beim user wird das normalerweise eine Notiz zum eingereichten Vorschlag sein.
Die Informationen über Autoren erscheinen auf der Index-Seite der FAQ. Die vollen Informationen über Autoren und User erscheinen in Sektion F.

changes.xml

                <!ELEMENT changesd (dummyhook?,changes+)>
                        <!ATTLIST changesd
                                date    CDATA   #REQUIRED
                                title   CDATA   #IMPLIED>

                        <!ELEMENT changes (change+)>
                                <!ATTLIST changes
                                        date    CDATA   #REQUIRED>

                                        <!ELEMENT change (#PCDATA)>
                                                <!ATTLIST change
                                                        section CDATA   #REQUIRED
                                                        faq     IDREF   #REQUIRED>
                                
                                <!ELEMENT delete ANY>
                                <!ATTLIST delete
                                        section CDATA   #REQUIRED
                                        faq     CDATA   #REQUIRED
                                        rev     CDATA   #REQUIRED>
                
                                <!ELEMENT globchange ANY>
        
                        <!ELEMENT dummyhook EMPTY>
                                <!ATTLIST dummyhook
                                        id      ID      #IMPLIED>
                
Die Datei changes.xml enthält alle inhaltlichen Änderungen an der FAQ zwischen zwei Builds/Releases. Dazu ist ein Container changes definiert, der im Attribut date das Datum des aktuellen Builds enthält. Dieses wird immer von demjenigen geändert, der ein neues Build macht (momentan ist das Thomas Nesges). Dieser setzt in date das Datum des Builds ein (das aktuelle Datum). Damit ist dieser changes Container abgeschlossen und er eröffnet darüber einen neuen Container. Für alle anderen Autoren gilt also, dass sie weder neue changes Container anlegen, noch sich an dem möglicherweise falschen Datum im date stören müssen. Es müssen einfach nur im obersten Container Element der changes.xml Datei neue change Elemente angelegt werden.
Der Container enthält mindestens ein change Element, welches eine einzelne Änderung an einem durch die Attribute section und faq genau spezifizierten FAQ-Eintrag enthält. Das Attribut faq enthält ab sofort die ID des Eintrags (nicht mehr die Nr)! Um Probleme mit der Validierung der Dokumente zu umgehen, kann das faq Attribut mit dem Wert dummy gefüllt werden. Dieses ID-Element wird durch das neue dummyhook definiert, welches am Anfang von changes.xml steht und dessen Attribut id den Wert dummy hat. Ein typischer Anwendungsfall ist zum Beispiel ein Bezug auf ein gelöschtes FAQ-Element.
Gelöschte FAQ-Elemente werden nicht mit dem Element change, sondern mit delete ausgezeichnet. Dieses Element ähnelt dem change Element in seinen Attributen, allerdings ist faq hier vom Typ CDATA, welcher nicht validiert wird. Dadurch kann hier die originale ID verwendet werden, ohne dass sie im Dokument vorkommen muss (bei gelöschten Elementen der Fall). Neu ist das rev. In ihm wird die Revisionsnummer der Revision angegeben, in der das gelöschte Element zuletzt vorkam. Dadurch kann ein Link auf das CVS Webinterface erstellt werden, über den der Leser sich das gelöschte nochmal ansehen kann.
Das Element globchange dient dazu Änderungen auszuzeichen, die sich auf die gesamte FAQ auswirken und nicht an einer bestimmten Frage oder Sektion festzumachen sind. Es kann allen möglichen Markup enthalten und hat keine Attribute.

links.xml

                <!ELEMENT links (link+)>
                        <!ATTLIST links
                                date    CDATA   #REQUIRED
                                title   CDATA   #IMPLIED>

                        <!ELEMENT link (#PCDATA)>
                                <!ATTLIST link
                                        href    CDATA   #REQUIRED
                                        title   CDATA   #IMPLIED>
                
Die Datei links.xml enthält Links, die auf der Index-Seite der FAQ erscheinen sollen. Das Element link hat ein Attribut href, welches den URL enthält und ein optionales Attribut title, welches einen Titel für den Link definieren kann. Fehlt dieses Attribut, wird für den Linktitel automatisch der Wert aus href genommen.

preamble.xml

                <!ELEMENT preamble (title, text)>
                        <!ATTLIST preamble
                                date    CDATA   #REQUIRED
                                title   CDATA   #IMPLIED>

                        <!ELEMENT title (#PCDATA)>
                        <!ELEMENT text ANY>
                
Die Datei preamble.xml enthält ein Vorwort zur FAQ. Dieses Vorwort wird auf der Index-Seite angezeigt. Das Element title definiert einen Titel, das Element text Enthält den Text des Vorworts. Der Text kann aus gültigem Markup bestehen (dazu wird html.dtd eingebunden).

overview.xml

                <!ELEMENT overview (intro, version+)>
                        <!ATTLIST overview
                                date    CDATA   #REQUIRED
                                title   CDATA   #IMPLIED>
                
                        <!ELEMENT intro (#PCDATA)>
                        <!ELEMENT version (title, browser?, files, text)>
                                <!ATTLIST version
                                        type    CDATA   #IMPLIED
                                        dir     CDATA   #REQUIRED>
                
                                <!ELEMENT title (#PCDATA)>
                                <!ELEMENT browser (#PCDATA)>
                                <!ELEMENT files (file*, tgz*)>
                                        <!ELEMENT file (#PCDATA)>
                                        <!ELEMENT tgz (#PCDATA)>
                                <!ELEMENT text (#PCDATA)>
                
Die Datei overview.xml enthält eine Übersicht über alle Ausgabeformate der FAQ und kann als Gesamtindex betrachtet werden. Das Element intro beinhaltet einen einleitenden Text, danach folgen mehrere version Elemente, von denen jedes für ein Ausgabeformat steht. Im type Attribut kann der Mime-Type des Formates angegeben werden (z.B. text/html, text/plain), das Attribut dir bestimmt das Unterverzeichnis, in dem die Version auf dem Webserver abgelegt ist. Das Element title gibt einen Titel für den Abschnitt der Version auf der Overview Seite an, im Element browser können empfohlene Browser angegeben werden, falls nötig. Das Containerelement files kann beliebig viele file und tgz Elemente enthalten. Für jede Datei der Version sollte ein file Element angelegt werden, das tgz Element enthält den Speicherplatz eines Tar Archives aller Files. Im Element text können noch nähere Erläuterungen zu der Version angegeben werden.
A.4  Mit welchen Tags kann ich die Antworttexte formatieren?
Zur Formatierung der Texte innerhalb der FAQ sind in html.dtd und misc.dtd einige Tags definiert. html.dtd definiert dabei Nachbildungen von bekannten HTML Tags, im einzelnen:
                <!ELEMENT a (#PCDATA)>
                        <!ATTLIST a
                                href CDATA #REQUIRED>
                <!ELEMENT br EMPTY>
                <!ELEMENT hr EMPTY>
                <!ELEMENT code ANY>
                <!ELEMENT i ANY>
                <!ELEMENT ul (li+)>
                <!ELEMENT ol (li+)>
                <!ELEMENT li ANY>
                <!ELEMENT pre ANY>
                <!ELEMENT h3 ANY>
                <!ELEMENT h4 ANY>
                
Diese Tags sind genauso wie ihre HTML Äquivalente anzuwenden.
In misc.dtd sind zusätzliche Tags definiert, die speziell für diese XML Anwendung Geltung haben:
                <!ELEMENT faqlink (#PCDATA)>
                        <!ATTLIST faqlink
                                sec     CDATA   #REQUIRED
                                id      CDATA   #REQUIRED
                                title   CDATA   #IMPLIED>
                
                <!ELEMENT file (#PCDATA)>
                <!ELEMENT dir (#PCDATA)>
                <!ELEMENT attribute (#PCDATA)>
                <!ELEMENT element (#PCDATA)>
                <!ELEMENT authorref EMPTY>
                        <!ATTLIST authorref
                                id      IDREF   #REQUIRED>
                <!ELEMENT insertauthors EMPTY>
                <!ELEMENT codeblock (#PCDATA)>
                
                <!ELEMENT man (#PCDATA)>
                        <!ATTLIST man
                                section CDATA   #IMPLIED>
                

Das Element faqlink definiert einen Querverweis innerhalb der FAQ. Dazu kann kein normales <a> Tag verwendet werden, weil verschiedene Versionen der FAQ voneinander abweichende Dateistrukturen haben (z.B. DHTML Version). Im Attribut sec wird die Sektion, im Attribut id die ID der FAQ auf die Bezug genommen wird angegeben. Der Text der in den HTML Versionen angezeigt werden soll, wird entweder im Attribut title, oder im Content des Elementes angegeben.

Das file Element dient zur Auszeichnung von Dateinamen, dir für Verzeichnisnamen, attribute für Attribute und element markiert Elemente (und Tags). Die letztgenannten Elemente haben allesamt keine Attribute, sie dienen nur zur Visualisierung des Contents.

Das authorref dient dazu, um auf einen FAQ-Autoren zu referenzieren. Im Attribut id wird die ID des Autoren angegeben, per XSL wird ein Mailto-Link (<a href="mailto:..) erstellt.

Das insertauthors hat keine Attribute und keinen Content. Es veranlasst die XSL-Engine ein Template aufzurufen, welches alle Autoren aus authors.xml einzufügen.

Ein codeblock wird dazu eingesetzt Blöcke von Befehlen, Sourcecode oder ähnlichem darzustellen.

Das man definiert einen Verweis auf eine Manualseite. Siehe dazu Wie kann ich innerhalb der FAQ auf Manual Seiten (man pages) verweisen?.

A.5  Wofür werden die DF_...xml Dateien gebraucht?
Die XML Dateien mit Präfix DF_ sind ausschließlich für den make Prozess von Bedeutung. Sie verlinken die datenhaltenden XML Files (z.B. sectionA.xml) per Entityreferenz, so dass die Daten aus zum Beispiel authors.xml auch in alle Sektionen zur Verfügung stehen. Dies muss in extra Dateien gemacht werden, da es sonst leicht zu mehrfachen oder gegenseitigen Links kommen kann, die logisch nicht sinnvoll sind und beim Validierungsprozess als fehlerhaft gemeldet werden, falls Attribute vom Typ ID verwendet worden sind (diese erscheinen durch mehrfache Links auch mehrfach und sind somit nicht mehr eindeutig).
A.6  Wie funktioniert XML?
Die Referenz zum Thema sind die Seiten des W3C unter http://www.w3.org/XML/. Diese sind allerdings sehr schwer verständlich, daher ist das Tutorial auf http://www.w3schools.com/xml/ für Einsteiger eher zu empfehlen.
A.7  Wie funktioniert XSL?
Auch zu diesem Thema sind die Seiten des W3C unter http://www.w3.org/Style/XSL/ die Referenz. Aber auch zu XSL ist für Einsteiger eher das Tutorial unter http://www.w3schools.com/xsl/ zu empfehlen.
A.8  Wie funktioniert CVS?
Kristian hat dazu eine gute Einführung verfasst, die unter http://www.koehntopp.de/kris/artikel/cvs/ zu finden ist. Unter http://www.fokus.gmd.de/research/cc/glone/employees/matthias.kranz/private/cvs_article.html findet man einen sehr guten Artikel aus dem Linux Magazin von Matthias Kranz.
A.9  Wie logge ich mich am CVS Server ein?
Wer and der FAQ aktiv mitarbeitet (mitarbeiten will), bekommt einen Acccount mit Schreibrecht, und kann diesen folgendermaßen nutzen:
                $ export CVS_RSH=ssh
                $ export CVSROOT=:ext:account@buug.de:/home/cvs
                $ cvs -d $CVSROOT co linux-faq
                
Wer neugierig ist und sich mal den Quellcode anschauen will, kann über das Webinterface die ganze FAQ als Tararchiv oder auch nur einzelne Dateien herunterladen.
A.10 Gibt es eine kurze Übersicht, wie ich am geschicktesten mit CVS arbeite?
Ja, die gibt es. Dazu hat Kristian ein Paper verfasst:
Cheatsheet für CVS Benutzer:

0. Ihr könnte ja mal am TODO üben.

1. $HOME/.cvsrc

Die Datei $HOME/.cvsrc enthält Default-Optionen für alle
CVS-Kommandos. Ich habe die folgende Datei installiert:

-----
cvs -q
update -dAP
diff -u
status -v
-----

Die erste Option bewirkt, dass alle CVS-Connects "-quiet" gemacht
werden.

Bei einem CVS update werden automatisch alle Unterverzeichnisse
mit aktualisiert (-d) und leere Unterverzeichnisse entfernt (-P,
prune). Außerdem werden sticky-Tags entfernt und es wird immer
die HEAD-Revision geholt (-A).

Ein diff wird automatisch mit der Option unified (-u)
aufgerufen.

Ein status wird immer verbose (-v) durchgeführt.

2. $HOME/.cvslist und automatisches Update

Ich habe eine Datei $HOME/.cvslist, die jeweils einen Workspace
pro Zeile bezeichnet:

/home/kris/Source/mysql-faq
/home/www/servers/kris.koehntopp.de/pages/php
/home/kris/Source/linux-faq

Das Script cvs-upall wird vom Cron einmal pro Nacht für kris
aufgerufen:

#! /bin/sh --

MAILTO=root

[ ! -f $HOME/.cvslist ] && exit 0

cat $HOME/.cvslist | while read line
do
  echo "updating $line"
  cd $line
  cvs update
  echo
done 2>&1 | mailx -s "cvs update `date +%Y-%m-%d`" $MAILTO

3. Die wichtigsten Kommandos:

- Begriffe:

  - Repository: Zentrales Archiv auf dem Server
  - Workspace: Deine Arbeitskopie

- Aktualisieren des Workspace

  - Wechsle in die Wurzel des Workspace
  - cvs update

  - Aufruf nach Bedarf, zur Sicherheit einmal vor dem commit.

  cvs update Legende:

  - U update:   Neue Datei
  - P patched:  Datei vom Repository in den Workspace aktualisiert
  - M modified: Datei im Workspace ist modified, commit steht aus
  - A added:    Datei im Workspace ist neu, commit steht aus
  - D deleted:  Datei im Worksapce ist gelöscht, commit steht aus

- commit von Änderungen

  - Immer direkt nach einem Update.
  - Immer mit sinnvollem Kommentar. Der Kommentar wird Teil der
    Mail.
  - cvs commit
    Commited alle M, A und D. Nicht immer sinnvoll.
  - cvs commit file1 file2 dir1/file3
    Commited die genannten Dateien, falls sie M, A oder D sind.

- Dateien zufügen und löschen

  - Datei anlegen            - Datei löschen
  - cvs add file1            - cvs remove file1
  - cvs commit               - cvs commit

- Verzeichnisse anlegen

  - NICHT MACHEN, außer es ist abgesprochen.
  - Verzeichnisse können nicht gelöscht werden, weil ja bei einem
    checkout der alten Version gelöschte Dateien wieder auftauchen 
    können.
  - -P Option löscht leere Verzeichnisse, das ist als hätte
    man es gelöscht.

  - mkdir dir1; cvs add dir1; cvs commit

- Was haben die anderen gemacht?

  - cvs diff
    Listet die Änderungen im Repository gegen den Workspace.

  - cvs annotate file1
    Listet die Datei Zeile für Zeile, mit Änderungsdatum

- Alte Version bekommen

  Für uns ist der Zugriff nach Datum wichtig, da wir keine
  Releases taggen werden.

  - cvs update -D 2000-12-29
    Holt die Version vom 29. Dezember 2000 zurück.

    Dies ist sticky, d.h. wird die Option -A nicht mit angegeben
    beim "cvs update", bleibt das Repository auf diesem alten
    Stand. Mit dem .cvsrc von oben ist "-A" immer mit angegeben.

    Alte Versionen können nicht comitted werden, ohne zu
    branchen. Branches sind unübersichtlich UND ZU VERMEIDEN!

Kristian
                
A.11 Wie gehe ich mit Einreichungen von Usern um?
Wenn ein User einen Vorschlag einsendet, wird die Mail auf dem CVS Server im Verzeichnis vorschlaege/ gespeichert. Dort bleibt die Mail solange, bis jemand den Vorschlag weiterbearbeitet.
Derjenige, der die Mail bearbeitet, gibt kurz auf der Mailingliste Bescheid, damit die Arbeit nicht doppelt gemacht wird.
Zunächst ist zu prüfen, ob die Korrektur oder der Vorschlag korrekt ist, d.h. stimmen angegebene URLs, sind angegebene Kommandos unbedenklich und zielführend, usw. Ist dies der Fall, wird die Korrektur vorgenommen, bzw. der Vorschlag in die passende Section übernommen.
Der einreichende User ist als <user> in die Datei authors.xml aufzunehmen (dazu gehört ein kurzer Kommentar zum eingereichten Vorschlag), und in der Datei changes.xml ist die Änderung zu vermerken. Danach kann die Mail aus vorschlaege/ gelöscht werden.
A.12 Wie kann ich die Archive der Mailingliste einsehen?
Die Mailingliste ist vollkommen öffentlich, d.h jeder kann eine Mail an die Liste senden - auch ohne subscribed zu sein. Und zusätzlich kann auch jeder die Archive der Liste einsehen. Dazu gibt es unter https://buug.de/pipermail/linux-faq/ ein Webinterface.
A.13 Gibt es ein Webinterface zum CVS Repository?
Ja, das gibt es. Unter https://buug.de/cgi-bin/viewcvs.cgi/?cvsroot=linux-faq findet sich ein anonymer readonly Account zum CVS Repository. Dort können alle Files angesehen und einzeln downloaded werden.
A.14 Wo werden neue Fragen in der FAQ eingefügt?
Neue Fragen sollten immer unten in der passenden Sektion eingefügt werden, damit sich die automatisch generierte FAQ-Nr nicht ändert. Alle FAQs sind zwar durch das Attribut id eindeutig gekennzeichnet, aber viele Benutzer werden auf die Fragen mit der Angabe der Nummer referenzieren ("Steht in dcoul-FAQ Sektion X FAQ-Nr 4711") und keinen eindeutigen URL mit der ID angeben ("Steht in http://www.dcoul.de/faq/X.html#tubesenf").
A.15 Ich habe Änderungen vorgenommen und ein diff erstellt. Wer spielt das ein?
Da prinzipiell jeder einen CVS Account mit Schreibrecht erhalten kann, haben wir uns entschlossen keine diffs einzuspielen. Wenn du also Änderungen vornehmen willst, schreibe eine kurze Mail an Kristian oder Thomas Nesges (siehe auch Sektion F Wer bekommt einen CVS Account mit Schreibrecht?").
A.16 Wie sollen neue Einträge in der Datei changes.xml vorgenommen werden?
Die Datei changes.xml hat mit dem Containerelement changes ein Element um alle Änderungen zwischen zwei Builddaten der FAQ festzuhalten. Das heißt, dass ein changes Element immer alle Änderungen in Form von change, globchange, delete Elementen von einem "offiziellen" Build zum nächsten beinhalten soll. Vor einem Build hat das Attribut date des changes Elementes also Pseudocharakter. Änderungen werden immer im obersten changes Element festgehalten, beim nächsten Build wird das date Attribut aktualisiert und ein neuer Container wird angelegt (siehe auch Wie sieht die Struktur der übrigen XML-Files aus?).
A.17 Welche Tools brauche ich, um an der FAQ zu arbeiten?

Um die FAQ zu bearbeiten, brauchst du die folgenden Tools und Programme:

  • CVS Client
  • Texteditor
  • Java
  • XSL-Engine
  • FO Prozessor
  • css2fo.pl
  • tidy
  • Browser
  • make
  • sed
  • perl
  • lynx

Den CVS Client brauchst du um dir die Sourcen der FAQ aus dem Repository zu besorgen, und um deine Änderungen später wieder einzuchecken. Die Sourcen der FAQ liegen als ASCII-Text vor, also brauchst du einen Texteditor um sie zu bearbeiten.

Java wird zum Betrieb der Tools Xalan und FOP benötigt, wenn andere Tools als XSL-Engine und FO Prozessor eingesetzt werden ist Java also evtl. nicht nötig. Ein aktuelles JDK (Java Development Kit) ist unter http://java.sun.com/ erhältlich. Die meisten Distributionen liefern allerdings auch eine Java Version mit.

Die XSL-Engine brauchst du, um die XML Dateien in die verschiedenen Versionen zu konvertieren. Bisher hat sich gezeigt, dass die einzige XSL-Engine die weit genug implementiert ist um die FAQ zu übersetzen Xalan in der Java Version ist. Xalan kannst du von http://xml.apache.org/ beziehen.

"FO" steht für Formatting Objects, ein in XSL definierter Vorschlag des W3C für einen Standard zur Layoutbeschreibung (ähnlich zu CSS). Mit Hilfe von XSL-FO wird die PDF Version der FAQ formatiert, deshalb wird zur Erstellung dieser Version ein FO Prozessor benötigt. Auch hier hat das Apache-Project mit FOP sehr gute Arbeit geleistet, FOP ist wie Xalan von http://xml.apache.org/ zu beziehen.

css2fo.pl wird im bin Verzeichnis der FAQ mitgeliefert. Es ist ein Perlskript, welches CSS Files in XSL-FO konvertiert. Dadurch brauchen die Stylesheet Angaben nur in einem File editiert werden.

tidy untersucht HTML Quellcode auf Fehler und versucht diese gleich zu korrigieren. Dabei formatiert tidy den HTML Code gleichzeitig um. tidy kann von http://www.w3.org/People/Raggett/tidy/ heruntergeladen werden.

Um die Ergebnisse der Transformation zu kontrollieren brauchst du einen bzw. besser mehrere Browser. Die FAQ sollte in allen gängigen Browsern darstellbar sein. Um ein Build der FAQ zu machen brauchst du ein make Programm. Das sollte aber auf den meisten Installationen bereits vorhanden sein. Ebenso wie sed und perl, die im Makefile verwendet werden, um die XML Files zu bearbeiten. Der Textbrowser lynx schließlich wird gebraucht, um die Textversion der FAQ zu erstellen.

A.18 Wie installiere ich Xalan?

Die Xalan Distribution ist unter http://xml.apache.org/ zu finden. Nach dem Download kann man entweder die mitgelieferten JAR Files benutzen, oder Xalan aus den Sourcen selbst bauen. Zunächst ist der Tarball an geeigneter Stelle zu entpacken:

thomas@crusher:/usr/local > tar xzf xalan-j_2_0_D07.tar.gz

Dabei wird ein Unterverzeichnis xalan-j_2_0_D07/ angelegt, in dem die JAR-Files und die Sourcen zu finden sind.

thomas@crusher:/usr/local > cd xalan-j_2_0_D07/

Will man Xalan aus den Sourcen bauen, sind folgende Schritte durchzuführen:

thomas@crusher:/usr/local/xalan-j_2_0_D07 > perl -i -ne 's/\r\n/\n/; print'
build.sh
thomas@crusher:/usr/local/xalan-j_2_0_D07 > chmod 755 build.sh
thomas@crusher:/usr/local/xalan-j_2_0_D07 > which java
/usr/src/jdk1.3/bin/java
thomas@crusher:/usr/local/xalan-j_2_0_D07 > export JAVA_HOME="/usr/src/jdk1.3/"
thomas@crusher:/usr/local/xalan-j_2_0_D07 >./build.sh
[...]
thomas@crusher:/usr/local/xalan-j_2_0_D07 > cd build
thomas@crusher:/usr/local/xalan-j_2_0_D07/build > ls
classes xalan.jar

Zunächst sind die Zeilenende Zeichen im build.sh zu ersetzen. Mit chmod 755 wird das Skript ausführbar gemacht. Zur Installation muss eine Umgebungsvariable JAVA_HOME gesetzt werden, die auf das Java Installationsverzeichnis zeigt. Dazu wird which java ausgeführt. Der Teil des Verzeichnisnamens bis zum bin ist das JAVA_HOME (hier also /usr/src/jdk1.3/). Nach Ausführen von build.sh sollte im Unterverzeichnis build/ ein Verzeichnis classes, welches alle Classfiels beinhaltet, und eine Datei xalan.jar zu finden sein.

Im Verzeichnis bin/ findet sich das xalan.jar der Distribution und ein xerces.jar, welches von Xalan benötigt wird. Jetzt setzt man noch ein einfaches Shellskript auf um Xalan anzuwerfen:

--[/usr/local/bin/xalan]--
#!/bin/sh

XALAN="/usr/local/xalan-j_2_0_D07/build/xalan.jar";
XERCES="/usr/local/xalan-j_2_0_D07/bin/xerces.jar";
CLASSPATH="$XALAN:$XERCES:$CLASSPATH";
export CLASSPATH

java org.apache.xalan.xslt.Process -in "$1" -xsl "$2" -out "$3";
---

Wenn man Xalan nicht aus den Sourcen gebaut hat, ist die Variable XALAN auf /usr/local/xalan-j_2_0_D07/bin/xalan.jar zu setzen. Damit ist Xalan per `xalan in.xml trans.xsl out.html` benutzbar. Das entspricht auch der im Makefile benutzten Syntax.

A.19 Wie kann ich FOP nutzen?

Die Installation von FOP läuft analog zur Installation der XSL-Engine Xalan, die in beschrieben ist.

Um FOP auszuführen legt man sich am einfachsten ein Shellskript an:

--[/usr/local/bin/fop]--
#!/bin/sh

XERCES="/usr/local/xalan/bin/xerces.jar";
XALAN="/usr/local/xalan/bin/xalan.jar";
FOP="/usr/local/fop-0_16_0/fop.jar";
W3C="/usr/local/fop-0_16_0/lib/w3c.jar";
CLASSPATH="$XALAN:$XERCES:$FOP:$W3C:$CLASSPATH";
export CLASSPATH

java org.apache.fop.apps.XalanCommandLine $1 $2 $3
---

Achtung: FOP braucht in der aktuellen Version eine 1.x Version von Xalan!

A.20 Ich möchte eine Dokumentation schreiben, an wen kann ich mich wenden?
Im Rahmen von dcoul.de gibt es zwei Mailinglisten auf denen Autoren diskutieren:

Vorsicht, es ist auf beide Listen nur für Abonnenten derselben möglich, Beiträge and diese Mailing-Listen zu schicken. Der Grund liegt im extrem hohen Spamaufkommen.

Die Liste linux-faq@buug.de befasst sich ausschließlich mit dieser FAQ. Dort werden inhaltliche und technische Aspekte der FAQ diskutiert. Wenn du also einen Beitrag zur FAQ leisten willst, ist diese Liste die richtige Adresse.
Die Liste dcoul-de@buug.de befasst sich mit dem dcoul.de-Project allgemein. Das heißt, dass hier alle dcoul.de Themen außer der FAQ diskutiert werden. Willst du also einen Artikel für dcoul.de verfassen, wende dich an diese Liste.
Außerhalb des dcoul.de-Projektes gibt es einige andere Gruppen, die vielleicht eher deinen Geschmack treffen. Sie alle genauer zu erläutern würde zu weit führen, hier nur ein kurzer Überblick:
A.21 Wie kann ich innerhalb der FAQ auf Manual Seiten (man pages) verweisen?
Dazu ist das Element man definiert. Es hat ein optionales Attribut section in dem eine bestimmte Manual Sektion angegeben werden kann. Das man wird per XSLT in einen Link auf http://unixhelp.ed.ac.uk/CGI/man-cgi transformiert.

F. Allgemeine Fragen zur FAQ

F.1  Was heißt "dcoul"?
dcoul steht für de.comp.os.unix.linux, das ist eine Gruppenhierarchie des Usenets, die momentan aus folgenden Gruppen besteht: Diese FAQ bezieht sich auf alle Themen, die in diesen Gruppen on Topic sind.
Die Gruppen einer Hierarchiestufe höher - die de.comp.os.unix, dcou - liegen ebenfalls (eingeschränkt) im Interesse dieser FAQ.
Siehe dazu auch das Posting Newsgroups für Linux Themen in dcoul.infos:
                From: Holger Schauer <Holger.Schauer@gmx.de>
                Newsgroups: de.comp.os.unix.linux.infos
                Subject: <2000-12-04> Newsgroups fuer Linux-Themen
                Message-ID: <dcoul-ngs_978414305@luv.does-not-exist.org>
                
F.2  Wo finde ich diese FAQ?
Der Hauptserver der FAQ ist unter dem URL http://www.dcoul.de/faq/ zu erreichen.
Im Usenet wird einmal monatlich die Textversion der FAQ in die Gruppe de.comp.os.unix.linux.infos gepostet.
Bitte legt keine Links auf Redirects oder Kopien der FAQ an. Diese können sich ständig ändern.
F.3  Wer arbeitet an der FAQ mit?
Technisches Design: Thomas Nesges (thomas@dcoul.de)
Maintainer a.D.: Karsten Merker (dcoul-faq@cologne.de)
Project Lead: Andreas Metzler (dcoulfaq@downhill.at.eu.org)
Nichts spezielles: Christopher Splinter (chris-linux-faq@splinter.inka.de)
Nichts spezielles: Nikolaus Rath (Nikolaus@rath.org)
Nichts spezielles: Sven Hartge (linux-faq@ds9.argh.org)
Nichts spezielles: Kai Haberzettl (kai@khaberz.de)
Nichts spezielles: Jo Moskalewski (public@jmos.de)
Nichts spezielles: Wolfgang Kaufmann (wk-articles@theparallax.com)
Frank Supperl (frank.supperl@gmx.net)
Hinweis auf geänderten URL von imwheel.
Rolf Siebrecht (rolf.siebrecht@t-online.de)
Falk (falk@gmx.de)
Hinweis auf überflüssigen führenden Slash im Archive-name:
Ralph Angenendt (ra@letras.de)
Hinweis auf geänderten URL der Bücherliste.
Oliver Ding (die_socke@gmx.de)
Hinweis auf fehlerhaften Newsgroupnamen im ersten Posting der FAQ (news.ansers)
Benedikt Meurer (bmeurer@fwdn.de)
Cornelius Krasel (krasel@wpxx02.toxi.uni-wuerzburg.de)
Eduard Bloch (edi@gmx.de)
Andreas Matthus (Andreas.Matthus@web.de)
Detlef Stahl (Detlef.Stahl@partner.bmw.de)
Johannes Rohr (j.rohr@comlink.apc.org)
Hinweis darauf, dass OpenXP für Linux inzwischen benutzbar sei.
Jürgen Ilse (juergen@usenet-verwaltung.org)
Herbert Lischka (Herbert.Lischka@t-online.de)
Antwort für Wie kann ich das Scrollrad meiner Maus im Adobe Acrobat Reader nutzen? im Artikel <al2nn5$jss$05$1@news.t-online.com>
Dominik Pusch (dominik.pusch@koeln.de)
Korrekte Syntax für Escape Sequenzen in inputrc für die FAQ Del-Taste in der Shell
Reiner Steib (reiner.steib@gmx.de)
Update bezueglich Suse fürFrage zu X includes
F.4  Wie ist die Arbeit an der FAQ organisiert?
Auf Kristian Köhntopps Initiative hin haben sich viele Leute die an der FAQ arbeiten wollen in einer Mailingliste organisiert. Nach Thomas Nesges hat nun Andreas Metzler die Project Lead übernommen.
F.5  Kann ich helfen an der FAQ zu arbeiten?
Natürlich kannst du. Gerne! Zunächst solltest du dich bei der Mailingliste linux-faq@buug.de einschreiben (siehe dazu Kommandos der Mailingliste). Dort diskutieren alle dcoul-FAQ Autoren Änderungen und neue Einträge für die FAQ (sowohl inhaltlich als auch technisch).
F.6  Wer bekommt einen CVS Account mit Schreibrecht?
Jeder der einen haben will kann Alexander Stielau um einen Account auf dem CVS Server bitten. Alexander braucht zum Einrichten des Accounts den öffentlichen Teil eines Schlüsselpaars für SSH2, das sich mit ssh-keygen -t rsa oder ssh-keygen -t dsa erzeugen läßt.
In der Regel wird die Bitte nicht abgeschlagen, da wir davon ausgehen, dass nur Leute, die ernsthaft an der FAQ arbeiten wollen auch einen Account haben wollen. Wenn wir feststellen, dass jemand ausschließlich Unfug treibt und deshalb administrativer Mehraufwand auf uns abfällt, werden wir natürlich nicht zögern das Schreibrecht wieder zu entziehen. Außerdem sollte jeder Antragsteller die FAQ zumindest einmal gelesen haben ;-)
Wenn jemand Bedenken hat an der FAQ mitzuarbeiten, weil er noch keine Erfahrung mit CVS hat, kann er diese getrost fallen lassen. Die Mitglieder der Mailingliste sind gerne bereit bei Fragen weiterzuhelfen und wenn tatsächlich mal etwas schieflaufen sollte, kann relativ problemlos ein Undo gefahren werden. Für schlimmere Fälle existieren tägliche Backups des Repositorys. Also traut euch. Für den Anfang sind die in genannten Adressen sehr zu empfehlen.
F.7  Wie soll ich auf die FAQ referenzieren?
Alle Fragen der FAQ sind durch ein Attribut id gekennzeichnet. Dieses Attribut wird in den HTML Versionen der FAQ als Anchorname (<a name="id">) verwendet. Eine bestimmte Frage kann also eindeutig über ihren URL referenziert werden, zum Beispiel:

http://www.dcoul.de/faq/html/F.html#F.wieref

Die FAQ-Nummern werden automatisch von Skripten generiert und ändern sich immer dann, wenn eine Frage gelöscht wird, oder wenn eine Frage nicht am Ende, sondern mitten in einer Sektion eingefügt wird. Deshalb ist eine Referenz auf die FAQ-Nummer ("Siehe Sektion A, FAQ-Nummer 4711") keine gute Idee, in der nächsten Version der FAQ kann die Nummer der Frage bereits 4712 sein.

Auf welche Version der FAQ referenziert wird ist im Grunde egal. Wir betrachten die HTML mit CSS Version als "Standard".

U. Usenet

U.1  Was hat es mit der Netiquette auf sich?
Die Netiquette ist ein Text, der sinnvolle Grundsätze für das Zusammenleben im Usenet aufstellt. Dieser Text ist nicht als Regelwerk zu verstehen, eher als Empfehlung. Sie ist unter dem URL http://www.kirchwitz.de/~amk/dni/netiquette zu finden.
U.2  Was hat es mit den ganzen Abkürzungen auf sich?
Abkürzungen (oder Akronyme) sind im Usenet sehr beliebt. Unter http://www.yanip.de/acronyms.html findest du eine Übersicht über die gebräuchlichen (und weniger gebräuchliche). Dort sind nicht die Abkürzungen für Usenet-Gruppennamen aufgeführt. Diese sind aber meistens einfach aus dem Kontext abzuleiten. Sie entsprechen in der Regel den Anfangsbuchstaben der Hierarchiestufen. Die Abkürzung für die Gruppe de.comp.os.unix.linux.infos lautet dementsprechend dcouli. Es gibt einige Ausnahmen zu dieser Regel, wie zum Beispiel daaooo (de.alt.arnooo), dort geht aber meist aus dem Kontext hervor, welche Gruppe gemeint ist.
U.3  Wie soll ich meine Vorgänger zitieren?
Dazu hat Dirk Nimmich unter http://www.afaik.de/usenet/faq/zitieren/ (oder kürzer: http://learn.to/quote/) einen sehr guten Artikel geschrieben, der auch oft als Standardantwort gegeben wird, wenn jemand falsch zitiert hat. Etwas kürzer zusammengefasst hat es Thomas Nesges unter http://www.yanip.de/posting.html.
U.4  Werden die Artikel irgendwo archiviert? Wo?
Es gibt mehrere Betreiber von Usenetarchiven, der größte und bekannteste ist wohl groups.google.com, ehemals deja. Über ein Webinterface können Usenet Artikel gelesen und verfasst werden. Das interessanteste Feature ist aber wohl die Suche nach Artikeln. Unter der URL http://groups.google.com/advanced_group_search kann nach verschiedenen Stichworten in den Archiven gesucht werden, außerdem kann man dort Artikel nach ihrer Message-ID suchen.
Um zu verhindern, dass deine Artikel archiviert werden, genügt es, "X-No-Archive: yes" als zusätzliche Headerzeile in deine Postings aufzunehmen.
U.5  Wo finde ich weitere Informationen zum Usenet?

Die allererste Anlaufstelle bietet die Gruppe de.newusers.infos. Dort werden regelmäßig Texte gepostet die in das deutschsprachige Usenet einführen. Im Web sind diese Texte unter http://www.kirchwitz.de/~amk/dni/ zu finden. Wenn Fragen dazu oder zu weiterführenden Themen gibt, so werden diese gerne in der Gruppe de.newusers.questions beantwortet.

Im WWW sind etliche Seiten zum Thema zu finden, es folgt eine lose Aufzählung:

U.6   Wieso antwortet mir niemand? Wie stelle ich meine Frage richtig?

Wenn du auf deine Fragen keine Antworten bekommst, kann es natürlich sein, dass niemand eine Antwort kennt, sehr oft liegt es aber auch an der Art der Fragestellung. Das Beachten folgender Hinweise erhöht deine Chancen beträchtlich.

  • Versuche zuerst die Antwort selbst zu finden, die Infopostings in dcoul.infos geben gute Hinweise dazu. http://freshmeat.net/ ist die erste und erfolgversprechendste Adresse, wenn Software für einen bestimmten Zweck suchst. Du solltest im Posting erwähnen, wo du erfolglos gesucht hast.
    Insbesondere solltest du auch die Liste bekannter Fehler deiner Distribution durchsuchen:
  • Stelle deine Frage in der richtigen Newsgroup, siehe Artikel "Newsgroups fuer Linux-Themen" in dcoul.infos. Insbesondere für Webserver (Apache), News- und Mailreader sowie -server gibt es besser passende Newsgroups außerhalb der dcoul-Hierarchie.
  • Wähle ein aussagekräftiges Subject, "Frage" oder "Problem!!!" sind Negativbeispiele. Meide mehrfache Ausrufezeichen, denn diese sind nach Terry Pratchett "a sure sign of a diseased mind."
  • Gib genaue und ausführliche Informationen, versuche dich aber möglichst kurz zu halten. Berichte, was du schon probiert hast. Vergiss die Versionsnummer der fehlerhaften Software und Name und Version der verwendeten Linuxdistribution nicht.
  • Wenn du eine Fehlermeldung bekommst, poste den genauen Wortlaut, "Irgendwas not found" sagt niemand etwas, versuche nicht, die Fehlermeldung zu übersetzen oder zu interpretieren, sondern gib sie eins zu eins wieder. Versuche eine englische Fehlermeldung zu erhalten, indem du deine locales auf POSIX setzt.
    unset LANG LC_ALL LC_MESSAGES vor dem Aufruf des Kommandos bewirkt das Gewünschte.
    Du musst die Fehlermeldung übrigens meist nicht mühevoll abtippen, markiere sie mit der linken Maustaste und füge sie mit einem Druck auf die mittlere (oder rechte, je nach Konfiguration) Maustaste im Editor ein.

Wenn dir das nicht ausführlich genug war, kannst du noch die defintive Antwort in How To Ask Questions The Smart Way von Eric S. Raymond bzw. die deutsche Übersetzung unter http://www.fruiture.de/perl/questions.html konsultieren.

L. Veraltete Fragen

L.1  Warum funktioniert meine ISDN-Karte nach dem Update auf Kernel 2.0.36 nicht mehr so wie vorher?
Im Kernel 2.0.36 sind gegenüber älteren Versionen einige Änderungen am ISDN-Subsystem vorgenommen worden, die eine neue Version der isdn-utils notwendig machen. Diese sind entweder als Binärpaket auf den ftp-Servern der Distributionshersteller zu finden oder als Source auf ftp.franken.de. Eine der wichtigen Änderungen ist, dass dial-on-demand ab Kernel 2.0.36 nicht mehr die Standardeinstellung ist, sondern erst über die isdn-utils aktiviert werden muss.
L.2   ld findet beim Kernel-Kompilieren die Datei 'binary' auf einmal nicht mehr.
Du erhältst eine Fehlermeldung der folgenden Art:
gcc -E -D__KERNEL__ -I/usr/src/linux/include -D__BIG_KERNEL__ -traditional -DSVGA_MODE=NORMAL_VGA bootsect.S -o bbootsect.s
as -o bbootsect.o bbootsect.s
bbootsect.s: Assembler messages:
bbootsect.s:253: Warning: indirect lcall without `*'
ld -m elf_i386 -Ttext 0x0 -s -oformat binary bbootsect.o -o bbootsect
ld: cannot open binary: Datei oder Verzeichnis nicht gefunden

Das liegt daran, das sich mit der Version 2.10.91 der Aufruf des Linkers ld verändert hat, statt -oformat wird jetzt --oformat als Option erwartet.
Kernel nach 2.4.2 werden diese standardmäßig benutzen, frühere Kernel brauchen eine simple Änderung in der Datei /usr/src/linux/arch/i386/boot/Makefile, dort muss einfach jedes Vorkommen von -oformat in --oformat verändert werden.
L.3  Wird der Adaptec AHA 2940 U2W (AIC 7890) von Linux unterstützt?
Der AIC 7890 wird in Kernel 2.2.13 unterstützt, ggf. auch schon in älteren Kerneln (ab AIC7XXX_C_VERSION 5.1.0).
L.4  Ich habe ein ATAPI-CDROM an den CDROM-Anschluss meiner Soundkarte angeschlossen, Linux erkennt es jedoch nicht.
Das kann mehrere Ursachen haben. Wenn die Soundkarte ein Plug 'n Play-Typ ist und das IDE-Interface nicht durch das BIOS beim Booten aktiviert wird, ist es für den Kernel (zumindest für 2.0.x) nicht sichtbar, so dass es nicht initialisiert werden kann. Sofern der IDE-Support nicht als Modul compiliert ist (das wäre nur möglich, wenn NICHT von einer IDE-Platte gestartet wird, also z.B. von einer SCSI-Platte oder über eine inital ramdisk), helfen die isapnptools ohne Tricks auch nicht weiter, da der Kernel bei fest eincompiliertem IDE-Support normalerweise nicht mehr nachträglich nach IDE-Interfaces suchen kann.
In der zum isapnptools-Paket gehörenden Datei README.ide ist jedoch ein Weg beschrieben, mit dem man unter Ausnutzung einer eigentlich für PCMCIA-Karten vorgesehenen Kernelfunktion auch nachträglich noch IDE-Interfaces aktivieren kann.

Wenn das Interface zwar aktiviert, jedoch als tertiäres Interface konfiguriert ist, wird es ebenfalls nicht gefunden, da der Kernel nur nach den primären und sekundären IDE-Kanälen sucht. Das Vorhandensein eines dritten Interfaces muss daher dem Kernel durch die Boot-Option ide2=<Basisadresse> mitgeteilt werden. In der Regel ist die Basisadresse für das tertiäre Interface 0x1e8. Wie Boot-Optionen übergeben werden, ist ausführlich im BootPrompt-HOWTO beschrieben.
L.5  Warum ist nach dem Update auf Kernel 2.2 mein Drucker nicht mehr ansprechbar?
Mit Kernel 2.2 haben sich einige Änderungen bei der Druckeransteuerung ergeben. Die Nummer des Devices (/dev/lp[012]) ist jetzt nicht mehr von der Hardwareadresse des IO-Ports abhängig. Der erste gefundene Druckerport ist nun /dev/lp0, wogegen bei Kernel 2.0.x der normale Druckerport auf Adresse 0x378 /dev/lp1 war.
Da neben den PC-typischen Druckerschnittstellen nun auch Parallel- schnittstellen anderer Hardwarearchitekturen unterstützt werden sollen, wurde der Treiber für die Druckerschnittstelle in einen High- und einen Low-Level-Teil aufgespalten. Wenn der Treiber als Modul genutzt werden soll, ist bei Linux auf PCs der Eintrag alias parport_lowlevel parport_pc in /etc/conf.modules nötig.
L.6  Warum zeigt Linux in /proc/cpuinfo an, im Rechner befände sich ein Pentium 75, obwohl ein Pentium 90/100/120/133/166/200/* eingebaut ist?
Das Kommando cat /proc/cpuinfo liefert bei allen normalen (d.h. nicht MMX) Pentiums ab 75 MHz die folgende Ausgabe:

model : Pentium 75+

Das Pluszeichen hinter der 75 steht für oder höher. Anhand der CPU-ID kann man nur die alten 60/66 MHz-Typen von den moderneren 75-200 MHz-Versionen unterscheiden.

Bei MMX-Pentiums sieht Ausgabe so aus:

model name : Pentium MMX

Der Takt, für den ein konkreter Chip spezifiziert ist, lässt sich über das CPUID-Kommando leider nicht feststellen, so dass damit nur die Chip-Familie angegeben werden kann. Ab Kernel 2.2 gibt es in /proc/cpuinfo einen alternativen Eintrag: cpu MHz. Der dort angezeigte Wert wird mit Hilfe eines CPU-internen Timers ermittelt und gibt die tatsächliche Taktfrequenz (näherungsweise) an. Der dazu verwendete Timer ist jedoch nicht in allen CPU-Typen vorhanden, so dass diese Funktion nicht bei allen Prozessoren zur Verfügung steht. Ist die Frage nicht langsam etwas überflüssig?
L.7  Warum habe ich seit dem Update auf Kernel 2.2.x alle Route-Einträge doppelt?
Der Kernel setzt ab Version 2.2 beim ifconfig automatisch Interface-Routen, ähnlich wie die BSD-Systeme das schon lange tun. Distributionen, die nicht standardmäßig mit Kernel 2.2 ausgeliefert werden, setzen in den Netzwerkkonfigurationsskripten die Interface-Routen explizit, wie es bei Kernel 2.0.x erforderlich war, so dass beim Betrieb mit Kernel 2.2 jede Interface-Route doppelt in der Routingtabelle erscheint. Das hat keine schädlichen Auswirkungen, es ist aber natürlich der Übersicht nicht gerade förderlich.
L.8  Wenn ich unter X arbeite, kommt es manchmal, besonders nach dem Start von Netscape, zu einem seltsamen Effekt: ein oder mehrere Fenster werden in Falschfarben dargestellt. Wenn ich den Mauszeiger dann auf eines dieser Fenster bewege, stimmen die Farben in diesem Fenster wieder, aber alles andere wird in Falschfarben dargestellt. Woran liegt das?
Dieser Effekt tritt auf, wenn Programme mehr Farben benutzen möchten, als zur Verfügung stehen. Wird der X-Server mit 8 Bit Farbtiefe betrieben (die Normaleinstellung), stehen maximal 2 hoch 8 = 256 Farben gleichzeitig zur Verfügung. Wenn bereits alle verfügbaren 256 Farbtöpfe vergeben sind, kann ein Programm keine weiteren Farben mehr für sich reservieren. Um dieses Problem zu umgehen, kann ein Programm eine private Colormap anfordern. Dann erhält das Programm eine eigene Farbpalette von 256 Farben nur für sich. Da aber tatsächlich nur 256 Farben gleichzeitig dargestellt werden können, muss, sobald ein Programm bzw. dessen Fenster aktiviert wird, auf dessen Farbpalette umgeschaltet werden, die sich von denen der anderen Programme unterscheidet, so dass die Fenster der übrigen Programme in Falschfarbendarstellung erscheinen.
Netscape reserviert sehr viele Farben für sich, so dass das Problem häufig nach dem Start von Netscape auftritt.

Lösen lässt sich das Problem durch Betrieb des X-Servers in einer höheren Farbtiefe (16 Bit/65536 Farben oder 24Bit/16,7 Millionen Farben). Wer X auf der Kommandozeile startet, kann einen entsprechenden Parameter übergeben:
  • startx -- -bpp 16 (für 65536 Farben) oder
  • startx -- -bpp 24 (für 16,7 Mio. Farben).
Je nach Karte muss man statt -bpp 24 -bpp 32 angeben.

Ab XFree 3.2 kann auch durch den Parameter DefaultColorDepth <Farbtiefe> in der XF86Config der X-Server standardmäßig in entsprechender Farbtiefe (16/24/32 Bit) gestartet werden, so dass die Kommandozeilenoption bei startx nicht mehr nötig ist.

Leider werden nicht alle von XFree grundsätzlich unterstützten Karten auch in Farbtiefen über 8 Bit unterstützt. Im Zweifel helfen die Manpages zu XFree oder Ausprobieren weiter. Wenn der X-Server eine bestimmte Farbtiefe nicht unterstützt, gibt er beim Start eine entsprechende Fehlermeldung aus.

Falls die eigene Karte nicht in mehr als 8 Bit Farbtiefe unterstützt wird, lässt sich das Problem bei Netscape durch die Option -no-install umgehen. Mit diesem Parameter legt Netscape keine eigene Farbpalette an, sondern versucht, mit den vorhandenen Farben auszukommen, allerdings kann es dabei natürlich passieren, dass einzelne von einer Webseite geforderte Farben dann nicht verfügbar sind.
L.9   Ich verwende Debian unstable oder testing und kann seit kurzem keinen Kernel mehr kompilieren, ich erhalte als Fehlermeldung undefined reference to local symbols in discarded section .text.exit'.
Das ist ein Bug im Kernel, der durch die aktuelle Version der binutils (2.11.92.0.12.3) zum Vorschein kommt. Installiere 2.11.92.0.10-4 oder verwende einen aktuellen Kernel, 2.4.17 sollte diesen Bug nicht mehr enthalten.
L.10 Wie kann ich mit Linux AOL benutzen?
AOL verwendet ein proprietäres Zugangsprotokoll und unterstützt weder PPP noch SLIP, so dass der Zugang zu AOL nur mittels der von AOL gelieferten Software möglich ist, die AOL nicht in einer Linux-Version zur Verfügung stellt.
Unter http://pengisnotaol.piranho.de/ findet sich allerdings experimentelle Zugangssoftware für Linux, die ohne Unterstützung von AOL entwickelt wurde.
2003-09-20: Die Frage ist veraltetet, inzwischen bietet AOL Zugang über PPP an.
L.11  Ich habe RedHat 7.0 und kann keinen Kernel fehlerfrei kompilieren. Ich kann manche Programme unter RedHat 7.0 nicht kompilieren. Unter RedHat 7.0 kompilierte Programme laufen nicht auf anderen Distributionen.
Das liegt daran, das RedHat in 7.0 einen kaputten gcc mitliefert. Die Lösung ist recht einfach, man muss nur das Paket kgcc installieren und den beiliegenden Anweisungen folgen, damit der Kernel mit diesem Compiler übersetzt wird.
Linus Torvalds hat hierzu auf der linux-kernel Mailing-Liste in http://www.uwsg.iu.edu/hypermail/linux/kernel/0012.1/1252.html Stellung genommen. Er bezeichnet dort RedHat 7.0 als "unusable as a development platform" (Übers: "unbenutzbar als Entwicklungsplattform"). Weitere Statements dazu findet man unter http://kt.zork.net/kernel-traffic/kt20010101_100.html#3 und http://kt.zork.net/kernel-traffic/kt20010108_101.html#1.
Andere Sourcen machen aber teilweise auch Probleme, so scheint es nicht möglich zu sein, die XFree-Sourcen oder TeX damit zu übersetzen, aber das ist nicht in allen Fällen zu 100% gesichert. Um auf der sicheren Seite zu sein, sollte man auf jeden Fall die Updates von RedHat einspielen. Informationen hierzu findet man unter http://www.redhat.com/support/docs/gotchas/7.0/gotchas-7.html.
L.12 Welchen Treiber muss ich bei der Kernelkonfiguration für eine NE2000-kompatible PCI-Ethernetkarte wählen?
Ab Kernel 2.0.35 gibt es dazu einen eigenen Punkt unter PCI Ethernet adapters. Bei älteren Kerneln benötigt man den ISA-NE2000-Treiber (unter Other ISA cards). Dieser enthält dort auch Unterstützung für PCI-NE2000-Clones. Auf dem Chip Realtek 8029 basierende Karten funktionieren problemlos, bei Karten mit Winbond 89C940 bzw. verwandten Chiptypen ist ggf. Kernel 2.0.33 oder neuer nötig.
L.13 Ich versuche auf einem Computer mit AMD Athlon oder Duron Prozessor Linux zu installieren. Er hängt sich jedoch gleich nach dem Laden des Kernels auf.
Der Kernel versucht, die PentiumII-Seriennummer abzufragen, die der AMD-Prozessor natürlich nicht hat. Das kannst du verhindern, indem du am LILO-Bootprompt den Parameter x86_serial_nr=1 übergibst. Außerdem stellt der Hersteller deiner Distribution vermutlich aktualisierte Boot-Disketten und Kernelpakete zur Verfügung, die diesen Fehler beseitigen.
L.14 Ich habe auf Kernel 2.4.x geupgradet und es werden keine Module mehr geladen.
Die Probleme kommen vermutlich daher, dass sich das Layout der Verzeichnisse in /lib/modules/<kernelversion> seit Kernel 2.2.x verändert hat. Mit diesem neuen Layout kommen die modutils erst seit Version 2.4.0 zurecht; deine sind wahrscheinlich zu alt. Welche Version bei Dir läuft, kannst Du einfach durch Eingabe von
/sbin/modprobe -V
herausfinden.
Um das Problem zu beheben, benutzt Du entweder ein von deinem Distributor bereitgestelltes Paket oder beziehst die Sourcen von ftp://ftp.kernel.org/pub/linux/utils/kernel/modutils/ und kompilierst sie selber. Damit wirst du aber vermutlich nicht alle Probleme, die mit einem neuen Kernel auf dich zukommen, gelöst haben. Sicherheitshalber solltest du Kernelquelltext/Documentation/Changes lesen und überprüfen, ob du die erforderlichen Programme in den nötigen Versionen installiert hast.
L.15  Inzwischen ist Kernel 2.4 freigegeben worden, was muss ich beim Upgrade von 2.2 beachten?
Ja, der neue Linux-Kernel ist da - aber langsam, es gibt einiges, was vor einem Update zu bedenken ist:
  • Was versprichst du Dir von dem neuen Kernel konkret? Warum möchtest du ihn einsetzen?
  • Bist du in der Lage herauszufinden, welche zusätzlichen Programme oder neuen Programmversionen zu diesem Kernel benötigt werden? Lies Kernelquelltext/Documentation/Changes!
  • Bist du in der Lage, die geforderten Programm(versionen) zu finden und zu installieren?
  • Bedenke, dass die von den Distributoren üblicherweise standardmäßig verwendeten Kernel gepatcht sind und damit bestimmte zusätzliche Funktionen haben, die du evtl. auch nutzt. Diese Funktionalitäten sind mit dem neuen Kernel evtl. nicht mehr vorhanden.
  • Kernel 2.2.18 nimmt schon einige der Vorteile von 2.4 vorweg (brauchbarer USB-Support, abgesehen von Mass-Storage. NFS-Server und -Client sind auf dem Stand von 2.4), vielleicht kannst du dir das Upgrade auf 2.4 sparen und 2.2.18 verwenden.

Wenn du die ersten drei Fragen nicht wirklich sicher beantworten kannst, solltest du auf ein Update so lange verzichten, bis der Hersteller deiner Distribution ein entsprechendes Kernel-Package mit den notwendigen Updates bereit hält. Die Wartezeit bis dahin kann man sich mit der Lektüre von http://linuxtoday.com/news_story.php3?ltsn=2001-01-05-007-04-NW-LF-KN
bzw. http://www.uwsg.indiana.edu/hypermail/linux/kernel/0101.0/1204.html
verkürzen. ;-)
Für Debian 2.2 Potato gibt es unter folgender Adresse inoffizielle Backports der nötigen Pakete aus unstable für Potato:
deb http://www.fs.tum.de/~bunk/debian potato main
deb-src http://www.fs.tum.de/~bunk/debian potato main

Da es sich um Pakete aus unstable handelt, sind sie natürlich nicht so gut getestet und es könnten durchaus Fehler auftreten. Überdies ist es mit aktuellen Modutils nicht mehr möglich, einen modularen 2.0.x Kernel zu booten. Genauere Information dazu sind unter http://www.fs.tum.de/~bunk/kernel-24.html zu finden.
L.16 Funktioniert die Hauppage Win/TV PCI unter Linux?
Ja, Treiber dafür (und für andere auf dem Bt848- oder Bt878-Chip basierende Fernseh/Video-Karten) gibt es im WWW unter http://www.metzlerbros.de/bttv.html.
Seit Kernelversion 2.2 sind die Treiber Bestandteil des Standardkernels. Siehe auch http://www.multimedia4linux.de/.
L.17 Werden TV-Karten mit Philips 7134 Chipsatz unterstützt?
Ein Treiber in fortgeschrittener Testphase ist unter http://bytesex.org/saa7134/ erhältlich. Der Treiber scheint bis auf VBI (Teletext) schon recht gut zu funktionieren, es ist allerdings nötig einen Kernelpatch einzuspielen, und daher eher nur für fortgeschrittene Anwender zu empfehlen.

Links

dcoul.de
Übersicht über alle Versionen der FAQ
Alte FAQ auf yanip.de

Änderungen seit der letzten Version

[29.01.2005] Änderungen der FAQ seit 13.03.2004:

Sektion 1: Wie kann ich Mails und News offline lesen, also ohne dabei dauernd eine Verbindung zum Internet haben zu müssen?
Verweis auf Markus Voss' inn Seite getilgt.

[13.03.2004] Änderungen der FAQ seit 11.07.2003:

Sektion 1: Wie kann ich die Systemzeit meines Rechners mit Timeservern im Internet abgleichen?
Abneigung gegen netdate besser begründet.
Sektion 1: Welchen ftp-Daemon soll ich verwenden?
Hinweis auf oftp hinzugefügt.
Sektion L: Wie kann ich mit Linux AOL benutzen?
Veraltete Frage aus Section1 verschoben.
Sektion L: Ich habe RedHat 7.0 und kann keinen Kernel fehlerfrei kompilieren. Ich kann manche Programme unter RedHat 7.0 nicht kompilieren. Unter RedHat 7.0 kompilierte Programme laufen nicht auf anderen Distributionen.
Veraltete Frage aus Section4 verschoben.
Sektion 3: Ich benütze einen ATAPI (IDE) CD-Brenner, wenn ich Audio-CDs brenne, ist das System zu 100% ausgelastet und es kommt sogar zu buffer-underruns. Bei Daten-CDs tritt das Problem nicht auf.
Aktualisiert für Linux 2.6.
Sektion L: Welchen Treiber muss ich bei der Kernelkonfiguration für eine NE2000-kompatible PCI-Ethernetkarte wählen?
Veraltete Frage aus Section3 verschoben.
Sektion L: Ich versuche auf einem Computer mit AMD Athlon oder Duron Prozessor Linux zu installieren. Er hängt sich jedoch gleich nach dem Laden des Kernels auf.
Veraltete Frage aus Section3 verschoben.
Sektion L: Ich habe auf Kernel 2.4.x geupgradet und es werden keine Module mehr geladen.
Veraltete Frage aus Section4 verschoben.
Sektion 4: Ich habe auf Kernel 2.6.x geupgradet und es werden keine Module mehr geladen.
Neuer Eintrag
Sektion L: Inzwischen ist Kernel 2.4 freigegeben worden, was muss ich beim Upgrade von 2.2 beachten?
Veraltete Frage aus Section4 verschoben.
Sektion 4: Inzwischen ist Kernel 2.6 freigegeben worden, soll ich den neuen Kernel verwenden, was muss ich beachten?
Neuer Eintrag
Sektion 3: Läuft meine analoge TV-Karte unter Linux?
Neuer Eintrag
Sektion L: Funktioniert die Hauppage Win/TV PCI unter Linux?
Veraltete Frage aus Section3 verschoben.
Sektion L: Werden TV-Karten mit Philips 7134 Chipsatz unterstützt?
Veraltete Frage aus Section3 verschoben.
Sektion 4: Wie viel Swapspace brauche ich?
Veraltete Informationen zu Kernel 2.4.0 bis 2.4.9 entfernt.
FAQ-weit
Viele Links aktualisiert.
Sektion 2: Ich möchte eine Datei, deren Namen mit ".bin" endet, entpacken oder verwenden.
Neuer Eintrag

[11.07.2003] Änderungen der FAQ seit 17.01.2003:

Sektion 2: Ich brauche ein Shellskript, das ...? Kennt jemand eine Einführung in die Shell-Skriptprogrammierung?
Neuer Eintrag
Sektion 5: Wieso bekomme ich die Fehlermeldung Can't find X includes. Please check your installation and add the correct paths, wenn ich ein Programm compilieren will, das X benutzt?
Neue Paketnamen bei Suse
Sektion 2: Wie kann ich Audio-CDs mounten?
Hinweis auf audiofs entfernt
Sektion 3: Funktioniert Linux auf meinem Laptop?
Leicht abgeändert.
Sektion U: Wieso antwortet mir niemand? Wie stelle ich meine Frage richtig?
Korrektur der URL eines ESR-Textes.

[17.01.2003] Änderungen der FAQ seit 05.10.2002:

Sektion 3: Funktioniert Linux auf meinem Laptop?
Hinweis auf mobilix.org
Sektion 3: Ich benütze einen ATAPI (IDE) CD-Brenner, wenn ich Audio-CDs brenne, ist das System zu 100% ausgelastet und es kommt sogar zu buffer-underruns. Bei Daten-CDs tritt das Problem nicht auf.
Neuer Eintrag
Sektion 5: Wie kann ich unter Linux Quicktime-Videos mit Sorenson Codec wiedergeben?
MPlayer kann inzwischen tadellos Sorenson Codec abspielen.
Sektion 2: In meiner Shell kann ich keine Umlaute eingeben und die Del/Entf- Taste arbeitet nicht so, wie sie soll (das Zeichen unter dem Cursor löschen). Wie kann ich das ändern?
Korrigierter Eintrag für inputrc
Sektion L: Wie kann ich mit Linux AOL benutzen?
Neue URL/Name für Peng
Sektion 5: Wenn ich mit su als root versuche ein X11-Programm zu starten, erhalte ich die Fehlermeldung Error: Can't open display: oder Xlib: connection to ":0.0" refused by server Xlib: Client is not authorized to connect to Server Error: Can't open display: :0.0.
Neue URL fuer "Alle Macht dem User"

[05.10.2002] Änderungen der FAQ seit 01.09.2002:

FAQ-weit
Thomas Nesges hat den "Vorsitz" an Andreas Metzler abgegeben, er bleibt uns aber zumindest als passiver Beobachter erhalten. - Vielen Dank für sein Engagement.
Sektion 0: Welche Zeitschriften gibt es zu Linux?
Neuer Eintrag
Sektion 1: Welchen ftp-Daemon soll ich verwenden?
Neuer Eintrag
Sektion 2: Wie kann ich verhindern, dass die Benutzer ihr Homeverzeichnis verlassen können?
Neuer Eintrag
Sektion 3: Welche CD-Brenner funktionieren unter Linux?
Komplett neu
Sektion 5: Wie kann ich das Scrollrad meiner Maus im Adobe Acrobat Reader nutzen?
Neuer Eintrag

[01.09.2002] Änderungen der FAQ seit 31.7.2002:

Sektion L: Ich verwende Debian unstable oder testing und kann seit kurzem keinen Kernel mehr kompilieren, ich erhalte als Fehlermeldung undefined reference to local symbols in discarded section .text.exit'.
Veraltete Frage aus Section4 verschoben.
Sektion 5: Wie kann ich unter Linux Quicktime-Videos mit Sorenson Codec wiedergeben?
Auch Mplayer kann Sorenson

[31.7.2002] Änderungen der FAQ seit 27.6.2002:

FAQ-weit
Linux Documentation Project und das Deutsche Linux HOWTO Projekt sind umgezogen.
Sektion U: Wieso antwortet mir niemand? Wie stelle ich meine Frage richtig?
Geringfügig erweitert.
Sektion 5: Wenn ich mit su als root versuche ein X11-Programm zu starten, erhalte ich die Fehlermeldung Error: Can't open display: oder Xlib: connection to ":0.0" refused by server Xlib: Client is not authorized to connect to Server Error: Can't open display: :0.0.
Hinweis auf sux
Sektion L: Wenn ich unter X arbeite, kommt es manchmal, besonders nach dem Start von Netscape, zu einem seltsamen Effekt: ein oder mehrere Fenster werden in Falschfarben dargestellt. Wenn ich den Mauszeiger dann auf eines dieser Fenster bewege, stimmen die Farben in diesem Fenster wieder, aber alles andere wird in Falschfarben dargestellt. Woran liegt das?
Veraltete Frage aus Section5 verschoben.
Sektion L: Warum habe ich seit dem Update auf Kernel 2.2.x alle Route-Einträge doppelt?
Veraltete Frage aus Section4 verschoben.
Sektion L: Warum zeigt Linux in /proc/cpuinfo an, im Rechner befände sich ein Pentium 75, obwohl ein Pentium 90/100/120/133/166/200/* eingebaut ist?
Veraltete Frage aus Section4 verschoben.
Sektion L: Warum ist nach dem Update auf Kernel 2.2 mein Drucker nicht mehr ansprechbar?
Veraltete Frage aus Section3 verschoben.
Sektion L: Ich habe ein ATAPI-CDROM an den CDROM-Anschluss meiner Soundkarte angeschlossen, Linux erkennt es jedoch nicht.
Veraltete Frage aus Section3 verschoben.
Sektion L: Wird der Adaptec AHA 2940 U2W (AIC 7890) von Linux unterstützt?
Veraltete Frage aus Section3 verschoben.
Sektion 0: Welche Linux-Distribution ist die beste?
Geringfügig erweitert
Sektion 2: Ich möchte das Dateisystem meiner Linuxpartition wechseln und z.B. von ext2 auf ReiserFS umsteigen. Kann ich da irgendwie direkt konvertieren?
Neuer Eintrag

[27.6.2002] Änderungen der FAQ seit 8.5.2002:

Sektion A: Wie logge ich mich am CVS Server ein?
Aktualisiert, es gibt kein anonymes CVS (pserver) mehr.
FAQ-weit
Mailingliste und cvs-Server sind umgezogen und verwenden mailman ezmlm und cvs über ssh statt CVS-pserver, siehe A: Wissenswertes für Autoren
Sektion A: Wie kann ich die Archive der Mailingliste einsehen?
Alte Frage wiederbelebt, wir haben wieder ein Webarchiv der Mailingliste.
Sektion A: Gibt es ein Webinterface zum CVS Repository?
Alte Frage wiederbelebt, wir haben wieder cvsweb.
Sektion 2: Ich habe ein Skript geschrieben, das direkt aufgerufen tadellos funktioniert, aber nicht wenn ich es als cronjob starte.
Neuer Eintrag
Sektion 2: Wie kille ich einen Zombie?
Neuer Eintrag
Sektion 2: Was bedeutet es, wenn "ps" einen Prozess als "<defunct>" anzeigt?
Neuer Eintrag
Sektion 5: Mein Bildschirm wird auf unter X11 nach einiger Zeit schwarz. Wie schalte ich das ab?
Aktualisiert, Tippfehler.
Sektion 5: Wie kann ich unter Linux Quicktime-Videos mit Sorenson Codec wiedergeben?
Neuer Eintrag

[8.5.2002] Änderungen der FAQ seit 5.4.2002:

Sektion 0: Welche Linux-Distribution ist die beste?
Eintrag erweitert
Sektion L: Werden TV-Karten mit Philips 7134 Chipsatz unterstützt?
Neuer Eintrag
Sektion 2: Wie kann ich LILO wieder aus dem MBR entfernen?
Erster Versuch einer Erklärung für XP
Sektion 1: Wie kann ich Mails und News offline lesen, also ohne dabei dauernd eine Verbindung zum Internet haben zu müssen?
URL aktualisiert, Link auf nicht mehr existente Seite entfernt.
Sektion 5: Werden Grafikkarten mit Kyro- oder Kyro2-Chip von XFree86 unterstützt?
Aktualisiert, Treiber lassen sich jetzt mit beliebigem (2.4.*?) Kernel betreiben.
Sektion 5: Mein Bildschirm wird auf unter X11 nach einiger Zeit schwarz. Wie schalte ich das ab?
Neuer Eintrag
Sektion 2: Mein Bildschirm wird auf Console nach einiger Zeit schwarz. Wie schalte ich das ab?
Neuer Eintrag
Sektion 1: Wie kann ich die Systemzeit meines Rechners mit Timeservern im Internet abgleichen?
URL von chrony aktualisiert
Sektion 2: Wie kann ich den Speicherbedarf eines Verzeichnisses einschließlich der Unterverzeichnisse abfragen? Wie viel freier Platz ist auf der Festplatte noch verfügbar?
Neuer Eintrag
Sektion 1: Kann ich CrossPoint unter Linux verwenden?
Aktualisiert

[5.4.2002] Änderungen der FAQ seit 19.12.2001:

Sektion 5: Werden Grafikkarten mit Kyro- oder Kyro2-Chip von XFree86 unterstützt?
Aktualisiert, es gibt jetzt Treiber
FAQ-weit
Neue Sektion 5: Fragen zu X11 und X-Programmen
Sektion 2: Ich erhalte die Fehlermeldung Argument list too long, wenn ich in einem Verzeichnis mit sehr vielen Dateien mit rm * versuche, alle Dateien zu löschen.
Korrekturen, Hinweis auf SUSV3
Sektion A Obsolete Frage entfernt (webinterface_mail)
Wie kann ich die Archive der Mailingliste einsehen?
Zuletzt in Revision 1.43 enthalten
Sektion A Obsolete Frage entfernt (webinterface_cvs)
Gibt es ein Webinterface zum CVS Repository?
Zuletzt in Revision 1.43 enthalten
Sektion L: Inzwischen ist Kernel 2.4 freigegeben worden, was muss ich beim Upgrade von 2.2 beachten?
URL der Debian-Bunk-Pakete aktualisiert.

[19.12.2001] Änderungen der FAQ seit 17.12.2001:

Sektion 5: Werden Grafikkarten mit Kyro- oder Kyro2-Chip von XFree86 unterstützt?
Neue URL, neuester Stand der Gerüchte.

[17.12.2001] Änderungen der FAQ seit 27.11.2001:

Sektion L: ld findet beim Kernel-Kompilieren die Datei 'binary' auf einmal nicht mehr.
Veraltete Frage aus Section3 verschoben.
Sektion L: Ich verwende Debian unstable oder testing und kann seit kurzem keinen Kernel mehr kompilieren, ich erhalte als Fehlermeldung undefined reference to local symbols in discarded section .text.exit'.
Neuer Eintrag
Sektion 4: Was bedeutet Journaling-Filesystem? Welches Dateisystem ist das beste?
Neuer Eintrag

[27.11.2001] Änderungen der FAQ seit 24.09.2001:

Sektion 4: Wie viel Swapspace brauche ich?
Notiz für Kernel >2.4.10 eingefügt
Sektion 4: Seit dem Upgrade auf Kernel 2.4 kann ich bestimmte Hosts im Internet nicht mehr erreichen.
Neuer Eintrag
Sektion U: Wieso antwortet mir niemand? Wie stelle ich meine Frage richtig?
Neuer Eintrag
Sektion 5: Wird die ATI Radeon VE von XFree86 unterstützt?
Neuer Eintrag

[24.09.2001] Änderungen der FAQ seit 17.09.2001:

Sektion 2: Wie [lösche/verschiebe/bearbeite] ich Dateien, die mit - beginnen?
Antwort korrigiert (Wildcards funktionieren nicht)
Sektion 5: Wie kann ich unter Linux Divx-, wmf-, oder asf-Videos wiedergeben
URL korigiert, Hinweis aus MPlayer

[17.09.2001] Änderungen der FAQ seit 04.07.2001:

Sektion 2: Wie kann ich bestimmten Benutzern Schreibzugriff auf gemountete Windowspartitionen gewähren?
Neuer Eintrag
Sektion 2: Wie installiert man Programme aus dem Internet richtig? Alle meine Versuche mit ./configure, make, make install sind bisher gescheitert.
Neuer Eintrag
Sektion 2: Ich erhalte die Fehlermeldung Argument list too long, wenn ich in einem Verzeichnis mit sehr vielen Dateien mit rm * versuche, alle Dateien zu löschen.
Neuer Eintrag
Sektion 5: Wenn ich mit su als root versuche ein X11-Programm zu starten, erhalte ich die Fehlermeldung Error: Can't open display: oder Xlib: connection to ":0.0" refused by server Xlib: Client is not authorized to connect to Server Error: Can't open display: :0.0.
Neuer Eintrag
Sektion 2: Wie kann ich verhindern, dass ich die Ausgabe bestimmter cronjobs per Mail zugestellt bekomme.
Neuer Eintrag
Sektion L: Wie kann ich mit Linux AOL benutzen?
Frage aktualisiert

[04.07.2001] Änderungen der FAQ seit 05.06.2001:

Sektion 2: Wie werde ich selbst kompilierte, mit make install installierte Software wieder sauber los.
Neuer Eintrag
Sektion 5: Werden Grafikkarten mit Kyro- oder Kyro2-Chip von XFree86 unterstützt?
Neuer Eintrag
Sektion 5: Kann man mehrere Monitore gleichzeitig unter Linux betreiben?
Eintrag aktualisiert.
Sektion U: Werden die Artikel irgendwo archiviert? Wo?
Alte faq "deja" wiederbelebt.
FAQ-weit
Das Element man verweist auf eine bessere URL.
Sektion 1: Wie kann ich die Systemzeit meines Rechners mit Timeservern im Internet abgleichen?
Neuer Eintrag
Sektion 2: Wo kann ich ISO-Images von SuSE Linux herunterladen?
Neuer Eintrag
Sektion 3: Kann ich mit meiner ISDN-Karte unter Linux Faxe empfangen?
Hinweis auf CAPI4Linux hinzugefügt
Sektion 3: Funktionieren GDI-Drucker (auch als WinPrinter bezeichnet) unter Linux?
Offenbar veraltete Informationen entfernt und durch Link auf den entsprechenden Abschnitt im Printing-Howto ersetzt.

[05.06.2001] Änderungen der FAQ seit 03.05.2001:

Sektion L: Warum funktioniert meine ISDN-Karte nach dem Update auf Kernel 2.0.36 nicht mehr so wie vorher?
Veraltete Frage aus Section3 verschoben.
FAQ-weit
Neue Sektion L: Veraltete Fragen
Sektion 5: Wie kann ich meine von XFree86 nicht unterstützte Grafikkarte trotzdem im Grafikmodus benutzen?
Frage aktualisiert und Vorschlag von Eduard Bloch eingefügt.
Sektion 2: Ich suche ein Notfall-Linux, das möglichst auf eine Diskette passen sollte.
Neuer Eintrag
Sektion 2: Wenn ich versuche, ein Programm auszuführen, bekomme ich immer die Meldung PROGRAMMNAME: No such file or directory (obwohl das angegebene Programm tatsächlich existiert), Backslash found where operator expected at ... oder : command not found.
Frage präzisiert

[03.05.2001] Änderungen der FAQ seit 01.03.2001:

FAQ-weit
Neue Sektion 4: Fragen zum Kernel
Sektion 2: Ich habe ein Shell-Skript geschrieben, das als root laufen muss, dazu habe ich mit chmod u+s script.sh das SUID-Bit gesetzt, es hat aber anscheinend keine Wirkung.
Neuer Eintrag
Sektion 4: Seit dem Upgrade auf Kernel 2.4 zeigt /proc/meminfo immer 0 Byte Shared Memory an.
Neuer Eintrag
Sektion 2: Wenn ich versuche, ein Programm auszuführen, bekomme ich immer die Meldung PROGRAMMNAME: No such file or directory (obwohl das angegebene Programm tatsächlich existiert), Backslash found where operator expected at ... oder : command not found.
Neuer Eintrag
Sektion 4: Seit dem Upgrade auf Kernel 2.4 verbraucht der Prozess kapm-idled den Großteil der CPU-Leistung.
Neuer Eintrag
Sektion 4: Wie viel Swapspace brauche ich?
Neuer Eintrag
Sektion 2: Ich habe mein Root-Passwort vergessen, wie komme wieder in mein System?
Neuer Eintrag
Sektion 4: Seit Kernel 2.2.15 funktioniert BattleNet über meinen Linux-Router mit Masquerading nicht mehr.
Neuer Eintrag
Sektion 2: Wie kann ich einem Netzwerkinterface mehrere IP-Adressen zuweisen?
Neuer Eintrag
Sektion L: Inzwischen ist Kernel 2.4 freigegeben worden, was muss ich beim Upgrade von 2.2 beachten?
Hinweis zu den inoffiziellen Debian-Paketen fuer Kernel 2.4 unter potato hinzugefügt
Sektion 2: Beim Versuch, ein rpm-Paket zu installieren, erhalte ich die Fehlermeldung only packages with major numbers <= 3 are supported by this version of RPM.
Neuer Eintrag
Sektion 2 Obsolete Frage entfernt (starofficesetup)
StarOffice 3.1 ist installiert, wird aber beim Aufruf nicht gefunden oder meldet, es könne eine Bibliothek nicht öffnen.
Zuletzt in Revision 1.82 enthalten
Sektion 2 Obsolete Frage entfernt (starofficede)
Warum habe ich bei StarOffice 3.1 englische Menüs, obwohl ich die German-Pakete installiert habe?
Zuletzt in Revision 1.82 enthalten

[01.03.2001] Änderungen der FAQ seit 04.01.2001:

Sektion L: ld findet beim Kernel-Kompilieren die Datei 'binary' auf einmal nicht mehr.
Neuer Eintrag
Sektion L: Ich habe RedHat 7.0 und kann keinen Kernel fehlerfrei kompilieren. Ich kann manche Programme unter RedHat 7.0 nicht kompilieren. Unter RedHat 7.0 kompilierte Programme laufen nicht auf anderen Distributionen.
URLs aktualisiert
Sektion 2: Wie kann ich Audio-CDs mounten?
Neuer Eintrag
Sektion 1: Wie kann ich mit Linux über T-Online in Netz kommen?
URL aktualisiert
Sektion 0: Welche Bücher gibt es zu Linux?
URL aktualisiert

[04.01.2001] Änderungen der FAQ seit 22.11.1999:

FAQ-weit
Neue Sektion A: Wissenswertes für Autoren
FAQ-weit
Neue Sektion F: Allgemeine Fragen zur FAQ
FAQ-weit
Neue Sektion U: Usenet
Sektion 0: Warum Linux? oder: Ist Linux das richtige für mich?
Hinweis auf Linux-Helper entfernt, sowohl www-Site als auch Infoposting gibt es nicht mehr.
Sektion 1: Kann ich CrossPoint unter Linux verwenden?
Info zu OpenXPs Linux-Port ergänzt
Sektion 1: Ich benötige einen ordentlichen telnet- oder ssh-Client für Windows.
Verzicht auf faq-nr
Sektion 1: Wie kann ich die dynamisch vergebene IP-Adresse meines Rechners herausfinden?
Verzicht auf faq-nr
Sektion 1: Warum stellt mein tin (Newsreader) statt Umlauten nur Fragezeichen dar?
locale Informationen ausgegliedert
Sektion L: Wie kann ich mit Linux AOL benutzen?
Ergaenzungen
Sektion 1: Wie kann ich mit Linux über T-Online in Netz kommen?
Ergaenzungen
Sektion 4: Ich habe einen neuen Kernel kompiliert, dieser bootet aber nicht, sondern gibt die Fehlermeldung Kmod: failed to exec /sbin/modprobe -s -k binfmt-464c, errno = 8 aus.
Neuer Eintrag
Sektion 4: Linux erkennt nur einen Teil meines Speichers. Wie kann ich das ändern?
Endlich aktualisiert
Sektion L: Ich habe RedHat 7.0 und kann keinen Kernel fehlerfrei kompilieren. Ich kann manche Programme unter RedHat 7.0 nicht kompilieren. Unter RedHat 7.0 kompilierte Programme laufen nicht auf anderen Distributionen.
Neuer Eintrag
Sektion 2: Wie kann ich mit einem Kommandozeilenprogramm Mails mit MIME-Attachment verschicken?
Neuer Eintrag
Sektion L: Inzwischen ist Kernel 2.4 freigegeben worden, was muss ich beim Upgrade von 2.2 beachten?
Neuer Eintrag, basierend auf einem Vorschlag von Alexander Stielau.
Sektion L: Warum zeigt Linux in /proc/cpuinfo an, im Rechner befände sich ein Pentium 75, obwohl ein Pentium 90/100/120/133/166/200/* eingebaut ist?
Erweitert um MMX
Sektion 4: Wie kann ich unter Linux mit Dateien größer 2 GB arbeiten?
Neuer Eintrag
Sektion 2: Warum kann ich mich nicht als root über telnet einloggen?
Verweis auf die kommerzielle ssh1-implentierung durch einen auf OpenSSH ersetzt.
Sektion L: Ich habe auf Kernel 2.4.x geupgradet und es werden keine Module mehr geladen.
Neuer Eintrag
Sektion 5: Nach einer Weile funktioniert meine Maus unter X nicht mehr richtig, ich kann keine Fenster mehr verschieben und auch (manche) Knöpfe nicht mehr betätigen. Woran liegt das?
Um xmodmap-Lösung (vorläufig als comment) ergänzt
Sektion 5: Wieso bekomme ich die Fehlermeldung Can't find X includes. Please check your installation and add the correct paths, wenn ich ein Programm compilieren will, das X benutzt?
Paketname bei RedHat ergänzt.
Sektion 0: Welche Bücher gibt es zu Linux?
Ersetzt durch eine Verweis auf die in dcoul.infos gepostete Liste
Sektion 2: Ich benötige die Datei foo.bar, welches Paket muss ich installieren?
Neuer Eintrag
Sektion 5: Wie kann ich unter Linux Divx-, wmf-, oder asf-Videos wiedergeben
Neuer Eintrag
Sektion 5: Wieso bekomme ich die Fehlermeldung Can't find X includes. Please check your installation and add the correct paths, wenn ich ein Programm compilieren will, das X benutzt?
Neuer Eintrag
Sektion 2: Wie [lösche/verschiebe/bearbeite] ich Dateien, die mit - beginnen?
Neuer Eintrag
Sektion 2: Wie ist das mit den Locales?
neuer Punkt: locales
Sektion L: Ich versuche auf einem Computer mit AMD Athlon oder Duron Prozessor Linux zu installieren. Er hängt sich jedoch gleich nach dem Laden des Kernels auf.
Neuer Eintrag
Sektion 3: Unterstützt Linux USB-Geräte?
Info zu 2.2.18 eingetragen
Sektion L: Funktioniert die Hauppage Win/TV PCI unter Linux?
Link hinzugefügt
Sektion 5: Kann man mehrere Monitore gleichzeitig unter Linux betreiben?
Ergaenzungen (Console)
Sektion 5: Wie kann man das Rad der Scroll-Mäuse unter Linux nutzen?
Geaenderten URL eingetragen und andere Ergänzungen
Sektion 3 Obsolete Frage entfernt (notebookneomagic)
Wie bekomme ich X mit mehr als 320x200 Punkten auf meinem Notebook mit Neomagic-Chipsatz zum laufen?
Zuletzt in Revision 1.43 enthalten
Sektion 2 Obsolete Frage entfernt (netscapedrucken)
Warum kann ich aus Netscape 3 heraus auf einmal nicht mehr im Postscriptformat drucken? Weder Ghostscript noch ein Postscriptdrucker akzeptieren die erzeugten Daten.
Zuletzt in Revision 1.56 enthalten
Sektion 2 Obsolete Frage entfernt (netscapeabsturz)
Warum stürzt mein Netscape 3 dauernd ab, besonders, wenn ich Java-Applets ausführen möchte?
Zuletzt in Revision 1.56 enthalten
Sektion 2 Obsolete Frage entfernt (starofficeskript)
Ich möchte StarOffice 3.1 installieren, das Setup-Programm bricht aber immer mit einem Skript-Fehler in Zeile 1 ab.
Zuletzt in Revision 1.56 enthalten
Sektion 3 Obsolete Frage entfernt (xi740)
Werden Grafikkarten mit i740-Chip unterstützt?
Zuletzt in Revision 1.19 enthalten
Sektion 3 Obsolete Frage entfernt (elsawinner1000t3d)
Funktioniert die ELSA Winner 1000/T3D (und andere Karten mit dem S3 Trio3D) unter X?
Zuletzt in Revision 1.14 enthalten
Sektion 3 Obsolete Frage entfernt (riva128bios)
Warum hängt sich XFree86 3.3.2 mit meiner Riva128-basierten Grafikkarte beim Starten mit einem schwarzen Bildschirm auf?
Zuletzt in Revision 1.14 enthalten
Sektion 3 Obsolete Frage entfernt (matroxg100_200)
Funktionieren Matrox-Grafikkarten mit dem G100/G200 unter Linux?
Zuletzt in Revision 1.14 enthalten
Sektion 3 Obsolete Frage entfernt (matroxmillenium)
Funktioniert die Matrox Millennium II unter Linux?
Zuletzt in Revision 1.14 enthalten
Sektion 3 Obsolete Frage entfernt (matroxmystique2)
Funktioniert die Matrox Mystique II unter Linux?
Zuletzt in Revision 1.14 enthalten
Sektion 3 Obsolete Frage entfernt (matroxmystique)
Funktioniert die Matrox Mystique unter Linux?
Zuletzt in Revision 1.14 enthalten

[22.11.1999] Änderungen der FAQ seit 25.10.1999:

Sektion 1: Wie kann ich Mails und News offline lesen, also ohne dabei dauernd eine Verbindung zum Internet haben zu müssen?
Namensaenderung
Sektion 0: Wo finde ich deutschsprachige Dokumentation zu Linux?
Hinweis auf de.comp.os.unix.linux.infos ergaenzt
Sektion 2: In /var/log/messages erscheint regelmäßig der Eintrag -- MARK --. Was hat das zu bedeuten?
Neuer Punkt
Sektion L: Wird der Adaptec AHA 2940 U2W (AIC 7890) von Linux unterstützt?
Aktualisiert

[25.10.1999] Änderungen der FAQ seit 21.08.1999:

Sektion L: Wie kann ich mit Linux AOL benutzen?
Ergaenzung um URL zu experimenteller Software zum AOL-Zugang
Sektion 2: Wie kann ich ein ext2-Dateisystem defragmentieren?
Geaenderte URL eingetragen
Sektion 0: Welche Bücher gibt es zu Linux?
Neuer Punkt
Sektion 5: Kann man mehrere Monitore gleichzeitig unter Linux betreiben?
Update bzgl. XFree86 4.0
Sektion 3:
Falsche Numerierung korrigiert (3.32, 3.33)
Sektion 3: Wie kann ich die FritzX PC oder die Eumex 404 (ISDN-Anlagen) unter Linux benutzen?
Neuer Punkt

[21.08.1999] Änderungen der FAQ seit 21.08.1999:

Sektion 1: Wie kann ich Mails und News offline lesen, also ohne dabei dauernd eine Verbindung zum Internet haben zu müssen?
Verweis auf die Message-ID-FAQ aufgenommen.
Sektion 1: Gibt es für Linux ein ZConnect-Pointprogramm?
Neue URL
Sektion 4: Warum zeigt mein Rechner einen geringeren (höheren) BogoMips-Wert an als ein Rechner mit einem anderen Prozessor, obwohl mein Rechner tatsächlich schneller (langsamer) ist?
Verweis auf das (mittlerweile wieder aktualisierte) BogoMips-Mini-HOWTO aufgenommen.
Sektion 2: Warum kann ich mich nicht als root über telnet einloggen?
Hinweis auf Klartextpassworte bei Telnet und ev. verschluesselnde Alternativen hinzugefuegt.
Sektion 3: Kann ich mit meiner ISDN-Karte unter Linux Faxe empfangen?
Analoges faxen mit manchen aktiven Karten funktioniert jetzt
Sektion 4: Was hat es mit den 2.5.x-Kerneln auf sich? Sollte man von 2.4.x updaten?
Neuer Punkt
Sektion 3: Wie kann ich die FritzX PC oder die Eumex 404 (ISDN-Anlagen) unter Linux benutzen?
Neuer Punkt
Sektion 4: Ich möchte einen neuen Kernel compilieren, erhalte auf make menuconfig aber nur die Meldung make: *** No rule to make target `menuconfig'. Stop.
Neuer Punkt

[21.08.1999] Änderungen der FAQ

Sektion 4: Was bedeutet die Meldung mount fs type devpts not supported by Kernel?
Neuer Punkt
Sektion 3: Warum funktioniert mein internes Modem nicht unter Linux?
Ergaenzung
Sektion 3: Seit ich meinen Speicher aufgerüstet habe, ist Linux viel langsamer geworden. Unter DOS tritt der Effekt aber nicht auf. Woran liegt das?
Ergaenzung
Sektion 3: Wie kann ich Disketten vom Amiga oder vom Mac auf einem PC unter Linux lesen?
Neuer Punkt

Lizenz

               GNU GENERAL PUBLIC LICENSE
                       Version 2, June 1991

 Copyright (C) 1989, 1991 Free Software Foundation, Inc.
                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                            Preamble

  The licenses for most software are designed to take away your
freedom to share and change it.  By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users.  This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it.  (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.)  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.

  To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have.  You must make sure that they, too, receive or can get the
source code.  And you must show them these terms so they know their
rights.

  We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.

  Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software.  If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.

  Finally, any free program is threatened constantly by software
patents.  We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary.  To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.

  The precise terms and conditions for copying, distribution and
modification follow.

                    GNU GENERAL PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License.  The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language.  (Hereinafter, translation is included without limitation in
the term "modification".)  Each licensee is addressed as "you".

Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope.  The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.

  1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.

You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.

  2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:

    a) You must cause the modified files to carry prominent notices
    stating that you changed the files and the date of any change.

    b) You must cause any work that you distribute or publish, that in
    whole or in part contains or is derived from the Program or any
    part thereof, to be licensed as a whole at no charge to all third
    parties under the terms of this License.

    c) If the modified program normally reads commands interactively
    when run, you must cause it, when started running for such
    interactive use in the most ordinary way, to print or display an
    announcement including an appropriate copyright notice and a
    notice that there is no warranty (or else, saying that you provide
    a warranty) and that users may redistribute the program under
    these conditions, and telling the user how to view a copy of this
    License.  (Exception: if the Program itself is interactive but
    does not normally print such an announcement, your work based on
    the Program is not required to print an announcement.)

These requirements apply to the modified work as a whole.  If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works.  But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.

In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.

  3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:

    a) Accompany it with the complete corresponding machine-readable
    source code, which must be distributed under the terms of Sections
    1 and 2 above on a medium customarily used for software interchange; or,

    b) Accompany it with a written offer, valid for at least three
    years, to give any third party, for a charge no more than your
    cost of physically performing source distribution, a complete
    machine-readable copy of the corresponding source code, to be
    distributed under the terms of Sections 1 and 2 above on a medium
    customarily used for software interchange; or,

    c) Accompany it with the information you received as to the offer
    to distribute corresponding source code.  (This alternative is
    allowed only for noncommercial distribution and only if you
    received the program in object code or executable form with such
    an offer, in accord with Subsection b above.)

The source code for a work means the preferred form of the work for
making modifications to it.  For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable.  However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.

If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.

  4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License.  Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.

  5. You are not required to accept this License, since you have not
signed it.  However, nothing else grants you permission to modify or
distribute the Program or its derivative works.  These actions are
prohibited by law if you do not accept this License.  Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.

  6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions.  You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.

  7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all.  For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.

If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.

It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices.  Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.

This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.

  8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded.  In such case, this License incorporates
the limitation as if written in the body of this License.

  9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time.  Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

Each version is given a distinguishing version number.  If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation.  If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.

  10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission.  For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this.  Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.

                            NO WARRANTY

  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.

  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

                     END OF TERMS AND CONDITIONS

            How to Apply These Terms to Your New Programs

  If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

  To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

    <one line to give the program's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA


Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:

    Gnomovision version 69, Copyright (C) year name of author
    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License.  Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.

You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary.  Here is a sample; alter the names:

  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
  `Gnomovision' (which makes passes at compilers) written by James Hacker.

  <signature of Ty Coon>, 1 April 1989
  Ty Coon, President of Vice

This General Public License does not permit incorporating your program into
proprietary programs.  If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library.  If this is what you want to do, use the GNU Library General
Public License instead of this License.