Module automatisch laden ?

  • Ersteller Ersteller nexus
  • Erstellt am Erstellt am
N

nexus

Guest
Hallo, ich benutze seid neustem BSD kenne mich auch nicht besonders damit aus. Aus meiner Erfahrung mit Linux weis ich, dass wenn der Kernel ganz Modular compilliert wurde, nicht alle module automatisch beim Systemstart vom Kernel geladen werden, einige Treiber ect. muss man manuell laden. Nun wollte ich fragen ob das bei BSD auch der Fall ist, oder ob ein ganz modular aufgebauter Kernel bei BSD alle benötigten Module automatisch laden kann, falls diese benötigt werden zb. Treiber.
 
Hi,
was du suchst sind
kldload
kldstat
kldunload

und zum automatisieren:
/boot/loader.conf
/boot/defaults/loader.conf

Viel Spass
 
danke für die schnelle antwort, ich meinte aber etwas anderes und zwar ob BSD zb. eine Hardwareerkennung hat die automatisch von allen compilierten Modulen die richtigen lädt oder auch beinfach benötigte Funktionen die als Module compilliert wurden je nach Bedarf automatisch laden kann, ohne das der User
/boot/loader.conf
/boot/defaults/loader.conf
editieren muss und an einen bestimmten Pc anpassen muss. Eigentlich geh es dadrum dass ich mir einen "Livestick" machen will, bei dem der kernel volkommen Modular aufgebaut ist, also 99% aller Treiber und Funtionen als Module vorliegen, damit er an so vielen PCs wie möglich booten kann, ohne das ich ihn jedes Mal an den jeweiligen PC anpassen muss.
 
Nein. Das macht der Kern nicht.
/boot/defaults/loader.conf ist übrigens nur ne Beispieldatei, wo man sieht, was so an Bord ist. Da drin editieren bringt nix.
Ich hab noch nie mit so lifezeuges gefrickelt. Warum muss der Kern im Lifestick vollkommen modular aufgebaut sein?
 
muss er nicht, aber ein kernel der nicht modular die meiste hardware unterstützt.... na ja der wird schon n bisschen sperrig.... oder sind da die Geschwindligkeitseinbüße nicht so enorm ? wenn nicht würde ich einfach 99% der Hardwaretreiber in den Kernel compillieren
 
Wie troll schon sagte die /boot/defaults/loader.conf ist eine Beispieldatei, die Aenderrungen muessen in /boot/loader.conf gemacht werden. *vergessen zu sagen*

Bei der Hardwareerkennung denkst du sicher an Knoppix&Co., dabei ist es allerdings auch nicht der Kernel der die entsprechenden Module laedt, sondern es sind die Scripte (imho) von Herrn Knopper die das durchtesten, und die von einigen linux LiveCDs dann uebernommen wurden. ;)
 
muss er nicht, aber ein kernel der nicht modular die meiste hardware unterstützt.... na ja der wird schon n bisschen sperrig.... oder sind da die Geschwindligkeitseinbüße nicht so enorm ? wenn nicht würde ich einfach 99% der Hardwaretreiber in den Kernel compillieren

Die Geschwindigkeitseinbusse wirst du höchstens beim Booten spüren.
GENERIC ist doch für diesen Zweck wie geschaffen....
 
okay, dann ist es also eigentlich für ein Livesystem welches auf möglichst vielen PCs problemlos booten soll das beste, alles in den Kernel zu compillieren ja ?
 
Sorry, ich hatte an der Frage vorbei geantwortet. Weil ichs nicht weiss. Ich weiss einfach nicht, ob es überhaupt funktioniert alles in den Kern einzubacken, oder ob sich die Sachen irgendwie ins Gehege kommen.
 
ich würde noch mal weiter gehen und sagen: die allermeisten PCs werden mit GENERIC laufen, ohne daß du irgendwas anders machen musst.
Zusätzliche Module zu laden, kann zur Laufzeit oder beim Boot geschehen und das kannst du einfach manuell machen, oder eine Automatik ausdenken.

Die Startscripts hat meines Wissens nach nicht (alle) der Herr Knopper geliefert, sondern die hat er wohl von dem späteren Macher von Kanotix übernommen, einer anderen Live-Distro. Weiß nicht, ob es die noch gibt und erinnere nicht mehr, wer die machte, doch das sollte leicht zu finden sein.
http://kanotix.com/files/
hatte ich mir gebookmarkt, da sind eine ganze Reihe dieser Scripts vorgestellt.
Außerdem las ich dazu bei SLAX, einem Live-Linux auf Slackware-Basis und mit einer etwas anderen Strategie, wie dort die Konfiguration automatisiert wird.
Freesbie und Truebsd sind Live-BSDs, da kann sich vielleicht auch finden, wie die das machen.
Debian hatte mal ein busybox/Linux Mini-System vorneweg gestartet, um dann die Hardware für das spätere System zu scannen und die Konfiguration zu finden. Vielleicht auch ein Ansatz.

Nochmal zu dem FreeBSD kernel: du kannst hier einen eigenen Kernel bauen, der sehr wenige Dinge enthält und nahezu alles als Modul laden. Das hat durchaus Sinn und einen gewissen Reiz. Ich habe das in einem Laptop so gemacht, wo ich auch vom Stick boote. Das ist also ganz, was du möchtest.
 
Es gab auch in der FreeBSD-Welt schon Diskussionen, den Standardkernel GENERIC komplett zu modularisieren. An sich wäre es kein Problem, ob ein Modul nun im Kernel fest eingebacken ist oder in einer eigenen Datei, macht technisch gesehen gar keinen Unterschied. Modul bleibt Modul, die Frage ist nur, ob es unabhängig vom Kernel geladen werden kann oder nicht. Am Ende entschied man sich jedoch immer wieder dagegen. Der Grund ist ganz einfach, ein GENERIC ist eine Datei, die man auch noch komprimieren kann. Für viele Systeme ist das optimal, kein Laden von Modulen, alles in einem großen, platzsparenden Block. Nur Dinge, die man nicht immer benötigt, sind nicht fest darin. Zum Beispiel das Soundsystem.

Aber um auf die Ursprungsfrage zurückzukommen: Wie troll schon sagte, der Kernel kann nicht selbst bestimmen, welche Module er benötigt. Du musst wenn schon manuell laden, was im loader-prompt nicht immer Spaß macht.
 
Wobei, manche Kernelmodule werden bei FreeBSD von Startskripten in /etc/rc.d automatisch nachgeladen. Aber grundsätzlich werden Hardware-spezifische Sachen nicht geladen. Ich halte das auch für sinnvoll so.
 
Unter Windows durchsucht das System Tausende von .inf Dateien um Hardware-IDs Kernel Modulen zuzuordnen, die dann geladen werden. Manchmal funktioniert das gut, manchmal ist es auch eine Katastrophe. Eine ähnliche Sache könnte man natürlich auch für FreeBSD machen (und z.B. als Daemon oder rc-Skript beim Booten ausführen). Allerdings ist das Problem bei diesem Lazy-Ansatz (Module erst bei bedarf laden), dass der Kernel dann möglicherweise dem Gerät einen anderen Treiber verpasst hat (z.B. ugen) und es nicht möglich ist ein Gerät neu zu initialisieren (jedenfalls nicht aus der Welt).

Das ist übrigens eine Einschränkung von FreeBSD. Das muss nicht zwangsweise so sein.
 
Zurück
Oben