Forum: Mikrocontroller und Digitale Elektronik Raspberry Pi - Idle und ssh


von Bomwollen (Gast)


Lesenswert?

hi,

zunächst: keine Ahnung ob RPi Themen eher uc oder eher PC sind. Habe 
mich für uc entschieden.

Raspberry pi zu win10 PC über ssh funktioniert bei mir. Windows hat ssh 
jetzt ja auch mit an Bord und FileZilla zum Datenaustausch funktioniert 
auch.
Ich kann python-Skripts über ssh aufrufen und das RPi reagiert auch.

Aber ich würde gerne Idle auf windows Seite zur Verfügung haben. Das 
funktioniert nicht und ergibt TCL-Fehler. Eine Suche hat ergeben, dass 
das auf Windows Seite einen X11 Server benötigt.
Alles was ich gefunden habe hat mich aber nicht ans Ziel gebraucht.

z.B. fand ich auch, dass in /etc/ssh/sshd_config ein "X11UseForwarding 
yes" nötig ist. Wenn ich das einfüge komme ich aber gar nicht mehr über 
ssh auf den RPi.

Kann mir da jemand weiterhelfen, z.B. mit einem Idiotensicheren Link auf 
eine Erklärbär-Seite? Oder durch selber den Erklärbär spielen? ich bin 
bei Linux recht unerfahren, wie sich jeder denken kann; was 
möglicherweise einen gewissen Beißreflex oder Posing bei den Leuten hier 
heraufbeschwören kann. Dessen bin ich mir bewusst, will aber trotzdem 
mein Glück versuchen.

Wie geht ihr remote mit dem Raspberry um?
sers

von Oliver S. (oliverso)


Lesenswert?

VNC

Aber was genau meinst du mit "idle auf Windows-Seite"?

Oliver

von CC (Gast)


Lesenswert?

Schau dir mal MobaXTerm (?) an. Du brauchst nen X-Server, ich meine, der 
war auch dabei.

An sich sollte PC besser passen als uC.

von Ich seh das so (Gast)


Lesenswert?

Bomwollen schrieb:
> zunächst: keine Ahnung ob RPi Themen eher uc oder eher PC sind. Habe
> mich für uc entschieden.

Der Unterschied ist ganz einfach: Beim Mikrocontroller steckt das 
ausgeführte Programm im Flash Speicher, beim PC wird es von irgendwo 
geladen und aus dem RAM ausgeführt.

von Bomwollen (Gast)


Lesenswert?

ok soweit danke für die Hilfe ;-)) Manchmal muss man ja nur etwas fragen 
und kommt dann selber weiter.... Komischen Phänomen.

also ich habe jetzt herausgefunden, dass ich über den windows 
remote-desktop auf das rpi komme.

Dazu habe ich "sudo apt-get install xrdp" die remote desktop 
Unterstützung auf dem rpi installiert und irgendwie ging es dann sofort.
Ist aber recht langsam weil tatsächlich die ganze Grafik incl. 
Hintergrund übertragen wird.

Und es soll meine ursprüngliche Frage nicht deaktivieren. Ich würde 
gerne mehr verstehen bzw wissen. Kann ich als DAU IDLE3 irgendwie über 
ssh aufrufen?

danke allen :-)

von seppl (Gast)


Lesenswert?

Ich kenne IDLE3 nicht und habe evtl. auch nicht ganz verstanden, was Du 
vor hast, aber wenn es Dir darum geht, Dich per SSH auf dem Raspberry 
einzuloggen und dort ein Programm zustarten, dessen GUI dann auf Deinem 
Windows PC dargestellt wird, dann brauchst Du eigentlich nur

1) einen X-Server:
https://sourceforge.net/projects/xming/
(den Du dann auch startest)

2) Einen SSH client, bei dem Du XForwarding aktivierst
(z.B. "ssh -X" oder putty (Einstellungen)

3) evtl. eine Umleitung der DISPLAY Umgebungsvariable, wenn Du Dein 
Programm startest. Z.B.
bash# DISPLAY=:1 meinProgramm

Das Überschreiben der Display-Variablen kannst Du Dir möglicherweise 
aber auch sparen. Ausprobieren...

von Oliver S. (oliverso)


Lesenswert?

Auf die Gefahr hin, mich zu wiederholen: Warum ssh?

Oliver S. schrieb:
> VNC

Genaugenommen realvnc.

Oliver

von Bomwollen (Gast)


Lesenswert?

also ssh, weil ich das als erste Lösung für Fernbedienung gefunden hatte 
und damit auch auf das System zugreifen konnte.

Also wäre vnc als google-Stichwort geeignet?

von Stefan F. (Gast)


Lesenswert?

Eine kleine Erklärung zum Verständnis:

