请高手指点,
我自己仿照内核中其他 字符驱动,随便写一个虚拟字符设备。编译成功,在硬件抽象层我通过调用open(DEVICE_NAME,O_RDWR),一直返回-1,设备节点打开失败。 这种情况我以为是设备节点没有创建成功,后来我通过终端在
/DEV目录下 确实是有看到自己创建的设备节点,用cat DEVICE_NAME 也是失败提示——: Permission denied 。
设备的详细信息——(crw------- root root 247, 1) 看到这种情况我就 不知道改怎么办了,在网上查了下,说是说对应用程序要设置系统权限,按照其做法:
在AndroidManifest.xml中添加 android:sharedUserId="android.uid.system"
在Android.mk中添加 LOCAL_CERTIFICATE := platform
——结果还是打开失败
我自己仿照内核中其他 字符驱动,随便写一个虚拟字符设备。编译成功,在硬件抽象层我通过调用open(DEVICE_NAME,O_RDWR),一直返回-1,设备节点打开失败。 这种情况我以为是设备节点没有创建成功,后来我通过终端在
/DEV目录下 确实是有看到自己创建的设备节点,用cat DEVICE_NAME 也是失败提示——: Permission denied 。
设备的详细信息——(crw------- root root 247, 1) 看到这种情况我就 不知道改怎么办了,在网上查了下,说是说对应用程序要设置系统权限,按照其做法:
在AndroidManifest.xml中添加 android:sharedUserId="android.uid.system"
在Android.mk中添加 LOCAL_CERTIFICATE := platform
——结果还是打开失败
单独再chmod设置一下设备节点权限了
————
crw-rw-rw- root root 1, 5 2011-01-27 05:49 zero
crw------- root root 247, 1 2011-01-27 05:49 test
好像是有些不同,我自己创建的节点有点问题,估计得看看创建节点时,分配权限那地方了
还是不行,想死!!!
实在没办法,蒙在里面搞,一不小心发现 打印终端命令行提示符——$($ 为普通用户),在此使用chmod命令一直提示没有权限。于是我就直接su一下提示符——#(# 为root用户),就这样可以用chmod命令了 ,终于把权限改了。
虽然这样也算是改了权限,最终能open,但是总感觉治标不治本,得想办法在代码中改号才行!