X applicaties via het netwerk draaien

>> Xfree86/OS2 Index<<


Linux applicaties zien onder OS/2

De zaken automatiseren

Telnet en Secure Shell

Hieronder een screenshot van XFree86/OS2 met de Tab Windows Manager: de nieuwslezer knews, Applixware, KDE applicaties en diverse terminals met niet grafische applicaties. De X server, knews en xman draaien onder OS/2, maar de rest draait onder Linux . Alle applicaties worden op de XFree86 server van OS/2 afgebeeld.


Als u erop klikt ziet u de afbeelding in het eigenlijke formaat.

eComStation gebruikers kunnen met HOBLink X11 voor OS/2 seamless X applicaties op de Werkplek draaien:


In dit geval treedt een Linux PC als applicatieserver op.

Linux applicaties zien onder OS/2

> Top <

Om dit te kunnen doen moeten enige zaken geregeld zijn.

De Linux PC heet "zolder", de OS/2 PC "visser". Als het hosts bestanden (de DNS) nog niet ingevuld (geconfigureerd) is, zou u ook IP adressen kunnen gebruiken.

U start de XFree86/OS2 server op de OS/2 prompt:

startx

Deze draait daarna als een full screen applicatie onder OS/2 (met Ctrl-Escape zit u weer in OS/2).

U moet de Linux PC op "zolder" toegang geven tot de XFree86/OS2 server op "visser":

xhost +zolder

Startx en xhost maken deel uit van het XFree86/OS2 basispakket. Het pad naaar \XFree86\bin\ hoort in de config.sys te staan.

De volgende opdrachten worden op de Linux PC uitgevoerd. Dat gebeurt met de OS/2 telnet client.

Er moet een TCP/IP verbinding zijn met de Linux PC die de applicaties levert. U moet een gebruikersaccount hebben op de Linux server. De telnet daemon moet op de Linux server lopen (/etc/inetd.conf). Dit alles kunt u controleren door vanuit OS/2 op de Linux server (hier als "sjoerd") in te loggen.

telnet zolder
Welcome to SuSE Linux 6.3 (i386) - Kernel 2.2.13 (pts/2).

zolder login: sjoerd
Password:
Last login: Tue Aug 22 16:46:57 from visser.thuis
Have a lot of fun...
sjoerd@zolder:~ >

Een "login" telnet geeft u volledige toegang tot de Linux prompt. Beveilig het netwerk dus door telnet alleen lokaal beschikbaar te stellen. Zie ook : Telnet en Secure Shell.

U moet aan Linux doorgeven dat het beeld van X applicaties naar de X server van de OS/2 PC "visser" moet gaan:

sjoerd@zolder:~ >export DISPLAY=visser:0.0

U geeft een opdracht voor een X applicatie:

sjoerd@zolder:~ > applix
sjoerd@zolder:~ > _X11TransSocketINETConnect: Can't connect: errno = 111
_X11TransSocketINETConnect: Can't connect: errno = 111
etc
_X11TransSocketINETConnect: Can't connect: errno = 111
Could not open X display!
Your display is set to visser:0.0
The X server does not seem to recognize this.
axnet error, axmain already started. Try Again.
In dit geval was de X server nog niet opgestart.
In het onderstaande voorbeeld wel.
sjoerd@zolder:~ > applix
sjoerd@zolder:~ >

Applixware start standaard als server op. Voor de meeste programma's het wijzer ze met een ampersand op de achtergrond te starten. Hierdoor komt de prompt terug. Met "xterm &" verschijnt een X terminal op de X server. Vanuit de X terminal kunt u weer nieuwe applicaties starten.

sjoerd@zolder:~ > xterm &
[1] 404

Xosview is een systeem monitor.

sjoerd@zolder:~ > xosview &
[2] 405

Wat te denken van WP voor Linux onder XFree86/OS2?

sjoerd@zolder:~ > xwp &
[3] 405

Nog leuker is de complete KDE desktop omgeving:

