2016-06-02 18 views
1

Wäre es möglich, QtCreator als ein nornal Benutzer ausführen aber Ausführen und Debuggen einer Anwendung als root?QtCreator-Code als Benutzer, aber als Root root und debuggen

Das wäre nützlich, d. H. Während der Entwicklung von Anwendungen basierend auf , die den Zugriff auf GPIO erleichtert, aber Root benötigt, um den Zugriff auf die Hardware effektiv zu ermöglichen.

Um klarer in meinen Absichten zu sein, würde ich gerne, dass wenn ich Ctrl+R in QtCretor, dann führt es die App als root. Und die gleiche Idee für das Debuggen, wenn ich F5 hit es Debugging-Modus als root startet. All das, während QtCreator von einem normalen Benutzer ausgeführt wird.

Antwort

0

Natürlich können Sie Ihre Anwendung als normaler Benutzer entwickeln und debuggen. Warum kannst du das nicht?

Natürlich können Sie Ihre endgültige Anwendung als root-Benutzer ausführen - warum können Sie das nicht? "root" kann jede ausführbare Datei ausführen, die er/sie möchte. Sie können sudo verwenden, um einen einzelnen Befehl mit root-Rechten auszuführen (vorausgesetzt, er ist korrekt konfiguriert) oder verwenden Sie einfach su, um zu einer root-Shell zu wechseln und dann Ihre App auszuführen.

Sie können Ihre IDE natürlich auch so konfigurieren, dass sie sudo verwendet, wenn Sie Ihre App ausführen.

0

Die kurze Antwort ist nein. Selbst wenn Sie die Anwendung so starten könnten, dass sie in einem QtCreator-Kontext ohne Rootberechtigung als root ausgeführt wird, können Sie keine Verbindung zum laufenden Prozess herstellen und ihn nicht debuggen.

Sie sind besser dran, einfach QtCreator als root auszuführen.

Wenn Sie einen „Benutzermodus“ Schnittstelle zu den GPIO-Pins zu entwickeln, können Sie dieses Tutorial versuchen: LED Driver

Es zeigt einen Weg Knoten innerhalb des/sys Baum zu erstellen, die Sie Zugriff geben können Usermode zum GPIO.

4

WiringPi benötigt keinen Root-Zugriff. Sie müssen Eigenschaften für die relevanten Geräteknoten richtig einstellen, das ist alles. Stellen Sie sicher, dass Sie /dev/gpiomem für die Verwendung durch WiringPi zur Verfügung haben, beschreibbar durch den Benutzer. Es ist verfügbar auf 4.1 und neueren Kernel IIRC.

Ihre Frage ist ein Fall von einem X-Y-Problem. Ja, Root-Zugriff Sidesteps das Problem der falschen Geräteknoteneigenschaften, aber es ist überhaupt keine richtige Lösung. Führen Sie Ihre Anwendung nicht als root aus.

+0

Ich werde eine ausführliche Version dieser Antwort schätzen, wenn man eine Umgebung in Betracht zieht, die auf Debian Jessie basiert, wie es bei Raspbian der Fall ist. – KcFnMi

0

ich heute das gleiche Problem mit wiringPi nach diesem Kommentar gelöst: https://askubuntu.com/a/711130

In meinem Fall war es:

Extras-> Optionen-> Umwelt die Standardzeichenfolge ersetzt mit „/ usr/bin/xterm -e sudo "in der Terminaloption.

Auch vergessen Sie nicht zu Projekte gehen> Build & Ausführen> Ausführen und markieren Sie das Kästchen Run in Terminal.

+0

Dies ist eine gute Idee, bis Ihre App versehentlich etwas löscht, das für den normalen Betrieb Ihres Systems entscheidend ist ... – rubenvb

+0

Natürlich, aber in meinem Fall macht es mir nichts aus! Auch KcFnMi macht vielleicht nichts aus, da die Frage war "Wäre es möglich, QtCreator als nornaler Benutzer auszuführen, aber eine Anwendung als root ausführen und debuggen?" – iGian