Bei Unix ist die Grafikausgabe eine optionale Funktion - weit weniger 
fest ins System eingeklöppelt, als bei Windows. Was bei Windows der 
Grafiktreiber macht, das macht bei Unix der X-Server. Der heißt so, weil 
er traditionell über Netzwerk angesprochen wird. Darauf ergibt sich bei 
Unix die Möglichkeit, die Bildschirmausgabe auf einem ganz anderen 
Rechner zu machen, als wo das eigentliche Programm läuft.

Wenn du den Raspberry Pi remote nutzt, sieht das dann so aus:
1
Raspi <-------Netzwerk (SSH Port 22)---------- PC (= Text Konsole)
2
 |
3
 |
4
 +------------Netzwerk (X11 Port 6000)-------> PC (= Grafischer X-Server)

Du loggst dich per SSH auf den Respi ein und stellt zugleich einen 
X-Serer bereit, auf den die Programme (die du auf dem Raspi ausführst) 
ihre grafischen Ausgaben machen dürfen.

Grafische Linux Programme gehen standardmäßig davon aus, dass lokal 
mindestens ein X-Server mit Kanalnummer 0 läuft. Der heisst dann 
"localhost:0" oder einfach :0. Im TCP/IP Protokoll ist die entsprechende 
Portnummer üblicherweise 6000.

Wenn dein PC Linux ausführt, muss du dem X-Server mitteilen, dass er 
Verbindungen von außen zulassen soll. Das geht mit dem Befehl "xhost +". 
Bei Windows entfällt dieser Schritt.

Du willst die Bildschirmausgabe auf deinem PC haben, deswegen setzt du 
vor dem Start des Programmes auf dem Raspi eine Umgebungsvariable 
"DISPLAY=meinpc:0". Nun spricht das Programm den X-Server auf deinem PC 
an, auf Port 6000.

Sinnvollerweise verschlüsselt man die X11 Kommunikation ebenfalls, was 
beim SSH Client die Option -X erledigt und Serverseitig durch die 
Konfiguration "X11UseForwarding" erlaubt wird. Dann wird die X11 
Verbindung durch die bestehende SSH Verbindung (aber in umgekehrte 
Richtung!) getunnelt:
1
Raspi <-------Netzwerk (SSH Port 22)---------- PC (= Text Konsole)
2
 |         /                        \
3
 |        /                          \
4
 +---X11-+                            +------> PC (= Grafischer X-Server)

In diesem Fall setzt SSH die DISPLAY Variable automatisch richtig. Bei 
meiner Kombi (Rapi und PC mit Debian Linux) ist das 
DISPLAY=localhost:10.0.

In diesem Fall richtet SSH einen minimalen TCP-Server auf dem Raspi auf 
Port 6010 ein, der einfach alles Daten durch die SSH Verbindung an den 
PC auf Port 6000 weiter leitet. So wird die Grafikausgabe an den 
X-Server der auf dem PC läuft umgeleitet.

Andere Baustelle: VNC

VNC simuliert auf dem Server (Raspi) einen Bildschirm samt Grafikkarte 
und Treiber und leitet das Bild in komprimierter Form an den VNC Client 
(dein PC) weiter. Dort wird das Bild dann in einem Fenster dargestellt.

Bei langsamen Netzwerkverbindungen (z.B durch das Internet) arbeitet 
diese Methode meistens wesentlich flüssiger, obwohl das Datenvolumen und 
der technische Aufwand (auf Seite des Raspi) höher ist.

VNC kommuniziert üblicherweise auf Port 5900 für den ersten virtuellen 
Bildschirm, 5901 für den zweiten, usw.

Während du bei X11 normalerweise nur die Ausgabe einzelner Fenster an 
den PC überträgst und die Programme per Kommandozeile (ssh) startest, 
bekommst du bei VNC üblicherweise einen kompletten Desktop samt 
Startmenü angezeigt.

von Oliver S. (oliverso)


Lesenswert?

Bomwollen schrieb:
> Also wäre vnc als google-Stichwort geeignet?

Als Ergänzung zu Stefans Ausführungen:

JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

Oliver

von foobar (Gast)


Lesenswert?

Ergänzung zu Stefans Einführung:

Zusätzlich gibt es bei X11 die Display-Manager 
(XDM/GDM(Gnome)/KDM(KDE)): die öffnen das Login-Fenster und starten bei 
erfolgreichem Login dann eine Session (den "Desktop").  Dem X-Server 
(z.B. xming) kannst du mittels "-query <hostname>" sagen, dass er den 
Display-Manager auf <hostname> kontaktieren soll um dich dort 
einzuloggen.

Pferdefuß: die Display-Manager sind heutzutage meist so konfiguriert, 
dass sie keine Sessions für externe Displays erlauben - man muß sie er 
erst umkonfigurieren, dass sie auch externe Querys beantworten.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.