如何设置Linux字符驱动程序的权限?

如何设置Linux字符驱动程序的权限?,linux,char,kernel,driver,device,Linux,Char,Kernel,Driver,Device,各位, 我为我的i2c设备编写了一个字符驱动程序。它正在使用Linux内核3.0.8开发Android 4.0.3 当我尝试使用我的原生Android应用程序使用ioctl()访问驱动程序时。我得到一个权限被拒绝的错误 如果使用以下命令创建设备文件,则不会出现权限错误 mknod /dev/barcodescan c 100 0 我不想一直手动发出此命令,而是希望模块在启动时执行此命令。我写了下面的代码,但是我得到了一个权限被拒绝的错误。 如何在此代码中设置权限 ret= register_c

各位, 我为我的i2c设备编写了一个字符驱动程序。它正在使用Linux内核3.0.8开发Android 4.0.3

当我尝试使用我的原生Android应用程序使用
ioctl()
访问驱动程序时。我得到一个权限被拒绝的错误

如果使用以下命令创建设备文件,则不会出现权限错误

mknod /dev/barcodescan c 100 0
我不想一直手动发出此命令,而是希望模块在启动时执行此命令。我写了下面的代码,但是我得到了一个权限被拒绝的错误。 如何在此代码中设置权限

ret= register_chrdev(MAJOR_NUMBER,"barcode",&fops );

if(ret) {   
   pr_info(KERN_ERR "%s:register chrdev failed\n",__FILE__);    
   return ret;
}

i2c_dev_class = class_create(THIS_MODULE,"barcode");

if (IS_ERR(i2c_dev_class)) {        
   ret = PTR_ERR(i2c_dev_class);        
   class_destroy(i2c_dev_class);    
}

我假设您正在构建自己的Android映像

在这种情况下,您需要编辑以添加如下行,以确保在引导时自动创建设备节点:

mknod /dev/barcodescan c 100 0
chown system system /dev/barcodescan

您可能希望将
system
system
更改为其他帐户和/或使用chmod添加更多权限,例如使用
chmod 666
,但不建议这样做。

我假设您正在构建自己的Android映像

在这种情况下,您需要编辑以添加如下行,以确保在引导时自动创建设备节点:

mknod /dev/barcodescan c 100 0
chown system system /dev/barcodescan
您可能希望将
system
system
更改为其他帐户和/或使用chmod添加更多权限,例如使用
chmod 666
,但不建议这样做