X11 Window-Forwarding mit ssh -X ?

R

rash65

unregistriert
Thread Starter
Dabei seit
27.10.2004
Beiträge
113
Reaktionspunkte
0
Wie genau geht das? Ich hab folgende Situation:

Mein iBook ist über einen wlan-router im Netz. In der Uni steht eine Linux Rechner, auf dem ich zB gerne Bochs ausführen würde.

Ich habe auf meinem ibook x11 und die darwinports installiert. dann öffne ich x11 und in der Konsole gebe ich "ssh -X user@rechnerblabla" ein und komme auf den Uni-Rechner. Wie kann ich jetzt die Applikationen auf meinen Desktop umleiten?
 
das sollte dann eigentlich schon funktionieren ...

ich geh mit "ssh -X -l <user> <host>" rein und das DISPLAY wird dann automatisch auf meinen rechner weitergeleitet.

fons
 
rash65 schrieb:
Wie genau geht das? Ich hab folgende Situation:

Mein iBook ist über einen wlan-router im Netz. In der Uni steht eine Linux Rechner, auf dem ich zB gerne Bochs ausführen würde.

Ich habe auf meinem ibook x11 und die darwinports installiert. dann öffne ich x11 und in der Konsole gebe ich "ssh -X user@rechnerblabla" ein und komme auf den Uni-Rechner. Wie kann ich jetzt die Applikationen auf meinen Desktop umleiten?

Du startest den X11, und tippst in die Konsole von dem X11 "ssh -X user@rechnerblabla" ein, nicht im Apple Terminal.
Dann sollte ein einfacher Start des Programmes die Ausgabe zu Dir lenken.
 
Tatsache, das geht ja schon :) Nur dummerweise geht genau Bochs nicht, ihm fehlt eine VGA Schrift. Hab die Fehlermeldung mal gegoogelt, und mir dann die Schrift runtergeladen. Dann dem Tutorial nach das gemacht (im X11 Terminal...):

# uudecode cp437-8x16.pcf.gz.uu > cp437-8x16.pcf.gz
// was macht die Zeile eigentlich?

# cp cp437-8x16.pcf.gz /usr/X11R6/lib/X11/fonts/misc/
# mkfontdir /usr/X11R6/lib/X11/fonts/misc/
# xset fp rehash

nur leider mag der Bochs immer noch nicht. Hat vielleicht jmd. den Bochs bei sich laufen und weiss da weiter?
 
Richtig, du musst im X11-Terminal sein und von dort aus per SSH raus gehen. Das normale OSX-Terminal kennt deinen X11 nicht und ich weiss nicht wie man ihm die Display-Variable setzen kann.

Wichtig ist natürlich, dass du auf dem Server überhaupt die Rechte dazu hast dich mit X einzuloggen ;)
Anstoss: man xhost

Wenn du mit -X eingeloggt bist, deine Dispaly-Variable stimmt (du also im X bist) und x-Rechte hast dann kannst du einfach durch normales starten des Programms das Bild bekommen. z.B. /usr/bin/X11/xlogo

Kleiner Tipp wenn es übers Internet oder ein anderes langsames Netzwerk geht ist es evtl ganz geschickt -C zu verwenden.

ssh -XC user@Zielrechner

Tipp: man ssh
 
rash65 schrieb:
# uudecode cp437-8x16.pcf.gz.uu > cp437-8x16.pcf.gz
// was macht die Zeile eigentlich?

das file .uu ist mit uuencode von 8->7bit kodiert für den mail versand.
uudecode macht daraus halt wieder eine richtige datei, die nicht nur aus ascii zeichen besteht.
 
Also hier scheints ja doch ein paar Checker zu geben :) vielleicht kann mir noch jemand mit einem anderen Problem (quasi die Erweiterung von dem hier...) helfen.

Nachdem der Bochs scheinbar ends langsam läuft, brauch ich wohl eh eine neue Lösung.
Mein Problem ist, ich habe ein C++ Projekt & Makefile. Dass dumme ist nur, dass der Code für PCs kompiliert werden muss (und dann eben ich Bochs ausprobiert...).
Das Problem ist jetzt mein Makefile, wenn ich das einfach so laufen lasse, bleibt es an"ld -T" hängen. Ausserdem scheint der Mac-Linker nur Mach0-Objekte linken zu wollen...
Hab ich da irgendwie eine Chance, (auch dass der Mac PC-Kot erzeugt...) oder brauch ich das gar nicht erst zu probieren? Bin leider noch Mac-Neuling und die Zeit mich da großartig einzuarbeiten hab ich gerade nicht...
 
