Archive-name: /de/comp/linux/dcoul-faq/section2
Posting-frequency: monthly Last-modified: 2001-02-04 21:21:42 Version: CVS revision 1.57 URL: http://www.dcoul.de/faq/ See reader questions & answers on this topic! - Help others by sharing your knowledge http://www.dcoul.de/faq/ _________________________________________________________________ 2. Allgemeine Linux-Fragen 2.1 Wo finde ich deutschsprachige Dokumentation zu Linux? Im Deutschen Linux HOWTO Projekt (DLHP). Die Texte sind unter http://www.tu-harburg.de/dlhp/ bzw. http://www.tu-harburg.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. 2.2 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://ifix.cx/buecher.txt zu finden. 2.3 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. 2.4 Linux erkennt nur einen Teil meines Speichers. Wie kann ich das ändern? Du teilst einfach dem Kernel explizit mit, wieviel 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 <http://www.pell.portland.or.us/~orc/Memory/> 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) 2.5 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. 2.6 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. 2.7 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.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. 2.9 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. 2.10 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. 2.11 Welche Linux-Distribution ist die beste? 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 <http://www.de.debian.org/>. 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 (oder zumindest frozen) 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 * SuSE <http://www.suse.de/>. Bekannt geworden als erste "echte" deutsche Linuxdistribution wird SuSE oft fuer Einsteiger empfohlen. Diese Empfehlung kann man auch Aufgrund eines umfangreichen Handbuchs durchaus beibehalten; allerdings sind andere Distributionen inzwischen ebenso weit. Kauft man eine "echte" SuSE (und keine Evaluationsversion aus einer Zeitschrift o.ae.) bekommt man 60 Tage kostenlosen Support dazu. SuSE verwendet das RPM Paketformat und bringt quartalsweise neue Versionen heraus. Als einzige Distribution kann man SuSE auch auf DVD bekommen. * RedHat <http://www.redhat.de> TODO 2.12 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 den Punkt 2.15 der FAQ). 2.13 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.14 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. 2.15 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.16 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. 2.17 StarOffice 3.1 ist installiert, wird aber beim Aufruf nicht gefunden oder meldet, es könne eine Bibliothek nicht öffnen. Das StarOffice-Setup muss für jeden Benutzer einmal ausgeführt werden, der genaue Aufruf ist in dem README des StarOffice-Paketes beschrieben. Dabei werden im Homeverzeichnis des jeweiligen Benutzers zwei Dateien .sd.sh und .sd.csh angelegt. Bei Verwendung der bash muss .sd.sh vor dem Start von StarOffice aufgerufen werden und zwar durch . ~/.sd.sh, bei der tcsh entsprechend .sd.csh mittels source ~/.sd.csh. 2.18 Warum habe ich bei StarOffice 3.1 englische Menüs, obwohl ich die German-Pakete installiert habe? StarOffice orientiert sich an den vorhandenen Einstellungen für die zu verwendende Sprache. Mit export LANG=de in der bash (bzw. dauerhaft durch Aufnahme in eines der Shell-Startupscripte) bietet SO auch deutsche Menüs. Bei der tcsh erreicht man dies analog durch das Kommando setenv LANG de. 2.19 Warum kann ich mich nicht als root über telnet einloggen? Das ist ein Sicherheitsfeature. So wird verhindert, dass man direkt mit einem Brute-Force-Attack 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. Mit OpenSSH <http://www.openssh.com/> liegt inzwischen eine komplette freie Implementierung des SSH-Protokolls vor. Sie wird inzwischen bei den meisten Linuxdistributionen (bei Debian im Paket "ssh") mitgeliefert. 2.20 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.21 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.22 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.23 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 -- AM 2.24 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.25 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. Punkt 3.7 der FAQ). 2.26 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 S.u.s.e-Support-Datenbank unter http://sdb.suse.de/sdb/de/html/ext2frag.html. 2.27 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 2.28 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.29 Warum kann ich KDE nicht starten? Das Kommando startkde bringt etliche Fehlermeldung 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. 2.30 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.31 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.32 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. 2.33 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.34 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 Festplattenpartiton. 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.35 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. Soweit unter Linux ein Backup des Original-Bootblocks vorhanden ist, kann dieser auch unter Linux wie im README zu lilo beschrieben per dd wieder installiert werden. 2.36 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. 2.37 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.38 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. 2.39 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. 2.40 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. 2.41 Was hat es mit den 2.3.x-Kerneln auf sich? Sollte man von 2.2.x updaten? Alle Kernel mit einer ungeraden Minor-Nummer (die Nummer an zweiter Stelle, also bei 2.3.x die 3) 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. 2.42 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.43 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) müssen dazu die gewollten Locales in /etc/locale.gen auskommentiert werden, und danach als root das Programm localegen ausgeführt werden. 2.44 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. Wenn keine anderen Dateien im aktuellen Verzeichnis sind, die bis auf das erste Zeichen gleich geschrieben werden, kann man auch mit Wildcards arbeiten: rm ?file 2.45 Wie kann ich unter Linux Divx-, wmf-, oder asf-Videos wiedergeben xanim scheitert leider daran, avifile <http://divx.euro.ru/> löst das Problem. 2.46 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 das Formular <http://packages.debian.org/> 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.47 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 "xdevel" und bei RedHat "XFree86-devel". 2.48 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, geloest haben. Sicherheitshalber solltest du Kernelquelltext/Documentation/Changes lesen und überprüfen, ob du die erforderlichen Programme in den nötigen Versionen installiert hast. 2.49 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 Betriebssystemeaufrufe 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. 2.50 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. ;-) 2.51 Wie kann ich mit einem Kommandozeilenprogramm Mails mit MIME-Attachment verschicken? * mutt -a Datei -s "Anhang" 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.52 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 beiligenden Anweisungen folgen, damit der Kernel mit diesem Kompiler übersetzt wird. Linus Torvalds hat hierzu in http://x58.deja.com/threadmsg_ct.xp?AN=705169495.1&mhitnum=1&CONTEXT=9 76973433.7 <http://x58.deja.com/threadmsg_ct.xp?AN=705169495.1&mhitnum=1&CONTEXT= 976973433.7> 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.linuxcare.com/kernel-traffic/kt20010101_100.epl#3 <http://kt.linuxcare.com/kernel-traffic/kt20010101_100.epl#3> und http://kt.linuxcare.com/kernel-traffic/kt20010108_101.epl#1 <http://kt.linuxcare.com/kernel-traffic/kt20010108_101.epl#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 jedenfall die Updates von RedHat einspielen. Informationen hierzu findet man unter http://www.redhat.com/support/docs/gotchas/7.0/gotchas-7.html <http://www.redhat.com/support/docs/gotchas/7.0/gotchas-7.html>. 2.53 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. _________________________________________________________________ 04.02.2001 dcoul-FAQ authors User Contributions:
[ Usenet FAQs | Web FAQs | Documents | RFC Index ]
Send corrections/additions to the FAQ Maintainer: linux-faq@lists.netuse.de
Last Update March 27 2014 @ 02:11 PM
|
Comment about this article, ask questions, or add new information about this topic: