USBフラッシュドライブを接続したときにuasおよびusb_storageカーネルモジュールが自動的にロードされるのを防ぐ方法は?

USBフラッシュドライブを接続したときにuasおよびusb_storageカーネルモジュールが自動的にロードされるのを防ぐ方法は?

buildrootを使用してカーネルイメージを作成し、それをSDカードに挿入して起動しました。ビルドルートでは、USB大容量記憶装置をモジュール化しました。 USBを接続せずにボードを起動した場合lsmos。ただし、USBを接続するとモジュールが自動的にuasロードされ、usb_storageUSBへのアクセスを許可します。これが発生しないようにして、これら2つのモジュールを手動でロードする場合にのみUSBアクセスを許可したいと思います。

モジュールをブラックリストに追加したり、モジュールに関連するファイルを編集したりするための記事をオンラインで読みましたが、電源を切ると変更が削除されるため、機能しません。だから別の永久オプションが必要です。イメージを作成する前にビルドルート設定で実行できますか?

答え1

私は同じ問題に直面しました。問題は、基本的にbusyboxのmodprobe実装(buildrootで使用されている)がblacklist

回避策は、イメージをコンパイルするときにbusybox設定でこの機能を有効にすることです。これを行うには、busybox.config次の内容を含む構成フラグメントファイル(名前など)を作成します。

CONFIG_FEATURE_MODPROBE_BLACKLIST=y

次に、buildrootオプションにファイルパスを追加します。ビルドルート構成ファイルでは、次のようにする必要があります。

BR2_PACKAGE_BUSYBOX_CONFIG_FRAGMENT_FILES="../busybox.config"

今すぐ実行すると、makebusyboxの設定ファイルを再構築するbuildroot makeプロセスが表示されます。 modprobeの出力に注意してください。次のようにする必要があります。

modprobe (28 kb) (MODPROBE) [Y/n/?] y
  Blacklist support (FEATURE_MODPROBE_BLACKLIST) [Y/n/?] y

これを完了したら、書き込むだけで期待blacklist <themodule>どおり/etc/modprobe.confに機能します。

関連情報