Modul nur laden wenn..

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
mozz

Modul nur laden wenn..

Beitrag von mozz » 17.11.2007 20:27:47

Hallo,

ich spiel mich gerade mit den Feineinstellungen eines Thinkpads...jetzt meine Frage:
Ich möchte, dass die Wireless Module (mac80211 cfg80211 iwl4965) beim starten NICHT automatisch lädt
(wie er das tut), sondern dass vorher geprüft wird ob der Killswitch eingeschaltet ist (abrufbar über das
sys Interface). Nur wenn der Killswitch aus ist sollen die Module dann wirklich geladen werden...

Das Skript für das Prozedere hätt ich schon geschrieben...nur wohin damit?

Dankedanke

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 17.11.2007 22:55:43

ist es nicht so, daß das Modul zuerst geladen sein muß, damit du überhaupt die rf_kill im sysfs lesen kannst ? Oder gibts da noch einen Treiber-unabhängigen Eintrag den ich verpaßt habe.

Gruß
gms

mozz

Beitrag von mozz » 17.11.2007 23:10:04

Es geht dabei um den /sys/devices/platform/thinkpad_acpi/hotkey_radio_sw ...der wird eigentlich von thinkpad_acpi bereitgestellt und erzeugt ein ACPI event (mit dem sich das wifi kernel modul problemlos einfügen und wieder entfernen lässt)

Jetzt hätt ich halt noch gern, dass beim boot überprüft wird (nachdem thinkpad_acpi geladen wurde), ob der Kill switch eingeschaltet ist und je nachdem das wifi Modul dann geladen wird oder nicht...ich würde das über ein init Skript bewerkstelligen, aber mit dem Schönheitsfehler, dass das Modul da bereits einmal geladen wurde...sprich ich weiß nicht wie ich das system davon abhalte das Kernelmodul automatisch zu laden (und wenn ich es blackliste, dann kann ich es überhaupt nicht mehr laden...)

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 17.11.2007 23:25:28

verstehe, ich dachte du meinst diese Dateien: "/sys/bus/pci/drivers/iwl3945/0000\:0c\:00.0/rf_kill"
Du könntest das Script einmal von /etc/rc.local aufrufen und je nachdem die Module laden bzw entladen und danach kannst du über den acpid Daemon, sobald der entsprechende ACPI Event ausgelöst wird, dein Script aufrufen

mozz

Beitrag von mozz » 18.11.2007 09:35:49

aber mit dem Schönheitsfehler, dass das Modul trotzdem vorher automatisch geladen wird und ich es dann halt wieder rausschmeiße (bzw. drinnen lasse), oder? Ich glaub so meinst du das....ja wie gesagt so wär auch mein Notfallplan, falls ich das automatische laden nicht irgendwie unterbinden kann...

danke jedenfalls fürs Gedanken machen!

storm
Beiträge: 1581
Registriert: 01.05.2004 13:21:26
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: DE

Beitrag von storm » 18.11.2007 14:06:08

mozz hat geschrieben: wenn ich es blackliste, dann kann ich es überhaupt nicht mehr laden...
Wie machst du denn das blacklisting? /etc/modprobe.d/blacklist ist nicht der geeignete Ort dafür, das steht auch am Anfang der Datei.

Versuch mal folgendes (für jedes Modul, dass nicht geladen werden soll):

Code: Alles auswählen

grep <name> /lib/modules/`uname -r`/modules.alias | sed 's/<name>/off/' > /etc/modprobe.d/<name>
Das schaltet alle vorhandenen modaliase für dieses Modul ab, es sollte sich trotzdem per modprobe (von Hand) laden lassen. Vorsicht bei obigen Befehl, er überschreibt eventuell vorhandene Dateien. Ich bin mir aber jetzt nicht sicher, ob das beim Booten auch funktioniert.

ciao, storm
drivers/ata/libata-core.c: /* devices which puke on READ_NATIVE_MAX */

mozz

Beitrag von mozz » 18.11.2007 15:22:00

Ja dass das mit der blacklist der falsche Weg ist war mir eh klar...aber mit deinem Ansatz funktioniert das wunderbar, danke für die Hilfe

Antworten