Linux under the camera driver support situation (ARM Linux is also applicable) __php

Source: Internet
Author: User
Tags dmesg

I'm going to do a s3c6410 webcam video capture project, as I took over the development Board, the use of kernel compilation may not be configured to configure the camera head driver, so I tried a lot of time to install the camera driver, because is a novice, so eat more pain, in the early days after a lot of attempts, after a senior help, Got started. I have this set of board with a 2x10 socket camera module, is ov9650 but compile-driven when it is not successful, I do not have the strength. In order to figure fast, I compiled the kernel with its own USB camera driver, this is still very fast, all the arm boards are supported.


Http://eatdrinkmanwoman.spaces.live.com/blog/cns!97719476F5BAEDA4!1336.entry

http://weijb0606.blog.163.com/blog/static/131286274201063152423963/

This article refers to the camera (WEBCAM), especially the USB camera.


Under Windows, the camera driver is developed and provided by the manufacturer. But under Linux, with limited business interests, few vendors are willing to provide camera-driven support. This does not prevent the use of Linux under the camera-the vast number of Third-party volunteers to maintain a large and small drive. Before doing an embedded fur project, although the camera driver is not my business, in the Curiosity driven by a brief exploration. The result is some chest tightness, they are as messy as spider silk. The motivation to write this article is to clarify the main line, to provide a limited reference to the latter, but can not guarantee the following text is completely correct.

Common camera drivers have the following series: Ovcam drivers (ov5xx)

The series drive is for OmniVision ov5xx series chip, this kind of chip is widely used in each kind of USB camera, on the embedded Development Board is especially common. Any camera that uses the image sensor such as OV511/OV511+/OV518/OV6620/OV6630/OV7610/OV7620/OV7 620AE can work under the driver.

Project home: http://alpha.dyndns.org/ov511/

Philips USB Webcam Driver (PWC) This drive is mainly used for Philips and PwC chip compatible cameras. Because the original developer and Philips signed a confidentiality agreement, the driver in binary form provided, and then kicked out of the kernel, causing a war of words: is the user needs important or keep the core purity important. Fortunately, subsequent developers have created a new branch from the original project, allowing the project to survive.

Project home: http://www.saillard.org/linux/pwc/

The QuickCam USB camera driver (QC-USB) is mainly used in Logitech's QuickCam Express series and other compatible model cameras. Originally developed by Georg Acher, it was named Qce-ga. Jean-frederic Clere references the driver to create the first Video4linux compatible driver. Since then, developers have joined in, allowing the driver to gradually support new cameras and chips. During this time, the driver was renamed QC-USB, more broadly supporting other QuickCam USB cameras, rather than being confined to the Express series.

Project home: http://qce-ga.sourceforge.net/

QuickCam Messenger & Communicate Driver (QuickCam) This is another driver for the QuickCam camera, which supports only some models and is incompatible with the QC-USB driver. Project home: http://home.mag.cx/messenger/

SPCA Webcam Driver (gspca/spca5xx) This series of drivers for the Sunplus chip camera, also applies to other chips, such as the current domestic cottage camera one brother "medium Star Micro" (Z-star) chip. Michel Xhaard, a defender of the project, started with a common driver around the age of 60 (about 2003), and was constantly modified to develop into a general-purpose driver that supports more than 250 cameras. He also wrote streaming media server Spcaserv and client Spcaview. Many colleges and universities so-called embedded wireless network video transmission project, is from these two things.

Project home: http://mxhaard.free.fr/spca5xx.html

The Linux UVC driver (UVC) driver is suitable for camera devices that conform to the USB Video class specification, which includes V4L2 kernel device drivers and user space tool patches. Most mass-storage devices, such as USB drives, follow the USB specification, so they can be manipulated with a single drive. Similarly, UVC compatible peripherals require only one universal driver.

USB cameras can generally be divided into UVC cameras and NON-UVC cameras. Recommended purchase UVC cameras. UVC is an open standard with a well maintained drive, which is part of the kernel code. After inserting the camera, you can work without having to compile or install additional drivers. NON-UVC cameras usually does not work better than the UVC cameras, the former driver does not follow the general protocol, the need for each camera to make separate processing, which often requires a reverse engineering exploration process.

