Tonbandforum
Raspberry pi ??? - Druckversion

+- Tonbandforum (https://tonbandforum.de)
+-- Forum: Offtopic und Aktuelles (https://tonbandforum.de/forumdisplay.php?fid=62)
+--- Forum: Computer (https://tonbandforum.de/forumdisplay.php?fid=73)
+--- Thema: Raspberry pi ??? (/showthread.php?tid=19020)

Seiten: 1 2 3


Raspberry pi ??? - snzgl - 06.01.2019

Kurzer Anfang:

Ich habe mir einen Raspberry Pi zugelegt. (Genaue Bezeichnung kommt noch)
Hätte dazu so einige Fragen und Anliegen.
Gibt es hier jemanden, der sich damit auskennt und mir helfen kann?

Gruß Gerald


- Dietmar - 06.01.2019

Ich kann nur so viel sagen, Google mal im Internet unter
diesen Begriff und du wirst viel finden.


- timo - 06.01.2019

Hallo Gerald,

ich habe auch einen, den ich sporadisch nutze (allerdings das inzwischen völlig veraltete Modell 1b von 2013). Ich weiß nicht, ob ich Dir weiterhelfen kann, aber frag' doch einfach mal.

Gruß,
Timo


- snzgl - 06.01.2019

Genauer gesagt ist meiner ein 3+ der neuen Generation mit WiFi und Bluetooth. Es war ein Komplettangebot von Re***elt mit Gehäuse, Netzteil, SD-KARTE und HDMI-KABEL.
Eigentlich möchte ich es hauptsächlich für den Skype Voicechat nutzen. Dafür bräuchten ich eine fertig konfrontierte SD-KARTE, die ich nur da reinstnstecken brauche.
Wer könnte mir so eine Karte erstellen?


- timo - 06.01.2019

Hallo Gerald,

ich war kurz davor, "Geht nicht" zu schreiben, weil es Skype unter Linux nur für Systeme mit x86- (also Intel- und kompatiblen Prozessoren) gibt, während im Raspberry Pi ja ein ARM-Prozessor werkelt.

Tatsächlich ist es aber wohl möglich, indem man sich den Emulator ExaGear installiert, der eine x86-CPU auf dem Raspberry emuliert. Eine komplette Anleitung ist hier zu finden.

Es ist in jedem Fall etwas Arbeit. Ich kann's leider bei mir nicht nachstellen, weil die Lösung mindestens einen Raspberry Pi 2 vorausetzt.

Gruß,
Timo


- kaimex - 05.02.2019

Hallo Rasp-ler,

kennt einer von euch den

"Raspberry Pi pHAT DAC
Dieses pHAT ist ein hochwertiger DAC für Deinen Raspberry Pi. Es liefert 24-bit Bittiefe bei 192KHz Samplerate, und benutzt dazu das I2S Interface des Raspberry Pi auf seinem 2x20 Pin GPIO Header. "

Gibt's bei P... für knapp 17 €
Kann das Teil den Ton aus einem Raspi B3+ noch verbessern ?

MfG Kai


- timo - 06.02.2019

kaimex,'index.php?page=Thread&postID=232320#post232320 schrieb:kennt einer von euch den

Von dem höre ich zum ersten mal. Von diesem hier habe ich allerdings schon positive Kritiken gelesen:

https://www.amazon.de/HiFiBerry-DAC-Standard-RCA-Version/dp/B0147RA2PY

Passt aber (natürlich) nicht in die RPi-Standardgehäuse. Es gibt spezielle, die aber relativ teuer sind.


- kaimex - 06.02.2019

Hallo timo,

danke für den Hinweis. Das Teil kostet um 30 €, hat einen BurrBrown/TI PCM5122 Chip.
Der pHat DAC hat einen BurrBrown/TI PCM5102A Chip. Die sind sehr ähnlich. Auf einem Vergleichs-Chart bei TI werden außer dem Hardware-Interface keine Unterschiede genannt.
Die Platine des pHat ist deutlich kleiner und hat weniger Peripherie-Schaltung drauf. Ob sich das auf die Qualität auswirkt, weiß man natürlich nicht.
Der Audio-Anschluß erfolgt per 3,5 mm Buchse, während der HiFiBerry 2 Cinch-Buchsen verwendet.

MfG Kai


- kaimex - 11.02.2019

Heute traf mein Raspberry PI 3B+ ein mit Noobs auf 16 GB SDcard.
Die Installation hat geklappt, das Gerät ist aber noch etwas bockig:
Angeschlossen ist ein alter PC-Monitor über HDMI-VGA-Adapter.
Der Monitor kann 1024x768 Pixel bei 60 Hz. So wurde er allem Anschein nach auch beim ersten Booten benutzt.
Nach Ausschalten und wieder hochfahren kommt er jedoch im VGA-Modus mit 640x480 Pixeln.
Im System-Menü für den Bildschirm kann man die Auflösung nur zwischen 640x480 und "Automatisch" wählen. Automatisch ändert aber garnichts.

Kann man dem Raspian System per Befehl aus einem Terminal oder Eintrag in einer System-Datei 1024x768 vorgeben ?

Als Browser ist nur Chromium vorhanden, als Mail-Tool Claws.
Auf meinem Linux-LapTop habe ich bisher FireFox und Thunderbird benutzt.
Im Internet gibt es Hinweise zur Installation von Raspian-Versionen namens Iceweasel und Icedove, die demnach den Mate oder XFCE Desktop voraussetzen. Unter Raspian ist jedoch LXDE Standard.
Muß man den Hinweis auf Mate oder XFCE nicht ernst nehmen oder geht es unter LXDE nicht gut ?

Änderungen an den System-Menüs waren nach Reboot alle wieder weg.

Hat jemand hilfreiche Hinweise zur Überwindung dieser Anfangsprobleme ?

MfG Kai


- timo - 11.02.2019

kaimex,'index.php?page=Thread&postID=232748#post232748 schrieb:Im System-Menü für den Bildschirm kann man die Auflösung nur zwischen 640x480 und "Automatisch" wählen. Automatisch ändert aber garnichts.

Was heißt "System-Menü"? Wenn nicht raspi-config gemeint ist, dann probier' mal im Terminal:

sudo raspi-config

Dann unter "Advanced Options" und "Resolution" Die Auflösung einstellen. So steht's jedenfalls im Netz. Bin derzeit nicht in der Nähe meines RPi und kann es nicht ausprobieren. Meiner stellte sich automatisch auf 1280 x 1024 ein, und dabei blieb's auch.

Zitat:Im Internet gibt es Hinweise zur Installation von Raspian-Versionen namens Iceweasel und Icedove, die demnach den Mate oder XFCE Desktop voraussetzen.

Streng genommen sind es nicht die Raspian-, sondern ganz allgemein die Debian-Versionen von Firefox und Thunderbird. Debian und Mozilla hatten vor Jahren mal einen kleinen Disput über Patches an den beiden Programmen, die dazu führten, daß Debian ihre angepassten Versionen unter anderen Namen ausliefern mussten.

Daß die beiden Programme Mate oder XFCE vorraussetzen, kann ich mir nicht vorstellen. Wobei ich Chromium und Claws auf den RPi trotzdem für die bessere Wahl halte. Die Mozilla-Programme sind doch vergleichsweise "gewichtig", was bei der geringen Rechenleistung und nur 1 GB RAM vielleicht nicht so ideal ist. Ich war schon positiv überrascht, daß auf dem RPI 3b+ ein "vernünftiger" Browser wie Chromium richtig nutzbar ist. Auf dem 1er musste ich immer mit Krücken wie Netsurf arbeiten, was wirklich keine Freude ist.

Mich wundert übrigens, daß Dein Raspian mit LXDE als Desktop ausgeliefert wurde. Eigentlich ist Pixel seit einiger Zeit das Standard-Desktop.

Zitat:Änderungen an den System-Menüs waren nach Reboot alle wieder weg.

Welche Einstellungen genau? Es gab da bei einigen Raspian-Versionen ein Problem beim Einstellen der Tastaturbelegeung, da mussten noch irgendwelche Pakete nachinstalliert werden.


- kaimex - 11.02.2019

Hallo timo,

mit System-Menü meinte ich "Einstellungen"->"Bildschirmeinstellungen"
Da offenbar die automatische Monitor-Erkennung nicht richtig funktioniert, wurde mein Monitor als VGA eingestuft.
Inzwischen habe ich bei
https://www.raspberrypi.org/documentation/configuration/config-txt/video.md
gefunden, daß Einträge in /boot/config.txt zu ändern sind in
hdmi_group=2
hdmi_mode=16
um den 1024x768 60Hz Modus zu erzwingen.
Zwischendurch hatte der Raspi bei weiteren Reboot Versuchen übrigens noch ungewöhnliches wie 65Xx40Y eingestellt (X & Y stehen für Ziffern, an die ich mich nicht erinnern kann).
Die nächste Hürde war, den Datei-Manager des Desktop als root aufzurufen. Scheint es nicht zu geben,
Also im Terminal per sudo, bloß wie heißt denn der File-MAnager in der Kommandozeile ? Dauerte einige Zeit, bis ich auf pcmanfm kam.
Merkwürdig:
Wenn man als gemeiner User im Dateimanger einen Doppelclick auf config.txt macht, wird der File mit einem einfachen Text-Editor geöffnet.
Tut man das als root, wird dazu Libre-Office benutzt, was ja maßlos übertrieben und vergleichsweise schwerfällig ist.
Aber das funzt jetzt.

In den GUI-Menüs hatte ich einige Applikationen ergänzt, um sie per Click starten zu können. Diese Ergänzungen waren nach Reboot wieder weg.
Inzwischen scheint er sich einige gemerkt zu haben, andere nicht.

Ich hatte vorsichtshalber ein langes LAN-Kabel zum Rooter angeschlossen. Trotzdem hat er WLAN benutzt.

Wenn du meinst, daß Chromium und Claws besser zum Raspi passen, dann betrachte ich das als Empfehlung. Allerdings gab es beim FireFox Zugriffsmöglichkeiten auf die Adressen von gerade abgespielten Mediathek-Dateien, die ich bei Chromium noch nicht entdeckt habe.

timo,'index.php?page=Thread&postID=232752#post232752 schrieb:Mich wundert übrigens, daß Dein Raspian mit LXDE als Desktop ausgeliefert wurde. Eigentlich ist Pixel seit einiger Zeit das Standard-Desktop.
Nach der Installation aus Noobs von der SDcard gab es die Option, nach Updates im Netz zu schauen. Das habe ich machen lassen. Es wurde noch allerlei gefunden und nach-installiert. Deshalb gehe ich davon aus, daß es auf dem neuesten Stand ist.
Ich hab den Desktop natürlich nicht erkannt, sondenn mußte danach suchen. Irgendwann und -wo wurde mal LXPanel / LXDE vermeldet.

Ansonsten ist der erste Eindruck: ein erstaunliches Teil, wird bislang nicht heiß, spielt YouTube Musik-Videos flüssig ab, audials live läuft auch darauf...
Bei P... gibt es wohl auch 10"-Displays, die man direkt anschließen kann, aber ein alter PC-LCD für 15 € tut's auch. Das benötigte HDMI->VGA-Interface habe ich übrigens zwischendurch für sage & schreibe 4,76 € (portofreie Zusendung) entdeckt. Du hattest den Hinweis auf ein amazon-Angebot für 9,99 € gegeben, einige Händler wollen 20...25 € dafür haben, ganz zu schweigen von dem, was bei hama für sowas verlangt wird). Ich wollte gleich 3 Stück bestellen. Das mislang bei ebay. Es blieb erstmal bei einem. Gestern wollte ich 2 nachbestellen. Es gelang wieder nur die Bestellung von 1 Stück. ebay hat sich schon gewundert "Sie haben doch erst neulich...". Wenn ich nächste Woche noch eins bestelle, werde ich vielleicht als bescheuert eingestuft...

MfG Kai


- timo - 11.02.2019

kaimex,'index.php?page=Thread&postID=232771#post232771 schrieb:Die nächste Hürde war, den Datei-Manager des Desktop als root aufzurufen. Scheint es nicht zu geben,
Also im Terminal per sudo, bloß wie heißt denn der File-MAnager in der Kommandozeile ? Dauerte einige Zeit, bis ich auf pcmanfm kam.

Wenn Du Dir das Öffnen eines Terminalfensters ersparen willst, gibt's dafür auch das Werkzeug gksu. Also ALT-F2 und dann "gksu pcmanfm".

Das Programm ist allerdings ein Auslaufmodell, in aktuellen Linux-Distributionen wie Ubuntu und Mint wurde es durch pkexec ersetzt, das auf die gleiche Weise anzuwenden ist.

Zitat:Wenn man als gemeiner User im Dateimanger einen Doppelclick auf config.txt macht, wird der File mit einem einfachen Text-Editor geöffnet.

Das sollte sich aber leicht beheben lassen. Meine Erinnerungen an XFCE und pcmanfm sind zwar schon etwas nebelig, aber normalerweise gibt's im Rechtsklick-Menü von Dateimanagern sowas wie "Öffnen mit", und dann kannst Du ein Häkchen setzen, ob das ausgewählte Programm standardmäßig für den Dateityp verwendet werden soll. Wird natürlich für root und Dein "normales" Benutzerkonto (pi?) getrennt gespeichert.

Zitat:Wenn du meinst, daß Chromium und Claws besser zum Raspi passen, dann betrachte ich das als Empfehlung. Allerdings gab es beim FireFox Zugriffsmöglichkeiten auf die Adressen von gerade abgespielten Mediathek-Dateien, die ich bei Chromium noch nicht entdeckt habe.

Ich hab's noch nicht ausprobiert, vielleicht klappt's ja besser, als ich vermute. Ich bin eigentlich auch (wieder) Firefox-Nutzer, aber in langsamen Umgebungen nutze ich aus Gewohnheit immer eher Chrome/Chromium. Claws Mail hat sich dagegen bei mir überall durchgesetzt.

Zitat:Gestern wollte ich 2 nachbestellen. Es gelang wieder nur die Bestellung von 1 Stück. ebay hat sich schon gewundert "Sie haben doch erst neulich...". Wenn ich nächste Woche noch eins bestelle, werde ich vielleicht als bescheuert eingestuft...

Immer wieder lustiig, wenn Internet-Seiten schlauer sein wollen als der Anwender. Smile

Das 10"-Display bei Pollin sieht nett aus, aber was macht man damit? Zum richtigen Arbeiten find' ich die Diagonale etwas zu knapp bemessen. Videos gucken geht vermutlich gerade noch.


- kaimex - 11.02.2019

Das erpart den größeren Computer-Monitor und bringt es in die Nähe eines 10"-Tablets. Es gibt welche, die man direkt an einen Graphik-Adapter-Slot dem Board anschließen kann. Dann ist der HDMI noch für reinen richtigen Monitor frei. Viellecht kann man dann 2-Monitor Betrieb machen Rolleyes .
Mich störte nicht der Aufruf des einfacchen Text-Editors, sondern der vom LibreOffice-Writer zum Editieren dieses simplen Textfiles. "Öffnen mit..." bot auch keinen schlichten Texteditor an.
Ist es sinnvoll, einen noch rechteloseren User als Pi anzulegen für das Surfen auf gefährlichen Seiten ? Also einen, bei dem sudo u.ä. nicht ausgeführt wird ?

MfG Kai


- kaimex - 11.02.2019

Hallo,

ich finde nirgends eine Möglichkeit in der GUI, einen eingehängten USB-Stick wieder auszuhängen/unmounten wie zB unter Linux Mint.
Braucht man das nicht oder muß das nach-installiert wrerden ?

MfG Kai
Nachtrag: Inzwischen per sudo apt-get install eject erledigt.
Kein Wunder, daß viele Leute sich nicht mit Linux anfreunden können, wenn man sich um solchen Kleinkram selber kümmern muß...


- timo - 12.02.2019

kaimex,'index.php?page=Thread&postID=232814#post232814 schrieb:ich finde nirgends eine Möglichkeit in der GUI, einen eingehängten USB-Stick wieder auszuhängen/unmounten wie zB unter Linux Mint.

Kann man das nicht im Dateimanager, Rechtsklick auf das Laufwerk und dann "Aushängen" oder so?

Beim Pixel-Desktop gibt's dafür oben rechts in der Leiste eine Schaltfläche. Klickt man da drauf, werden alle eingehängten Wechseldatenträger angezeigt und können ausgehängt werden.

[attachment=24089]


- kaimex - 12.02.2019

Moin moin,
live vom Raspbi ( um nicht zu sagen "gesendet von meinem Raspbi")
timo,'index.php?page=Thread&postID=232824#post232824 schrieb:Kann man das nicht im Dateimanager, Rechtsklick auf das Laufwerk und dann "Aushängen" oder so?
Da hab ich mich schlapp gesucht...
Erst nach Installation von "eject" hab ich am rechten Ende der Leiste (bei mir natürlich unten) diesen Dreieckszinken zum Aushängen entdeckt.

Gestern abend hab ich schon mal einige Musik-Videos auf YouTube geguckt. Kopfhörer an der kombinierten Audio/Video-Buchse. Der Klang kam mir etwas rauh vor. Das kann natürlich auch Auto-Suggestion sein aufgrund meiner durch Lektüre vorgefaßten negativen Erwartung. Also hab ich mir mal das Schaltbild des Raspbi angesehen, auf der Suche nach einem Soundchip. Es war aber weit und breit keiner zu sehen, stattdessen nur zwei Digital-Inverter-Symbole mit den Bezeichnungen PCM_V1 und PCM_V o.ä.. Dahinter RC-Tiefpässe.. Es gibt garkeinen Soundchip im herkömmlichen Sinne, sondern tatsächlich nur diese PCM-Ausgänge des Broadcom-Prozessors. Im Internet findet man bei der Suche nach bcm2835 ALSA (so wird das Interface bezeichnet) Hinweise auf störende Pop-Geräusche bei Sound-Start und Ende, möglicherweise auch bei Track-Start/Ende. Die entstehen dadurch, daß zwischendurch die PCM-Modulation mal völlig abgeschaltet wird (kein Ausgangssignal) statt auf 50% Tastverhältnis für halben Ruhepegel. Weitere Pops soll es geben, durch kurzzeitiges Springen auf 100% Modulation (voll High). Mir waren allerdings keine aufgefallen. Ich hörte nur eine Zeit lang starkes Rauschen, bis ich merkte, daß das von der Live-Cam eines mexikanischen Strandes kam (Meeresbrandung), deren Seite ich vorher besucht hatte. Deren Sound wurde immer noch zugemischt, obwohl ich die Seite verlassen hatte. :S
Deshalb habe ich mal ein altes Behringer UCA202, das hier untätig neben einem noch älteren Laptop lag, in einen freien USB-Port gestöpselt. Es wurde auch erkannt, mußte noch mit Bedienelementen versehen werden (Pegelschieber), aktiviert werden, blieb aber still. Erst nach Neustart kam was raus. Da bilde ich mir jetzt ein, daß es schon deutlich besser (spritziger Big Grin ) klingt .

Die 1024x768 meines alten LCD-Monitors sind doch ein bischen wenig. Hast du mehr Auflösung dran, die zu den verfügbaren Video-Modi paßt ?

MfG Kai


- kaimex - 13.02.2019

Inzwischen hab ich das Claws EMail-Programm eingerichtet.
Etwas merkwürdig finde ich dieses Verhalten:
Ab dem 2ten Programm-Aufruf zeigt es beim Programmstart zunächst leere Eingangs- und Ausgangs-Ordner. Clickt man auf den Eingangsordner, kommt ein Pop-up-Window mit Passwort-Abfrage. Ich klicke auf abbrechen. Dann wird das Fenster mit dem Inhalt des Eingangsordners gefüllt. Ebenso beim Ausgangsordner.
Bei Thunderbird wird ab dem zweiten Programmstart nicht mehr nach dem Passwort gefragt.
Was solls auch bei Claws, wenn man das Window einfach wegklicken kann ?

MfG Kai


- timo - 13.02.2019

kaimex,'index.php?page=Thread&postID=232845#post232845 schrieb:Deshalb habe ich mal ein altes Behringer UCA202, das hier untätig neben einem noch älteren Laptop lag, in einen freien USB-Port gestöpselt. Es wurde auch erkannt, mußte noch mit Bedienelementen versehen werden (Pegelschieber), aktiviert werden, blieb aber still. Erst nach Neustart kam was raus. Da bilde ich mir jetzt ein, daß es schon deutlich besser (spritziger Big Grin ) klingt.

Das Behringer habe ich auch und wollte es schon am meinem RPi 1 immer ausprobieren (auch für Aufnahmen), was aus irgendwelchen Gründen nie passiert ist. Aber gut zu wissen, daß es funktioniert. Smile

Zitat:Die 1024x768 meines alten LCD-Monitors sind doch ein bischen wenig. Hast du mehr Auflösung dran, die zu den verfügbaren Video-Modi paßt ?

Mein verwendeter Monitor (19"-TFT, noch mit Bildverhältnis 4:3) schafft mehr. Offen gestanden weiß ich aber aus dem Kopf gar nicht, mit welcher Auflösung der RPi läuft, ich habe einfach die automatisch voreingestellte verwendet. Oben habe ich 1280 x 1024 behauptet, könnte gefühlt hinkommen. Beim nächsten mal achte ich drauf.

kaimex,'index.php?page=Thread&postID=232969#post232969 schrieb:Inzwischen hab ich das Claws EMail-Programm eingerichtet.
Etwas merkwürdig finde ich dieses Verhalten:
(...)

Ehrlich, habe ich so noch nie beobachtet (und ich nutze Claws auch auf meinen beiden "normalen" Linux-PCs, schon seit Jahren). Normalerweise wird das Passwort (anders als bei Thunderbird) doch gleich bei der Konten-Einrichtung eingetragen. Hast Du das gemacht (Konfiguration -> Konten bearbeiten -> Bearbeiten -> Allgemein -> Kennwort)?


- kaimex - 13.02.2019

timo,'index.php?page=Thread&postID=232971#post232971 schrieb:Normalerweise wird das Passwort (anders als bei Thunderbird) doch gleich bei der Konten-Einrichtung eingetragen. Hast Du das gemacht (Konfiguration -> Konten bearbeiten -> Bearbeiten -> Allgemein -> Kennwort)?
Nein, hab ich bewußt nicht gemacht, weil irgendwo stand, man müßte nur die fett markierten Felder ausfüllen. Das mit dem Passwort gehörte verwunderlicherweise nicht dazu. Deshalb wollte ich probieren, wie weit es ohne Passwort kommt. Das Programm hat dann erstmal leere Ordner angezeigt. Nach Anclicken des Eingangs-Ordners und danach des Ausgangs-Ordners kam jeweils eine Passwort-Abfrage und dann wurden sie allmählich mit Inhalt gefüllt (1600 ... 1900 Mails). Nur ab dem zweiten Start könnte das Progrsmm die Passwort-Abfrage doch eigentlich weglassen.

MfG Kai


- timo - 13.02.2019

Oh - noch was, was ich bisher nicht gelesen hatte:

kaimex,'index.php?page=Thread&postID=232789#post232789 schrieb:Mich störte nicht der Aufruf des einfacchen Text-Editors, sondern der vom LibreOffice-Writer zum Editieren dieses simplen Textfiles. "Öffnen mit..." bot auch keinen schlichten Texteditor an.

Der Texteditor von LXDE heißt leafpad. Hast Du den installiert? Wenn der nicht in der Standard-Auswahl von "Öffnen mit" auftaucht, gibt's da doch bestimmt sowas wie "Andere Programme", oder?

Zitat:Ist es sinnvoll, einen noch rechteloseren User als Pi anzulegen für das Surfen auf gefährlichen Seiten ? Also einen, bei dem sudo u.ä. nicht ausgeführt wird ?

Ich hab's bisher nicht gemacht. Als Kompromiss könnte man die standardmäßig gesetzte NOPASSWD-Option für sudo aus der /etc/sudoers herausnehmen, womit die Verwendung von sudo zumindest die Eingabe des Kennworts erfordern würde.


- kaimex - 13.02.2019

timo,'index.php?page=Thread&postID=232980#post232980 schrieb:Der Texteditor von LXDE heißt leafpad. Hast Du den installiert?
Der war bereits installiert, wurde aber in diesem Fall nicht benutzt. Das ist ja das merkwürdige. Beim Verlassen des LibreOffice-Writers kam dann der dämliche Hinweis, beim Speichern des (simplen) Textfiles im *.txt Format könnten spezielle Formatierungen verloren gehen.

MfG Kai


- kaimex - 26.02.2019

Hallo,

hat jemand Erfahrung mit der C-Bibliothek zum Ansprechen der GPIO-Pins ?
Ich möchte auf dem RaspBi 3B+ insbesondere über I2C, wenn nötig auch über SPI Peripherie-Bausteine ansprechen (ADCs, DACs) und natürlich auch den einen oder anderen Pin mal auf H oder L setzen.
Die einschlägigen Bücher verwenden dazu meist Python oder Visual Basic oder andere Interpreter-Interfaces.
Ich bin es gewohnt, FPC oder Delphi bzw. Lazarus zu verwenden. Die müßten den GPIO über Calls zur C-Bibliothek ansprechen können.

MfG Kai


- timo - 26.02.2019

Hallo Kai,

die Frage hattest Du mir heute früh schon per PN gestellt, war leider noch nicht zum Beantworten gekommen.

Ich habe mit meinem alten RPi 1 und meinem alten Kosmos-Experimentierkasten mal spaßeshalber zwei LEDs gesteuert. Weil es mir am einfachsten erschien, habe ich dafür auch Python verwendet. Beispiele in anderen Sprachen (auch Pascal) findest Du hier:

https://elinux.org/RPi_GPIO_Code_Samples

Das Pascal-Beispiel greift direkt auf die Gerätedatei zu und kommt ohne zusätzliche Bibliotheken aus.

Gruß,
Timo


- kaimex - 26.02.2019

Hallo timo,

das schaue ich mir gerne mal an.
Solange es sich nur um die Zustandsänderung einzelner Pins handelt, würde ich das tatsächlich am Liebsten direkt durch Ansprechen der Hardware-Adressen machen wie zu Apple II Zeiten. Bei I2C und SPI würde es natürlich viel Arbeit und Zeit sparen, wenn man auf fertige Implemetationen der Protokolle und Timings in Bibliotheken zugreifen kann. Von FPC und Delphi/Lazarus sind Calls in C-Libraries leicht möglich. Man braucht also nicht unbedingt in Pascal/Delphi geschriebene. Die Compiler greifen ja ohnehin auf die Windows-API bzw. die entsprechenden Funktionen unter Linux zu bzw. verkleiden die mit Wrappern.
Daß ich die Frage hier nochmal gestellt habe, kam weniger aus Ungeduld als aus der Überlegung, vielleicht gibt es ja noch mehr Leute, die sich auf diesem Gebiet betätigen und etwas beitragen können.

MfG Kai


- timo - 26.02.2019

kaimex,'index.php?page=Thread&postID=234043#post234043 schrieb:Von FPC und Delphi/Lazarus sind Calls in C-Libraries leicht möglich.

Daran habe ich aus meiner beruflichen Delphi-Zeit zwiespältige Erinnerungen. Es funktionierte immer so lange gut und einfach, wie die Parameter der aufgerufenen C-Funktionen atomare Datentypen waren. char * © war, wenn ich mich nicht täusche, auch noch einigermaßen kompatibel zu PChar (Pascal), aber bei Arrays und selbstdefinierten Datentypen als Parameter oder Rückgabewert wurde es teilweise kompliziert.

Wie Du oben siehst, kommst Du aber scheinbar ohne diese Hürde aus.


- kaimex - 07.03.2019

Beim Kennenlernen des Umgangs mit den GPIO Möglichkeiten des Raspberry Pi 3B+ ist eine weitere Hürde aufgetaucht:
In einem der Bücher, das ich dazu verwende, wird anfangs die Benutzung der Pins über das Paket wiringpi mit dem Befehl gpio aus einem Terminal beschrieben.
Auf dem Raspi war bereits wiringpi V2.46 installiert. Die Steuerung einzelner Pins zum Ein/Ausschalten von LEDs funktionierte auch.
Das Buch geht dann dazu über, komplexere Experimente mit mehr als einer Befehlszeile in python Skripten zu realisieren. Dazu wird am Anfang jedes Skripts die Anweisung "import wiringpi" oder "import wiringpi as gpio" gegeben.
Wenn ich solche Skripte mit "python name.py" oder "sudo python name.py" ausführe, gibt es einen fatalen Fehler mit der Meldung "No module named wiringpi". Python findet wiringpi nicht.
Ich habe wiringpi dann nochmal mit der "Synaptischen Paketverwaltung" installiert. Das hat jedoch an dem Verhalten nichts geändert.
Bei der Suche nach gpio und wiringpi auf dem Datenträger hatte ich den Eindruck, daß beide an recht verschiedenen Stellen gespeichert wurden. Bei der Installation gab es keinerlei Möglichkeit, den Speicherort zu beeinflussen (wie bei den schlimmsten Windows-Programmen). Bei Python (2.7) weiß ich nicht, wo es Module erwartet. Da soll es einen Defaultpfad geben, den ich aber nicht kenne.
Im Internet findet man das Problem mehrfach beschrieben. In einigen Fällen haben die Melder nach einiger Zeit einen Weg gefunden, das Problem zu beseitigen, aber nicht mitgeteilt wie. An zwei anderen Stellen wird auf eine anderswo beschriebene Lösung verwiesen, deren Seiten gestern abend aber nicht erreichbar waren.
Hat jemand eine Idee, wie man python (2.7) dazu bringt, das Modul wiringpi zu finden, um in Skripten das Kommando gpio benutzen zu können ?
Im Moment sind deshalb die Bücher, die auf diese Weise in GPIO einführen, nicht weiter hilfreich.

Zur Benutzung von GPIO per FPC/Lazarus bin ich auf eine Library/Unit namens rpi_hal.pas aufmerksam geworden. Die ist sehr umfangsreich, kann offenbar alles und noch etwas mehr, was für Funker von Interesse ist.
Die habe ich gestern per Lazarus kompiliert. Da wird gewarnt, daß zwei Files nicht gefunden wurden (crtbegin.o und crtend.o), aber trotzdem das Test-Executable und die Unit erstellt.
Bei Ausführen des Programms kommt als erstes die Meldung, daß die CPU nicht bekannt ist, dann zwei weitere Fehlermeldungen, die mir nichts sagen. Danach wird allerlei offenbar diagnostisches richtig vermeldet. Schließlich kommt eine Aufstellung aller 40 GPIO-Pins mit den Platinenbezeichnungen aber ohne die Broadcom-GPIO-Bezeichnungen, vermutlich wegen der nicht erkannten CPU.
Ganz zum Schluß wird eine Status-LED an/aus getoggelt mit der Bezeichnung GPIO47, wovon man nichts sieht. Einen Pin GPIO47 gibt es garnicht unter den 40 GPIO-Pins des Raspi. Auf dem Board gibt es eine rote und eine gelbe LED, die immer irgendwann leuchten oder blinken. Deren Bezeichnungen kenne ich nicht.
Dieses Verhalten flößt auch kein Vertrauen auf sichere korrekte Funktion ein.

Über hilfreiche Hinweise würde ich mich sehr freuen.
MfG Kai


- timo - 07.03.2019

Hallo Kai,

kaimex,'index.php?page=Thread&postID=234493#post234493 schrieb:Bei der Installation gab es keinerlei Möglichkeit, den Speicherort zu beeinflussen (wie bei den schlimmsten Windows-Programmen).

Anders als bei Windows macht es unter Unix-Betriebssystemen aber auch meist keinen Sinn, den Installationsort zu ändern, und würde u.U. zu Fehlverhalten führen.

Zitat:Hat jemand eine Idee, wie man python (2.7) dazu bringt, das Modul wiringpi zu finden, um in Skripten das Kommando gpio benutzen zu können ?

Ich bin leider nicht in Reichweite meines RPi und kann es nicht ausprobieren. So wie es sich für mich anhört, hast Du aber wiringpi für eine andere Python-Version als 2.7 installiert. Das ist nicht nur eine Frage des Installationspfades, die wiringpi- und Python-Versionen sind auch schlichtweg nicht kompatibel. Insofern ist der Ansatz "Python 2.7 dazu bringen, das Modul zu finden" nicht zielführend.

Frage: Musst Du unbedingt Python 2.7 nutzen? Eigentlich ist das ja nur noch eine aus Kompatibilitätsgründen gepflegte "Legacy"-Version, für Neuentwicklungen solltest Du, wenn keine zwingenden Gründe dagegensprechen, eigentlich eine aktuelle 3er-Version von Python verwenden. Ich denke, dann löst sich das Problem von selbst.

Ansonsten hat Python auch ein eigenes Paketmanagement, mit dem man passende Bibliotheken installieren kann. Das dazugehörige Werkzeug nennt sich "pip". Aber auch da ist Vorsicht geboten - wenn Du mehrere Python-Version auf Deinem System hast, musst Du drauf achten, die passende pip-Version auszuführen. In Deinem Fall hieße die pip2.7 (musst Du evtl. noch per Synaptic installieren, Paketname "python2.7-pip" o.Ä.).

Dann sollte Dich

sudo pip2.7 install wiringpi2

weiterbringen (nicht ausprobiert, kann ich vermutlich erst morgen Abend).

Zitat:Die habe ich gestern per Lazarus kompiliert. Da wird gewarnt, daß zwei Files nicht gefunden wurden (crtbegin.o und crtend.o), aber trotzdem das Test-Executable und die Unit erstellt.

Die Dateien gehören scheinbar zum Paket lib32gcc-4.8-dev. Probier' mal, das zu installieren und Dein Programm noch mal zu übersetzen.

Gruß,
Timo


- kaimex - 07.03.2019

Nach etwas Suche im Netz bin ich doch noch fündig geworden in Sachen wiringpi import:

Nach folgenden Befehlen funktioniert der import:
sudo apt update
sudo apt install python-dev
sudo pip install wiringpi
Erklären kann ich es nicht.

Bei Ausführen des Test-Skripts gab es jetzt zur Abwechslung eine neue Fehlermeldung:
io=wiringpi.GPIO(wiringpi.GPIO.WPI_MODE_SYS)
AttributeError: type object 'GPIO' has no attribute 'WPI_MODE_SYS'

Im Netz findet man dazu den Hinweis, daß das 'WPI_MODE_GPIO_SYS' heißen muß.
Im gerade gelesenen Buch
elektor, Bert van Dam, "Raspberry Pi, 45 Experimente mit Hard- und Software für Elektroniker"
wird von S.95 bis S.239 die demnach falsche Bezeichnung WPI_MODE_SYS verwendet.
Nach der Änderung läuft das Skript nun endlich.
Damit steht dem Weiterlesen nichts mehr im Wege und die Spannung steigt, welche weiteren falschen Bezeichner und nicht auf Anhieb funktionerende Installationen wohl noch als Stolpersteine im Weg liegen.

MfG Kai


- timo - 07.03.2019

kaimex,'index.php?page=Thread&postID=234496#post234496 schrieb:Erklären kann ich es nicht.

Du hast mit pip jetzt die passende wiringpi-Version zu Deinem Python installiert. Das war ja das, was ich Dir oben vorgeschlagen habe.

Egal, Hauptsache ist, daß es jetzt geht. Viel Spaß beim Basteln!

Gruß,
Timo


- kaimex - 07.03.2019

Hallo timo,

deine Antwort habe ich erst nach Absenden meines vorigen Beitrages gesehen.
Auf dem Raspi sind sowohl python 2.7 als auch python 3.53 installiert.
Mit python 3 verhielt sich das Skript genauso. jedenfalls habe ich gestern abend auch mal sudo python3 name.py abgesetzt ohne anderes Ergebnis.
Die hilfreiche Internet-Fundstelle behauptete, es gäbe einen Unterschied zwischen dem Paket wiringpi (das gpio enthält) und dem module wiringpi für python, oder daß irgendwas von python-dev fehlen würde. Deshalb die drei-zeilige Anweisung.
Da ich eben deine Hinweise noch nicht hatte, hab ich da einfach pip geschrieben, wie das auch im Internet stand.

wiringpi2 ist nicht aktueller als wiringpi sondern älter. Das war eine vorübergehende Bezeichnung für die Version 2.23.., aktuell ist jetzt wringpi V2.46.

Ich bin bislang eher ratlos, welche python Version man nehmen sollte. Ich habe auch Meinungen gehört, daß python 3 nicht der wahre Jakob sei, bzw daß dort fragwürdige Änderungen vorgenommen worden seinen (oder ich habs mißverstanden). Deshalb hab ich (nicht ganz bewußt) python 2.7 benutzt. Die beiden werden auf dem Raspi auch mit unterschiedlichen GUIs präsentiert. Python 3 mittels IDLE, python 2 mit Geany und Thonny.

Danke auch für den letzten Hinweis bezüglich rpi_hal. Es gab nur Warnungen, es könne Linker-Probleme geben, aber es wurde ja gelinkt und Units und Executable erzeugt.
Dem Autor hab ich eine Anfrage zum Support-Forum geschickt, hoffe, daß er sich bald meldet, denn es sieht ja so aus, als sei der aktuelle Prozessor des Raspi 3B+ noch nicht eingepflegt.
Dann ist ja garnicht klar, ob überhaupt richtige IO-Adressen bzw. Pins verwendet werden, wenn man das Programm ausführt.

MfG Kai


- kaimex - 07.03.2019

timo,'index.php?page=Thread&postID=234497#post234497 schrieb:Viel Spaß beim Basteln!
Ich hoffe, daß sich der noch einstellt.
Im Moment ist es mehr Frust über schlechte oder fehlende Dokumentation, unpräzise Bücher und python an sich, wo man mal wieder eine neue Sprache erfunden hat, in der alles anders formuliert werden muß, als in den Sprachen, die es vorher gegeben hat, aber nichts besser geht. Man muß nur wieder mal eine Lernkurve hochklettern, bis man wieder das gleiche kann, wie vorher mit anderen gelernten Sprachen, nur jetzt in dem Interpreter vielleicht etwas langsamer ausgeführt.
Es macht auch nicht glücklicher, wenn es für eine Anwendungsansatz (Betriebssystem, python, java, C, C++, Pascal,...) mehrere alternative Bibliotheken gibt, weil man nicht unbedingt erfährt, welches die schnellste, umfangreichste, komfortabelste, "geilste" ist, sondern das selber ausprobieren muß.

MfG Kai


- timo - 07.03.2019

kaimex,'index.php?page=Thread&postID=234500#post234500 schrieb:und python an sich, wo man mal wieder eine neue Sprache erfunden hat, in der alles anders formuliert werden muß, als in den Sprachen, die es vorher gegeben hat, aber nichts besser geht.

Ein guter Programmierer kann programmieren, keine Programmiersprachen. Smile

Und der Aussage, daß in Python nichts besser geht, stimme ich nicht zu. Einiges (z.B. die Strukturierung durch Einrückung) mag erst mal gewöhnungsbedürftig seiin, erweist sich aber schnell als gute idee. Und auch ansonsten finde ich vieles wirklich vorbildlich gelöst. Elementares Beispiel: Teil-Strings und Teil-Arrays (schon mal der erste Vorteil: Beides funktioniert gleich).

Code:
s="Dies ist ein Test"
print(s[:4])
print(s[5:8])
print(s[-4:])


Dies
ist
Test


Code:
ai=[1,3,5,7,9]
print(ai[1:2])
print(ai[-2:])


[3, 5]
[7, 9]


Das geht in den meisten anderen Sprachen nur deutlich uneleganter.

Ich hoffe, daß sich eine ähnlich moderne, leistungsfähige Sprache mit umfangreicher Standardbibliothek auch noch mal mit statischer Typisierung und Fokus auf Compilierung in nativen Code durchsetzt und das doch inzwischen deutlich in die Jahre gekommene C++ beerbt, aber bis jetzt endeten alle entsprechenden Versuche relativ erfolglos.

Das gehört aber eher in den Programmiersprachen-Thread, 'tschuldigung für das Offtopic.


- kaimex - 07.03.2019

Mein Urteil mag ja vorschnell ungerecht sein, weil ich kaum etwas von python weiß,
aber
timo,'index.php?page=Thread&postID=234507#post234507 schrieb:Strukturierung durch Einrückung) mag erst mal gewöhnungsbedürftig seiin, erweist sich aber schnell als gute idee
strukturiert schreiben kann man in jeder Sprache, wenn man will. Das ist ja nur eine Frage, ob der verwendete Editor das unterstützt, und der Selbst-Disziplin. Das geht selbst in Assembler oder Basic.
Ich hab gerade einen Quelltext gesehen, den hatte der Autor so großzügig eingerückt, daß die Zeilenlänge größer 256 Zeichen war.
FPC meldete jedenfalls schon beim Einlesen Fehler "zu lange Zeilen", womit unklar wurde, ob der Quell-Code das Einlesen unbeschädigt überstanden hatte.
Also mußte ich erstmal vorbeugend eingreifen und die Einrückerei auf ein vernünftiges Maß begrenzen oder einfach newlines reinhacken.
Mit der Formatier-Syntax von python stehe ich noch auf dem Kriegsfuß, bzw hab gerade keine Doku zur Hand. Wenn ich Programme schreibe, liegt das Schwergewicht allerdings meist mehr beim Rechnen als beim Formatieren.
Meine Informationsquellen zur momentanen Tätigkeit sind etwas unausgewogen: 4 Bücher über Raspi, keins über python.

MfG Kai


- timo - 07.03.2019

kaimex,'index.php?page=Thread&postID=234512#post234512 schrieb:Meine Informationsquellen zur momentanen Tätigkeit sind etwas unausgewogen: 4 Bücher über Raspi, keins über python.

Guck' mal auf Wikibooks, da gibt's mehrere.


- kaimex - 07.03.2019

Danke,
inzwischen hab ich gesehen, daß man über idle-python2.7 (mit den idleX Erweiterungen) auch in eine einem Buch wohl gleichwertige python-Dokumentation hineinkommt.

Im Moment hab ich ein neues Problem, diesmal mit wxPython. Einige Beispiele aus dem genannten Buch benutzen das für erste GUI-Anwendungen. Das war auf dem Raspi 3B+ offenbar noch nicht installiert. Deshalb habe ich das eben mit
sudo pip install wx Python==4.0.4
versucht.
Es wurden 68.8 MB wxPython-4.0.4.tar.gz downgeloaded, dann vermutlich expandiert und nach einiger Wartezeit kam dann eine Exception Meldung und ein roter traceback von mehreren Standard-Terminal-Höhen. Ganz zum Schluß stand da rot auf schwarz: MemoryError.
Weil ich noch einige andere Applikation geöffnet hatte, hab ich die alle geschlossen und den Befehl nochmal abgesetzt in der Hoffnung, daß nun der Speicher ausreicht. Es lief aber wieder genauso ab.
Habe ich nun einen Haufen File-Leichen auf dem Datenträger und nicht freigegebenen Speicher ?
Muß ich da erstmal mit weiteren Abrakadabra-Befehlen aufräumen ?
Gibt es eine Möglichkeit wxPython zu installieren, ohne in diese Falle zu laufen ?

MfG Kai
Nachtrag: Ich hab eben mal mt hardinfo geschaut, wieviel Memory frei ist. Da werden ca 669 MB frei und ca. 800 MB verfügbar gemeldet. Nominell hat der Raspi 3B+ ca. 1 GB Speicher. Das müßte doch eigentlich reichen, um 68.8 MB komprimierte Files zu expandieren. Wird doch auch normalerweise nicht im Speicher, sondern auf dem Datenträger gemacht, wo einige GB verfügbar sind.


- kaimex - 07.03.2019

Inzwischen habe ich gefunden, daß man mit
sudo pip --no-cache-dir install wxPython==4.0.4
den MemoryError umschifft.

Das führt soweit, daß die Installation, versucht, wxPython zu erzeugen (build).
Bei den Tests gibt es eine lange Liste mit vielen yes und einigen no beantworteten Einzeltests.
Schließlich wird abgebrochen mit der Meldung, es könne kein gtk+-3.0 gefunden werden.
In der Synaptic-Paketverwaltung sehe ich einige Bestandteile von gtk2+ als installiert markiert.
Es sind auch Files mit gtk3+ zu sehen, alle nicht installiert.
Mir ist jetzt nicht klar, ob es auch mit gtk2+ gehen müßte und nur ein Pfad irgendwo mitzuteilen ist, oder ob ich gtk3+ installieren sollte. Ich weiß aber nicht, welche der gtk+-3.0 Files ich als zu installieren markieren muß.

MfG Kai


- kaimex - 07.03.2019

Inzwischen habe ich libgtk-3-dev mit der Synaptic-Paketverwaltung installiert (libgtk-2-dev war bereits installiert).
Erneuter Installationsversuch von wxPython läuft jetzt weiter bis zu einem Abbruch mit der Fehlermeldung:
wxMediaCtrl can't be built because GStreamer is not available
configure : error: wxMediaCtrl was explicitly requested but can't be built
Es gibt demnach irgendwo eine configure option --enable-mediactrl, die man auch abstellen kann.
Alternative wäre, GStreamer 1.0 verfügbar zu machen.

Ich habe diese Namen heute alle zum ersten mal gelesen, weiß deshalb nicht, wo und wie und brauche ich das überhaupt ?

Wer weiß mehr und kann helfen ?

Konkret gefragt: Wie kommt man an die configure-options des Befehls "sudo pip --no-cache-dir install wxPython==4.0.4" ran, um "--enable-mediactrl" wegzulassen ?

MfG Kai
(der sich fühlt wie einer, der auszog, das Gruseln zu lernen)


- timo - 07.03.2019

kaimex,'index.php?page=Thread&postID=234529#post234529 schrieb:Es gibt demnach irgendwo eine configure option --enable-mediactrl, die man auch abstellen kann.
Alternative wäre, GStreamer 1.0 verfügbar zu machen.

Hallo Kai,

wxWidgets ist ein universelles Applikations-Framework, das primär für C++ entwickelt wurde (nutze ich selber gerne für meine privaten Programmierprojekte). wxPython ist die Python-Anbindung dafür.

Ich denke mal, wenn Du wxPython über pip installierst, wird auch versucht, wxWidgets zu bauen, was aber wegen der fehlenden Abhängigkeit nicht gelingt. "--enable-mediactrl" ist ein Parameter des configure-Scripts von wxWidgets. Ob man den von pip aus irgendwie "durchreichen" kann, weiß ich leider nicht (aber starke Tendenz zu "Geht nicht").

Was man machen könnte:

- Versuchen, wxWidgets selber aus dem Quelltext zu bauen (dann kannst Du den Parameter direkt an das Configure-Script übergeben)
- Wenn die passende Version von wxWidgets im Raspian-Repository enthalten ist: Selbige installieren.
- Wie Du schon selber schreibst: Die fehlende Abhängigkeit auflösen, also GStreamer installieren

Alles ohne Gewähr. Smile

Gruß,
Timo


- kaimex - 07.03.2019

Hallo timo,

es ist so, wie du vermutest:
Vor der langen Liste der configure checks wird in einer Zeile gemeldet:
wxWidgets build options: ['--wxpython', '--umicode', 'gtk3']
configure options: [....eine sehr lange Zeile, die unter anderem --enable-mediactrl enthält.....]
/tmp/pip-build--Smf0ej/wxPython/ext/wxWidgets/configure ....hier steht noch mal die gleiche Optionsliste ohne Anführungsstriche, Kommas & eckige Klammern....
und dann kommt einen ellenlange Liste über mehrere Seiten mit checking Meldungen.
Wenn es gelänge, bei den configure options das --enable-mediactrl wegzulassen, würde garnicht nach GStreamer gecheckt.
Das GStreamer Paket ist irgendwas für die Verarbeitung von Video-Streams, was ich sicherlich nicht brauche. Bei einem 69 MB großen komprimierten Grafik-Paket habe ich ohnehin den Verdacht, daß da massenweise Zeugs drin ist, was ich nicht brauchen werde.
Wenn du noch eine Idee hast, wie/was ich downloaden müßte und wie man die Installation in einzelne Schritte zerlegen könnte, sodaß dabei einmal Zugriff auf diese configure-options entsteht, würde ich das gerne ausprobieren. Ansonsten habe ich dieses Buch erstmal beiseite gelegt und blättere jetzt eines der anderen drei durch auf der Suche nach der Erlösung von dem Übel...

MfG Kai


- MichaelB - 07.03.2019

Hallo Kai,

ich würde im "Makefile" nach "--enable-mediactrl" suchen und den String löschen. Also ordentlich vorher Makefile nach Makefile.orig kopieren, dann suchen und löschen Wink

Gruß
Michael


- kaimex - 08.03.2019

Hallo Mchael,

würd ich gerne tun.
Wie lade ich dazu aber erstmal alles runter, ohne die Installation anzuschmeißen und wie werfe ich die Installation nach Modifikation dann an ?
Damit bin ich ja bislang nicht vertraut als Nicht-Linuxer.
Irgendwo stand was von wget .... und einer anderen Möglichkeit.
Aber wenn man das bisher fast noch nie gemacht hat, würde man lieber eine Schritt für Schritt-Anleitung abarbeiten als ins Ungewisse zu stolpern.

MfG Kai


- kaimex - 08.03.2019

Gerade hatte ich mich entschlossen, lieber etwas Überflüssiges wie GSTreamer 1.0 zu installieren, als in eine komplexe Installation einzugreifen.
Also habe ich die Synaptic-Paketverwaltung gestartet und nach gstreamer suchen lassen.
Gefunden wurde einges bereits Installiertes von gestreamer 0.10 und zu meiner großen Verwunderung auch Installertes von gstreamer 1.0 und in der Form libgstreamer 1.0. Allerdings gibt es auch etliche gstreamer 1.0 items, die nicht als installiert markiert sind.
Es könnte also sein, daß gstreamer 1.0 installiert ist, aber von der Installationsroutine von wxWidgets bzw. wxPython nicht gefunden wird,
Was kann man da tun ?
Kann ich die vermeintliche Installation mit irgendeinem Befehl auf Wirksamkeit überprüfen ?

MfG Kai


- timo - 08.03.2019

Hallo Kai,

die Debian-basierten Distributionen trennen bei Bibliotheken zwischen Binär- und Entwicklerpaket. Ein "normaler" Anwender braucht nur erstes. Das zweite enthält die Header-Dateie, um selber Quelltext compilieren zu können, der die Bibliotheken nutzt. Dir fehlt wahrscheinlich letztes.

Die Entwicklerpakete tragen das Suffix -dev. Guck' mal, ob es sowas wie libgstreamer-1.0-dev o.Ä. gibt.

Gruß,
Timo


- kaimex - 08.03.2019

Hallo timo,

ich hab mal einen Screenshot aus der Synaptic-Paketverwaltung von allen Einträgen mit libgstreamer gemacht.
Die links grün markierten sind installiert. Die ...-dev sind nicht darunter.
[attachment=24884]
Mir war jetzt nicht klar, ob die beiden unteren markierten Einträge als Installation von gstreamer 0.1 und gstreamer 1.0 zu interpretieren sind und die Voraussetzzungen für erfolgreiche Installation von wxPython/wxWidgets erfüllen sollten.
Für irgendwas wird gstreamer doch anscheinend schon genutzt, sonst hätte man die markierten Teile doch nicht installieren müssen.
Würde ein Test aufschlußreich sein oder hilft hier nur Installation der -dev Versionen ?
Falls letzteres angezeigt ist, was soll ich befehlen ?

MfG Kai


- timo - 08.03.2019

Probier' mal, die libgstreamer1.0-dev zu instaliieren und dann noch mal zu compilieren. Das Paket ist nicht groß, sind ja nur ein paar .h-Dateien. Kannst Du theoretisch sogar nach der Compilierung wieder deinstallieren.


- kaimex - 08.03.2019

Hallo timo,

hab ich mit der Synaptic-Paketverwaltung gemacht (waren etwas mehr als 8 MB).
Wurde anscheinend erfolgreich durchgeführt.
Danach habe ich wieder
sudo pip --no-cache-dir install wxPython==4.0.4
befohlen.
Es schien zunächst erfolgreicher abzulaufen, nach geraumer Zeit kam jedoch wieder der Abbruch wegen nicht gefundenem GStreamer:
checking for GST... configure: WARNING: GStreamer 1.0 not available, falling back to 0.10
checking for GST... configure: WARNING: GStreamer 0.10 not available, falling back to 0.8
configure: WARNING: wxMediaCtrl can't be built because GStreamer not available
configure: error: wxMediaCtrl was explicitly requested but can't be built.

Fix the problems reported above or don't use --enable-mediactrl configure option.

Error running configure
ERROR: failed building wxWidgets
Traceback (most recent call last):
File "build.py", line 1321, in cmd_build_wx
wxbuild.main(wxDir(), build_options)
File "/tmp/pip-build-v3f6EA/wxPython/buildtools/build_wxwidgets.py", line 375, in main
"Error running configure")
File "/tmp/pip-build-v3f6EA/wxPython/buildtools/build_wxwidgets.py", line 85, in exitIfError
raise builder.BuildError(msg)
BuildError
Finished command: build_wx (1m3.908s)
Finished command: build (1m3.908s)
Command '"/usr/bin/python" -u build.py build' failed with exit code 1.

Sollte ich libgstreamer1.0-dev auf andere Weise installieren ?
Oder kann man einen Pfad so setzen, daß die (wahrscheinlich für mich überflüssige) Installation von wxmediaCtrl es erkennt ?

MfG Kai


- kaimex - 08.03.2019

Da bei wxWiki unter wxMediaCtrl steht:
"To build wxWidgets with wxMediaCtrl enabled on linux (gstreamer 0.10) libgconf2-dev and libgstreamer0.10-dev are required."
habe ich libgconf2-dev und libgstreamer0.10-dev über die Synaptic-Paketverwaltung installiert.
Wo ich schon mal da drin war, hab ich auch noch etwas mit Namen wxPython 3.x installieren lassen 8) .
Das kündigte das erforderliche Runterladen von (nur) 21.4 MB an und hat das schneller gemacht, als normal. Auch die Installation war fast ratzt fatz fertig.
2 Test-Programme aus dem Raspi GPIO Buch brachten allerdings kein Window auf das Display.
Deshalb hab ich nach Grafik-Test-Programmen im Netz gesucht und stattdessen die "wxPyWiki Getting Started" gefunden.
4 Test-Beispiele von da brachten tatsächlich Programm-Windows aufs Display, die allerdings recht schlicht, total flach und unfarbig (nur getönt) aussahen.
Deshalb hab ich gedacht, das muß doch noch etwas schöner gehen. Also nochmal versucht, wxPython 4.0.4 zu installieren.
Vorher allerdings noch"den Hof geputzt" mit
sudo apt-get update
sudo apt-get upgrade (das dauerte ziemlich lange)
sudo apt-get autoclean
sudo apt-get autoremove
und dann wieder
sudo pip --no-cache-dir install wxPython==4.0.4
Die Routine meldete bald danach: found existing installation 3.0.2.0
not uninstalling....
und brach dann nach einiger Zeit wieder ab wegen fehlendem GStreamer 1.0 und 0.1 .
Da steckt also irgendwo der Wurm drin. Aber immerhin sieht es so aus, als sei nun wxPython 3.0.2.0 installiert.

MfG Kai


- andreas42 - 09.03.2019

Hallo Kai,

ich habe vorhin mal probiert, bei mir (nicht auf dem Raspi, sondern auf dem Desktop-Rechner unter Ubuntu 16.04) wxPython 4.0.4 zu installieren - und hatte ebenfalls keine erfreulichen Erlebnisse.

Nachdem ich über den Paketmanager libgstreamer-1.0-dev und libgstreamer-plugins-base1.0-dev nachinstalliert hatte, war der configure-Vorgang erfolgreich, und der Build hat gestartet. Einige Zeit (>30min) hat er munter vor sich hin compiliert, und ist dann mit einer Fehlermeldung ausgestiegen, die wieder darauf hindeutet, dass dem Linker irgendwo eine Bibliothek fehlt:

Code:
/usr/bin/ld: cannot find -lwx_gtk3u_webview-3.0

Auf dem Raspberry Pi hätte das sicher noch deutlich länger gedauert.

Da stellt sich wxPython ganz schön blöd an - normalerweise gibt es ja inzwischen auch für Python-Pakete mit C/C++-Anteil binärpakete als "wheels", die dann einfach nur heruntergeladen werden müssen. Es gibt aber einen länglichen Artikel, warum das in diesem Fall nicht gehen soll: https://wxpython.org/blog/2017-08-17-builds-for-linux-with-pip/index.html. Das Problem scheint ihnen also bewusst zu sein. Naja.

Nächste Möglichkeit (und normalerweise meine bevorzugte) ist, mal beim Paketmanager der Distribution zu schauen. Bei mir (offenbar auch bei Dir) gibt es hier Version 3 (genauer: python-wxgtk3.0). Manchmal gibt es dann noch Fremd-Repositories, wo jemand neuere Software genau für die entsprechende Distribution compiliert hat. Bei Ubuntu heißen die "PPA", oft gibt es auch den Begriff "backport". In meinem Fall (also für Ubuntu) gäbe es das: https://launchpad.net/~swt-techie/+archive/ubuntu/wxpython4. Hab ich nicht ausprobiert, geht aber normal problemlos. Eine Entsprechung für Raspbian habe ich allerdings auf die Schnelle nicht gesehen.

Fazit: Bleib bei Version 3, es wird den Ärger nicht wert sein. Solche Probleme bei der Installation sind auch immer ein guter Grund, sie die Konkurrenz näher anzusehen. In diesem Fall (GUI-Toolkits mit Python-Bindings) wären das sicher QT und GTK. Davon bevorzuge ich letzteres; Geschmacksfrage.

Und noch ein Hinweis: Mir hat damals als Kickstart zum Zurechtfinden in Python mit C++/C/Perl/Basic-Hintergrund, ohne nochmal Programmieren von A-Z erklärt zu bekommen, dieses (online verfügbare) Buch sehr gut gefallen: https://www.diveinto.org/python3/index.html

Viele Grüße
Andreas


- kaimex - 09.03.2019

Hallo Andreas,

bei mir scheiterte es ja noch im configure Vorgang. Es dauerte etwas, waren aber höchstens gefühlte Minuten.
Strapazieren die anderen GUI-Versionen die Raspi CPU deutlich mehr als wx-... ?
Man muß es ja in Sachen 3D-Effekte im Fensterrahmen nicht übertreiben, nur weil man mal in einer GUI eine Kurve plotten will.
Welche Version benutzt du bei deinen python-scripts mit Kurven-Grafik ?
Würde eines davon unter wx-Python laufen ?
Hattest du auch ein UMC202HD (behringer) o.ä. angeschafft ?
Dann würde ich glatt mal prüfen, ob das ohne spezielle Treiber an dem Raspi läuft.

Im Moment versuche ich gerade, die rpi_hal Unit/Bibliothek für FPC/Lazarus zum Laufen zu bringen. Die hat leider einen Stand von vor 2 Jahren. Der Raspi 3B+ ist noch nicht unterstützt. Das versuche ich gerade selbst hinzukriegen, da der Autor sich bislang nicht dazu gemeldet hat.

MfG Kai


- timo - 09.03.2019

kaimex,'index.php?page=Thread&postID=234626#post234626 schrieb:Strapazieren die anderen GUI-Versionen die Raspi CPU deutlich mehr als wx-... ?

Hallo Kai,

eher nicht. wxWidgets bringt normalerweise [*] keine eigenen GUI-Elemente mit, sondern fungiert als Frontend für irgendeine plattformtypische Schnittstelle (also ziemlich genau das, was die LCL von Lazarus auch tut). Unter Unix-artigen Betriebssystemen ist das inzwischen normalerweise gtk2 oder gtk3 (das dürfte also auch auf dem RPi der Fall sein), unter OS X Cocoa, und unter WIndows halt die Windows-API. Somit kann es eigentlich nicht schneller oder ressourcenschonender sein als das, was dahintersteckt.

[*] Es gibt auch eine Variante namens wxUniversal, die eigene Steuerelemente implentiert, aber m.W. kaum eingesetzt wird.

Wenn man unter Python nur Basis-Funktionalität in Sachen Benutzerschnittstelle braucht, tut es eigentlich die De-Facto-Standard-Bibliothek tkinter, die bei Python für Windows sogar immer schon mitinstalliert wird. Obwohl ich eigentlich seit > 15 Jahren unter C++ wxWidgets einsetze, habe ich mich, wenn ich unter Python mal einen Dialog brauchte, immer damit begnügt.

Gruß,
Timo