1

在 android 中,我从在用户空间工作的 hwcomposer 打开设备节点(dev/dri/card0)时遇到问题。我正在尝试打开设备,例如:

fd_ = open("/dev/dri/card0", O_RDWR);
if (fd_ < 0) {
    ALOGE("Failed to open dri- %s", strerror(-errno));
    return -ENODEV;
}

错误:

hwc-drm-resources: Failed to open dri- Unknown error -13 

错误 13 是权限访问问题。为此,我在 android 的 ueventd.rc 中配置了权限:

/dev/dri/*                0666   root       graphics

我也尝试过设置系统系统的权限。它仍然无法正常工作。

当我在 /dev/dri 中运行 ls -la 时。它显示以下输出,它具有用户模式的 rw 权限。

crw-rw-rw- root     graphics 226,   0 2015-01-01 00:26 card0
crw-rw-rw- root     graphics 226,  64 2015-01-01 00:26 controlD64

我不明白为什么 hwcomposer 将无法访问设备节点,因为权限是为设备节点设置的。

4

1 回答 1

1

解决。我忘记将设备节点的条目放在 /external/sepolicy 中。

/dev/dri(/.*)?         u:object_r:graphics_device:s0

android 网站上提供了有关 sepolicy 的更多信息。 https://source.android.com/security/selinux/implement.html

于 2016-05-20T10:17:37.863 回答