串口设备权限设置

        有时候,我们插上在MID上插上带USB转串口的设备,机器能够识别到这个节点,比如ttyUSB0,但是通过打印信息看到设备没有权限去访问这个节点,此时就需要给这个节点赋予可访问的权限,当然,每次使用的时候,都执行chmod 777 /dev/ttyUSB0命令,发现设备可以访问此节点了,但是只能一次有效,下次插上设备的时候又失效了。

      下面介绍两种给节点赋予权限的方法:

      1.插上设备,查看串口信息,设备运行在函数usb_serial_device_probe(kernel/drivers/usb/serial/bus.c),添加如下代码:

       if(minor == 0) {
                 msleep(200);
                 sys_chmod("/dev/ttyUSB0", S_IRWXUGO);
                  printk("to change permission ttyUSB0");
          }

        注:minor参数值可查阅源代码以及串口信息,延时时间自行调节即可。

      2.在device根目录下修改u.rc文件,添加权限代码:

        /dev/ttyUSB0 0660 radio radio改为/dev/ttyUSB0 0666 system system

       

     

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!对于 Ubuntu 系统串口通讯权限不够的问题,你可以尝试以下解决方法: 1. 确保用户所在的组有串口通讯权限: - 打开终端,输入以下命令来查看当前用户的组:`groups` - 检查输出中是否包含 `dialout` 组,该组通常具有串口通讯权限。 - 如果没有 `dialout` 组,则可以使用以下命令将用户添加到该组中:`sudo adduser <用户名> dialout` - 登出并重新登录以使更改生效。 2. 检查串口设备权限: - 在终端中运行以下命令来查看串口设备权限:`ls -l /dev/ttyS*`(如果是 USB 转串口适配器,则为 `/dev/ttyUSB*`)。 - 确保当前用户具有读写权限(例如 `-rw-rw---- 1 root dialout`)。 - 如果权限不正确,可以使用以下命令更改权限:`sudo chmod a+rw /dev/ttyS*`(或者 `/dev/ttyUSB*`)。 3. 确保串口设备没有被占用: - 如果串口设备已经被其他程序占用,可能会导致权限问题。可以通过以下命令检查是否被占用:`sudo lsof | grep /dev/ttyS*`(或者 `/dev/ttyUSB*`)。 - 如果有输出结果,表示串口设备正在被占用。你可以终止占用设备的程序,或者更换其他可用的串口。 4. 重新加载串口内核模块: - 在终端中运行以下命令来重新加载串口内核模块:`sudo modprobe -r <module_name>`(例如 `sudo modprobe -r usbserial`)。 - 然后再运行以下命令重新加载它:`sudo modprobe <module_name>`(例如 `sudo modprobe usbserial`)。 如果以上方法都没有解决问题,你可以提供更多关于你的环境和具体错误信息的信息,我会尽力帮助你解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值