Hilfe bei GPIO gesucht
Hilfe bei GPIO gesucht
Hallo alle Miteinander
Ich habe auf meinem Mainboard ein Header mit gpio_30 bis gpio_37
Diese moechte ich nutzen.
Ich habe allerdings ein komisches Problem.
Ich vermisse das verzeichnis /sys/class/gpio.
Weder im Terminal noch im Dateimanager wird dieses
Verzeichnis angezeigt
Wenn ich mit MC dieses verzeichnis anlegen moechte,
wird vom MC gemeldet das es dieses Verzeichnis schon
giebt.
Jemand ein Tip?
purzel
Ich habe auf meinem Mainboard ein Header mit gpio_30 bis gpio_37
Diese moechte ich nutzen.
Ich habe allerdings ein komisches Problem.
Ich vermisse das verzeichnis /sys/class/gpio.
Weder im Terminal noch im Dateimanager wird dieses
Verzeichnis angezeigt
Wenn ich mit MC dieses verzeichnis anlegen moechte,
wird vom MC gemeldet das es dieses Verzeichnis schon
giebt.
Jemand ein Tip?
purzel
Re: Hilfe bei GPIO gesucht
/proc und /sys sind virtuelle Dateisysteme, in die man nur unter ganz bestimmten Umständen schreiben kann. Und wenn's etwas nicht gibt, dann meistens, weil der Treiber es nicht angelegt hat.
Gruß Cae
Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: Hilfe bei GPIO gesucht
hallo Cae
>>>>.....in die man nur unter ganz bestimmten Umständen schreiben kann..........
Na ja , dann verstehe ich allerdings diese Fehlermeldungen nicht
root@localhost:/sys/class# mkdir gpio
mkdir: kann Verzeichnis „gpio“ nicht anlegen: Datei oder Verzeichnis nicht gefunden
root@localhost:/sys/class#
und im Mitnight Commander MC wird gemeldet
................................
Fehler
Die Datei existiert bereits (17)
................................
Sind ja wohl Meldungen , die sich eigendlich widersprechen.
einmal wird
Datei oder Verzeichnis nicht gefunden
und anderseits
Die Datei existiert bereits (17)
Na was denn nun?
>>>Und wenn's etwas nicht gibt, dann meistens, weil der Treiber es nicht angelegt hat
Werden nicht die Starttaster,Leds usw auf dem Motherboard auch als GPIO vom OS verwaltet?
Dann muss doch ein Treiber vorhanden sein.
Warum wird das dann erfolgreich versteckt?
Irgendeiner eine idee?
purzel
>>>>.....in die man nur unter ganz bestimmten Umständen schreiben kann..........
Na ja , dann verstehe ich allerdings diese Fehlermeldungen nicht
root@localhost:/sys/class# mkdir gpio
mkdir: kann Verzeichnis „gpio“ nicht anlegen: Datei oder Verzeichnis nicht gefunden
root@localhost:/sys/class#
und im Mitnight Commander MC wird gemeldet
................................
Fehler
Die Datei existiert bereits (17)
................................
Sind ja wohl Meldungen , die sich eigendlich widersprechen.
einmal wird
Datei oder Verzeichnis nicht gefunden
und anderseits
Die Datei existiert bereits (17)
Na was denn nun?
>>>Und wenn's etwas nicht gibt, dann meistens, weil der Treiber es nicht angelegt hat
Werden nicht die Starttaster,Leds usw auf dem Motherboard auch als GPIO vom OS verwaltet?
Dann muss doch ein Treiber vorhanden sein.
Warum wird das dann erfolgreich versteckt?
Irgendeiner eine idee?
purzel
Re: Hilfe bei GPIO gesucht
strace des 'mkdir gpio':
und des mc:
Also zu sehen, daß der mc versucht, das Verzeichnis mit komplettem Pfad zu erstellen ala 'mkdir -p',
und wegen des Fehlers das übergeordnete Verzeichnis zu erstellen versucht, was dann als letzter Fehler angezeigt wird.
Siehe auch Documentation/*gpio*.
Code: Alles auswählen
....
1111 close(3) = 0
1111 mkdir("gpio", 0777) = -1 ENOENT (No such file or directory)
...
blabla Fehlermeldung
...
1111 close(1) = 0
1111 close(2) = 0
1111 exit_group(1) = ?
Code: Alles auswählen
...
1111 getuid32() = 0
1111 mkdir("/sys/class/gpio", 0777) = -1 ENOENT (No such file or directory)
1111 mkdir("/sys/class/gpio", 0777) = -1 ENOENT (No such file or directory)
1111 mkdir("/sys/class", 0777) = -1 EEXIST (File exists)
...
blabla Fehlermeldung des mc
...
und wegen des Fehlers das übergeordnete Verzeichnis zu erstellen versucht, was dann als letzter Fehler angezeigt wird.
Besteht noch "gpio-Potential" bei einem Eigenbau-Kernel,# find /lib/modules/3.2.0-2-686-pae/ -name *gpio* | sort
/lib/modules/3.2.0-2-686-pae/kernel/drivers/char/nsc_gpio.ko
/lib/modules/3.2.0-2-686-pae/kernel/drivers/char/pc8736x_gpio.ko
/lib/modules/3.2.0-2-686-pae/kernel/drivers/char/scx200_gpio.ko
/lib/modules/3.2.0-2-686-pae/kernel/drivers/gpio
/lib/modules/3.2.0-2-686-pae/kernel/drivers/gpio/gpio-cs5535.ko
/lib/modules/3.2.0-2-686-pae/kernel/drivers/gpio/gpio-ml-ioh.ko
/lib/modules/3.2.0-2-686-pae/kernel/drivers/gpio/gpio-pch.ko
/lib/modules/3.2.0-2-686-pae/kernel/drivers/gpio/gpio-vx855.ko
/lib/modules/3.2.0-2-686-pae/kernel/drivers/mfd/pcf50633-gpio.ko
# cat /boot/config-3.2.0-2-686-pae | grep -i gpio
CONFIG_GENERIC_GPIO=y
# CONFIG_MTD_GPIO_ADDR is not set
# CONFIG_MDIO_GPIO is not set
# CONFIG_KEYBOARD_GPIO is not set
# CONFIG_KEYBOARD_GPIO_POLLED is not set
# CONFIG_MOUSE_GPIO is not set
# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
CONFIG_SCx200_GPIO=m
CONFIG_PC8736x_GPIO=m
CONFIG_NSC_GPIO=m
# CONFIG_I2C_GPIO is not set
# CONFIG_SPI_GPIO is not set
# CONFIG_PPS_CLIENT_GPIO is not set
CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
CONFIG_GPIOLIB=y
# CONFIG_DEBUG_GPIO is not set
# CONFIG_GPIO_SYSFS is not set
# Memory mapped GPIO drivers:
# CONFIG_GPIO_GENERIC_PLATFORM is not set
# CONFIG_GPIO_IT8761E is not set
# CONFIG_GPIO_SCH is not set
CONFIG_GPIO_VX855=m
# I2C GPIO expanders:
# CONFIG_GPIO_MAX7300 is not set
# CONFIG_GPIO_MAX732X is not set
# CONFIG_GPIO_PCA953X is not set
# CONFIG_GPIO_PCF857X is not set
# CONFIG_GPIO_ADP5588 is not set
# PCI GPIO expanders:
CONFIG_GPIO_CS5535=m
# CONFIG_GPIO_LANGWELL is not set
CONFIG_GPIO_PCH=m
CONFIG_GPIO_ML_IOH=m
# CONFIG_GPIO_RDC321X is not set
# SPI GPIO expanders:
# CONFIG_GPIO_MAX7301 is not set
# CONFIG_GPIO_MCP23S08 is not set
# CONFIG_GPIO_MC33880 is not set
# CONFIG_GPIO_74X164 is not set
# AC97 GPIO expanders:
# MODULbus GPIO expanders:
# CONFIG_W1_MASTER_GPIO is not set
# CONFIG_CHARGER_GPIO is not set
# CONFIG_SENSORS_GPIO_FAN is not set
# CONFIG_MFD_SM501_GPIO is not set
CONFIG_PCF50633_GPIO=m
# CONFIG_REGULATOR_GPIO is not set
# CONFIG_USB_GPIO_VBUS is not set
# CONFIG_LEDS_PCA9532_GPIO is not set
# CONFIG_LEDS_GPIO is not set
# CONFIG_LEDS_TRIGGER_GPIO is not set
Siehe auch Documentation/*gpio*.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
- habakug
- Moderator
- Beiträge: 4314
- Registriert: 23.10.2004 13:08:41
- Lizenz eigener Beiträge: MIT Lizenz
Re: Hilfe bei GPIO gesucht
Hallo!
Entscheidend ist wohl
Dann ist das Verzeichnis auch da
Beschreibbar ist es nicht ohne gpio-Treiber
Für dieses [1] Gerät gibt es z.B. Treiber. Oder man findet ein nützliches Modul
Gruß, habakug
[1] http://www.totalphase.com/products/aard ... zAodA3wXHw
[2] http://www.mjmwired.net/kernel/Documentation/gpio.txt
Entscheidend ist wohl
Code: Alles auswählen
CONFIG_GPIO_SYSFS=y
Code: Alles auswählen
# ls /sys/class/gpio/
export unexport
Code: Alles auswählen
# echo 47 > /sys/class/gpio/export
-bash: echo: write error: Invalid argument
Code: Alles auswählen
# grep gpio /lib/modules/3.3.2-1/*
[...]
/lib/modules/3.3.2-1/modules.order:kernel/drivers/gpio/gpio-cs5535.ko
/lib/modules/3.3.2-1/modules.order:kernel/drivers/gpio/gpio-sch.ko
/lib/modules/3.3.2-1/modules.order:kernel/drivers/mfd/pcf50633-gpio.ko
[...]
/lib/modules/3.3.2-1/modules.symbols:alias symbol:bttv_gpio_enable bttv
/lib/modules/3.3.2-1/modules.symbols:alias symbol:pcf50633_gpio_invert_set pcf50633_gpio
/lib/modules/3.3.2-1/modules.symbols:alias symbol:ivtv_reset_ir_gpio ivtv
/lib/modules/3.3.2-1/modules.symbols:alias symbol:cx18_reset_ir_gpio cx18
/lib/modules/3.3.2-1/modules.symbols:alias symbol:try_test_sas_gpio_gp_bit libsas
[1] http://www.totalphase.com/products/aard ... zAodA3wXHw
[2] http://www.mjmwired.net/kernel/Documentation/gpio.txt
Re: Hilfe bei GPIO gesucht
Damit hat das OS und selbst das BIOS nichts zu tun (irgend was muss das Board ja von sich aus können); das macht der Chipsatz, bei dem es entweder auch nur GPIOs sind, deren Funktion erst dessen Firmware bestimmt, oder es ist einfach so vom Schaltungsdesign angelegt - alles sehr unterschiedlich.purzel hat geschrieben:Werden nicht die Starttaster,Leds usw auf dem Motherboard auch als GPIO vom OS verwaltet?
Dann muss doch ein Treiber vorhanden sein.
Warum wird das dann erfolgreich versteckt?
Gruß cirrussc
--------------------
„Der Mensch steigert zur Zeit die Nutzung dessen, was seiner Willkür unterliegt - und kommt sich sehr klug dabei vor.“ H. Gruhl
--------------------
„Der Mensch steigert zur Zeit die Nutzung dessen, was seiner Willkür unterliegt - und kommt sich sehr klug dabei vor.“ H. Gruhl
Re: Hilfe bei GPIO gesucht
Schoenen Dank fuer die Hilfe
Ich habe erkannt das ich ohne ein fuer mich speziellen Kernel ich mein
Problem nicht loesen kann.
Da das Kernelbacken fuer mich absoluted Neuland ist, habe ich beschlossen
das Backen in die Wintermonate zu legen.
Die Sommerzeit will ich nutzen um mich schlau zu machen.
Hinweise auf gute Buecher, links ,Anleitungen usw.
werden dankend entgegengenommen.
****************************
Aber was bedeutet das =m
bei CONFIG_GPIO_CS5535=m
?
****************************
Nun moechte ich berichten was ich meine verstanden zu haben.
Sind Fehler vorhanden, Bitte berichtigen.
Der Linux-Kernel wird als Qellcode angeboten
Daraus machen die Debian-Kernel-Baecker Kernel fuer
alpha, amd64, armel, hppa, ia64, i386, mips, mipsel, powerpc, sparc,
s390
Nun wird beim backen je nach Prozessortyp die Backmischung unterschiedlich
zusammengesetzt.
Wird bei armel die wuerze GPIO beigemischt, so wird sie bei i386 weggelassen.
Daraus folgt , moechte man beim i386 das Gewuerz GPIO haben ,
dann muss man sich den Kernel selber backen.
Nun braucht man ein Backbuch (Liste) in der die Backzutaten drinstehen.
Das ist die Datei /boot/config-`uname -r`
Diese irgendwo hinkopieren , wo man sie mit dem Editor bearbeiten kann
Denn nun kommt die Schweinearbeit
Das Erstellen der Backmischung
Es giebt eine Unmenge von Zutaten die man mit Sicherheit nie
brauchen wird und deshalb entfernen koennte.
Mein Problem ist es aber zur Zeit rauszufinden was die einzelnen
Anweisungen bewirken.
Wer helfen kann , den bitte ich das zu tun.
purzel
Ich habe erkannt das ich ohne ein fuer mich speziellen Kernel ich mein
Problem nicht loesen kann.
Da das Kernelbacken fuer mich absoluted Neuland ist, habe ich beschlossen
das Backen in die Wintermonate zu legen.
Die Sommerzeit will ich nutzen um mich schlau zu machen.
Hinweise auf gute Buecher, links ,Anleitungen usw.
werden dankend entgegengenommen.
****************************
Aber was bedeutet das =m
bei CONFIG_GPIO_CS5535=m
?
****************************
Nun moechte ich berichten was ich meine verstanden zu haben.
Sind Fehler vorhanden, Bitte berichtigen.
Der Linux-Kernel wird als Qellcode angeboten
Daraus machen die Debian-Kernel-Baecker Kernel fuer
alpha, amd64, armel, hppa, ia64, i386, mips, mipsel, powerpc, sparc,
s390
Nun wird beim backen je nach Prozessortyp die Backmischung unterschiedlich
zusammengesetzt.
Wird bei armel die wuerze GPIO beigemischt, so wird sie bei i386 weggelassen.
Daraus folgt , moechte man beim i386 das Gewuerz GPIO haben ,
dann muss man sich den Kernel selber backen.
Nun braucht man ein Backbuch (Liste) in der die Backzutaten drinstehen.
Das ist die Datei /boot/config-`uname -r`
Diese irgendwo hinkopieren , wo man sie mit dem Editor bearbeiten kann
Denn nun kommt die Schweinearbeit
Das Erstellen der Backmischung
Es giebt eine Unmenge von Zutaten die man mit Sicherheit nie
brauchen wird und deshalb entfernen koennte.
Mein Problem ist es aber zur Zeit rauszufinden was die einzelnen
Anweisungen bewirken.
Wer helfen kann , den bitte ich das zu tun.
purzel
- schorsch_76
- Beiträge: 2630
- Registriert: 06.11.2007 16:00:42
- Lizenz eigener Beiträge: MIT Lizenz
Re: Hilfe bei GPIO gesucht
Um rauszufinden was für einen GPIO Chip du hast hilft nur Konsultation des Handbuches/Datenblattes deines Mainboards. Auch könnte pspci bzw lsusb hilfreich sein.
Evtl. auch ein Blick auf das Board
Gruß
schorsch
Evtl. auch ein Blick auf das Board
Gruß
schorsch
Re: Hilfe bei GPIO gesucht
Hallo schorsch_76
Wenn ich das richtig sehen sind die 10GPIO ports ein
"Ueberbleibsel " aus der IHC9R
Ansonsten ist das Board ein
Jetway NF99FL-525
Also Atom mit IHC9R
purzel
Wenn ich das richtig sehen sind die 10GPIO ports ein
"Ueberbleibsel " aus der IHC9R
Ansonsten ist das Board ein
Jetway NF99FL-525
Also Atom mit IHC9R
purzel
Re: Hilfe bei GPIO gesucht
=m - Modulpurzel hat geschrieben:Aber was bedeutet das =m
bei CONFIG_GPIO_CS5535=m?
=y - fest einkompiliert
ohne - deaktiviert
Hinzuzufügen wäre, dass die Kernel-Entwickler mit dem Quellcode vorgeben, für welche Zielarchitekturen der Kernel gebaut werden, also lauffähig sein, kann.purzel hat geschrieben:Daraus machen die Debian-Kernel-Baecker Kernel fuer
alpha, amd64, armel, hppa, ia64, i386, mips, mipsel, powerpc, sparc,
s390
Das weniger, das ist mehr eine Sache der verbauten Komponenten, als der CPU Architektur. Die Debiankernel sind eigentlich sehr reichhaltig bestückt, so dass sie eben auf sehr vieler verschiedener Hardware gut lauffähig sind. Natürlich wird man in einen ARM oder MIPS Kernel nichts einbauen können, was exklusiv nur auf der PC-Plattform vorhanden ist. Da beispielsweise die zwei genannten CPU Familien vorwiegend in eingebetteten Systemen - also grundlegend extrem unterschiedlicher Hardware - verbaut sind, wird man für solche eh jeden Kernel speziell konfigurieren müssen.Wird bei armel die wuerze GPIO beigemischt, so wird sie bei i386 weggelassen.
Um nochmal auf die Würze zu kommen: Diese bestünde also nur in der Konfiguration des Kernels. Den Quellcode durch Patches zu verändern, ist eine ganz andere Sache.
Naja die Konfiguration wird von make im Quellcodeverzeichniss als .config angelegt. Als Konfigurationstargets stehen i.d.R. zur Verfügung: make (g|menu|x)config; diese sind dem bloßen Bearbeiten der Konfig in jedem Fall vorzuziehen, da hier gleich unmögliche Kombinationen von Schaltern vermieden werden und gleich, wenn vorhanden, Hilfetexte zu den Optionen gezeigt werden können. make help im Kernelquellcodeverzeichnis zeigt noch mehr wichtiges.Nun braucht man ein Backbuch (Liste) in der die Backzutaten drinstehen.
Das ist die Datei /boot/config-`uname -r`
Diese irgendwo hinkopieren , wo man sie mit dem Editor bearbeiten kann
Denn nun kommt die Schweinearbeit
Das Erstellen der Backmischung
Um überhaupt erst mal einen lauffähige eigenen Kernel gebacken zu bekommen, braucht ein Anfänger gewöhnlich einige Versuche, ihn auch noch optimal anzupassen sogar sehr viele, das ist ganz normal.
Gruß cirrussc
--------------------
„Der Mensch steigert zur Zeit die Nutzung dessen, was seiner Willkür unterliegt - und kommt sich sehr klug dabei vor.“ H. Gruhl
--------------------
„Der Mensch steigert zur Zeit die Nutzung dessen, was seiner Willkür unterliegt - und kommt sich sehr klug dabei vor.“ H. Gruhl