統合されたWebカメラを無効にし、外部Webカメラを使用できるようにする方法


13

私のラップトップに統合されているウェブカメラを無効にする方法を探しています。ウェブカメラはuvcvideoモジュールを使用していますが、私が持っている外部ウェブカメラでも使用されているため、ブラックリストに登録したくありません。

モジュールリストに触れずにデバイス自体を無効にする方法はありますか?

これは、ウェブカメラがlsusbによってリストされる方法です。1つ目は統合されたもので(一部のアプリではBisonCam NB Proとして識別されます)、2つ目は外部Logitech C525です:

Bus 002 Device 004: ID 5986:0361 Acer, Inc 
Bus 003 Device 002: ID 046d:0826 Logitech, Inc. 

私はすでにBIOSをチェックしました-ウェブカメラをそこから無効にする方法はありません。それに加えて、とにかくIDでデバイスを無効にする方法を学びたいです。

ありがとう!


これをLinuxQuestionsにクロスポストしました。最終的に私がしたことは、この特定のデバイスが見つかったときにエラーを強制することにより、uvc_driver.cカーネルモジュールをハックすることでした。これは実際には解決策ではなく、汚い回避策ですが、私にとってはうまくいきます。ここで説明しました:linuxquestions
AtomHeartFather

回答:


14

とても簡単です。大変な作業は、USBデバイスへのパスを特定することです。無効にするデバイスを見つけることから始める必要があります。これを行うにはlsusb

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 0402:5602 ALi Corp. M5602 Video Camera Controller
Bus 001 Device 003: ID 045e:0723 Microsoft Corp. LifeCam VX-7000 (UVC-compliant)

無効にするデバイスポートを1〜6に変更します。多くの場合、ポートは論理的ではありません(物理的です)が、ポートマッピングを取得できますlsusb -t。あなたはそれを持っていると思うと、あなたはそれをテストすることができます:

cat /sys/bus/usb/devices/1-6/id{Vendor,Product} 

これは私を与える04025602、右のデバイス(などに記載されているため、ベンダーと製品ID lsusb)。

これで見つかったので、オフにするのは簡単です。

echo "0" > /sys/bus/usb/devices/1-6/bConfigurationValue

希望どおりに機能することを確認した後、すべてのスタートアップをロードするようにします(たとえば、/etc/rc.local)。


1
鮮やかできれいなソリューション。それを共有してくれてありがとう!
AtomHeartFather

1
この手法は、14.10では機能しなくなったようです。ファイル「bConfigurationValue」は存在せず、ユーザーまたはルートとしてファイルを書き込もうとすると、許可が拒否されます。
-lysdexia

「デバイスポートへの1-6の変更」の意味を理解できませんでした。1-6という名前のディレクトリが見つかりませんでした
surajck

Ubuntu 14.04では、echo "0" > /sys/bus/usb/devices/1-6/bConfigurationValuesudo を使用しても機能しません。値はそこに留まらず、ファイルには何も含まれません。ウェブカメラはまだ動作します。
ソハム

さて、にecho "0" > /sys/bus/usb/devices/1-6/bConfigurationValue行を追加すると機能し/etc/rc.localます。
ソハム

6

@surjack:1-6ポートマッピングに依存します。入力lsusb -tすると、それを取得し、の出力と比較しますlsusb。私にとっては、次の出力が得られます:

lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 002: ID 5986:0525 Acer, Inc 
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 012: ID 413c:2107 Dell Computer Corp. 

そして

lsusb -t
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
    |__ Port 1: Dev 2, If 0, Class=Video, Driver=uvcvideo, 5000M
    |__ Port 1: Dev 2, If 1, Class=Video, Driver=uvcvideo, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 480M
    |__ Port 3: Dev 9, If 0, Class=Vendor Specific Class, Driver=hdm_usb, 480M
    |__ Port 4: Dev 10, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 3: Dev 11, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 4: Dev 12, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M
        |__ Port 3: Dev 4, If 0, Class=Wireless, Driver=btusb, 12M
        |__ Port 3: Dev 4, If 1, Class=Wireless, Driver=btusb, 12M

ちょうど04Acer, Incのカメラであるので、ちょうど正しいバスを見つけてください。ポートマッピングは、カメラがにあることを示していますBus 04.Port 1。これは、使用する代わりにを1-6使用する必要があることを意味します4-1。私はLinux / Ubuntuの専門家ではありませんが、これはBus-Port、数字を使用し、単純に使用する必要があるという印象を与えます。100%にしたい場合はcat、以下の説明に従ってコマンドを使用してください。

cat /sys/bus/usb/devices/<Bus>-<Port>/id{Vendor,Product} 

そして、それをlsusbと比較してください。

私の場合:

cat /sys/bus/usb/devices/4-1/id{Vendor,Product}
5986
0525

これは、lsusbの出力と同じです5986:0525

これで、内部Webカメラが見つかりました。

しかし、残念ながらlysdexiaは正しいので、エコーコマンドは機能しませんPermission denied

他に利用可能なソリューションはありますか?


3
sudo -i以降echo "0" > ...
sygi

またはsudo echo "0" > sudo /sys/bus/usb/devices/...
ソハム

0

接続されている場合は外部のもののみを有効にし、外部のものが接続されていない場合は内部のものを有効にする場合は、次のスクリプトを使用します。Wildneuroの回答に基づいていますが、IDを指定すると、デバイスパスを把握できます。

私が依存しているアプリの中には、お好みのカメラを簡単に選ぶ方法を提供していないものがあるため、私はそれを使用しています。独自のカメラID(からlsusb)で簡単にカスタマイズできます。

ここにコード:https : //gist.github.com/shimon/12cd1080fb8669549aadc2b5408922bc


リンクのコンテンツは変更される可能性があるため、リンクされたページの関連コンテンツをここに追加してください。
チャイT.レックス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.