Ubuntu 13.10を実行しているラップトップの内部Webカメラを無効にしたいですか? here が示唆しているように、ブラックリストに載せることで、関連するカーネルモジュールをすでに無効にしています。ただし、再起動後もモジュールはロードされます。これらのモジュールを削除するにはどうすればよいですか?
モジュールのブラックリストは/etc/modprobe.d/blacklist-webcam.conf
にあり、次のようになります。
blacklist videodev
blacklist videobuf2_core
blacklist videobuf2_memops
blacklist videobuf2_vmalloc
blacklist uvcvideo
しかし、lsmod
は(再起動後)私に与えます:
Module Size Used by
uvcvideo 80885 0
videobuf2_vmalloc 13216 1 uvcvideo
videobuf2_memops 13362 1 videobuf2_vmalloc
videobuf2_core 40499 1 uvcvideo
videodev 133509 2 uvcvideo,videobuf2_core
編集:Sudo modprobe -r uvcvideo
を実行すると、モジュールがなくなります。そのため、それを行うスクリプトを作成できます。しかし、私はそれをきれいな解決策とは考えません;-)
ご協力ありがとうございました! ベインの解決策 を試しているときに問題の原因が見つかりました。彼のソリューションはうまく機能しています。再起動後、モジュールは本当になくなりました。しかし、1つの欠点があります。Webカメラを再度有効にしたい場合に、modprobe uvcvideo
を介してモジュールをロードできません。
uvcvideo
モジュールが読み込まれた理由を調べるためにシステムを掘り下げながら、最終的にgrep -r uvcvideo /etc/
とvoilàを作成し、電源コードが差し込まれたときに/etc/pm/power.d
を実行するスクリプトをmodprobe uvcvideo
で見つけました。少し前にこのスクリプトを使用して、電力消費を最適化します。 Webカメラモジュールを扱う行をコメントアウトした後、ブラックリストが機能しました!
blacklist videodev
をinstall videodev /bin/false
に変更しますupdate-initramfs -u
reboot
詳細については、 Arch Wikiのカーネルモジュールブラックリスト を参照してください。
ブラックリスト
カーネルモジュールのコンテキストでのブラックリスト登録は、カーネルモジュールのロードを防止するメカニズムです。これは、たとえば、関連するハードウェアが不要な場合、またはそのモジュールをロードすると問題が発生する場合に役立ちます。たとえば、同じハードウェアを制御しようとする2つのカーネルモジュールがあり、それらを一緒にロードすると、対立。
一部のモジュールは、initramfsの一部としてロードされます。
mkinitcpio -M
は、自動的に検出されたすべてのモジュールを出力します。initramfsがそれらのモジュールの一部をロードしないようにするには、/ etc/modprobe.d/modprobe.confでそれらをブラックリストに追加します。mkinitcpio -v
を実行すると、さまざまなフック(ファイルシステムフック、ブロックフックなど)によってプルされたすべてのモジュールがリストされます。その.confファイルを/etc/mkinitcpio.confのFILESセクションに追加してください(まだ行っていない場合)。モジュールをブラックリストに追加したらinitramfsを再構築し、その後再起動します。/etc/modprobe.d/内のファイルを使用する
/etc/modprobe.d/内に.confファイルを作成し、blacklistキーワードを使用して、ブラックリストに登録するモジュールごとに行を追加します。たとえば、pcspkrモジュールがロードされないようにする場合:
/etc/modprobe.d/nobeep.conf # Do not load the 'pcspkr' module on boot. blacklist pcspkr
注:blacklistコマンドはモジュールをブラックリストに登録して自動的にロードされないようにしますが、別のブラックリストに載っていないモジュールが依存している場合、または手動でロードされた場合、モジュールがロードされる場合があります
ただし、この動作には回避策があります。 installコマンドは、通常のようにモジュールをカーネルに挿入する代わりにカスタムコマンドを実行するようにmodprobeに指示します。そのため、次のコマンドを使用してモジュールのロードを常に失敗させることができます。
/etc/modprobe.d/blacklist.conf ... install module_name /bin/false ...
これにより、そのモジュールとそれに依存する他のモジュールが効果的にブラックリストに登録されます。
モジュールのリストを/etc/modprobe.d/blacklist.uvcdrver.confに置くだけで動作するはずです。ファイル名は任意です。形式と権限が正しいことを確認してください。
実行することをお勧めします
Sudo update-initramfs -u
ブラックリストを変更した後。これにより、初期RAMディスクが更新されます。
あなたが1つのコマンドライン命令で解決策を求めていた場合、これは役に立つかもしれません( this answer に基づいて):
再起動するまでカメラを無効にするには、次のコマンドを使用します。
Sudo modprobe -r uvcvideo
パスワードを入力し、端末にエラーが表示されない場合は、ウェブカメラを無効にする必要があります。次のエラーメッセージが表示された場合:modprobe:FATAL:Module uvcvideo is in use、you can try to force remove with:
Sudo rmmod -f uvcvideo
Webカメラを再び有効にするには、Shellを入力します。
Sudo modprobe uvcvideo