Linux Befehl für UART

Gast #1061146
Lesenswert?

hallo,
1) es scheint, ob ich kein Recht zu schreiben habe. wenn ich das Befehl:
chmod u+x /dev/ttyS1 eingebe, bekomme ich die Meldung Read only file 
system.
wie bekomme ich das Recht zu schreiben?
2)wenn ich das Befehl echo "hallo" > /dev/ttyS1 eingebe, bekomme keine 
Meldung sondern das Zeichen >.Wenn ich das Pin im oszilloskop überprufe, 
habe ich kein Signal.
3) wenn ich ein String vom dem Mikrocontroller sendet, mit cat Befehle 
sehe ich das String.

danke
#1061266
Lesenswert?

Schau einfach welcher Gruppe /dev/ttyS1 gehört und bringe den Benutzer 
mit dem du auf die serielle schreiben willst in diese Gruppe. Bei meinem 
Debian ist es z.B. die Gruppe "dialout", glaube es wird bei anderen 
Distributionen auch "wheel" verwendet.

,---
| # ls -la /dev/ttyS*
| crw-rw---- 1 root dialout 4, 64 2008-11-27 21:05 /dev/ttyS0
| crw-rw---- 1 root dialout 4, 65 2008-10-26 13:22 /dev/ttyS1
| crw-rw---- 1 root dialout 4, 66 2008-10-26 13:22 /dev/ttyS2
| crw-rw---- 1 root dialout 4, 67 2008-10-26 13:22 /dev/ttyS3
`---

Gruß
Dominique Görsch
Gast #1061306
Lesenswert?

> 3) wenn ich ein String vom dem Mikrocontroller sendet, mit cat Befehle
> sehe ich das String.

Damit hast du Leserecht für /dev/ttyS1. Wenn du Leserecht hast, hast du
mit ziemlicher Sicherheit auch Schreibrecht. Die Schreib-/Leserechte
werden mit
1
ls -l /dev/ttyS1

angezeigt.

Was passiert, wenn du einfach
1
echo Hallo >/dev/ttyS1

eingibst?

- Erscheint die Fehlermeldung "Permission denied"? Dann hast du
  tatsächlich kein Schreibrecht.

- Erscheint eine andere Fehlermeldung? Dann diese bitte posten.

- Terminiert der Befehl sofort? Dann wurden die Daten wahrscheinlich
  gesendet, aber die Baudrate oder ein anderer RS-232-Parameter ist für
  Sender und Empfänger unterschiedlich gesetzt. Du solltest die
  Schnittstellenparameter mit stty überprüfen (s.u.).

- Hängt der Befehl, und du musst ihn mit ^C abbrechen? Dann ist
  wahrscheinlich der Hardware-Handhsake aktiviert. Auch in diesem Fall
  hilft stty weiter.

Mit
1
stty -aF /dev/ttyS1

werden die aktuellen Schnittstellenparameter angezeigt. Damit kannst du
die Baudrate, die Paritätseinstellung, Handshake uvm. überprüfen. Sind
die Parameter falsch eingestellt, kannst du sie ebenfalls mit stty
richtig einstellen.

> wenn ich das Befehl: chmod u+x /dev/ttyS1 eingebe, bekomme ich die
> Meldung Read only file system.

Dann kannst du auch als Root die Rechte nicht ohne weiteres ändern. Du
müsstest erst das Dateisystem, auf dem sich /dev befindet, read/write
mounten. Ist dieser Linux-Rechner ein gewöhnlicher PC oder irgend so ein
Embedded-Gerät ohne Festplatte?

Aber wie gesagt, wahrscheinlich liegt das Problem nicht bei den
Schreib-/Leserechten, deswegen musst du sie auch nicht ändern.
Gast #1061326
Lesenswert?

hallo yalu,
ich habe wie du gesagt habe
1) ls -l /dev/ttyS1
2) echo Hallo >/dev/ttyS1 es hängt an der stelle
 ich habe kein harware handshare aktiviert, aber ich habe das canonical 
input aktiviert. Kann es die Fehler veruarsachen.

danke
#1061385
Lesenswert?

> 2) echo Hallo >/dev/ttyS1 es hängt an der stelle

Das hängt auch bei mir, aber ich besitze keine Serielle-Schnittstelle. 
Wenn ich meinen USB-RS232 Adapter anstecke, dann funkt. des nur, wenn 
ich an /dev/cu.UC-232AC (also nicht /dev/tty.UC-232AC) die Sachen 
schicke. Das liegt aber daran, dass ich OS X als Betriebsystem hab und 
unter darwin (bsd) ist es bissl anders als unter Linux (soweit ich das 
mitbekommen habe).

Die Frage ist vllt überflüssig, aber Du bist sicher, dass deine 
Serielle-Schnittstelle das Device ttyS1 ist?
Gast #1061397
Lesenswert?

Probier mal:
1
echo Hallo > /dev/pts/1
auf tty* darf der User nie schreiben und das ist auch gut so. Kann sein,
dass du dich noch der Gruppe tty oder so hin zu fügen musst. Der
Gruppenname ist abhängig von deiner Distribution und ob du auf einem PC
bist, bei einer Embedded-Büchse kann das wiederum ganz anders aussehen.

Bist du dir sicher, dass du auf das zweite Device also 1 schreiben
willst und nicht auf das erste also 0?
#1061401
Lesenswert?

tata wrote:
> auf tty* darf der User nie schreiben und das ist auch gut so. Kann sein,
> dass du dich noch der Gruppe tty oder so hin zu fügen musst. Der
> Gruppenname ist abhängig von deiner Distribution und ob du auf einem PC
> bist, bei einer Embedded-Büchse kann das wiederum ganz anders aussehen.

Schrieb ich das nicht schon? ;)

Gruß
Dominique Görsch
Gast #1061763
Lesenswert?

>> auf tty* darf der User nie schreiben und das ist auch gut so. Kann sein,
>> dass du dich noch der Gruppe tty oder so hin zu fügen musst. Der
>> Gruppenname ist abhängig von deiner Distribution und ob du auf einem PC
>> bist, bei einer Embedded-Büchse kann das wiederum ganz anders aussehen.
> Schrieb ich das nicht schon? ;)
>
Ups. ;-)
Naja, erstmal muss  'Gast (Gast)' bzw.  'gast (Gast)' antworten. ;-)
Gast #1091380
Lesenswert?

Habe mit Linux noch nicht so viel Erfahrungen aber meine Anwendung, die 
Daten über Serielle Ports einsammelt, hat die Gruppe uucp um den 
verwendeten Usernamen erweitert. Also schau mal nach der Gruppe uucp, ob 
der angemeldete User dort Member ist oder nicht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren