• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Gelöst Treiber installieren und pflegen

OsunSeyi

Hacker
Hallo allerseits,

Es ist eine allgemeine Frage, die für alle Distros gelten könnte..

Ausgangspunkt ist mein altes Thinkpad T60 BJ 2006 32 bit.
Dieses hat an der Seite einen Slot in dem das CD-Laufwerk steckt, man kann aber auch mittels Einschub eine zweite HD dort einbauen. Aber ob diese erkannt wird, ist die zweite Frage...

Habe Void-Linux darauf installiert, und die HD im Einschub ('UltraBay') wurde erkannt. Void ist ein rolling Release, und im Zuge der Aktualisierungen wurde die Unterstützung für diese Form 'HD in Einschub' wohl aus dem Kernel (?) entfernt.

Also, es ist mir bekannt, wie ein Treiber mit (ich meine) 'insmod' geladen wird... aber mehr auch nicht.

Ist folgendes generell möglich:

* wenn ein Gerät erkannt wird, herauszufinden, welcher Typ es genau ist (lscpi)
* wenn es funktioniert, schauen welcher Treiber genau aktuell verwendet wird..
* diesen Treiber irgendwo im Backup wegspeichern und "mitnehmen"
* ...um ihn auf einer Intallation, die das Gerät nicht unterstützt, mit 'insmod' wieder laden zu können

Irgendwie bin ich es gewohnt, daß die allermeisten Geräte idR unterstützt werden, aber auf alter Hardware eben nicht unbedingt.*

Nun fliegen hier aber noch etliche alte Puppy-CDs rum, so daß es nicht so schwierig ist ein älteres System mal eben zu booten. Da kann man ja gucken, welcher Treiber verwendet wird. Und diesen dann eben auf einem aktuellen System auch zu benutzen (wenn das so ohne weiteres geht).

eine schönes WE,
Tom

EDIT: aber auf alter Hardware eben nicht unbedingt ... das hat sich als falsch herausgestellt (s.u.)
 
Zuletzt bearbeitet:

josef-wien

Ultimate Guru
Über PCI(e) angeschlossene Geräte kannst Du mit
Code:
lspci
ermitteln. Details zu einem Gerät zeigt Dir dann
Code:
lspci -nnks 00:02.0
(wobei für "00:02.0" das gewünschte Gerät einzusetzen ist).

Kernel-Module müssen zum jeweiligen Kernel passen. Wie Du es Dir vorstellst, geht es nicht. Die einzige Möglichkeit wäre, den Quellcode des Moduls zu speichern und nach jedem Kernel-Update das Modul neu zu bauen.

Wenn Du vor dem Einstecken eines Geräts
Code:
dmesg -w
ausführst, meldet der Kernel nach dem Einstecken, wie er es identifiziert und behandelt. Über USB angeschlossene Geräte zeigt Dir:
Code:
lsusb
 

susejunky

Moderator
Teammitglied
Hallo OsunSeyi,

... Ausgangspunkt ist mein altes Thinkpad T60 BJ 2006 32 bit.
Dieses hat an der Seite einen Slot in dem das CD-Laufwerk steckt, man kann aber auch mittels Einschub eine zweite HD dort einbauen. Aber ob diese erkannt wird, ist die zweite Frage...

Habe Void-Linux darauf installiert, und die HD im Einschub ('UltraBay') wurde erkannt. Void ist ein rolling Release, und im Zuge der Aktualisierungen wurde die Unterstützung für diese Form 'HD in Einschub' wohl aus dem Kernel (?) entfernt.

wenn Wikipedia Recht hat, dann ist in Deinem T60 ein UltraBay Slim verbaut, das an einer IDE-Schnittstelle hängt. Für eine IDE-Schnittstelle benötigst Du das Kernel-Modul ata_piix.

Bei meinem System (openSUSE Tumbleweed, Kernel 6.0.6) findet sich das Modul unter /lib/modules/6.0.6-1-default/kernel/drivers/ata/.

Ob ata_piix als Kernel-Modul erstellt wird und ob es in der initrd enthalten ist (z.B. um das root-Dateisystem von einem IDE-Gerät zu laden), hängt von der verwendeten Distribution und von Deiner individuellen Konfiguration ab.

Viele Grüße

susejunky
 
OP
OsunSeyi

OsunSeyi

Hacker
@susejunky
vielen Dank für Deine Unterstützung.

ata_piix ist hier auf Salix nur im Zusammenhang mit Quemu zu finden.
Ich hätte jetzt keinen blassen Schimmer, wie ich das nachinstallieren sollte.