To determine if a camera belongs to the UVC specification, you can use the following methods:

1. Use the LSUSB command or other hardware information viewing tool to find the camera's device number (vendor ID) and product number (product ID). such as Logitech QuickCam for Notebooks Pro camera is 046D:08CB;

2. Find out if there is video class interface information

Lsusb-d 046d:08cb-v | grep "Video"

If the camera is compatible with UVC, it will output similar information

Bfunctionclass Video

Binterfaceclass Video

Binterfaceclass Video

Binterfaceclass Video

If no above information, it is NON-UVC equipment.

Project home: http://linux-uvc.berlios.de/

Under Linux, the camera driver has three existing forms, built into the kernel (within the kernel), as a plug-in module, or a precompiled binary (pre-compiled binary).

The Linux kernel tree will keep merging the good drivers. From the 2.4 kernel, the ov5xx driver is already part of the kernel code. Starting with the 2.6.26, the Linux kernel contains the UVC drive natively. The 2.6.27 kernel is also absorbed into the GSPCA/SPCA5XX series drive. The kernel that is configured for a common Linux distribution typically has these drive options turned on without the need for additional compilation by the user. The kernel's. config file has many configuration variable equations that describe the results of the kernel configuration. Y indicates that the kernel code for this compilation option is statically compiled into the Linux kernel; m means that the kernel code for this compilation option is compiled into a module; n indicates that this compilation option is not selected.

Take the config file under Fedora12/boot as an example

cat/boot/config-2.6.31.12-174.2.3.fc12.i686 | grep CONFIG_USB_GSPCA

Config_usb_gspca=m

Config_usb_gspca_conex=m

Config_usb_gspca_etoms=m

Config_usb_gspca_finepix=m

Config_usb_gspca_mars=m

Config_usb_gspca_mr97310a=m

Config_usb_gspca_ov519=m

Config_usb_gspca_ov534=m

Config_usb_gspca_pac207=m

Config_usb_gspca_pac7311=m

Config_usb_gspca_sn9c20x=m

Config_usb_gspca_sn9c20x_evdev=y

Config_usb_gspca_sonixb=m

Config_usb_gspca_sonixj=m

Config_usb_gspca_spca500=m

Config_usb_gspca_spca501=m

Config_usb_gspca_spca505=m

Config_usb_gspca_spca506=m

Config_usb_gspca_spca508=m

Config_usb_gspca_spca561=m

Config_usb_gspca_sq905=m

Config_usb_gspca_sq905c=m

Config_usb_gspca_stk014=m

Config_usb_gspca_sunplus=m

Config_usb_gspca_t613=m

Config_usb_gspca_tv8532=m

Config_usb_gspca_vc032x=m

Config_usb_gspca_zc3xx=m

You can see that the GSPCA series driver is compiled into a module. When you insert the camera, use the DMESG command to print the following information:

USB 1-1.2:new Full Speed USB device using EHCI_HCD and address 6

USB 1-1.2:new USB device found, idvendor=046d, IDPRODUCT=08AF

USB 1-1.2:new USB Device strings:mfr=0, product=0, serialnumber=0

USB 1-1.2:configuration #1 chosen from 1 choice

Gspca:probing 046D:08AF

Zc3xx:probe 2WR ov VGA 0x0000

Zc3xx:probe sensor-> 0011

Zc3xx:find Sensor hv7131r (c)

Gspca:probe OK

This indicates that the camera is recognized and automatically mounts the zc3xx drive under the GSPCA series.

If, for some reason, the configured kernel does not include a camera driver, you can reconfigure the kernel option to replace the original old kernel with the newly compiled kernel. or according to the equipment number and product number, directly to the corresponding driver of the project homepage, download the source code for compilation.

Finally, summarize

If you want to buy a webcam, recommend buy Logitech, buy match UVC Drive, can come here to pick one.

If you already have a webcam, insert it first and see if Linux responds to it. Record DMESG output information, record LSUSB output device number, and search for keywords on device number.

Reference Resources http://www.tldp.org/HOWTO/Webcam-HOWTO/

Http://www.chineselinuxuniversity.net/courses/kern el/articles/19988.shtml

http://www.quickcamteam.net/

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.