tcgetattr() erzeugt: Input/output error



  • Hallo,

    ich hab da ein Problem mit der seriellen Schnittstelle. Bei der Ansteuerung der Schnittstelle, auf Protokollebene wird folgender Fehler ausgegeben:

    Input/output error
    

    Mein Programmcode ist in etwa dies hier:
    (vollständig: http://nopaste.php-quake.net/8795)

    ...
    int err = tcgetattr(fd, &term_attr);
    if (err != 0) {
    perror("");
    }
    

    Über perror bekommen ich dann besagten Fehler angezeigt. Was ich bereits überprüft habe, ist:

    Gruppenzugehörigkeit in lp und dialout

    crw-rw---- 1 root dialout 4, 64 1977-10-04 07:06 /dev/ttyS0
    

    Sieht für mich richtig aus, oder irre ich mich da? (User=rw/Group=rw/Others)

    Ausgabe von dmesg | grep ttyS

    serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
    serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 8250
    00:0a: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
    

    Was hier die 3. Zeile bedeutet weiß ich ehrlich gesagt nicht genau. Zumindest scheint ttyS0 aber einen irq zu belegen. ttyS0 ist übrigens auch zusätzlich noch manuell im BIOS eingestellt.

    cat < /dev/ttyS0

    cat: -: Eingabe-/Ausgabefehler
    

    Bin auch schon seit einiger Zeit am googlen, weiß mir aber da keinen Rat mehr. Falls jemand eine Idee hat, bitte ich um Antwort.

    lg, Asca


Anmelden zum Antworten