@josef-wien

Eigendlich war das mit der Ultrabay nur ein Beispiel... aber durchaus liegen die Teile (Einschub + HD) hier rum und sollten ja eigendlich als Backup-Platte verbaut sein.

Habe mir ein Thinkpad T14 erstanden, was ich richtig toll finde aber es war schon schwierig etwas aktuelles zu installieren was auch läuft.

Insbesonders das Internet läuft sehr langsam ausgerechnet bei dem neuen Salix 15 (basiert auf Slackware 15) und sollte eigendlich auch auf so einem älteren Rechner unter Salix flott laufen. Aber es ist nicht einmal möglich, die Packetlisten zu aktualisieren, so daß sich das System nach der Installation nicht aktualisieren lässt. Wird wohl am Treiber liegen !?

Also davon zuletzt abgelassen und es mit Bunsenlabs versucht (basiert auf Debian). Dort wiederum ist das Internet flott, aber ausser Firefox läuft kein Browser. Midori basierend auf Gtk3 ist nicht imstande, die geladene Seite im Browser-Fenster auch darzustellen (bleibt schwarz) und Qt basierte Browser spucken beim Aufruf eine Fehlermeldung aus in einem Tempo, daß die .xsession-errors schnell vollaufen lassen würde. Wohl ebenfalls ein Treiberproblem.

Also auch dieses gelassen. Jetzt ist es zuletzt AntiX geworden, was Seamonkey mitbringt der auch läuft aber bestimmt nicht aktuell ist.

Mein Eindruck ist, daß sich eine Auseinandersetzung mit der Hardware und der Treiber einfach nicht vermeiden lässt, wenn der Rechner älter ist. Da geht's ja auch schon los damit, daß 32 bit nicht mehr gerade viel unterstützt wird. Aber doch noch einige...

Als Beispiel Void-Linux auf T60 startet sehr sehr flott und ist bestens geeignet. Aber das Treiber-Problem ist schon ein Thema. Gerade da, wo durch die Aktualisierung auf einmal eine Komponente ausfällt, weil der Treiber nicht mehr dabei ist. Sowas müsste sich doch in den Griff bekommen lassen.

Und dann überhaupt diese Praxis, etliche Distris 'rumprobieren' zu müssen, anstatt die passenden Treiber einzupflegen und gut ist.

Ich hoffe, daß ich daß etwas in den Griff bekomme...
Artikel (pcwelt)
 
Zuletzt bearbeitet:

josef-wien

Ultimate Guru
Zumindest die meisten Deiner Probleme sehe ich nicht im Zusammenhang mit Treibern. Z. B. benötigt ein Web-Browser keine Treiber, sondern eine funktionierende grafische Oberfläche und Bibliotheken in einer passenden Version. Was die Geschwindigkeit anbelangt, sind manche grafische Oberflächen und bestimmte Programme für leistungsschwächere ältere Rechner nicht wirklich geeignet (bzw. hängt die Eignung mitunter davon ab, wie das Programm konfiguriert und übersetzt wurde). Jede Distribution hat bestimmte Zielgruppen, und bei älteren Rechnern wirst Du um das Herausfinden der für Dich geeigneten nicht herumkommen.

Um einzelne Probleme in Angriff nehmen zu können, brauchen wir entsprechende Informationen. Ich kann mir nicht vorstellen, daß eine wesentliche Funktion wie ata_piix plötzlich nicht mehr existiert. Da nehme ich eher an, daß sie direkt im Kernel implementiert ist, und das sollte
Code:
zgrep -i ata_piix /proc/config.gz
klarstellen.
 
Zuletzt bearbeitet:

susejunky

Moderator
Teammitglied
Hallo OsunSeyi,

... ata_piix ist hier auf Salix nur im Zusammenhang mit Quemu zu finden.

Treiber ist bei einem Linux-System eigentlich immer gleichbedeutend mit Kernel; d.h. der Kernel übernimmt die Aufgabe Hardware zu steuern.

Der zur Steuerung einer Hardware-Komponente (z.B. IDE-Kontroller) erforderliche Programm-Code ist entweder
  1. vorhanden und direkt im Kernel eingebaut oder
  2. vorhanden und liegt als separates Kernel-Modul vor, das bei Bedarf vom Kernel geladen wird oder
  3. vorhanden, liegt aber nur als Quellcode vor; d.h. ist weder im Kernel eingebaut, noch als Kernel-Modul vorhanden oder
  4. NICHT vorhanden; z.B. bei "brandneuer" Hardware und/oder bei Hardware, für die der Hersteller keinen Programm-Code für Linux liefert.
