
私はカーネル2.6.37に取り組んでいます。カーネルを最適化するために、静的モジュールの代わりにロード可能なモジュールをいくつか作成しました。
私の仕事は、アプリケーションを実行した後にいくつかのモジュールをロードすることです。これは正常に実行されています。
どの組み込みシステムでも、システムの初期化時にスクリプトが etc/modules などの指定されたファイルからモジュールを変更します。そのため、モジュール名を削除して、ファイルシステムの初期化時にロードしないようにし、アプリケーションの起動後にロードするようにしました。実行レベルの優先度を 35 から 99 に変更したようなものです。
現在、WiFi カーネル モジュールの読み込みに 1 ~ 2 秒かかるため、WiFi モジュール名とその依存関係を削除しようとしましたが、WiFi モジュールはファイル システムの初期化時に読み込まれています。rcS スクリプトを確認すると、udev スクリプトは udevadm トリガーを実行してモジュールを読み込みますが、これは modprobe によって実行されるはずです。
/sbin/udevadm トリガー --subsystem-nomatch=tty --subsystem-nomatch=mem --subsystem-nomatch=vc --subsystem-nomatch=vtconsole --subsystem-nomatch=misc --subsystem-nomatch=dcon --subsystem-nomatch=pci_bus --subsystem-nomatch=graphics --subsystem-nomatch=backlight --subsystem-nomatch=video4linux --subsystem-nomatch=platform
誰か、Wi-Fi モジュールの読み込みを回避する方法を提案してもらえますか?
答え1
これらは私の質問に対する完璧な答えではありませんが、回避策のようなものです。
いくつかのモジュールのブラックリスト(ファイル システムの初期化時に自動ロードを停止します)と、アプリケーションの実行後に modprobe を作成しました。
/etc/modprobe.d/blacklist.conf を編集します。
自動読み込みを停止する必要があるモジュールを#blacklist に登録します
ブラックリスト wl18xx
誰かがもっと良い答えを持っているなら、ぜひ共有してください。
ありがとう、GBiradar