랩톱에 통합 된 웹캠을 비활성화하는 방법을 찾고 있습니다. 웹캠이 uvcvideo 모듈을 사용하고 있지만 외부 웹캠에서도 사용 중이므로 차단 목록에 포함하고 싶지 않습니다.
모듈 목록을 터치하지 않고 장치 자체를 비활성화하는 방법이 있습니까?
웹캠이 lsusb에 의해 나열되는 방식입니다. 첫 번째는 통합 된 것 (일부 앱에서 BisonCam NB Pro로 식별 됨)이고 두 번째는 외부 Logitech C525입니다.
Bus 002 Device 004: ID 5986:0361 Acer, Inc
Bus 003 Device 002: ID 046d:0826 Logitech, Inc.
이미 BIOS를 확인했습니다. 웹캠을 비활성화 할 수있는 방법이 없습니다. 어쨌든 ID로 장치를 비활성화하는 방법을 배우고 싶습니다.
감사!
답변
아주 간단합니다. 힘든 일은 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}
이것은 올바른 장치에 대한 나 0402
및 5602
벤더 및 제품 ID를 제공합니다 (에 나열된 lsusb
).
이제 우리는 그것을 발견했습니다. 끄는 것은 간단합니다.
echo "0" > /sys/bus/usb/devices/1-6/bConfigurationValue
원하는대로 작동하는지 확인한 후 모든 시작 (예 :에서 /etc/rc.local
) 을로드하십시오 .
답변
@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
이제는 카메라 04
이기 때문에 내 경우에 올바른 버스를 찾으십시오 Acer, 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
.
이제 내부 웹캠을 찾았습니다.
그러나 불행히도 lysdexia가 바르고 echo 명령이 작동하지 않습니다 Permission denied
.
사용 가능한 다른 솔루션이 있습니까?
답변
외부 장치를 연결했을 때만 사용하도록 설정하고 외부 장치가 연결되어 있지 않은 경우 내부를 사용하도록 설정하려면 여기에 해당하는 스크립트가 있습니다. Wildneuro의 답변을 기반으로하지만 ID가 주어진 장치 경로를 알아낼 수 있습니다.
내가 사용하는 일부 앱은 선호하는 카메라를 쉽게 선택할 수있는 방법을 제공하지 않는 것 같아서 사용합니다. 자신의 카메라 ID (에서 lsusb
)로 쉽게 사용자 정의 할 수 있습니다 .
여기에 코드 : https://gist.github.com/shimon/12cd1080fb8669549aadc2b5408922bc