Cubietruck und WiringPi (Debianpakete)

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
smutbert
Beiträge: 6344
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Cubietruck und WiringPi (Debianpakete)

Beitrag von smutbert » 07.12.2017 13:54:51

Hallo,


ein paar Leute im Forum verwenden ja den Cubietruck – für die könnte das interessant sein (oder auch nicht):

Worum es geht

WiringPi bzw. eine Portierung davon. wiring ist eine Software zum Ansprechen der gpios des Arduino und WiringPi bietet ähnliches am Raspberry Pi. Jemand hat dann das ganze auf ein Cubieboard (1 und/oder 2) portiert (oder neu geschrieben?) und WiringCB genannt.
In einem italienischen (?) Forum habe ich dann von einer Portierung namens WiringCT auf den Cubietruck gelesen, bei der allerdings viele Dinge nicht funktioniert haben.
Im nicht mehr existierenden Cubieboard Forum hat sich ein Mitglied namens gkoala der Software erbarmt und auf Basis von WiringBP, einer Version für den Banana Pi Pro, tatsächlich eine hervorragend funktionierende Variante für den Cubietruck hervorgebracht und zur Verfügung gestellt.

Das Kompilieren und Installieren war immer eine etwas mühsame Angelegenheit, weil es ein Quellcodearchiv mit mehreren build-Skripten mit sudo-Befehlen drin, Makefiles, einer setup.py für den python-Teil und ein paar Fehler enthält, aber nachdem man diese Hürde gemeistert hat, läuft es nach allem was ich sagen kann problemlos.
Jedenfall habe ich daraus nun ein paar Debianpakete gezimmert, die ich natürlich auch herausrücke (deshalb dieser Thread), wenn jemand Interesse hat.

die Pakete

Getestet habe ich die Pakete auf einem, nach der Anleitung im offiziellen Debian Wiki [1], installierten stretch. Weil die Software direkt auf »/dev/mem« zugreift ist der Kernelparameter »iomem=relaxed« notwendig. Die einzelnen Pakete sind
  • wiringpi_2-1.deb
    Das Paket enthält das Kommandozeilentool »gpio« und die C Bibliothek. Dieses Paket habe ich mit dpkg-deb gepackt, deshalb kann ich nur das Binärpaket und das unveränderte Quellcodearchiv von gkoala anbieten und kein Debian-Quellcodepaket, das auch den Code für die folgenden beiden Pakete enthält.
Diese Pakete beinhalten den python-Wrapper und sie wurden mit Debianpython-stdeb gebaut, weshalb es die Binärpakete und ein Quellcodepaket gibt:
  • python-wiringpi2_1.0.10-1_armhf.deb
  • python-wiringpi2-dbgsym_1.0.10-1_armhf.deb
Die ganze Software steht unter der GNU General Public License 3.
Zum Download kann ich es nirgends anbieten, aber alles zusammen ist weniger als 1 MB gross, sollte sich also recht einfach per Mail verschicken lassen.

ein Beispiel

Ein Beispiel zur Verwendung habe ich auch noch. Mit »gpio« lassen sich die gpio-Pins aus der Kommandozeile manipuluieren und es kann auch eine Übersicht über den Zustand anzeigen

Code: Alles auswählen

