方法一: 获取root权限 #su 在终端直接输入命令改变权限: chmod 0777 /dev/ttyUSB0 这种方法只合适短暂性操作,一旦重新拔插设备或重启系统,节点即会恢复到最初的权限,前面的命令就会失效。
方法二: 在Android系统中,ueventd进程可以对“热插拔”设备进行监测,在系统运行中,当有USB设备插入时,ueventd会接收到这一事件,并为插入的设备动态创建设备节点文件。我们可以在文件ueventd.rc中添加: /dev/ttyUSB0 0777 radio radio 该方法永久设置ttyUSB0操作权限。
方法三: 在kerne/driver/usb/serial/bus.c文件里的usb_device_probe函数中添加如下代码: msleep(50); do { switch(minor) { case 0: re = sys_chmod("/dev/ttyUSB0", 0666); break; case 1: re = sys_chmod("/dev/ttyUSB1", 0666); break; case 2: re = sys_chmod("/dev/ttyUSB2", 0666); break; default: break; } }while(re < 0 && ++retry < 5); if(re < 0) printk("change permission ttyUSB%d faild!\n", minor); else printk("change permission ttyUSB%d succeed!\n", minor);
为了避免权限设置失败,最好多retry几次。要记得在文件头加入#include <linux/syscalls.h>使包含sys_chmod函数。这一方法也可以使ttyUSB0有永久操作权限。
|