This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM4378 dual camera 例程编译后运行报错 drm_init_device:755: could not open drm device: No such file or directory

Other Parts Discussed in Thread: AM4378
ERROR:drm_init_device:755: could not open drm device: No such file or directory (2)
sh: line 1:  1792 Segmentation fault      DISPLAY=':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大神指点迷津!!!
  • 感觉是文件系统用的不对。

  • 文件系统中自带的可以正确运行,但是我编译后生成的dual_camera则出现不能打开的错误

  • 你用的是SDK里自带的交叉编译工具么?

  • 不是,因为用的是米尔科技的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交叉编译后的

  • 等于你整个都是用米尔科技的AM4378的板子和这个板子的配套软件做的,建议你先咨询下米尔科技他们的软件是不是基于TI的SDK开发的?如果是确定下SDK的版本。

x 出现错误。请重试或与管理员联系。