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的版本。