# gpio readall
 +-----+-----+---------+------+---+--CubieTruck--+---+--+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 |     |     |      0v |      |   |  1 || 2  |   |      | 3.3v    |     |     |
 |     |     |    AVCC |      |   |  3 || 4  |   |      | RESET   |     |     |
 |   0 |   8 |    PC19 |   IN | 0 |  5 || 6  | 0 | IN   | PC21    | 9   | 1   |
 |   2 |  10 |    PC20 |   IN | 0 |  7 || 8  | 0 | IN   | PC22    | 11  | 3   |
 |   4 |  12 |    PB14 |   IN | 0 |  9 || 10 | 0 | IN   | PB16    | 13  | 5   |
 |   6 |  14 |    PB15 |   IN | 0 | 11 || 12 | 0 | IN   | PG17    | 15  | 7   |
 |     |     |      0v |      |   | 13 || 14 |   |      | 0v      |     |     |
 |   8 |  16 |    PI20 |   IN | 0 | 15 || 16 | 0 | IN   | PI14    | 17  | 9   |
 |  10 |  18 |    PI21 |   IN | 0 | 17 || 18 | 0 | IN   | PI15    | 19  | 11  |
 |  12 |  20 | PI3PWM1 | ALT5 | 0 | 19 || 20 | 0 | IN   | PB3     | 21  | 13  |
 |  14 |  22 | PB2PWM0 | ALT5 | 0 | 21 || 22 | 0 | ALT5 | PB4     | 23  | 15  |
 |  16 |  24 |    PB18 | ALT5 | 0 | 23 || 24 |   |      | LINEINL |     |     |
 |  17 |  25 |    PB19 | ALT5 | 0 | 25 || 26 |   |      | LINEINR |     |     |
 |     |     |    CVBS |      |   | 27 || 28 |   |      | LRADC0  |     |     |
 |     |     |      5v |      |   | 29 || 30 |   |      | LRADC1  |     |     |
 |     |     |    3.3v |      |   | 31 || 32 |   |      | 3.3v    |     |     |
 |  18 |  26 |     PG0 |   IN | 0 | 33 || 34 | 0 | IN   | PG3     | 27  | 19  |
 |  20 |  28 |     PG2 |   IN | 0 | 35 || 36 | 0 | IN   | PG1     | 29  | 21  |
 |  22 |   0 |     PG4 |   IN | 0 | 37 || 38 | 0 | IN   | PG5     | 1   | 23  |
 |  24 |   2 |     PG6 |   IN | 0 | 39 || 40 | 0 | IN   | PG7     | 3   | 25  |
 |  26 |   4 |     PG8 |   IN | 0 | 41 || 42 | 0 | IN   | PG9     | 5   | 27  |
 |  28 |   6 |    PG10 |   IN | 0 | 43 || 44 | 0 | IN   | PG11    | 7   | 29  |
 |     |     |      0v |      |   | 45 || 46 |   |      | 0v      |     |     |
 |     |     |      XP |      |   | 47 || 48 |   |      | TVIN0   |     |     |
 |     |     |      XN |      |   | 49 || 50 |   |      | TVIN1   |     |     |
 |     |     |      YP |      |   | 51 || 52 |   |      | TVIN2   |     |     |
 |     |     |   XN-BT |      |   | 53 || 54 |   |      | TVIN3   |     |     |
 |  30 |  30 |  LED gr |  OUT | 0 | 55 || 56 | 0 | OUT  | LED wh  | 31  | 31  |
 |  32 |  32 |  LED or |  OUT | 0 | 57 || 58 | 0 | OUT  | LED bl  | 33  | 33  |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+--CubieTruck--+------+---------+-----+-----+
Für C verweise ich einfach einmal auf das Paket, in »/usr/share/doc/wiringpi« liegen ein paar Beispiele (die allerdings in keiner Weise auf den Cubietruck angepasst sind).
Für python habe ich aber ein Beispiel parat. Mit einer led.py mit diesem Inhalt NoPaste-Eintrag40081 kann man die vier LEDs des Cubietruck nacheinander pulsieren lassen

Code: Alles auswählen

# python led.py
(einen mir bekannten Bug gibt es allerdings, Pull-Up und Pull-Down sind in python vertauscht.)

Ich hoffe es ist ok, wenn ich das hier in einem eigenen Thread poste (für einen Wiki-Artikel hätte ich mir mehr Mühe geben müssen).

[1] https://wiki.debian.org/InstallingDebianOn/Allwinner
Zuletzt geändert von smutbert am 13.12.2017 22:57:22, insgesamt 1-mal geändert.

Benutzeravatar
Meillo
Moderator
Beiträge: 5054
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Cubietruck und WiringPi (Debianpakete)

Beitrag von Meillo » 13.12.2017 17:21:47

Bevor hier gar niemand was sagt, sage ich mal danke fuer die Muehe! Wahrscheinlich hast du uns mit den Inhalten etwas erschlagen. Ich jedenfalls habe mir den Beitrag gebookmarked, um ihn konsultieren zu koennen, wenn ich mich wieder mit meinem Cubietruck beschaeftige.


