TQ210Usb摄像头显示雪花点,求教!
在linux2.6.35.7下,启动TQCamera,用配套的OV9650是可以看视频的。但最近需要测试usb摄像头,配置驱动,中星微zx0301b,Sensor HV7131R(c),
最初是插上摄像头就报错,打印寄存器信息长串:
“....
gspca: video3 created
gspca: found int in endpoint: 0x82, buffer_len=8, interval=10
kernel BUG at arch/arm/mm/dma-mapping.c:409!
....."
网上找了方法,
修改内核'目录下drivers/media/video/gspca/gspca.c文件
static int alloc_and_submit_int_urb(struct gspca_dev *gspca_dev, 在这个函数下边加一行
urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
驱动可用了。
选择video3 640*480,TQCamera显示雪花点:
之后做了些cat操作(输出图像文件之类),再也不能显示雪花图像了,TQCamera一启动这个摄像头就串口输出cpu寄存器值,重启也不行。
有一款Etom的usb摄像头倒是没有死机复位问题,但他的图形就是一直是雪花点,同上。想来中星微的资料比较多,希望各位给点提示,多谢了。
重新刷内核文件,TQCamera启动中星微摄像头时串口信息:
".......
gspca: found int in endpoint: 0x82, buffer_len=8, interval=10
zc3xx: probe 2wr ov vga 0x0000
gspca: found int in endpoint: 0x82, buffer_len=8, interval=10
gspca: bandwidth not wide enough - trying again
gspca: found int in endpoint: 0x82, buffer_len=8, interval=10
zc3xx: probe 2wr ov vga 0x0000
gspca: found int in endpoint: 0x82, buffer_len=8, interval=10
s5p-ehci s5p-ehci: fatal error
s5p-ehci s5p-ehci: force halt; handshake f4e00014 00004000 00004000 -> -110
s5p-ehci s5p-ehci: HC died; cleaning up
usb 1-1: USB disconnect, address 2
usb 1-1.2: USB disconnect, address 3
......" 楼主你解决了没有啊???? QQ交流: 1165095829 我的也是这样的情况,有没有解决的方法了??? 一样,求解决, 找到问题所在了,只要把tqcamera.cpp的312行的
format = QImage::Format_RGB16;
修改为
format = QImage::Format_RGB888;
修改后如下:
#ifdef TQ210
if (g_strDevName.contains("video", Qt::CaseInsensitive))
#else
if (g_strDevName.contains("camera",
Qt::CaseInsensitive))
#endif
{
format = QImage::Format_RGB888;
}
else
{
format = QImage::Format_RGB888;
}
页:
[1]