Kirjoittaja Aihe: sarjaportin käyttö  (Luettu 4298 kertaa)

0 jäsentä ja 1 Vieras katselee tätä aihetta.

Minimaalinen

  • Vieras
sarjaportin käyttö
« : 31.07.2008 - klo:15:47 »
Linux on minulle uusi tuttavuus ja tähän ongelmaan varmasti löytyy yksinkertainen ratkaisu. Käytössä on openSuse 11.

Eli:

yritän kirjoittaa c:llä ohjelmaa joka käyttää sarjaporttia ( fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY) ), mutta en saa sarjaporttia auki. Kun kirjaudun root:ina sisään ja ajan ohjelman => saan portin käyttöön. Missäköhän menee pieleen?

Poissa LassiLeevi

  • Jäsen
  • Viestejä: 218
  • Sukupuoli: Mies
Vs: sarjaportin käyttö
« Vastaus #1 : 31.07.2008 - klo:18:22 »
Tuolla ainakin aiheesta:

http://www.faqs.org/docs/Linux-mini/IO-Port-Programming.html#s2

Lainaus
The ioperm() call requires your program to have root privileges; thus you need to either run it as the root user, or make it setuid root. You can drop the root privileges after you have called ioperm() to enable the ports you want to use.
"A cop is a Zoo in a man,
   with a gun."
  -Hammer, Sledge

Minimaalinen

  • Vieras
Vs: sarjaportin käyttö
« Vastaus #2 : 01.08.2008 - klo:08:48 »
Kiitos linkistä. Lueskelinkin jo tuolta.

Kummallista tässä on se että vaikka annan /dev/ttyS0:aan kaikille kaikki oikeudet, portti ei vain aukea. Kun ajan ohjelman sudolla niin johan alkaa tapahtua.

Minimaalinen

  • Vieras
Vs: sarjaportin käyttö
« Vastaus #3 : 01.08.2008 - klo:14:10 »
Selvisi.

Eli portti ei toiminut sudolla eikä millään muullakaan. Disabloin BIOS:ista infrapunan ja rinnakkaisportin ja johan alkoi toimia. Ilmeisesti jotain päällekkäistä niiden kanssa.