Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Fn+F6 key combination turns my laptop's integrated web camera on/off. Looking at the dmesg output, it seems that the webcam (USB device) is being more or less virtually connected/disconnected to/from the USB bus:

usb 1-5: new high-speed USB device number 9 using ehci_hcd
usb 1-5: New USB device found, idVendor=5986, idProduct=0203
usb 1-5: New USB device strings: Mfr=3, Product=1, SerialNumber=0
usb 1-5: Product: BisonCam, NB Pro
usb 1-5: Manufacturer: Bison Electronics Inc.
uvcvideo: Found UVC 1.00 device BisonCam, NB Pro (5986:0203)
input: BisonCam, NB Pro as /devices/pci0000:00/0000:00:1d.7/usb1/1-5/1-5:1.0/input/input14
usb 1-5: USB disconnect, device number 9

The first seven lines come after "connect" and the last line is after "disconnect" event. dmesg timestamps removed for clarity.

showkey executed from a tty console returned keycode 214, xev from KDE returned keycode 220 and also XF86WebCam. Here's the part of xev output related to pressing the Fn+F6:

KeyPress event, serial 40, synthetic NO, window 0x3600001,
    root 0xac, subw 0x0, time 78270130, (346,354), root:(348,377),
    state 0x0, keycode 220 (keysym 0x1008ff8f, XF86WebCam), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

I've already tried sending the keycode of the Fn+F6 combination (either 214, 220 or XF86WebCam) using the xdotool, xvkbd and xmacro, but with no success.

Probably the right way to do it is not by using the keycodes at all.

share|improve this question
    
Note: I don't have a real-life use case for this. It's just my curiosity (: So, no workarounds like disabling/enabling the driver and/or the USB hub are of any help. –  sm4rk0 Feb 23 '13 at 23:57
    
I had to reboot to Win7 and hit Fn+F6 to re-enable my camera (don't know what disabled it in the first place) and then reboot back into Ubuntu. Would love to have a "Ubuntu-only" solution. –  copper.hat Jul 6 at 20:09
add comment

1 Answer

You may be able to do this using modprobe interactively on the command line. You may be able to blacklist it and then reboot or resource in /etc/modprobe.d/blacklist.conf

I just found this post on AskUbuntu which may provide some more detail, since I don't have a system up with a webcam in front of me at the moment.

share|improve this answer
    
Thanks for the answer. Just tried it, but as I suspected, this doesn't help. It would only work if the webcam was already switched on, but if webcam is off this method won't turn it on. For a webcam to work at least two conditions must be met: (webcam on) AND (driver loaded). The post from AskUbuntu deals with the second and I'm interested in the first "switch". –  sm4rk0 Feb 23 '13 at 23:17
    
I think the keyboard shortcut with the function keys maybe be outside the scope of the operating system's control. I would imagine you would want it switched on in hardware, and then by default have it blacklisted, turning it on manually (?) –  Eric G Feb 23 '13 at 23:21
    
Maybe it would work one-way: to turn on the webcam, but if a process is currently using it, you can't remove the webcam's driver. Another solution would be sudo echo -n "0000:00:1d.7" > /sys/bus/pci/drivers/ehci_hcd/unbind to disable and sudo echo -n "0000:00:1d.7" > /sys/bus/pci/drivers/ehci_hcd/bind to enable the USB port the webcam is connected to. This is what I use to "reset" the webcam if it hangs. Note: this also temporarily disconnects other devices that may be connected to the same hub! The card reader in my case. –  sm4rk0 Feb 23 '13 at 23:53
    
Correction: Disabling ehci_hcd puts all of the High-Speed (2.0) USB devices into Full-Speed (1.1) mode. It does not disable the USB hub. –  sm4rk0 Feb 24 '13 at 1:12
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.