• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Default Terminal-Einstellungen ändern /dev/ttyACM0

sukram

Newbie
Hallo,
ich haben folgendes Problem unter 11.3-Desktop:
Ich muß für eine Programm, was auf die Daten die von Device /dev/ttyACM0 kommen zugreift, das "echo" auf "-echo" Systemweit umstellen.
Wo werden die Default-Terminal-Einstellungen bei OpenSuse festgelegt?

Folgende Ausgabe erhalte ich nach dem booten im Terminal:
# stty -a < /dev/ttyACM0
speed 9600 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>;
start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke


In einem Terminal kann ich das nachträglich mit "stty -echo < /dev/ttyACM0" umstellen

# stty -echo < /dev/ttyACM0
# stty -a < /dev/ttyACM0
speed 9600 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>;
start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten -echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
 

spoensche

Moderator
Teammitglied
Code:
/dev/ttyACM0

Was ist das für ein Gerät? Kommen die Daten über die serielle Schnittstelle oder über USB?Für was für ein Programm benötigst du das? Kannst du das Programm nicht so konfigurieren, dass es die Daten von dem Device direkt liest?
 
A

Anonymous

Gast
Solche Aufgaben ist was für die /etc/bash.bashrc

Aber nicht dort selbst hinein schreiben, sondern in eine Datei die von dort aus aufgerufen wird soweit sie existieren würden.
wie zB /etc/bash.bashrc.local

dort kannst du dann deinen stty Befehl reinsetzen. (vollen Path angeben, der ist dort noch nicht gesetzt)
Währe aber gut wenn du an irgend etwas fest machen könntest wenn er das machen soll, und wann nicht. Sonst sitzt du irgendwann local auf einem anderem Terminal vor der Kiste und wunderst dich warum der verdammte Kasten nichts macht. ;)

robi
 
OP
S

sukram

Newbie
@spoensche
Das Gerät was ich am USB-Bus anschliesse ist ein 868MHz Empfänger/Sender. Unter Linux kümmert sich der Treiber cdc-acm um die Kommunikation über /dev/ttyACM0 mit diesem Gerät. ACM steht für Abstract Control Model.

Ich könnte auch über /dev/ttyUSB0 gehen doch da ist bei OpenSuSE auch das echo "falsch" gesetzt. In einem Terminal kann ich das ja umsetzen nur diese Änderung bekommt das Perl-Server-Prg. nicht mit, was an dieser Schnittstelle lauscht. Es werden Daten durch das falsch gesetzte "echo" einfach wieder zurück geschikt, was zu einem Fehler führt. Deshalb muss das echo durch -echo ausgeschaltet werden.

Wenn ich das nicht raus bekomme muss ich gezwungenermaßen auf eine andere Linux Distribution wechseln - was ich aber gerne vermeiden möchte :???:
Bei anderen Distributionen ist default für /dev/ttyACM0 "echo" auf "-echo" eingestellt.

@robi
Ich teste das gleich mal aus. Danke für den Tip.
 
Oben