Versteh ich das richtig? Du willst aufm mac irgendwas für nen PC compilieren?
Wenn ja, dann würd ich mal sagen brauchst Du einen Crosscompiler. Die Board-Dev-Tools werden Dir da kaum helfen.
Wenn nein, dann erklärs mir :)
 
was ist dem an dem c++ file so pc spezifisch, dass es unbedingt in bochs laufen soll?
wie alexco schon sagte, um auf dem mac pc code zu compilieren brauchst du einen crosscompiler, gcc kann das zwar, aber die version die von apple geliefert wird hat keine x86 targets dabei...
 
lol

na wahrscheinlich brauch er deswegen Bochs um darauf für x86 zu kompilieren
lol
*schuldigung*
 
also die Sache schaut so aus. Wir programmieren in der Uni ein kleines Betriebssystem (nix besonderes, keine GUI aber dafür "from scratch") und da ist halt jede Menge PC-spezifischer Assemblercode drin, und auch so jede Menge Kot, der so halt nur auf PC läuft.

Was für Flags muss ich dem gcc denn da mitgeben, dass er das cross-kompiliert, und wo bekomme ich den normalen Linker her (der Mac-Linker will Mach0 Files...).
 
*aua* da sind wohl wieder jede menge pc idioten am werk...
was für tolle timing relevante routinen haben die denn, damit die "unbedingt" so was nicht portierbares wie pc assembler benutzen müssen? (den jeder optimierende c-compiler bestimmt besser gemacht hätte ;))

der apple-gcc kennt nur targets mit ppc, da darfst du wohl gleich mal gcc neu compilieren, was aber schwierig sein dürfte, weil du am besten die apple-gcc source benutzen solltest, damit du immer noch so kompilieren kannst...
bei dem gcc package ist ld mit dabei...

ich würde lieber deine kommolitionen verprügeln, weil sie nicht mal die real programmers sprüche kennen:
"real programmers don't use assembly, they use nothing less portable than a number 2 pencil" ;)
 
Naja, ganz so schlimm ists auch nicht, der Professor hat doch selber ein Powerbook.

Die Assembler Stellen sind auch nicht aus irgendwelchen performancetechnischen Gründen da, sonndern um zB der CPU direkt Sachen mitzuteilen (zB Interrupts sperren, CPU stoppen, etc) oder irgendwelche IO-Port Geschichten...
Das wir das ganze auf PC Ebene programmieren hat den Grund, dass alle aktuellen PCs immernoch kompatibel zu den ältesten Kisten sind, für den Anfang bleibt so alles noch halbwegs "überschaubar"...

Aber das kompilieren kann ich dann wohl aufgeben, muss ich halt ab und an doch noch die Dose anschmeissen ;)
 
rash65 schrieb:
Was für Flags muss ich dem gcc denn da mitgeben, dass er das cross-kompiliert, und wo bekomme ich den normalen Linker her (der Mac-Linker will Mach0 Files...).
Normalerweise ist das so, dass gcc erst mal per -b Option den passenden Native- oder Crosscompiler auswählt und den dann startet. Nur der Apple-gcc-Befehl (ich glaube er ist unter /usr/bin/gcc) sperrt sich dagegen. Ich habe nämlich mal probiert, dem Standard-gcc einen (ARM-Linux) cross-compiler unterzuschieben - das ging nicht.

Die Lösung war dann den Crosscompiler einfach separat zu übersetzen (Achtung: gcc Bootstrapping nachlesen) und aufzurufen (volle Pfadabgabe oder $PATH vorher passend setzen, dann gehen auch viele aber nicht alle Makefiles). Linker, Assembler usw. sind bei dem neu erstellten Cross-Compiler dabei.

-- hns
 
Das Problem ist, dass ich noch nicht soo der Linux/Unix Mensch bin, und das Programm an sich raubt schon jede Menge Zeit, aber ich werde dem in ruhigeren Zeiten mal nachgehen, weil reizen würds mich schon...
 
Zurück
Oben Unten