Btw: Eine Wikiseite muss auch nicht besser ausgearbeitet sein als ein Forenpost ... zumal im Wiki auch andere die Moeglichkeit haben, die Inhalte zu verbessern, im Gegensatz zu hier, wo nur du deinen Post bearbeiten kannst. Also traue dich, die Inhalte ins Wiki zu legen und im Forum dann nur die neue Wikiseite anzukuendigen.

... es waere ziemlich cool, wenn wir eine Wikiseite mit Informationen zum Cubietruck haetten, die die Inhalte der verschiedenen Threads gesammelt anbietet.
Use ed(1) once in a while!

Benutzeravatar
niemand
Beiträge: 11626
Registriert: 18.07.2004 16:43:29

Re: Cubietruck und WiringPi (Debianpakete)

Beitrag von niemand » 13.12.2017 17:41:18

smutbert hat geschrieben: ↑ zum Beitrag ↑
07.12.2017 13:54:51
Zum Download kann ich es nirgends anbieten
Wenn’s am Platz/Webspace scheitert: den könnte ich zur Verfügung stellen.
Hardware: dunkelgrauer Laptop mit buntem Display (zum Aufklappen!) und eingebauter Tastatur; beiger Klotz mit allerhand Kabeln und auch mit Farbdisplay und Tastatur (je zum auf’n Tisch Stellen)
Am 7. Tag aber sprach der HERR: „QWNoIFNjaGVpw58sIGtlaW5lbiBCb2NrIG1laHIgYXVmIGRlbiBNaXN0ISBJY2ggbGFzcyBkYXMgamV0enQgZWluZmFjaCBzbyDigKYK“

Benutzeravatar
smutbert
Beiträge: 6344
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Cubietruck und WiringPi (Debianpakete)

Beitrag von smutbert » 13.12.2017 22:53:34

Meillo hat geschrieben: ↑ zum Beitrag ↑
13.12.2017 17:21:47
Bevor hier gar niemand was sagt, […]
und da hat niemand auch schon etwas gesagt :wink:

ich wollte niemand, ich meine keinesfalls jemanden erschlagen. Die Portierung auf den Cubietruck stammt wie gesagt nicht von mir und die Pakete habe ich vor allem für mich selbst gebaut :mrgreen: also nichts zu danken.
(WiringPi ist die erste Bibliothek zur Interaktion mit den gpio-Pins, mit der ich in Berührung gekommen bin, obwohl ich noch nie etwas mit einem Arduino, vom dem wiring ja kommt, zu tun hatte. Wahrscheinlich bevorzuge ich sie deshalb gegenüber anderen Bibliotheken – zumindest am Raspberry Pi gäbe es ja genug Alternativen.)

Im Cubieboard Forum haben mich schon Leute per PN um das WiringCB/CT-Archiv gebeten (und in weiterer Folge auch Hilfe bei der Installation benötigt). Nun da das Cubieboard Forum längst Geschichte ist und ich es geschafft habe Debianpakete zu bauen, dachte ich es wäre der richtige Zeitpunkt einen Thread zu erstellen, damit auch andere davon profitieren können, auch wenn das ganze etwas spät kommt.
niemand hat geschrieben: ↑ zum Beitrag ↑
13.12.2017 17:41:18
smutbert hat geschrieben: ↑ zum Beitrag ↑
07.12.2017 13:54:51
Zum Download kann ich es nirgends anbieten
Wenn’s am Platz/Webspace scheitert: den könnte ich zur Verfügung stellen.
Gut zu wissen, vielen Dank.
Aber warten wir lieber einmal ob es überhaupt (außer vielleicht Meillo und mir) Interessenten gibt

Benutzeravatar
felixspb
Beiträge: 1
Registriert: 19.12.2017 20:13:16

Re: Cubietruck und WiringPi (Debianpakete)

Beitrag von felixspb » 19.12.2017 20:59:29