Da das ata_piix-Modul in meinem openSUSE Kernel noch vorhanden ist, kann man Punkt 4. ausschließen.

Was Punkt 3. anbelangt so ist zu bedenken, dass jede Linux-Distribution "ihren" Kernel selbst konfiguriert und übersetzt. Es besteht also die Möglichkeit, dass die von Dir eingesetzte Distribution den ata_piix Programmcode weder in "ihren" Kernel eingebaut hat, noch als Modul mitliefert (schließlich ist IDE, nach der Einführung von SATA vor fast 20 Jahren, heute wahrscheinlich nicht mehr all zu weit verbreitet). In diesem Fall müsstest Du Dir einen eigenen Kernel übersetzen.

Punkt 2. beschreibt die z. Zt. bei openSUSE Tumbleweed angewendete Vorgehensweise.

Punkt 1. beschreibt ein ebenfalls mögliches Vorgehen. Daher solltest Du die von josef-wien vorgeschlagene Prüfung unbedingt durchführen.

Viele Grüße

susejunky
 
OP
OsunSeyi

OsunSeyi

Hacker
Es hat ein bisschen gedauert...

Auf Void bleibt zgrep -i ata_piix /proc/config.gz leer, dasselbe mit locate ata_piix und lsmod | grep ata_piix

Was ist denn der einfachste Weg, das Modul ata_piix wieder verfügbar zu machen?

Ursprünglich (auf der Installations-CD) muss das Modul ja vorhanden gewesen sein, ich mag das aber im Moment nicht probieren weil ich das CD-Laufwerk aus der Ultrabay entfernen muss, um den Einschub mit der HD einzusetzen. Daß ich das dortige Modul aber nicht ohne weiteres 'mitnehmen' kann, sondern neu kompiliert werden muss, habe ich ja jetzt verstanden.

Man kann doch nicht nach jedem Kernel-Update ata_piix neu übersetzen und einen neuen Kernel bauen.
Wäre es da nicht einfacher, das Modul nachzuladen? Und vieleicht zu schauen, ob das geht oder nicht und nur dann, wenn es nicht klappt, das Modul neu zu übersetzen?

In dem Artikel in der pcwelt bezieht sich das ganze auf Debian, auf Void findet die Suche im Paketmanager xbps-query jedenfalls nichts. Außerdem ziele ich mit meiner Frage darauf ab, wie sich das Problem generell lösen lässt.
 
Zuletzt bearbeitet:

susejunky

Moderator
Teammitglied
Hallo OsunSeyi,

... Was ist denn der einfachste Weg, das Modul ata_piix wieder verfügbar zu machen?
bislang haben wir noch nicht sicher nachgewiesen, dass ein fehlendes ata_piix-Modul tatsächlich die Ursache Deines Problems ist. Daher würde ich an Deiner Stelle zunächst erst einmal versuchen ein LIVE-System einer anderen Distribution zu starten und damit zu verifizieren, dass ein ata_piix-Modul Dein Problem tatsächlich lösen würde.

32bit-Unterstützung wird allerdings nicht mehr von allen Distributionen angeboten. Das hier wäre eine Möglichkeit aber es gibt sicherlich auch andere (die Suchmaschine Deines Vertrauens ist Dein Freund).

... Man kann doch nicht nach jedem Kernel-Update ata_piix neu übersetzen und einen neuen Kernel bauen.

Was im Einzelnen notwendig ist, hängt von der jeweiligen Distribution ab. Am einfachsten ist es eine Distribution zu verwenden, die alle erforderlichen "Treiber" mitbringt (d.h. deren Kernel-Quellcode den erforderlichen "Treiber"-Code beinhaltet).

Natürlich kann man auch den Linux-Kernel-Quellcode von kernel.org herunterladen und damit einen eigenen Kernel bauen aber da gibt es dann noch mehr zu beachten.

Viele Grüße

susejunky
 

josef-wien

Ultimate Guru
Woher hast Du welches VOID-Linux? Wenn ich mir void-live-i686-20221001-xfce.iso von Index of /live/current/ herunterlade und in einer virtuellen Maschine starte, dann sehe ich klar und deutlich, daß ata_piix als Kernel-Modul enthalten ist.
 
OP
OsunSeyi

OsunSeyi

Hacker
Shame on me...

Habe von vorne bis hinten nur Mist erzählt...
Das kommt davon, wenn man sowas morgens um 6 vor der Arbeit macht.

