Einführung
Ich habe meinen PC neu installiert und dabei Ubuntu 22.04 gewählt. Ich konnte den ESP32 nicht mehr flashen. Dieses HOWTO beschreibt, wie wir den ESP32 unter Ubuntu 22.04 über https://install.openbikesensor.org installieren.
Problem: Chromium
Installation:
sudo apt install chromium-browser
Dies installiert Chromium als snap, was äquivalent zu Folgendem ist:
sudo snap install chromium
Öffnen: https://install.openbikesensor.org/
Wenn wir nun auf CONNECT klicken, dann werden keine Geräte gefunden:
Es scheint, dass das Snap-Paket nicht auf /dev
und damit nicht auf USB zugreifen kann.
Install Google Chrome
Wir installieren daher Google Chrome über das deb-Paket:
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install ./google-chrome-stable_current_amd64.deb
Google Chrome starten:
google-chrome
Öffnen: https://install.openbikesensor.org/
Wenn wir nun erneut auf CONNECT klickt, dann werden Geräte gefunden. Wenn wir nach unten scrollen, dann sollten wir das Gerät CP2102 finden. In diesem Fall taucht das Gerät nicht auf:
Dies überprüfen wir einmal mit sudo dmesg
. Wir sehen, ein interface 0 claimed by cp210x while ‚brltty‘ und ein device disconnected:
[ 75.721614] usb 1-2: new full-speed USB device number 9 using xhci_hcd
[ 75.900960] usb 1-2: New USB device found, idVendor=10c4, idProduct=ea60, bcdDevice= 1.00
[ 75.900979] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 75.900989] usb 1-2: Product: CP2102 USB to UART Bridge Controller
[ 75.900995] usb 1-2: Manufacturer: Silicon Labs
[ 75.901001] usb 1-2: SerialNumber: 0001
[ 75.954784] usbcore: registered new interface driver usbserial_generic
[ 75.954815] usbserial: USB Serial support registered for generic
[ 75.959500] usbcore: registered new interface driver cp210x
[ 75.959523] usbserial: USB Serial support registered for cp210x
[ 75.959562] cp210x 1-2:1.0: cp210x converter detected
[ 75.962263] usb 1-2: cp210x converter now attached to ttyUSB0
[ 75.996175] input: PC Speaker as /devices/platform/pcspkr/input/input26
[ 76.522111] input: BRLTTY 6.4 Linux Screen Driver Keyboard as /devices/virtual/input/input27
[ 76.682984] usb 1-2: usbfs: interface 0 claimed by cp210x while 'brltty' sets config #1
[ 76.683573] cp210x ttyUSB0: cp210x converter now disconnected from ttyUSB0
[ 76.683596] cp210x 1-2:1.0: device disconnected
D.h. brltty blockert den ESP32 (siehe auch). Daher deinstallieren wir brltty:
sudo apt remove brltty
Wenn wir nun den USB-Stecker einmal raus- und wieder reinstecken, dann ist der ESP32 nun verbunden, was wir an der Meldung cp210x converter now attached to ttyUSB0
erkennen:
[ 181.134949] usb 1-2: USB disconnect, device number 9
[ 182.943663] usb 1-2: new full-speed USB device number 10 using xhci_hcd
[ 183.123055] usb 1-2: New USB device found, idVendor=10c4, idProduct=ea60, bcdDevice= 1.00
[ 183.123074] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 183.123083] usb 1-2: Product: CP2102 USB to UART Bridge Controller
[ 183.123090] usb 1-2: Manufacturer: Silicon Labs
[ 183.123096] usb 1-2: SerialNumber: 0001
[ 183.132551] cp210x 1-2:1.0: cp210x converter detected
[ 183.133846] usb 1-2: cp210x converter now attached to ttyUSB0
Nun sollte das Gerät in der Liste auftauchen:
Sobald wir das Gerät auswählen kommt der folgende Fehler: Failed to open serial port:
Ein Blick in chrome://device-log
zeigt ein FILE_ACCESS_DENIED
:
Wir schauen uns das /dev/ttyUSB0
näher an, und wir erkennen, dass root:dialout
als Besitzer gesetzt ist:
Wir fügen den aktuellen User zur Gruppe dialout
hinzu:
sudo adduser $USER dialout
Einmal aus- und wieder einloggen. Ggf. einmal neustarten. Der Benutzer sollte in der Gruppe dialout
sein:
Nun können wir den ESP32 mit der Firmware flashen (ich muss im Prozesss immer BOOT am ESP32 drücken):
Nach einiger Zeit ist das Flashen der Firmware erfolgreich: