【问题解决】ESP32报错:could not open port /dev/ttyUSB0: [Errno 13] Permission denied: ‘/dev/ttyUSB0‘

问题:

执行 make flash 时报错:

Toolchain path: /home/pjw/.espressif/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
Toolchain version: esp-2020r3
Compiler version: 8.4.0
Python requirements from /home/pjw/ESP32/esp-idf/requirements.txt are satisfied.

Project is not inside a git repository, will not use 'git describe' to determine PROJECT_VER.
App "hello-world" version: 1
Flashing binaries to serial port /dev/ttyUSB0 (app at offset 0x10000)...
esptool.py v2.8
Serial port /dev/ttyUSB0
Traceback (most recent call last):
  File "/home/pjw/.local/lib/python3.8/site-packages/serial/serialposix.py", line 322, in open
    self.fd = os.open(self.portstr, os.O_RDWR | os.O_NOCTTY | os.O_NONBLOCK)
PermissionError: [Errno 13] Permission denied: '/dev/ttyUSB0'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/pjw/ESP32/esp-idf/components/esptool_py/esptool/esptool.py", line 3201, in <module>
    _main()
  File "/home/pjw/ESP32/esp-idf/components/esptool_py/esptool/esptool.py", line 3194, in _main
    main()
  File "/home/pjw/ESP32/esp-idf/components/esptool_py/esptool/esptool.py", line 2889, in main
    esp = chip_class(each_port, initial_baud, args.trace)
  File "/home/pjw/ESP32/esp-idf/components/esptool_py/esptool/esptool.py", line 237, in __init__
    self._port = serial.serial_for_url(port)
  File "/home/pjw/.local/lib/python3.8/site-packages/serial/__init__.py", line 90, in serial_for_url
    instance.open()
  File "/home/pjw/.local/lib/python3.8/site-packages/serial/serialposix.py", line 325, in open
    raise SerialException(msg.errno, "could not open port {}: {}".format(self._port, msg))
serial.serialutil.SerialException: [Errno 13] could not open port /dev/ttyUSB0: [Errno 13] Permission denied: '/dev/ttyUSB0'
/home/pjw/ESP32/esp-idf/components/esptool_py/Makefile.projbuild:88: recipe for target 'flash' failed
make: *** [flash] Error 1

原因:

只有root用户和属于dialout组的用户会有读写权限


解决:

方法一:
该方法重启就会失效

sudo chmod -R 777 /dev/ttyUSB0

方法二:
永久性方案:
把自己的用户加入到dialout组:

sudo usermod -aG dialout user	//user替换为自己的用户名
reboot							//必须要重启一下才会生效
  • 17
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值