Auf Void bleibt zgrep -i ata_piix /proc/config.gz leer, dasselbe mit locate ata_piix und lsmod | grep ata_piix

Nur, daß ich das auf Void mit ata_pixx statt ata_piix gemacht habe.... :cautious:

Also, kurz und gut:

Code:
[   13.540962] ata1: soft resetting link
[   13.752192] ata1.00: native sectors (488397168) is smaller than sectors (144117387621063536)
[   13.752205] ata1.00: ATA-9: WDC WD2520BEVS/77UST2 " " " " " " " " ", 21.03A21, max UDMA/133
[   13.752214] ata1.00: 144117387621063536 sectors, multi 0: LBA48 NCQ (depth 0/32)
[   13.757555] ata1.00: configured for UDMA/100
[   13.757591] sd 0:0:0:0: [sda] tag#0 UNKNOWN(0x2003) Result: hostbyte=0x00 driverbyte=DRIVER_OK cmd_age=5s
[   13.757602] sd 0:0:0:0: [sda] tag#0 Sense Key : 0x3 [current]
[   13.757609] sd 0:0:0:0: [sda] tag#0 ASC=0x13 ASCQ=0x0
[   13.757618] sd 0:0:0:0: [sda] tag#0 CDB: opcode=0x28 28 00 00 00 00 88 00 00 78 00
[   13.757624] I/O error, dev sda, sector 255 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 0
[   13.757763] ata1: EH complete
[   13.757782] sd 0:0:0:0: rejecting I/O to offline device
[   13.757864] I/O error, dev sda, sector 264 op 0x0:(READ) flags 0x80700 phys_seg 8 prio class 0
[   13.757978] I/O error, dev sda, sector 136 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[   13.758066] Buffer I/O error on dev sda, logical block 17, async page read
[   13.758157] ata1.00: detaching (SCSI 0:0:0:0)
[   13.758341] device offline error, dev sda, sector 136 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[   13.758439] Buffer I/O error on dev sda, logical block 17, async page read
[   13.758658] device offline error, dev sda, sector 484225016 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 0
[   13.758823] device offline error, dev sda, sector 484225016 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[   13.758919] Buffer I/O error on dev sda, logical block 60528127, async page read
[   13.759985] udevd[585]: inotify_add_watch(7, /dev/sda, 10) failed: No such file or directory
[   13.762058] udevd[581]: inotify_add_watch(7, /dev/sda2, 10) failed: No such file or directory
[   13.762076] udevd[593]: inotify_add_watch(7, /dev/sda1, 10) failed: No such file or directory
[   13.763414] udevd[582]: inotify_add_watch(7, /dev/sda5, 10) failed: No such file or directory
[   13.769081] sd 0:0:0:0: [sda] Synchronizing SCSI cache
[   13.769564] sd 0:0:0:0: [sda] Stopping disk

lsblk hat keine sda ausgegeben.
Das Ganze hatte mit dem Modul ata_piix nichts zu tun, eine andere HD im Slot wurde erkannt und ließ sich formatieren und mounten.

Was das generelle Problem anging (Treiber installieren und pflegen) habe ich den Eindruck, daß es so einfach nicht ist.

32bit-Unterstützung wird allerdings nicht mehr von allen Distributionen angeboten. Das hier wäre eine Möglichkeit aber es gibt sicherlich auch andere (die Suchmaschine Deines Vertrauens ist Dein Freund).

Ja, so sieht's aus. An minimalistischen Distributionen, die aber (jedenfalls für mich) nicht so ganz leicht zu händeln sind, würde ich Void Linux (als rolling Release) oder Alpine Linux für eine gute Wahl halten. Zumindest Void fährt in unfassbar kurzer Zeit hoch.

Bisher bin ich mit Salix Os unterwegs, was als gut gepflegtes und vollständig Slackware-kompatibles System auch für Einsteiger gut zu verwenden ist (incl deutschem Forum, was auch ganz gut besucht ist).

Da ist jetzt just die auf Slackware 15 basierende brandneue Version herausgekommen, die ja nun auch geschlagene 8 Jahre Support erhalten wird. Das ist schon sehr, sehr lange und beinhaltet nur Sicherheitspatches.

Wenn man (wie ich) immer noch ein langsames Internet hat, fühlt man sich schon sehr angenehm in Ruhe gelassen. Anders im Ggs Void als rolling Release, wo gefühlt ewige Updates an der Tagesordnung sind.

Das oft gepriesene Puppy-Linux fand ich immer geil, aber ich wüsste nicht, wie zu aktualisieren und was überhaupt da aktuell ist.
SliTaz bliebe ebenfalls noch auszuprobieren. Ebenfalls als 32-Bit erhältlich und neuerdings als rolling Release.