Hallo, ich sage auch etwas ... :)
Im Cubieboard Forum haben mich schon Leute per PN um das WiringCB/CT-Archiv gebeten (und in weiterer Folge auch Hilfe bei der Installation benötigt). Nun da das Cubieboard Forum längst Geschichte ist und ich es geschafft habe Debianpakete zu bauen, dachte ich es wäre der richtige Zeitpunkt einen Thread zu erstellen, damit auch andere davon profitieren können, auch wenn das ganze etwas spät kommt.
Danke das du dir die Arbeit gemacht hast, ich habe auch Interesse an den Paketen. Aber leider ist das Forum weg - jetzt, wo ICH ausgeschlafen habe und mir die Sender und Empfänger bestellt habe. ....Forum weg... verflixt ! Dabei wollte ich zu Weihnachten die Funksteckdosen mit dem CT steuern :D
Jetzt habe ich deinen Beitrag hier gefunden und bitte dich um die Pakete und ggfs. um etwas Hilfe.
Ich habe Igors Image drauf. Läuft auch alles recht gut.

mein CT:

Code: Alles auswählen

 ARMBIAN 5.36 user-built Ubuntu 16.04.3 LTS 4.13.16-sunxi
da schon die
1. Frage: Passen deine Pakete? Eigentlich sollte es ja problemlos zu installieren sein...
2. Frage: Kannst du einen kurzen Kommentar des Ablaufs zur Installation geben? (Reihenfolge etc) ( wird wohl doch bald ein Wiki Eintrag werden :THX: )

Danke schonmal für deine Unterstützung

der felixspb

Benutzeravatar
smutbert
Beiträge: 6344
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Cubietruck und WiringPi (Debianpakete)

Beitrag von smutbert » 19.12.2017 23:52:22

1. Also bei armbian in der Debianvariante sollte alles passen (armbian ist ja auch nur ein vorkonfiguriertes Debian mit eigenem Kernel), die Ubuntu-Varianten kenne ich nicht, wird aber wahrscheinlich/hoffentlich auch funktionieren, ohne dass etwas neu gebaut werden muss
2. Die Reihenfolge sollte egal sein, einfach die Pakete mit "dpkg -i ..." installieren.

Einen einzigen Hinweis zur Nutzung habe ich im noch Vorhinein, weil es mich etwas Zeit gekostet hat das herauszufinden. Aufgrund von Sicherheitsmaßnahmen, die den Zugriff auf /dev/mem einschränken ist der Kernelparameter »iomem=relaxed« notwendig, zumindest bei einem reinem Debian, wie es bei armbian aussieht weiß ich nicht.

leporo
Beiträge: 1
Registriert: 27.03.2018 15:13:38

Re: Cubietruck und WiringPi (Debianpakete)

Beitrag von leporo » 30.03.2018 11:35:53

Heyho!

Also besser kann timing nicht sein - ich habe Anfang des Jahres beschlossen meine Wohnung zu automatisieren und da ich noch einen Cubietruck rumfliegen hatte...

@felixspb: Auf meinem CT mit

Code: Alles auswählen

ARMBIAN 5.38 stable Ubuntu 16.04.4 LTS 3.4.113-sun7i
ließen sich die Pakete von smutbert problemlos installieren (apt install .//PFAD/ZUR/PAKETDATEI.deb), es brauchte keinen Kernelparameter und nichts, alles lief out-of-the-box.

Entsprechend ließ sich auch raspberry-remote compilieren, der CT kann als nun mit einem angeschlossenen 433MHz Sender Funksteckdosen kontrollieren. Zusätzlich hat er genug Leistung für eine OpenHAB2 Installation, so dass der Automatisierung nichts mehr im Wege steht.

Vielen, vielen dank an smutbert für die Pakete!

Grüße,
Josef

Benutzeravatar
smutbert
Beiträge: 6344
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Cubietruck und WiringPi (Debianpakete)

Beitrag von smutbert » 30.03.2018 17:34:39

leporo hat geschrieben: ↑ zum Beitrag ↑
30.03.2018 11:35:53
[…] es brauchte keinen Kernelparameter und nichts, alles lief out-of-the-box.
[…]
Das liegt vermutlich an armbian. Unter Debian ist der Kernelparameter notwendig.

Danke für die Rückmeldung!

Antworten