Zum Inhalt springen

Treiber in initrd einfügen


Shabutaro

Empfohlene Beiträge

Hi, ich möchte gerne das mein SLES 10 mein Raid beim booten erkennt. Hatte mich schon etwas schlau gemacht und auch vieles versucht, doch nichts hat bisher geholfen. Was ich hauptsächlich gemacht habe ist: /boot/initrd mit gunzip entpacken, dann mit cpio das archiv entpacken. Dort dann den Treiber 3w-9xxx.ko in die /lib/modules/kernelnummer/kernel/drivers/scsi/ gepackt. Das allein hat schonmal nicht geholfen den Treiber automatisch beim booten zu laden. Dann habe ich ein bisschen gestöbert und habe in der init eine Stelle gefunden wo was mit echo load driver sd und darunter einige parameter ala modprobe sd etc. Dort habe ich dann auch den 3w-9xxx Treiber hinzugefügt, wieder nichts.. Mittlerweile weiß ich nicht mehr was ich noch machen kann und hoffe das mir einer von euch helfen kann.. Falls ihr noch irgendwas wissen müsst, einfach sagen bitte.. bin erst seit 1 1/2 Wochen in der Linux Welt ^^

PS: mkinitrd hab ich auch probiert, aber da hats den Server komplett zerschossen (Kernel panic)... oder ich habs einfach nur falsch gemacht :)

Gruß Shabutaro

Link zu diesem Kommentar
Auf anderen Seiten teilen

Generell bringen die Distributionen einen generischen Kernel mit, den Du auch verwenden solltest, wenn Du nicht weißt, wie man damit umgeht. Manuell in den Kernel Modulen irgendwie etwas rum zu kopieren ist eine schlechte Wahl. Weiterhin, falls Du wirklich einen eigenen Kernel bauen möchtest, dann bau ihn aus den Sourcen z.B. von The Linux Kernel Archives und behalte einen funktionierenden Kernel so lange im Bootloader, bis Dein neuer vollständig getestet ist.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nein ich möchte keinen neuen Kernel bauen, nur einfach einen Treiber während des bootens hinzufügen damit mein Raid erkannt wird auf dem 2 CentOS Systeme liegen sowie ein storage Raid.. Es ist im Moment so, das ich 2 Platten im Raid1 habe mit 100 MB Bootpartition, 130 GB sda5 CentOS 5.4, 130 GB sda6 CentOS 5.4, 130 GB sda7 ext3 formatiert (hier soll SLES 10 rauf) und 10 GB sd8 swap... Da SLES 10 den Raidcontroller bei der Installation nicht erkennt habe ich eine USB Platte angeschlossen und darauf SLES 10 installiert. Jetzt will ich dort noch den 3w-9xxx.ko Treiber beim booten einbinden damit ich die komplette Platte auf meine sda7 Partition ziehen kann damit ich ganz normal aus dem GRUB heraus SLES 10 booten kann, sowie meine beiden CentOS... Hoffe was ich machen will ist jetzt etwas verständlicher.

Link zu diesem Kommentar
Auf anderen Seiten teilen

In manchen fällen ist es sinnvoller die Module fest in den Kernel einzubinden (nicht modular), denn wenn z.B. die Ramdisk auf dem Raid liegt dann wird das Modul nicht geladen werden können, da der Kernel es braucht um auf das Raid zuzugreifen: Sprich Ohne Modul kein Raid, aber ohne Raid auch keine Bootpartition mit Ramdisk.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Habe jetzt versucht das mit YaST zu machen unter System -> Kernel -> INITRD_MODULES und da den 3w-9xxx eingefügt. Nach dem reboot bekomme ich dann aber einen Kernel panic - iwas mit sync. Da ich jeden Versuch mit einem frisch installierten SLES mache kann ich da auch nichts vorher vermasselt haben.

Werde mir jetzt nochmal das von axxis angucken und den grub2 (wenn das ein Vorschlag zur Lösung war) und gucken ob damit irgendwas so funktioniert wie es soll :)

Danke schonmal für die bisherige Hilfe

Shabutaro

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also bevor ich mich da verrückt mache mit den Modulen(Treibern) würde ich mir mal ansehen wie die Raid Karte heißt und wie den das Modul das geladen werden kann oft gehen nicht geladenen Module für ein Raid nur der Kernel weiß davon nix.

