我用的Micro2440开发板和今视通KS-188摄像头,是中星微芯片的,程序使用JPEG图片格式取图像,程序是很成熟的,用了很多年,程序运行就报错,重新编译了内核,还是一样,不知道怎么解决,另外,我执行 cat /dev/usbvideo0 > /home/a.jpeg 可以生成图片,但是文件大小不断增加,现在已经175M了,打开图片只能看到上面十分之一左右的影像。
想问一下,Micro2440自带的Linux2.6.32.2内核支持中星微驱动和JPEG格式吗?是不是配置一下内核编译选项重新编译就可以。
我编译Linux2.6.32.2内核的配置选项是:
Device Driver
Multimedia Support
<*> Video For Linux
<*> Video Capture adapter
<*> V4L USB Device
<*> GSPCA based WebCamera
<*> ZC3XX USB camera driver
<*> ZC0301 [p] Image Processor and Control Chip support
USB support --->
<*> Support for Host-side USB
--- USB Host Controller Drivers
<*> OHCI HCD support
部分程序代码和运行日志:
// 获取摄像头图像处理芯片组信息
if (ioctl (vd->fd, VIDIOCGCHAN, &vd->videochan) < 0)
{
g_LogFile.AppLogOut(0, APP_LOG_ERROR,"spcav4l.c: Hmm did not support Video_channel");
vd->cameratype = UNOW;
close(vd->fd);
return exit_fatal ("Couldn't get videodevice videochan");
}
else
{
if (vd->videochan.name)
{
if (0 == strcmp(vd->videodevice,"/dev/video0"))
{
g_LogFile.AppLogOut(0, APP_LOG_ERROR,"v1 Bridge = %s", vd->videochan.name);
}
else
{
g_LogFile.AppLogOut(0, APP_LOG_ERROR,"v2 Bridge = %s", vd->videochan.name);
}
snprintf (vd->bridge, 9, "%s", vd->videochan.name);
vd->cameratype = GetStreamId (vd->videochan.name);
spcaPrintParam (vd->fd,&vd->videoparam);
}
else
{
g_LogFile.AppLogOut(0, APP_LOG_INFO,"spcav4l.c: Bridge not found not a spca5xx Webcam Probing the hardware !");
vd->cameratype = UNOW;
}
}
//-- end of " if (ioctl (vd->fd, VIDIOCGCHAN, &vd->videochan) == -1) " --
/* Only jpeg webcam allowed */
if(vd->cameratype != JPEG)
{
close(vd->fd);
return exit_fatal ("Not a JPEG webcam sorry Abort !");
}
以下是这部分运行的日志:
Mon Mar 28 15:44:01.011-v1 CameraName: PC Camera
Mon Mar 28 15:44:01.015-v1 Bridge = zc3xx
Mon Mar 28 15:44:01.018-exit_fatal: Not a JPEG webcam sorry Abort !
内核是否需要加入 gspcav1-20071224 驱动代码编译才可以? 我试着加入这个驱动包编译,但发现编译通不过,错误现象同:
http://www.aiothome.net/read.php?tid-5886.html 请帮忙指点一下问题所在,和解决思路,谢谢。