Piface + neueste Raspbian Version macht Piface funktionslos

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo Forum,

    Ich habe bei meinem Raspberry Pi Model B Raspbian in der neuesten Version installiert und wollte mein Piface wieder in Betrieb nehmen. Ich bin nach der Anleitung von http://www.piface.org.uk/guides/Install…Digital_modules Also ein apt - get install python3-pifacedigital-emulator sollte reichen um den Emulator zu installieren. Nach dem Reboot erscheint das Icon, aber es startet nicht.

    Über das Terminal kommt diese Fehlermeldung:

    $ pifacedigital-emulator
    Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/pifacecommon/interrupts.py", line 363, in bring_gpio_interrupt_into_userspace
    with open(GPIO_INTERRUPT_DEVICE_VALUE):
    IOError: [Errno 2] No such file or directory: '/sys/devices/virtual/gpio/gpio25/value'

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File "/usr/bin/pifacedigital-emulator", line 3, in <module>
    pfd = emu.PiFaceDigital()
    File "/usr/lib/python3/dist-packages/pifacedigital_emulator/core.py", line 91, in __init__
    hardware_addr, bus, chip_select, init_board)
    File "/usr/lib/python3/dist-packages/pifacedigitalio/core.py", line 82, in __init__
    self.init_board()
    File "/usr/lib/python3/dist-packages/pifacedigitalio/core.py", line 114, in init_board
    self.enable_interrupts()
    File "/usr/lib/python3/dist-packages/pifacedigitalio/core.py", line 86, in enable_interrupts
    self.gpio_interrupts_enable()
    File "/usr/lib/python3/dist-packages/pifacecommon/interrupts.py", line 210, in gpio_interrupts_enable
    bring_gpio_interrupt_into_userspace()
    File "/usr/lib/python3/dist-packages/pifacecommon/interrupts.py", line 368, in bring_gpio_interrupt_into_userspace
    export_file.write(str(GPIO_INTERRUPT_PIN))
    IOError: [Errno 16] Device or resource busy
    Exception AttributeError: "'PiFaceDigital' object has no attribute 'fd'" in <bound method PiFaceDigital.__del__ of <pifacedigital_emulator.core.PiFaceDigital object at 0xb6981e50>> ignored

    Einmal editiert, zuletzt von 8PABenny (11. Februar 2015 um 21:39)

  • Piface + neueste Raspbian Version macht Piface funktionslos? Schau mal ob du hier fündig wirst!

  • Hallo Benny,

    guckst Du hier.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (12. Oktober 2017 um 00:46)

  • Das PiFace funktioniert nach wie vor, aber wie ganz viele hier (und überall :lol: ) hast auch Du die README der Version nicht gelesen. Inzwischen hat es sich rumgesprochen, dass der neue Kernel "device tree" (DT) unterstützt.
    Also wenn Du die Module nach alter Anleitung geladen hast, musst Du DT deaktivieren. Dazu kannst Du in der /boot/config.txt den Eintrag

    Code
    device_tree=

    eintragen. Dann geht alles so wie "früher".
    Willst Du mit der Zeit gehen, solltest Du Dir mal das hier ansehen: https://raspiprojekt.de/anleitungen/ha…evice-tree.html

    • Offizieller Beitrag

    Wenn dieses wirr-war an config parametern als "mit-der-zeit-gehen" gilt...bleib ich lieber ein altmodischer Griesgram....

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.


  • Wenn dieses wirr-war an config parametern als "mit-der-zeit-gehen" gilt...bleib ich lieber ein altmodischer Griesgram....

    DT ist eigentlich nichts neumodisches. Die Foundation hat es nur versäumt von Anfang an diesen für moderne Linuxdistributionen üblichen Weg zu gehen. Gerade für den RasPi wäre das von Anfang an der bessere Weg gewesen. Es ist die für Linux empfohlene Methode, um Geräte anzusprechen. Andere "embedded" Systeme nutzen das bereits schon bedeutend länger und sind dadurch natürlich viel flexibler.

  • Hallo Jörg,


    Das PiFace funktioniert nach wie vor, aber wie ganz viele hier (und überall :lol: ) hast auch Du die README der Version nicht gelesen. Inzwischen hat es sich rumgesprochen, dass der neue Kernel "device tree" (DT) unterstützt.
    Also wenn Du die Module nach alter Anleitung geladen hast, musst Du DT deaktivieren. Dazu kannst Du in der /boot/config.txt den Eintrag

    Code
    device_tree=

    eintragen. Dann geht alles so wie "früher".
    Willst Du mit der Zeit gehen, solltest Du Dir mal das hier ansehen: https://raspiprojekt.de/anleitungen/ha…evice-tree.html

    EDIT 12-OKT-2017: Der Link lautet Gerätetreiber und device tree (DT)

    NÖ, eindeutig NÖ. ;) :cool:

    Es hat sich allem Anschein noch nicht bis in die letzten Zipfel der Republiken, der Monarchien, Grafschaften und sonstiger Staaten herumgesprochen, dass seit ein paar Tagen ein Kernel-Update von 3.12 auf 3.18 durchgeführt wurde, in dessen Zuge auch gleich DeviceTrees eingeführt wurden.

    Diese DeviceTrees wurden schon im letzten Sommer in mehreren Artikeln der Fachliteratuir angekündigt. Wir Raspbianer waren wohl die Letzten, die in diesen Genuss der Hochtechnologie kamen.

    Und schon steht alles still. Nix, was mit Schnittstellen zu tun hat, funktioniert so wie vorher. Zahlreiche Probleme wurden geschildert. Alle lassen sich mit Deinem Tutorial lösen.

    Aber da sich die Kunde dieser Thematik wirklich noch nicht bis überall verbreitet hat, werden ständig neue Probleme geschildert.

    Irgendwie kommt auch keiner auf die Idee, ähnliche Problemschilderungen zu lesen und auf die eigenen Probleme zu übertragen.

    Wenn mein I2C nicht will und ich lese, dass jemand mit SPI neuerdings Probleme hat, ist es irgendwie naheliegend, dessen Lösung (Dein Tutorial) anzuwenden.

    Das Gleiche gilt für SPI, GPIO, Kameraprobleme, Messprobleme bei Einsatz irgendwelcher Sensoren.

    Ich bin gespannt, wieviel Zeit noch in Republiken, Monarchien uind Grafschaften einziehen wird, bis auch der Letzte im hintersten Seitental einer Nebenschlucht des Schwarzwaldes davon Kenntnis erhalten haben mag.

    Bevor sich jemand diskriminiert fühlt: Ich lebe hinter einem Bergrücken eines Nebentales des Schwarzwaldes.


    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    2 Mal editiert, zuletzt von Andreas (12. Oktober 2017 um 00:44)

  • Danke für die schnelle Hilfe [emoji106] mit device tree ist wohl was an mir vorbei gegangen. Aber ist schon interessant für die Zukunft. Dann würden die Infos auf einem EEPROM sein und das Parameter Wirr Warr würde weniger werden.

  • Hallo Dreamshader,


    ehrlich: also ich bin mit dem "old style" so weit ganz zufrieden ...
    Einen echten Vorteil kann ich diesem device-tree Krams eher nicht abgewinnen ... ich lasse mich aber gerne vom Gegenteil überzeugen ...
    cu,
    -ds-

    Es gibt einen sog. DeviceTree-Compiler, mit dem sich die entsprechenden DeviceTrees "in den Kernel schießen lassen". Mal ganz flapsig formuliert.

    Gukschdu hier: http://www.raspberrypi.org/documentation/…onfiguration.md


    Damit ist es möglich, beliebig viele GPIO-Pins mit irgendwelchen Funktionalitäten zu versehen, erlaubte Stromstärken zu definieren. Wenn Du mehr serielle Schnittstellen brauchst: Setze sie mittels DeviceTree-Compiler. Brauchst Du mehr MISO/MOSI oder sonstwas, ja, genau: DeviceTree-Compiler.

    Für Leute, die wissen, was sie tun, ist das sicherlich eine ganz tolle Sache. Irgendwann wird sich jemand die Mühe gemacht haben, detailliert zusammenzustellen, was erlaubt ist und zu welchem Ergebnis welche Parameter führen.

    Für diejenigen, die nicht erahnen, was sie da eigentlich tun, werden sich ihr Spielzeug nach allen Regeln der Kunst verbrutzeln.

    Und damit das nicht passiert, deaktivieren wir alle ganz brav die DeviceTrees und definieren ganz brav unsere bisherigen Schnittstellen nach alter Väter Sitte.

    Best Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (11. Februar 2015 um 22:21)

  • Oh man, ich habe vorher gesucht. Und in raspi config ist mir der neue Eintrag Device Tree auch aufgefallen, aber dachte nun nicht im geringsten daran ,dass es damit zu tun hat. Man kann zwar von jedem erwarten das er vorher sucht, aber ich denke gerade als Anfänger ist es schwierig einen Zusammenhang zwischen manchen Problemen zu sehen und auch nach der richtigen Lösung zu suchen.

  • Hallo Jörg,

    den Artikel mit "zusammenkopiert" habe ich auch gerade gelesen. Dort werde ich mich aber nicht einbringen.

    :s Hmm, früher (als es noch kein Internet gab) hatten wir Bücher zum Erlernen von Programmiersprachen durchgearbeitet, Seite für Seite, in Zeitschriften seitenweise Listings abgeklimpert und über diese beiden Methoden programmieren gelernt und pfiffige Techniken entwickelt, bestehende Programme "optimiert".

    Aus einer Zeitschrift hatte ich ein Spiel (seitenweise data-Zeilen) abgetippt. ICh kam nie über das erste Level hinaus. Ich wollte wissen, was danach kommt. Ich wollte eine "Erleichterung", umd ins nächte Level zu kommen.

    Was habe ich gemacht? Allen Ernstes habe ich mir einen Disassembler programmiert und mir den Assembler-Code des Spiels angeschaut. Die Sprungtabelle zu den einzelnen Leveln hatte ich ganz schnell aufgespürt - und den ersten Teil meiner Neugier befriedigt.
    Für den zweiten Neugier habe ich mir gedacht, dass irgendein Register von 1 auf 0 gesetzt werden müsste. Alle Programmstellen hatten aber keinen Einfluss - also wieder mit dem selbstgeschriebenen Programm rückgängig gemacht. Die nächste Möglichkeit: Einen Interrupt unwirksam machen. Im Programm gab es vier Interrupt-gesteuerte Abschnitte. Einer von denen war's dann.

    Äh, so habe ich übrigens Assembler gelernt. Später folgten Matrizenmultikplikationen in Assembler, Datenbank-Programme mit Such- und Sortierroutinen in Assembler, ....

    Wenn ich sehe, dass heute Leute im IT-Umfeld "Software zusammenkopieren", keinen blassen Dunst haben, was Kopie-Teil1 und Kopie-Teil2 warum und wie überhaupt was machen - und die Sachen einfach so ins Forum gekippt werden, weil sich immer irgendein Dxxxxx findet, der sich mit Problemen anderer beschäftigt und deren hausgemachte Probleme löst, hmm, dann weiß ich, warum Freaks der späten 70er und früheren 80er des letzten Jahrtausend als Berater sowohl gut bezahlt als auch gut gesucht sind.


    Nichts gegen Jüngere - Programmieren kann jeder lernen, der es möchte.


    Benny: Kein Problem! Jeder hat mal ganz klein angefangen - und das sollte sich jeder immer vergegenwärtigen... und auf dem Teppich bleiben... dem Fliegenden Teppich :cool:

    Bevor ich hier rausfliege, fliege ich lieber selber :sleepy: ins Reich der Träume ...

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (11. Februar 2015 um 22:58)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!