Forum: PC-Programmierung Linux: GPIO auf Dateisystem abbilden


von A. B. (funky)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe ein embedded Board, auf dem ein fertiges Linux läuft, über 
welches auch dei GPIOs des Boards angesteuert werden können.

das ganze erfolgt über das Dateisystem und jeder GPIO Pin kann per 
/proc/gpio/xx/value  angesprochen werden. Jenachdem ob ich eine 1 oder 0 
in die Datei schreibe, kann ich den Pin setzen/löschen. Über eine 
/config Datei im selben Ordner kann ich festlegen ob der Pin Ein oder 
Ausgang ist.

Ich habe jetzt ein eigenes Debian installiert und dort ist diese GPIO 
Geschichte nicht vorhanden(was mich auch nicht wundert)

Ich frage mich jetzt aber, was ich tun muss, um die GPIOs auch mit dem 
Debian ansprechen zu können. Ich habe beim Boardhersteller ein Dokument 
gefunden, wo zumindest die Adressen der GPIOs beschrieben sind. Ich 
finde aber nichts, wo ich die Schnittstelle zwischen Filesystem und den 
Pins herstellen kann. Hat da jemand Informationen zu?

Die Linuxbeispiele aus dem Dokument laufen so auch nicht, da trotz Root 
die fehlenden Berechtigungen moniert werden.

Evtl. hat ja jemand einen Tip parat? Ich hoffe ich muss da nicht eine 
Art Treiber schreiben?

Bisher kann ich per echo 1 >/proc/gpio... in die Datei schreiben . Wäre 
schön, wenn ich das unter dem Debian auch irgendwie hinbekommen kann

Danke schonmal

von (prx) A. K. (prx)


Lesenswert?

Wenn das Zeug per Speicheradresse ansprechbar ist - also nicht nur per 
IO-Adresse - dann müsste man eigentlich über /dev/mem rankommen können.

von Oliver R. (superberti)


Lesenswert?

Hi,

normalerweise stellt ein GPIO-Treiber die Funktionalität zur Verfügung 
und bildet die Schnittstelle im Dateisystem unter dev... bzw. 
proc... ab. Ohne Treiber also keine Kekse. Der Treiber sollte also in 
jedem Fall im Kernel oder als Modul vorhanden sein. Mit mknod wird dann 
die Verknüpfung im Dateisystem erzeugt.
Es gibt auch eine kostenlose Version von "Linux Device Drivers", wo dies 
alles bestens erklärt wird.

Gruß,

von A. B. (funky)


Lesenswert?

danke erstmal für die Stichworte. Da muss ich mich erstmal 
einlesen...mknod, treiber etc...hab da noch überhaupt kein Plan von

Ich hoffe ja noch, das es einen generischen treiber gibt, aber die 
Hoffnung stirbt zuletzt :-O

von Guido (Gast)


Lesenswert?

Schau mal hier:

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

Das kannst du dann mit Seite 3 deines pdfs vergleichen.

von Rolf Magnus (Gast)


Lesenswert?

Nun, wenn du ein Linux hast, bei dem das geht, muß es da ja einen 
Treiber geben. Den könntest du versuchen, für deinen Debian-Kernel zu 
übersetzen.

von A. B. (funky)


Lesenswert?

Danke @Guido für den link...einiges davon sieht interessant aus.

@magnus: naja, das ist eine fertige Minidistribution vom Hersteller(ist 
ein auf ca 15mb abgespecktes Linux) Sourcen oder so habe ich dazu keine

von Nischu (Gast)


Lesenswert?

Die Sourcen MUSST du aber beim Hersteller beziehen können. Er muss sie 
herausgeben, sonst verstößt er gegen die GPL.

Gruß,
Nico

von Rolf Magnus (Gast)


Lesenswert?

> Die Sourcen MUSST du aber beim Hersteller beziehen können. Er muss sie
> herausgeben, sonst verstößt er gegen die GPL.

Nur die Sourcen von dem, was tatsächlich auch unter GPL steht. Seine 
eigenen Kernel-Module muß er nicht unbedingt unter die GPL stellen.

von A. B. (funky)


Lesenswert?

Hmm...also Sourcen habe ich dazu keine gefunden.

Ich probiere es jetzt mal mit dem Link von guido und dem PDF was ich 
habe...evtl. kann ich die IO's ja doch irgendwie direkt ansprechen

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.