YelvLab | 野驴实验室 - 串口没权限
type: channel
link: https://blog.yelvlab.cn/index.php/tag/%E4%B8%B2%E5%8F%A3%E6%B2%A1%E6%9D%83%E9%99%90/
items: could not open port /dev/ttyUSB0解决办法

could not open port /dev/ttyUSB0解决办法
type: item
date: 2018-03-26T01:37:00+00:00
description: 在Linux下面装了Atom+PlatformIO，然后编译程序是可以的，但是下载是不行的，有一大堆提示，我从上到下看了一边，发现是打不开串口，最下面有一行提示serial.serialutil.SerialException: [Errno 13] could not open port /dev/ttyUSB0: [Errno 13] Permission denied: '/dev/ttyUSB0'就是说打不开串口，我把could not open port /dev/ttyUSB0复制到网上准备查一下什么情况，然后很容易就发现了问题所在，简直不要太简单。就是权限不够而已，那么要怎么给呢。解决办法：一、给所有的USB to TTL设备权限：这种方法是给一个ttyUSB*一个范围来解决的，通过增加udev规则来实现，步骤如下：创建文件/etc/udev/rules.d/70-ttyusb.rules在文件内增加一行KERNEL=="ttyUSB[0-9]*", MODE="0666",重新插入USB转串口设备，普通用户就有权限访问了。二、给指定的芯片或者板子权限：首先，lsusb看一下USB转串口芯片的idVendor和idProduct，显示结果中，会有下面样子的一条结果：Bus 003 Device 006: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapterID 1a86:7523表示idVendor=1a86,idProduct=7523,然后我们就去rule文件里面添加规则了。70-ttyusb.rules的内容如下:SUBSYSTEM=="tty", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523",MODE="0666"重新插入USB转串口设备，普通用户同样可以访问了。