lsmod
Ich würde mal bei dem Hersteller nachsehen sollte bei jedem was zu Thema zu finden sein oft kann man versuchen einen vorhandenen zu benutzen das wird von kernel aber nicht immer auch (der Installer fragt eigentlich bei der Installation ob man ein Modul angeben möchte wenn auch etwas versteckt meine ich? ) gesehen, daher muss man ihm das noch sagen z.B mit
insmod MODULNAME
Modtools unten auf der Seite fängt das an, damit kann man sich zumindest erst einmal einen Überblick verschaffen SLES ist OPENsuse wenn man also zu SELS nix finden kann dann einfach erst mal bei OPENsuse suchen und dort nach SELS Ausschau halten. SLES 10 müsste noch mit dem Bootloader grub version 1 arbeiten soweit ich das den weiß. Wenn das /lib/modules/kernelnummer/kernel/drivers/scsi/ dein Pfad sein soll hoffe ich mal es gibt bei dir nur eine kernelnummer und der drivers ordner hat nur den scsi und keinen sas oder sata und Dein Raid Kontroller ist ein SCSI Kontroller. Nur glaube ich bei zusammen gerechneten 500GB HDD mit höchster Wahrscheinlichkeit an ein Raid mit sata Platten und dann wird erst der SLES 11 sata von Haus aus mitmachen und damit hießt das auch kernel bauen mit den SLES sourcen, Header und zum Schluss das .rpm Packet bauen denn sonst weis ein SELS 10 da nix von denn der ist auf Stabilität ausgelegt und deshalb auch alter als dein CENTOS System Info zum Kernel dann mal mit.
uname -a 

und das mal vergleichen.

SLES 10 ist von 2006 steht so auf meinen cd’s.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Anmerkung dazu:

modprobe ist insmod vorzuziehen, da es auf Abhängigkeiten prüft.

Das initiale Problem hierbei war meines Verständnisses nach nicht das laden des Moduls in die laufende Umgebung, sondern eben in die initrd, damit SLES das Raid-Volume beim Booten mitbekommt.

btw werden sowohl SCSI als auch SATA und SAS Controller über das Linux SCSI Subsystem gehandelt.

bekomme ich dann aber einen Kernel panic - iwas mit sync

Wenns das nächste mal "etwas" genauer geht, kann man darauf auch agieren ;)

Ob du grub legacy oder grub2 benützt ist (für dein Problem) egal. Über den Fakt, dass grub2 defintiv Vorteile mit sich bringt, sei mal hinweggesehen. Ein Umstellen ist immer sinnvoll, reißt bei dir aber nur zusätzliche Baustellen auf.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Anmerkung dazu:

modprobe ist insmod vorzuziehen, da es auf Abhängigkeiten prüft.

Das initiale Problem hierbei war meines Verständnisses nach nicht das laden des Moduls in die laufende Umgebung, sondern eben in die initrd, damit SLES das Raid-Volume beim Booten mitbekommt.

Stimmt nur wollte ich nicht das wild Abhängigkeiten aufgelöst werden.

Der einzige Vorteil von insmod ist das es nur geht wenn alles andere vorbereitet ist.

Sonst wäre da der module-assistant optimal (hat den denn auch der SLES 10 ?).

Mein Punkt ist das es sein könnte das SLES 10 doch ein update braucht da es nicht das neuste ist und ich kann mich da noch an ein Problem erinnern mit SCSI und sata Hdd's.

Dabei ging es um 2008 herum bei SLES darum das SCSI nicht vollständig von SATA unterstützt wird und wenn es dann um ein Raid geht gab es dafür einen Patch damit es auch damit funktionierte (ich glaube da wurden SATA Raid Kontroller grundsätzlich noch ignoriert weil SLES Kernel den Chipsatz nicht zuordnen konnte?).

initrd wurde eigendlich schon lange von initrdramfs abgelöst.

Linux-Kernel kann seit Version 2.5.46 von initrdramfs Booten.

Link zu diesem Kommentar
Auf anderen Seiten teilen

@TE: Solltest du mkinitramfs nutzen, dann additiv dazu die /etc/initramfs-tools/modules anpassen.

Dabei ging es um 2008 herum bei SLES darum das SCSI nicht vollständig von SATA unterstützt wird und wenn es dann um ein Raid geht gab es dafür einen Patch damit es auch damit funktionierte (ich glaube da wurden SATA Raid Kontroller grundsätzlich noch ignoriert weil SLES Kernel den Chipsatz nicht zuordnen konnte?).

Sorry, aber entweder lese ich falsch oder diese Aussage macht einfach nur so keinen Sinn.

Das Thema hatte ich oben schon angerissen, nähere Infos sind hier zu finden: SCSI Interfaces Guide

@TE: Probier einfach mal, ob du das Modul in die initrd geladen bekommst und berichte uns ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok Leute danke für eure Hilfe ich habe es jetzt geschafft. Ich habe einfach an einem anderen PC die Sachen erneut probiert mit einem fresh installed SLES 10. Dort ging es wirklich einfach via yast - > System - > /etc/sysconf-Editor -> System - > Kernel -> INITRD_.... (hab vergesse was da hinterstand.. ist aber das erste in der Liste) dort in die Leiste '3w-9xxx' hinzugefügt und finish.. Dann hat der das mit mkinitrd da reingekloppt und bis jetzt lädt der noch den Treiber :) Werde das morgen dann testen ob der auf dem echten Server dann das Raid erkennt. Ich weiß nicht woran es lag das es auf meinen schon konfiguriertem SLES nicht ging... Nuja bis jetzt scheint es zu laufen und hoffe das bleibt auch so :)

Danke nochmal für eure Hilfe

Shabutaro

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...