I am trying to tune a C920 webcam for picture quality using v4l2-ctl utility on Ubuntu PC. I am unable to set exposure_auto to 'Auto' mode, but I am able to set it to 'Manual Mode' or in 'Aperture Priority Mode'. Any clues?

*lenovo@ubuntu:~$ v4l2-ctl -d /dev/video1 -c exposure_auto=0
VIDIOC_S_CTRL: failed: Input/output error
exposure_auto: Input/output error*

Following are the settings dump of C920 connected to my ubuntu:

 - brightness (int) : min=0 max=255 step=1 default=128 value=128
 - contrast (int) : min=0 max=255 step=1 default=128 value=128
 - saturation (int) : min=0 max=255 step=1 default=128 value=128
 - white_balance_temperature_auto (bool) : default=1 value=1 
 - gain (int) : min=0 max=255 step=1 default=0 value=0 
 - power_line_frequency (menu) : min=0 max=2 default=2 value=2
 - white_balance_temperature (int) : min=2000 max=6500 step=1 default=4000 value=4000  
 - sharpness (int) : min=0 max=255 step=1 default=128 value=128 
 - backlight_compensation (int) : min=0 max=1    step=1 default=0 value=0 
 - exposure_auto (menu) : min=0 max=3 default=3    value=3  (0: Auto Mode 1: Manual Mode
           2: Shutter Priority Mode
           3: Aperture Priority Mode) 
 - exposure_absolute (int) : min=3 max=2047 step=1 default=250 value=250  
 - exposure_auto_priority (bool) :    default=0 value=1 
 - focus_absolute (int) : min=0 max=250 step=5    default=0 value=0 
 - focus_auto (bool) : default=1 value=1 
 - zoom_absolute    (int) : min=100 max=500 step=1 default=100 value=100

That usually happens when you try to manually set a setting which is currently controlled by some other automatic. Try toggling ''exposure_auto_priority'' to see if that looses the grip of the auto algorithm on that particular setting.

For me, for example, setting ''white_balance_temperature_auto'' to 0 allowed me to manually set ''white_balance_temperature'' which resulted in "failed: Input/output error" before.

| improve this answer | |


v4l2-ctl -d /dev/video1 -c exposure_auto=1 

instead of exposure_auto = 0, you can set exposure to manual then set exposure_absolute to change the value.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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