The Cheese is upside down!
I have an integrated camera in my Thinkpad X201 Tablet and even if she works perfectly there is only one issue… image is upside down!
It has been like this since I got the computer in the first place. Back then I was working with Fedora 15, and even with the upgrade to Fedora 17 this week the problem remain the same.
First, we need to know what do we have in here, so run a udevadm info –attribute-walk –name=/dev/video0 and the output will tell you which modules you have. This is my output:
[tatica@susan]$ udevadm info –attribute-walk –name=/dev/video0
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.looking at device ‘/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.6/1-1.6:1.0/video4linux/video0’:
KERNEL==”video0″
SUBSYSTEM==”video4linux”
DRIVER==””
ATTR{name}==”Integrated Camera”
ATTR{index}==”0″looking at parent device ‘/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.6/1-1.6:1.0’:
KERNELS==”1-1.6:1.0″
SUBSYSTEMS==”usb”
DRIVERS==”uvcvideo”
ATTRS{bInterfaceNumber}==”00″
ATTRS{bAlternateSetting}==” 0″
ATTRS{bNumEndpoints}==”01″
ATTRS{bInterfaceClass}==”0e”
ATTRS{bInterfaceSubClass}==”01″
ATTRS{bInterfaceProtocol}==”00″
ATTRS{supports_autosuspend}==”1″
ATTRS{iad_bFirstInterface}==”00″
ATTRS{iad_bInterfaceCount}==”02″
ATTRS{iad_bFunctionClass}==”0e”
ATTRS{iad_bFunctionSubClass}==”03″
ATTRS{iad_bFunctionProtocol}==”00″
ATTRS{interface}==”Integrated Camera”looking at parent device ‘/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.6’:
KERNELS==”1-1.6″
SUBSYSTEMS==”usb”
DRIVERS==”usb”
ATTRS{configuration}==””
ATTRS{bNumInterfaces}==” 2″
ATTRS{bConfigurationValue}==”1″
ATTRS{bmAttributes}==”80″
ATTRS{bMaxPower}==”200mA”
ATTRS{urbnum}==”254428″
ATTRS{idVendor}==”17ef”
ATTRS{idProduct}==”4816″
ATTRS{bcdDevice}==”2345″
ATTRS{bDeviceClass}==”ef”
ATTRS{bDeviceSubClass}==”02″
ATTRS{bDeviceProtocol}==”01″
ATTRS{bNumConfigurations}==”1″
ATTRS{bMaxPacketSize0}==”64″
ATTRS{speed}==”480″
ATTRS{busnum}==”1″
ATTRS{devnum}==”5″
ATTRS{devpath}==”1.6″
ATTRS{version}==” 2.00″
ATTRS{maxchild}==”0″
ATTRS{quirks}==”0x0″
ATTRS{avoid_reset_quirk}==”0″
ATTRS{authorized}==”1″
ATTRS{manufacturer}==”Chicony Electronics Co., Ltd.”
ATTRS{product}==”Integrated Camera”looking at parent device ‘/devices/pci0000:00/0000:00:1a.0/usb1/1-1’:
KERNELS==”1-1″
SUBSYSTEMS==”usb”
DRIVERS==”usb”
ATTRS{configuration}==””
ATTRS{bNumInterfaces}==” 1″
ATTRS{bConfigurationValue}==”1″
ATTRS{bmAttributes}==”e0″
ATTRS{bMaxPower}==” 0mA”
ATTRS{urbnum}==”147″
ATTRS{idVendor}==”8087″
ATTRS{idProduct}==”0020″
ATTRS{bcdDevice}==”0000″
ATTRS{bDeviceClass}==”09″
ATTRS{bDeviceSubClass}==”00″
ATTRS{bDeviceProtocol}==”01″
ATTRS{bNumConfigurations}==”1″
ATTRS{bMaxPacketSize0}==”64″
ATTRS{speed}==”480″
ATTRS{busnum}==”1″
ATTRS{devnum}==”2″
ATTRS{devpath}==”1″
ATTRS{version}==” 2.00″
ATTRS{maxchild}==”6″
ATTRS{quirks}==”0x0″
ATTRS{avoid_reset_quirk}==”0″
ATTRS{authorized}==”1″looking at parent device ‘/devices/pci0000:00/0000:00:1a.0/usb1’:
KERNELS==”usb1″
SUBSYSTEMS==”usb”
DRIVERS==”usb”
ATTRS{configuration}==””
ATTRS{bNumInterfaces}==” 1″
ATTRS{bConfigurationValue}==”1″
ATTRS{bmAttributes}==”e0″
ATTRS{bMaxPower}==” 0mA”
ATTRS{urbnum}==”26″
ATTRS{idVendor}==”1d6b”
ATTRS{idProduct}==”0002″
ATTRS{bcdDevice}==”0303″
ATTRS{bDeviceClass}==”09″
ATTRS{bDeviceSubClass}==”00″
ATTRS{bDeviceProtocol}==”00″
ATTRS{bNumConfigurations}==”1″
ATTRS{bMaxPacketSize0}==”64″
ATTRS{speed}==”480″
ATTRS{busnum}==”1″
ATTRS{devnum}==”1″
ATTRS{devpath}==”0″
ATTRS{version}==” 2.00″
ATTRS{maxchild}==”3″
ATTRS{quirks}==”0x0″
ATTRS{avoid_reset_quirk}==”0″
ATTRS{authorized}==”1″
ATTRS{manufacturer}==”Linux 3.3.7-1.fc17.x86_64 ehci_hcd”
ATTRS{product}==”EHCI Host Controller”
ATTRS{serial}==”0000:00:1a.0″
ATTRS{authorized_default}==”1″looking at parent device ‘/devices/pci0000:00/0000:00:1a.0’:
KERNELS==”0000:00:1a.0″
SUBSYSTEMS==”pci”
DRIVERS==”ehci_hcd”
ATTRS{vendor}==”0x8086″
ATTRS{device}==”0x3b3c”
ATTRS{subsystem_vendor}==”0x17aa”
ATTRS{subsystem_device}==”0x2163″
ATTRS{class}==”0x0c0320″
ATTRS{irq}==”23″
ATTRS{local_cpus}==”00000000,0000000f”
ATTRS{local_cpulist}==”0-3″
ATTRS{numa_node}==”-1″
ATTRS{dma_mask_bits}==”32″
ATTRS{consistent_dma_mask_bits}==”32″
ATTRS{broken_parity_status}==”0″
ATTRS{msi_bus}==””
ATTRS{companion}==””
ATTRS{uframe_periodic_max}==”100″looking at parent device ‘/devices/pci0000:00’:
KERNELS==”pci0000:00″
SUBSYSTEMS==””
DRIVERS==””
In my case, I have the uvcvideo module, but sadly, this one doesn’t have the flip option (easiest solution). And even trying with LD_PRELOAD=/usr/lib64/libv4l/v4l2convert.so cheese doesn’t solve the problem.
In this case, the option is use v4l2ucp. v4l2ucp is an universal control panel for all Video for Linux Two (V4L2) devices. This app provides an an easy way to reset one or all the controls of our camera, so lets install it with a simple yum and give it a look:
yum -y install v4l2ucp
You can see the flip vertical and horizontal options, and if you’re curious like I am, you will be able to play with several configurations to make your webcam look better. :D – Let the upside Down image days be over!!!!
Help tatica and donate with paypal!