Ich habe mal eine dumme Frage zur Baudraten-Einstellung 250000 unter Linux über eine USB-Seriell-Verbindung. Diese Geschwindigkeit wird von 3D-Druckern benutzt die z.B. mit einen Arduino Mega Board mit Marlin-Firmware laufen.
In unserer Schule hatte ich zwei unserer 3D-Drucker bis zum letzten Sommer von Linux aus gesteuert (Ubuntu 20.04 LTS). Nun zum Schulstart hat das Softwareupdate den Kernel auf Linux 5.11 gebracht, und beide Computer können nicht mehr die oben genannte Baudrate einstellen.
Es geht nicht mehr via Repetier-Host (über Mono), auch nicht mehr Arduino-IDE (über Java). Der Serial-Port-Monitor von Arduino-IDE lässt zwar 250000 einstellen, spuckt aber eine Fehlermeldung aus, dass die Baudrate nicht eingestellt werden konnte und es kommt nur Text-Garbage als Output vom Drucker raus weil eine andere Baudrate verwendet wird.
Auch alle Terminal-Programme weigern sich mit 250000 zu laufen.
Daher meine Frage:
Gibt es einen Trick das trotzdem irgendwie einzustellen, oder habe ich da etwas verpasst? Z.B. hatte Canonical vielleicht irgend eine Custom Änderung am Linux-Kernel eingepflegt, dass das vorher lief?
Ciao Julian, ti rispondo in Italiano perché il Tedesco non lo so ...
(magia di google translate...).
Non credo sia colpa di Ubuntu ma dell'abbandono di alcuni driver
specializzati (ma mantenuti quelli generici) sui nuovi kernel dei
dispositivi seriali, probabilmente per mancanza di un manutentore.
Probabilmente risolvi reinstallando un vecchio kernel ancora presente
nella distribuzione. Ti ricordi la versione dell'ultimo kernel che ti
funzionava? Cerca la stessa (o inferiore) versione nei repository
con apt-cache search ...
die Baudrate kann man auch manuell über das Terminal mit stty einstellen:
stty -F /dev/ttyUSBX 250000
("/dev/ttyUSBX" mit dem Device deines USB-Seriell-Adapters ersetzen)
Aufruf "stty -F /dev/ttyUSBX" zeigt die aktuelle Baudrate und
Einstellungen an.
Du könntest folgendes probieren:
1.) Versuchen die Baudrate mit dem obigen Kommando über stty zu setzen.
Wenn das ebenfalls einen Fehler auswirft liegts irgendwo am Treiber im
Kernel (womöglich neuer Treiber für den USB-Seriell-Adapter?). Eventuell
mit dem Kommando "dmesg" die Kernelausgaben durchschauen ob dort in den
letzten Zeilen etwas detaillierteres steht. Einfachste und schnellste
Lösung wäre in diesem Fall, wie Marco Ciampo schon schrieb, wieder den
alten Kernel einsetzen.
2.) Wenn stty mit 250kbaud keinen Fehler meldet: Dein Programm
(Repetier-Host oder Arduino-IDE) vorher starten, dann über stty nochmal
manuell die richtige Baudrate einstellen und testen ob nun die
Kommunikation mit dem Drucker funktioniert.
Nella Arduino IDE ci sono presenti nella lista tutti le velocità baud anche quella da 250000.
Infatti Arduino si lamenta che una volta scelta la 250000 non riesce ad impostarlo tramite lo driver generico suppongo (almeno per Linux, su Windows va).