ERROR:drm_init_device:755: could not open drm device: No such file or directory (2) sh: line 1: 1792 Segmentation faultDISPLAY=':0.0' /home/root//dual_camera-new -qws
运行时爆出了如上的错误,前面设备的配置代码如下:
/*
* Initialize the app resources with default parameters
*/
void default_parameters(void)
{
/* Main camera display */
memset(&drm_device, 0, sizeof(drm_device));strcpy(drm_device.dev_name,"/dev/drm");
strcpy(drm_device.name,"drm");
drm_device.width=0;
drm_device.height=0;
drm_device.bo_flags = OMAP_BO_SCANOUT;
drm_device.fd = 0;
/* Main camera */
cap0_device.memory_mode = V4L2_MEMORY_DMABUF;
cap0_device.num_buffers = NBUF;
strcpy(cap0_device.dev_name,"/dev/video1");
strcpy(cap0_device.name,"Capture 0");
cap0_device.buffers = NULL;
cap0_device.fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV;
cap0_device.width = 800;
cap0_device.height = 600;
/* PiP camera */
cap1_device.memory_mode = V4L2_MEMORY_DMABUF;
cap1_device.num_buffers = NBUF;
strcpy(cap1_device.dev_name,"/dev/video0");
strcpy(cap1_device.name,"Capture 1");
cap1_device.buffers = NULL;
cap1_device.fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV;
cap1_device.width = 800;
cap1_device.height = 600;
/* Set the default parameters for device options */
status.main_cam=0;
status.num_cams=2;
status.num_jpeg=0;
if(status.num_cams == 1){
status.pip=false;
}
else{
status.pip=true;
}
status.jpeg=false;
status.exit=false;
/* Ensure that jpeg image save directory exists */
mkdir("/usr/share/camera-images/", 0777);
return;
}
/*
* drm device init
*/
static int drm_init_device(struct drm_device_info *device)
{
unsigned char j;if (!device->fd) {device->fd = drmOpen("omapdrm", NULL);if (device->fd < 0) {ERROR("could not open drm device: %s (%d)", strerror(errno), errno);return -1;}if (drm_init_plane_zorder(device))return -1;}
求TI大神指点迷津!!!
Jian Zhou:
感觉是文件系统用的不对。
pengyi zhang:
回复 Jian Zhou:
文件系统中自带的可以正确运行,但是我编译后生成的dual_camera则出现不能打开的错误
Jian Zhou:
回复 pengyi zhang:
你用的是SDK里自带的交叉编译工具么?
pengyi zhang:
回复 Jian Zhou:
不是,因为用的是米尔科技的AM4378板卡,烧写的是他们提供的文件系统,文件系统中自带的dual camera可以正常运行,而用SDK中的dual camera源码例程编译出的则打不开ompdrm设备,而且在设备目录中也找不到对应的/dev/drm,/dev/dri路径也是空的,cat /proc/devices也没有drm设备,真是不知道是哪里的错误?
我用的qt-4.8.5,交叉编译工具是gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux,libdrm对应的是libdrm-2.4.74交叉编译后的
Jian Zhou:
回复 pengyi zhang:
等于你整个都是用米尔科技的AM4378的板子和这个板子的配套软件做的,建议你先咨询下米尔科技他们的软件是不是基于TI的SDK开发的?如果是确定下SDK的版本。
TI中文支持网
