Linux ESP32 PlatformIO PermissionError beheben: [Errno 13] Permission denied: '/dev/ttyUSB0'
English
Deutsch
Problem:
Beim Versuch, ein ESP8266- oder ESP32-Board unter Linux zu flashen, erscheint eine Fehlermeldung wie
platformio_permission_error.txt
Warning! Please install `99-platformio-udev.rules`.
More details: https://docs.platformio.org/page/faq.html#platformio-udev-rules
Auto-detected: /dev/ttyUSB0
Uploading .pio/build/esp32dev/firmware.bin
esptool.py v3.1
Serial port /dev/ttyUSB0
Traceback (most recent call last):
File "/home/uli/.platformio/penv/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/uli/.platformio/packages/tool-esptoolpy/esptool.py", line 4582, in <module>
_main()
File "/home/uli/.platformio/packages/tool-esptoolpy/esptool.py", line 4575, in _main
main()
File "/home/uli/.platformio/packages/tool-esptoolpy/esptool.py", line 4074, in main
esp = esp or get_default_connected_device(ser_list, port=args.port, connect_attempts=args.connect_attempts,
File "/home/uli/.platformio/packages/tool-esptoolpy/esptool.py", line 120, in get_default_connected_device
_esp = chip_class(each_port, initial_baud, trace)
File "/home/uli/.platformio/packages/tool-esptoolpy/esptool.py", line 313, in __init__
self._port = serial.serial_for_url(port)
File "/home/uli/.platformio/penv/lib/python3.8/site-packages/serial/__init__.py", line 90, in serial_for_url
instance.open()
File "/home/uli/.platformio/penv/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'Lösung
Wie oben in der Fehlermeldung beschrieben, die PlatformIO udev-Regeln installieren:
install_platformio_udev_rules.sh
curl -fsSL https://raw.githubusercontent.com/platformio/platformio-core/master/scripts/99-platformio-udev.rules | sudo tee /etc/udev/rules.d/99-platformio-udev.rulesdann udev neu starten:
restart_udev.sh
sudo systemctl restart udevDanach das ESP32-Board abziehen und wieder anschließen, damit die Änderungen wirksam werden.
Zusätzlich wird empfohlen, den Benutzer zur dialout-Gruppe hinzuzufügen – der Linux-Gruppe, der die meisten USB-Geräte gehören:
add_user_dialout.sh
sudo usermod -a -G dialout $USERDamit die Änderungen wirksam werden, komplett aus der aktuellen Sitzung abmelden und wieder anmelden (oder neu starten). Obwohl dies zur Behebung dieser spezifischen Fehlermeldung nicht zwingend erforderlich ist, hilft es, zukünftige USB-Berechtigungsprobleme zu vermeiden.
Check out similar posts by category:
Electronics, Embedded, ESP8266/ESP32, PlatformIO
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow