Cubietruck und WiringPi (Debianpakete)

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
smutbert
Moderator
Beiträge: 8315
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: 8782
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 once in a while!

DeletedUserReAsG

Re: Cubietruck und WiringPi (Debianpakete)

Beitrag von DeletedUserReAsG » 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.

Benutzeravatar
smutbert
Moderator
Beiträge: 8315
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
Moderator
Beiträge: 8315
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
Moderator
Beiträge: 8315
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!

DerKoerper
Beiträge: 1
Registriert: 24.10.2018 21:38:24

Re: Cubietruck und WiringPi (Debianpakete)

Beitrag von DerKoerper » 25.10.2018 17:57:37

Moin,

bei meinem

Code: Alles auswählen

ARMBIAN 5.60 stable Debian GNU/Linux 9 (stretch) 4.14.70-sunxi
läuft deine Bibliothek out-of-the-box! Musste auch keinen Kernel-Parameter setzen.

Vielen Dank für die Arbeit, habe schon ne Weile nach sowas gesucht gehabt. Wenn du ein wenig Werbung im FHEM-Forum machst findest du sicherlich noch einige Kunden :mrgreen:

Grüße
Richard

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

Re: Cubietruck und WiringPi (Debianpakete)

Beitrag von smutbert » 25.10.2018 21:43:22

Gerne, es ist schön zu wissen, dass ich mich nicht umsonst bemüht habe, auch wenn ich nur für den Bau der Pakete verantwortlich bin.

Auch ohne FHEM-Forum hat sich gestern mein „Kundenkreis“ verdoppelt (von 2 auf 4 an einem Tag gegenüber dem Anstieg von 0 auf 2 in den etwa 11 Monaten davor :mrgreen:).

tranceponder
Beiträge: 1
Registriert: 04.02.2019 20:30:28

Re: Cubietruck und WiringPi (Debianpakete)

Beitrag von tranceponder » 04.02.2019 21:02:48

Hallo smutbert,
ich beschäftige mich zur Zeit mit der Ansteuerung von LED-Stripes.
Da ich einen CT besitze und dieser momentan keine andere Aufgabe hat, würde ich diesen gern zur Ansteuerung benutzen.
Durch Zufall bin ich auf Deinen Beitrag hier im Forum gestossen.
Könntest Du mir bitte die Debian Pakete zukommen lassen?

Vielen Dank und beste Grüße

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

Re: Cubietruck und WiringPi (Debianpakete)

Beitrag von smutbert » 05.02.2019 17:40:49

ich hab dir bereits eine PN geschrieben.

sitaro99
Beiträge: 1
Registriert: 24.03.2019 10:42:16

Re: Cubietruck und WiringPi (Debianpakete)

Beitrag von sitaro99 » 24.03.2019 10:44:40

Hallo,

ich kämpfe da auch damit, könntest Du mir bitte das Packet schicken?

Gruss

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

Re: Cubietruck und WiringPi (Debianpakete)

Beitrag von smutbert » 26.03.2019 20:01:55

entschuldige die Verzögerung, aber jetzt hast du eine PN.

DeletedUserReAsG

Re: Cubietruck und WiringPi (Debianpakete)

Beitrag von DeletedUserReAsG » 26.03.2019 20:04:38

Wär’s nicht einfacher, das irgendwo hochzuladen?

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

Re: Cubietruck und WiringPi (Debianpakete)

Beitrag von smutbert » 24.06.2019 15:16:04

Ja, wäre es, wenn ich die Geduld und Lust hätte die Pakete wirklich zu pflegen.
Nachdem sich die Zahl der Interessenten insgesamt noch immer im einstelligen Bereich bewegt, denen ich einfach alles schicke was ich habe und das ist weniger als 1 MB, halte ich es so für einfacher.

Bei meinem Bastelprojekt habe ich jetzt von armbian auf Debian buster umgestellt und dabei den Umstieg von python2 auf python3 vollzogen. Weil ich es selbst nicht mehr verwende und es sich nicht so einfach bauen/kompilieren lässt, habe ich es aufgegeben weiterhin das Paket für das Kommanodzeilen-Tool »gpio« und die c/c++-Bibliothek (wiringpi) zu bauen und auch die python2-Version baue ich nun nicht mehr.
Das einzige was ich nun noch baue ist das python3-Modul wiringpi2, das entgegen meiner bisherigen Vermutung auch ohne das c/c++-Paket funktioniert.

Einige andere Zusammenhänge verstehe ich nun auch etwas besser. Ich weiß, dass die Funktion WiringPiISR nicht funktioniert und das nicht aufgrund der Hardware (dem Cubietruck bzw, dem Allwinner A20) wie ich bisher vermutet habe, sondern offensichtlich weil es in dieser relativ alten WiringPi-Version irgendwo an der Schnittstelle zwischen c/c++-Bibliothek und python hakt. In späteren wiringpi-Versionen, bei denen das python-Modul nicht mehr wiringpi2 sondern einfach wiringpi heißt, wurde das behoben, aber ich sehe mich außerstande diese Änderungen in die Portierung auf den Cubietruck einzupflegen.

Die alten Pakete wie auch das python3-Paket stelle ich gerne zur Verfügung. Nach der Änderung im Forum, nach der neu registrierte Mitglieder keine PNs mehr versenden können, würde ich Interessenten bitten sich einfach hier im Thread zu melden.


Ich selbst würde allerdings, wenn ich jetzt ein neues Projekt mit dem Cubietruck anfinge, versuchen eines dieser, weniger umfangreichen python-Module zu verwenden. Gegenüber der alten wiringpi2-Version hat es meines Erachtens nur den Nachteil keine Pulsweitenmodulation zu unterstützen Beide sind wohl verwandt, nur das zweite versucht offensichtlich mehr unterschiedliche Platinen zu unterstützen. Soweit ich verstanden habe sollten aber beide auf allen Systemen mit dem Allwinner a20 laufen, man muss nur bei der Bezeichnung der Pins aufpassen, aber das muss man dank der vielen unterschiedlichen Bezeichnungsschemata auch mit wiringpi.

Antworten