Debian-basiert gibt's jede Menge zB BunsenLabs mit der angenehmsten Installationsroutine, die ich bisher erlebt habe.
Oder AntiX Proudly anti-fascist "antiX Magic" in an environment suitable for old and new computers. (Bei SuSE gab's ganz früher auch mal einen Aufruf gegen Rassismus und Gewalt, das war bei einer 8-er Version oder so. Eine Danksagung an Frank Zappa war auch mal zu finden, sehr cool ;-) )

Sehr chic mit Herbsluft-WM als tiling Windowmanager und jeder Menge weiterer minimaler Desktops, die sich 'on-the-fly' wechseln lassen.

Bei den Debian-basierten scheint auf meinem Thinkpad T42 das Problem aufzutauchen, daß QT-basierte Browser nicht starten wollen sondern mit einer Fehlermeldung die xsession-errors vollaufen lassen. Midori und surf als Gtk-basierte Browser wollen auch nicht.

@josef-wien: Du sagtest, das wäre warsch. kein Treiber-Problem... wäre trotzdem toll, das lösen zu können!

Am einfachsten ist es eine Distribution zu verwenden, die alle erforderlichen "Treiber" mitbringt (d.h. deren Kernel-Quellcode den erforderlichen "Treiber"-Code beinhaltet).

Natürlich kann man auch den Linux-Kernel-Quellcode von kernel.org herunterladen und damit einen eigenen Kernel bauen aber da gibt es dann noch mehr zu beachten.

Ist es nicht möglich, fehlende Treiber per insmod einzubinden?

Soweit erstmal vielen Dank für Eure Geduld!
 
Zuletzt bearbeitet:

josef-wien

Ultimate Guru
wäre trotzdem toll, das lösen zu können!
Da gibt es nur den üblichen Weg: Programm in der Konsole starten und die Meldungen in der Konsole, in /var/log/messages, in /var/log/Xorg.0.log und in "xsession-errors" analysieren.

Treiber per insmod einzubinden
Mit insmod (Du solltest Dir das intelligentere modprobe angewöhnen) kann ein nicht geladenes Kernel-Modul geladen werden. Ein bei Deinem System in /lib/modules/$(uname -r) nicht vorhandenes Modul kann logischerweise nicht geladen werden. Ein nicht zum laufenden Kernel passendes Modul kann ebenfalls nicht geladen werden. Nachtrag: Ich glaube, Du hast Dich da etwas verrannt. In der Regel gibt es keinen Grund für manuelle Eingriffe, und bei alter Hardware schon gar nicht.
 
Zuletzt bearbeitet:

Christina

Moderator
Teammitglied
Auf Void bleibt zgrep -i ata_piix /proc/config.gz leer, dasselbe mit locate ata_piix und lsmod | grep ata_piix
(…)
Nur, daß ich das auf Void mit ata_pixx statt ata_piix gemacht habe....
Hi Tom,
gewöhne dir am besten an, Terminalausgaben immer mit der Befehlszeile zu posten, auch wenn die Ausgabe leer bleibt.
So können wir den Fehler sofort ausmachen.

Das Ganze hatte mit dem Modul ata_piix nichts zu tun, eine andere HD im Slot wurde erkannt und ließ sich formatieren und mounten.
Also war das nur ein Hardwaredefekt.

Was das generelle Problem anging (Treiber installieren und pflegen) habe ich den Eindruck, daß es so einfach nicht ist.
Das Pflegen übernehmen die Kernelentwickler für dich. ;)
Ein Installieren von alten Kernel-Modulen (wie man das von Microsoft® mit Treibern kennt) gibt es nicht, sondern nur ein Nachladen.
Nur bei ganz neuer Hardware, die noch nicht im Linux-Kernel eingepflegt ist, musst du das entsprechende Modul für jeden Kernel-Release selbst kompilieren. Den Quellcode dafür muss der Hersteller selbst oder ein Dritter liefern.

Wie der Josef das schon angedeutet hat, werden alte Treiber nur in äußerst ungewöhnlichen Fällen aus Linux entfernt; dann aber mit langer Ankündigung.
Beispiel: Linux Looks To Finally Remove Its Legacy IDE Driver Support - Phoronix
Christoph Hellwig schrieb:
libata mostly covers all hardware supported by the legacy ide driver. There are three mips drivers that are not supported, but the linux-mips list could not identify any users of those. (…)

lg Christina
 
Oben