Szukam sposobu na wyłączenie kamery internetowej zintegrowanej z moim laptopem. Kamera internetowa używa modułu uvcvideo, ale nie chcę jej umieszczać na czarnej liście, ponieważ jest ona również używana przez zewnętrzną kamerę internetową, którą mam.
Czy istnieje sposób na wyłączenie samego urządzenia bez dotykania listy modułów?
W ten sposób lsusb wyświetla listę kamer internetowych. Pierwszy to zintegrowany (jest identyfikowany przez niektóre aplikacje jako BisonCam NB Pro), drugi to zewnętrzny Logitech C525:
Bus 002 Device 004: ID 5986:0361 Acer, Inc
Bus 003 Device 002: ID 046d:0826 Logitech, Inc.
Sprawdziłem już BIOS - stamtąd nie można wyłączyć kamery internetowej. Poza tym chciałbym dowiedzieć się, jak wyłączyć urządzenie według ID.
Dzięki!
Odpowiedzi:
To całkiem proste. Ciężka praca polega na ustaleniu ścieżki do urządzenia USB. Musimy zacząć od znalezienia urządzenia, które chcemy wyłączyć. Możemy to zrobić za pomocą
lsusb
:Zmień 1-6 na porty urządzenia, aby je wyłączyć. Port często nie jest logiczny (fizyczny), ale można uzyskać mapowanie portów
lsusb -t
. Gdy już go masz, możesz go przetestować za pomocą:To daje mi
0402
oraz5602
identyfikatory dostawcy i produktu dla odpowiedniego urządzenia (wymienione wlsusb
).Teraz go znaleźliśmy, wyłączenie go jest proste:
Po upewnieniu się, że działa zgodnie z oczekiwaniami, ładuj go przy każdym uruchomieniu (na przykład w
/etc/rc.local
.)źródło
echo "0" > /sys/bus/usb/devices/1-6/bConfigurationValue
z sudo, to nie działa. Wartość nie zostaje tam, plik nie zawiera nic. Kamera internetowa nadal działa.echo "0" > /sys/bus/usb/devices/1-6/bConfigurationValue
wiersza do/etc/rc.local
.@surjack:
1-6
zależy od mapowania portów. Jeśli wpiszeszlsusb -t
, dostaniesz go, a następnie porównaj z wynikiemlsusb
. Dla mnie otrzymuję następujące wyniki:i
Teraz po prostu znajdź odpowiedni autobus, który jest
04
w moim przypadku, ponieważAcer, Inc
to kamera. Mapowanie portów pokazuje, że kamera się znajdujeBus 04.Port 1
. Oznacza to, że zamiast używać1-6
muszę użyć4-1
. Nie jestem ekspertem od Linuksa / Ubuntu, ale daje mi to wrażenie, że musisz użyćBus-Port
i po prostu użyć liczb. Jeśli chcesz być w 100% pewien, użyjcat
polecenia zgodnie z opisem:i porównaj to z lsusb.
W moim przypadku:
który jest identyczny z wyjściem lsusb:
5986:0525
.Teraz znalazłeś swoją wewnętrzną kamerę internetową.
Ale niestety lysdexia ma rację, a polecenie echo nie działa, ponieważ
Permission denied
.Czy jest dostępne inne rozwiązanie?
źródło
sudo -i
i późniejecho "0" > ...
.sudo echo "0" > sudo /sys/bus/usb/devices/...
Jeśli chcesz włączyć tylko zewnętrzny, gdy jest on podłączony, ale włącz wewnętrzny, jeśli zewnętrzny nie jest podłączony, oto skrypt na to. Opiera się na odpowiedzi Wildneuro, ale może ustalić ścieżkę urządzenia dla danego identyfikatora.
Używam go, ponieważ niektóre aplikacje, na których polegam, nie oferują sposobu łatwego wyboru preferowanego aparatu. Możesz łatwo dostosować za pomocą własnych identyfikatorów kamery (od
lsusb
).Kod tutaj: https://gist.github.com/shimon/12cd1080fb8669549aadc2b5408922bc
źródło