微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > 嵌入式系统设计讨论 > ttyUSB设备节点权限设置

ttyUSB设备节点权限设置

时间:10-02 整理:3721RD 点击:

   当系统在运行过程中,插上一个USB转串口设备,系统能识别到节点ttyUSB0。但是在一般情况下,系统没有获取root权限,没办法对节点进行操作。对于这种情况,需要设置该节点的权限,有下面几种设置节点权限的方法。


方法一:

在终端直接输入命令改变权限:

Chmod 0777 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有永久操作权限。


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top