Jak wyłączyć wewnętrzną kamerę internetową?

10

Chcę wyłączyć wewnętrzną kamerę internetową mojego laptopa z systemem Ubuntu 13.10? Jak zasugerowano tutaj , już wyłączyłem dotyczące modułów jądra, umieszczając je na czarnej liście. Jednak po ponownym uruchomieniu moduły są mimo to ładowane. Co mogę zrobić, aby pozbyć się tych modułów?

Moja czarna lista modułów leży /etc/modprobe.d/blacklist-webcam.confi wygląda następująco:

blacklist videodev
blacklist videobuf2_core
blacklist videobuf2_memops
blacklist videobuf2_vmalloc
blacklist uvcvideo

Ale lsmoddaje mi (po ponownym uruchomieniu):

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

Edycja:
Kiedy to zrobię, sudo modprobe -r uvcvideomoduły znikają. Więc mógłbym napisać skrypt, aby to zrobić. Ale nie uważałbym tego za czyste rozwiązanie ;-)

Marc Hauptmann
źródło
Co dostajesz, kiedy piszesz sudo modprobe -r uvcvideo?
praca w
1
Gdzie zapisałeś plik czarnej listy?
Braiam
@Braiam: leży na czarnej liście /etc/modprobe.d. Zawiera także wpisy do czarnej listy modułów Bluetooth. To działa, więc plik jest interpretowany.
Marc Hauptmann
Jaki jest Twój wymóg wyłączenia kamery? Poważnie, nie próbując trollować. Jeśli chcesz zwolnić zasoby używane przez kmodule i tak dalej, niesamowite. Jeśli chcesz, aby aparat nie przechwytywał zdjęć / filmów i nie przejmował się kilkoma kilobajtami lub pamięcią, może tego potrzebujesz? pbs.twimg.com/media/BTWPnR_CYAA2pfM.jpg Pobierz je tutaj eff.org/deeplinks/2013/04/…
0xSheepdog
Myślę, że są one później włączane przez reguły udev. Nie jestem pewien, jak możesz je wyłączyć.
Braiam

Odpowiedzi:

6
  • Na twojej czarnej liście.conf zmień blacklist videodevnainstall videodev /bin/false
  • update-initramfs -u
  • reboot

Aby uzyskać więcej informacji, zobacz Czarna lista modułów jądra na Arch Wiki :

Czarna lista

Czarna lista, w kontekście modułów jądra, jest mechanizmem zapobiegającym ładowaniu modułu jądra. Może to być przydatne, jeśli na przykład powiązany sprzęt nie jest potrzebny lub jeśli ładowanie tego modułu powoduje problemy: na przykład mogą istnieć dwa moduły jądra, które próbują kontrolować ten sam sprzęt, a załadowanie ich razem spowoduje konflikt.

Niektóre moduły są ładowane jako część initramfs. mkinitcpio -Mwypisze wszystkie automatycznie wykryte moduły: aby zapobiec ładowaniu niektórych modułów przez initramfs, umieść je na czarnej liście w /etc/modprobe.d/modprobe.conf. Uruchomienie mkinitcpio -vwyświetli listę wszystkich modułów wciągniętych przez różne zaczepy (np. Zaczep systemu plików, zaczep bloku itp.). Pamiętaj, aby dodać ten plik .conf do sekcji PLIKI w /etc/mkinitcpio.conf, jeśli jeszcze tego nie zrobiłeś, i przebuduj initramfs po dodaniu modułów do czarnej listy, a następnie uruchom ponownie.

Używanie plików w /etc/modprobe.d/

Utwórz plik .conf w /etc/modprobe.d/ i dołącz wiersz dla każdego modułu, który chcesz umieścić na czarnej liście, używając słowa kluczowego blacklist. Jeśli na przykład chcesz zapobiec ładowaniu modułu pcspkr:

/etc/modprobe.d/nobeep.conf

# Do not load the 'pcspkr' module on boot.
blacklist pcspkr

Uwaga: Polecenie czarnej listy spowoduje umieszczenie modułu na czarnej liście, aby nie został załadowany automatycznie, ale moduł może zostać załadowany, jeśli inny moduł nie znajdujący się na czarnej liście zależy od niego lub jeśli zostanie załadowany ręcznie.

Istnieje jednak obejście tego zachowania; komenda install instruuje modprobe, aby uruchomiła niestandardową komendę zamiast wkładania modułu do jądra w normalny sposób, dzięki czemu można zmusić moduł do zawsze nieudanego ładowania za pomocą:

/etc/modprobe.d/blacklist.conf

...
install module_name /bin/false
...

To skutecznie umieści na czarnej liście ten moduł i wszystkie inne od niego zależne.

bain
źródło
1

Wystarczy umieścić listę modułów w /etc/modprobe.d/blacklist.uvcdrver.conf. Nazwa pliku może być dowolna. Upewnij się tylko, że format i uprawnienia są prawidłowe.

askb
źródło
1

Dziękuję wszystkim bardzo za pomoc! Znalazłem źródło problemu podczas próby rozwiązania bain . Jego rozwiązanie działa dobrze. Po ponownym uruchomieniu moduły naprawdę zniknęły. Ale jest jedna wada: nie mogę załadować modułu modprobe uvcvideona wypadek, gdyby chciałbym ponownie włączyć kamerę internetową.

Podczas przeszukiwania mojego systemu, aby dowiedzieć się, dlaczego uvcvideomoduł został załadowany, w końcu zrobiłem a grep -r uvcvideo /etc/i voila, znalazłem skrypt, w /etc/pm/power.dktórym zrobiłem to modprobe uvcvideopo podłączeniu kabla zasilającego. Napisałem ten skrypt jakiś czas temu, aby zoptymalizować pobór energii. Skomentowałem linie dotyczące modułu kamery, a potem czarna lista zadziałała!

Marc Hauptmann
źródło
0

Proponuję biec

sudo update-initramfs -u

po zmodyfikowaniu czarnej listy. Spowoduje to zaktualizowanie początkowego ramdysku.

N8tron
źródło
Nie, to nie zadziałało
Marc Hauptmann
0

W przypadku szukania rozwiązania w jednej instrukcji z wiersza poleceń może to być pomocne (w oparciu o tę odpowiedź ):

Aby wyłączyć kamerę do ponownego uruchomienia, użyj tego polecenia:

sudo modprobe -r uvcvideo

Wpisz hasło, a jeśli w terminalu nie będą wyświetlane żadne błędy, kamera internetowa powinna zostać wyłączona. Jeśli pojawi się komunikat o błędzie: modprobe: FATAL: Moduł uvcvideo jest w użyciu, możesz spróbować wymusić jego usunięcie za pomocą:

sudo rmmod -f uvcvideo

Aby ponownie włączyć kamerę internetową, wpisz shell:

sudo modprobe uvcvideo
gaboroncancio
źródło