ich auch nicht, aber nachdem man sudo sowieso für pwm und pullups/downs braucht, komme ich eh nicht drum rum.
ich auch nicht, aber nachdem man sudo sowieso für pwm und pullups/downs braucht, komme ich eh nicht drum rum.
Hallo,
der gewünschte User (Pi) muss den jeweiligen Gruppen zugeordnet sein. Welche das sind, hängt dann wieder vom Einsatzzweck ab. Habe ich irgendwo auch schon Mal erwähnt.
Wenn das Herz involviert ist, steht die Logik außen vor! \/
mact mich persönlich aber jetzt nicht wirklich schlauer, was genau ich mit welchen exakten Einzelschritten unternehmen müsste, um wiringPi OHNE sudo benutzen zu können.
also:
1. ?
2. ?
3. ?
4. ?
5. ?
...?
Hallo,
die Befehle stehen im oben verlinkten Post. Welche Du genau brauchst, kann ich nicht pauschal sagen. Hängt von den installierten und genutzten Paketen ab. Da gibt es zu viele Möglichkeiten, um alle zu kennen. Am besten Du listet die möglichen Gruppen
auf und fügst den User Pi nach und nach den Gruppen zu. Zwischendurch immer testen.Code:cat /etc/group
Mit gpio und der seriellen Schnittstelle (dialout) würde ich Anfangen.
Alles natürlich auf der Shell eingeben.Code:sudo usermod -aG gpio pi sudo usermod -aG dialout pi
Ohne sudo nutzen zu müssen, geht natürlich root am einfachsten. Wenn Du den user Pi aber da hinzufügst, kannst Du Dich gleich als root anmelden.
Wenn das Herz involviert ist, steht die Logik außen vor! \/
nein, das muss anders gehen, iwas mit Umgebungsvariablen hat Gordon mal erwähnt. Ansonsten gehört der Standarduser pi bei NOOBS immer zur selben Gruppe (welche, weiß ich aber auch nicht, ich hasse diese ganze Linuxgruppendynamik). Man kann aber als ersten Lösungsansatz mal vom StandardnutzerPi ausgehen.
aber ist ja eigentlich auch egal, besser wär es eh, wenn dieser ganze Sudomist mal iwann für GPIOs und pwm aufgehoben wird.
ps, edit:
das sieht doch schon ganz anders aus, vlt hilft es ja.... 8-)Zitat von gordon@drogon.net
... pps:
Zitat von gordon@drogon.net
yes, I'll do!![]()
Hallo,
es führen mehrere Wege nach Rom. So pauschal lasse ich Dein 'nein' nicht gelten, bis es jemand getestet hat. Für Dich ist es evtl. inakzeptabel, für andere wiederum eine ausreichende Lösung. Zumal die Gruppenzugehörigkeit einen Neustart überlebt und die Umgebungsvariable jedesmal neu gesetzt werden muss. In Deinem Beispiel ist diese darüber hinaus fest im Programmcode verankert. Ändert sich die Variable irgendwann mal (wie z.B. ttyAMA0 beim Pi 3, dann funktioniert das Programm nicht mehr.
Ob die Umgebungsvariable immer ausreicht, ist mir nicht bekannt (nie probiert). Probier es am besten aus und teile uns Deine Erkenntnisse mit. Evtl. reicht es, wennvor dem gewünschten Programm ausgeführt wird.Code:export WIRINGPI_GPIOMEM=1
Ansonsten gibt es keine Benutzergruppen in dem Sinne. Da kann ein Benutzer halt zu verschiedenen Gruppen gehören. Sozusagen mehrere Schlüssel erhalten. Einen für Standard-Sachen und einige für 'besondere' Türen (Aufgaben). Ich selbst mache alles bis auf Webserver unter root.
Edit:
Bei einem meiner PIs gibt es folgende Gruppen:
Da würde ich dann tty, dialout, audio, spi, gpio und I2C wählen, wo ich den user Pi hinzufüge, wenn noch nicht vorhanden.Code:root@Raspi6V2:~# cat /etc/group root:x:0: daemon:x:1: bin:x:2: sys:x:3: adm:x:4:pi tty:x:5: disk:x:6: lp:x:7: mail:x:8: news:x:9: uucp:x:10: man:x:12: proxy:x:13: kmem:x:15: dialout:x:20:pi fax:x:21: voice:x:22: cdrom:x:24:pi floppy:x:25: tape:x:26: sudo:x:27:pi audio:x:29:pi dip:x:30: www-data:x:33: backup:x:34: operator:x:37: list:x:38: irc:x:39: src:x:40: gnats:x:41: shadow:x:42: utmp:x:43: video:x:44:pi sasl:x:45: plugdev:x:46:pi staff:x:50: games:x:60:pi users:x:100:pi nogroup:x:65534: libuuid:x:101: crontab:x:102: pi:x:1000: ssh:x:103: ntp:x:104: netdev:x:105:pi input:x:999:pi messagebus:x:106: lpadmin:x:107: fuse:x:108: lightdm:x:109: indiecity:x:1001:root spi:x:1002:pi gpio:x:1003:pi ftp:x:110: i2c:x:111:pi,root root@Raspi6V2:~#
Code:sudo usermod -aG gpio pi sudo usermod -aG dialout pi sudo usermod -aG tty pi sudo usermod -aG spi pi sudo usermod -aG I2C pi
Geändert von peterfido (15.05.2016 um 11:30 Uhr)
Wenn das Herz involviert ist, steht die Logik außen vor! \/
das "nein, das muss anders gehen" bezog sich ausschließlich auf den von Gordon selber vorgeschlagenen Weg für seine WiringPi libs.
Er hatte es früher schon einmal erwähnt, dass man nur eine Environment Variable setzen muss, aber für mich nicht verständlich.
Jetzt, so wie er es dann auf meine Frage oben erklärt hat, ist es aber einfach - es ist ja genau der Weg, den er selber dafür in seinem letzten Release dafür implementiert hat, und nur das hatte ich gesucht.
Klar mag es darüber hinaus auch noch andere Wege geben, nur die hatte ich nicht im Sinn.0. #include <stdlib.h>
1. main () ... {
2. putenv ("WIRINGPI_GPIOMEM=1") ;
3. wiringPiSetup () ;
4. ...
Außerdem gilt ja immer noch die Einschränkung für die PUDs, die man nach wie vor nur per sudo nutzen kann, und genau die brauche ich ja auch ständig.
Möglicherweise hilft es aber anderen.
Lesezeichen