sjoerd@zolder:~ > startkde &
[1] 6967
sjoerd@zolder:~ > xset: bad font path element (#42), possible causes are:
Directory does not exist or has wrong permissions
Directory missing fonts.dir
Incorrect font server address or syntax
xset: bad font path element (#42), possible causes are:
Directory does not exist or has wrong permissions
Directory missing fonts.dir
Incorrect font server address or syntax
xset: bad font path element (#42), possible causes are:
Directory does not exist or has wrong permissions
Directory missing fonts.dir
Incorrect font server address or syntax
xset: bad font path element (#42), possible causes are:
Directory does not exist or has wrong permissions
Directory missing fonts.dir
Incorrect font server address or syntax
Could not load library! Trying exec....
Launched ok, pid = 7040
KLauncher doing clientStarted(`kmixctrl')
KLauncher doing clientStarted(`kxmlrpcd')

U ziet een rijtje foutmeldingen van ontbrekende fonts en twm blijft fungeren als Window Manager, maar u kunt alle KDE applicaties via het netwerk draaien.

Onder KDE 3 is gebruikt u de opdracht kde & of kicker & (alleen de taakbalk).

Overigens is het met Hoblink op de OS/2 Desktop handiger om alleen de KDE 3 taakbalk met het startmenu te laden.

sjoerd@suse:~> kicker &

Hoblink ondersteunt namelijk niet de door recente KDE versies gebruikte laatste X protocollen. De XFree86 versie 4 server doet dat wel . Maar die heeft weer als nadeel dat TWM als Window Manager gebuikt wordt. Het resizen van vensters lukt alleen als u de in het het volledig scherm verschenen venster KDE Desktop minimaliseert:

Klik op het links boven in beeld gebrachte KDE Desktop pictogram en daarna kunt u met linksklik op de dan pas verschenen TWM Desktop vensteracties ondernemen. Met de opdracht "xkicker &" hebt u dat niet.

De zaken automatiseren

> Top <

Nadat u hier wat mee gespeeld heeft, is het handig om wat zaken te automatiseren.

Zo kunt u de noodzakelijke opdracht

xhost +zolder

het beste in bestand XFree86\lib\11\init\initrc.cmd te plaatsen.

'start/min/n "Login Xterm" xterm -sb -geometry 80x25+0+0 -name login'
IF manpath \= '' THEN
'detach xman -geometry 100x100-105+1'
'startx/min/n "Xterm 1" xterm -sb -geometry 80x50+494+51'
/* 'startx/min/n "Xterm 2" xterm -sb -geometry 80x20+494-0' */
'xhost +zolder'
'twm'

In een REXX script worden OS/2 opdrachten tussen aanhalingstekens gezet.

U zet een opdracht uit door hem tussen */ /* te zetten.

*/ 'detach xclock -update 1 -geometry 100x100-1+1' */

Xclock gaf bij mij 99% cpu-use. Omdat de opdracht met detach opgestart werd onttrekt hij zich aan het opdrachtverwerkingsprogramma cmd.exe en is hij niet via het taakoverzicht te killen.

Normale OS/2 toepassingen zult u zelden via detach willen lanceren. Met detach kunt programma's niet meer via het het toetsenbord, het beeldscherm en de muis bereiken (zie help detach). Maar voor X applicaties geldt dit niet. Ze luisteren niet naar het toetsenbord, de nuis en schrijven niet naar het beeldscherm. Ze verstaan slechts het X protocol! Onder X zal het vaak de bedoeling zijn dat een X applicatie die ik op zolder lanceerde zich losmaakt van het beeldscherm en toetsenbord op zolder! Bijv. omdat mijn OS/2 X server in de huiskamer staat. X applicaties moeten naar de opdrachten van de X server luisteren. Voor de X applicatie zal het niet uitmaken waar iemand de X server lanceerde, zolang het TCP/IP netwerk maar loopt.

Het bestand XFree86\lib\11\init\initrc.cmd is te beschouwen als de autoexec.bat van de X server.

Omgevingsvariabelen die de Linux PC betreffen plaatst u het best in /home/os2gebruiker/.bashrc. U brengt ze aan met de export opdracht. Aliasen besparen u tikwerk.

export NNTPSERVER=zolder 
export DISPLAY=localhost:0.0 
export EDITOR=mcedit 
export LANG=c
# wat shortcuts
alias xwp="/opt/wp8nl/wpbin/xwp" 
alias ecs="export DISPLAY=ecs:0.0"
alias visser="export DISPLAY=visser:0.0"  
alias zolder="export DISPLAY=localhost:0.0" 

Ik gebruik de 14" monitor van de Linux PC bijna niet voor grafische applicaties, maar exporteer het beeld meteen naar een X server op de PC "visser". Wil ik alleen op die PC werken dan log ik onder een andere naam in. Een andere optie is "export DISPLAY=localhost:0.0" aan het startx script van de Linux server toe te voegen. Dat heeft geen consequenties voor OS/2 (die heeft zijn eigen startx script.

Maak dus voor het werken onder OS/2 een extra account (warp o.i.d.) op de Linux server aan. Want als u met "export DISPLAY=visser:0.0" startx op een Linux PC met de naam zolder draait, krijgt u ter plekke geheid geen beeld.

De geëxporteerde EDITOR is de editor van de Midnight Commander. Het menu maakt hem gemakkelijker dan vi. Met export LANG=c ziet de mc bestandsbeheerder er onder OS/2 beter uit. Een alias is een toetsencombinatie die type- en zoekwerk bespaart.

Telnet en Secure Shell

> Top <

OS/2 heeft bruikbare telnet clients. Ik gebruikte het Terminaltype vt220 (geen ANSI), de Codetabel ISO1 (ISO 8859-1) en het US keyboard om op de Linux server op zolder in te loggen. Vandaar kunnen Linux applicaties op de X server van OS/2 worden gedraaid.

Als lettertype gebruik is System VIO 7x15 op een 1024x768 beeldscherm. Niet grafische applicaties worden hiermee goed weergeven. Maar de functietoetsen (nodig voor mc) blijven een probleem. Toetsen F1-F4 worden goed weergeven, F5 geeft een T en voor F5-F9 moet ik F6-F10 toetsen (ze schuiven een functietoets op). De toetsenborden van OS/2 en Linux terminals komen niet overeen.

Dit probleem is op te lossen door Secure Shell/2 (ssh-os2-bin-1_2_30.zip op HOBBES) te gebruiken. Deze levert de (termcap) vertaling van de toetsenborden mee.

ssh -l user-id -tc /etc/ssh_term.linux host

geeft onder Linux een terminal die onder OS/2 prima werkt! De termcap bestanden kopieert u naar \etc van OS/2.

Voor de OpenSSH/2 port moet u de /ssh termcaps en configuratiebestanden naar etc/ssh verplaatsen. En de uitvoerbare bestanden naar \tcpip\bin \tcpip\dll. U logt in met:

ssh -l user-id -tc linux host

Secure Shell biedt tevens encryptie van het dataverkeer over het net. Dit zonder merkbaar performance verlies. Met een OS/2 X server kunt u "xterm &" op het terminalvenster tikken, zodat u onder X met de x terminal van Linux werken kunt.



Let op.

Sinds 2005 gebruiken veel ssh servers het 16 bits UTF8. Maar OS/2 command line applications (CLI) als de ssh client kunnen UTF tekens niet goed aan.

Mijn oplossing is nu om in /home/user/.bashrc of /etc/bash.bashrc.local onder Linux bash te vertellen dat OS/2 liever een andere tekenset heeft.

export LANG =c
export LANG =POSIX
export LANG=en_US.ISO-8859-1
export LANG="en_US.ISO-8859-1"

En dat werkt goed met ZOC4 of ssh vanuit OS/2.

Overigens werkt de Java applicatie Mindterm wel goed met UTF (Settings/Terminal/General/Encoding/UTF8) .



> Top <