Blacklist in /etc/modules.conf klappt nicht

Ich habe einen FF Router mit einem USB Port, welcher nicht genutzt wird.
Deshalb möchte ich, dass die entsprechenden Module beim booten nicht geladen werden.
Hierzu gibt es /etc/modules.conf - sogar mit Beispiel.

Aber: die Module werden geladen, auch wenn ich sie blackliste.

blacklist usbcore
blacklist usb_common
blacklist ohci-hcd
blacklist hcd
blacklist ohci-platform
blacklist ledtrig_usbport

Im Quellcode von kmodloader sieht es so aus, als würde /etc/modules.conf geöffnet und geparsed - deshalb verstehe ich nicht, wieso die Module trotzdem geladen werden.

Woran könnte das also liegen?

blacklist sagt nur das sie nicht automatisch geladen werden. Sie können aber z.B. über eine Abhängigkeit trotzdem noch geladen werden.

Wenn du sie komplett sperren möchtest musst du die install Aktion z.B. auf /bin/true mappen

z.B.

install usbcore /bin/true

Am besten vorher prüfen ob du alle Module im laufenden Betrieb problemlos entladen kannst (rmmod … ) nicht das du dich später aussperrst und eine serielle Console brauchst.

Ich könnte mir natürlich ein entsprechendes Image bauen - ohne USB-Treiber.

Mir wäre an einer Antwort auf die Frage, welcher Mechanismus denn das Laden der Module triggert, sehr gelegen. Ich kann auch sonst keine befriedigende Antwort im Netz finden.

Ich nutze eine Frankfurter Firmware.

Da ich noch immer keine Lösung gefunden habe:

  • alle Dateien aus /etc/modules.d entfernt, die „usb“ hiessen oder enthielten.
  • die entsprechenden links aus /etc/modules-boot.d entfernt
  • die module in /etc/modules.conf mit blacklist versehen

Die Module werden immer noch geladen.

Die Lösung des Rätsels:

Die Module werden der Reihe nach in /etc/modules-boot.d/ geladen BEVOR das r/w overlay dazu gemounted wird. Dank an PaulFertser im openwrt IRC.

D.h., man muß sich sein eigenes Image ohne entsprechende Module bauen.

2 Likes