home   artikelen   forum   colofon  
Gepubliceerd op 12.10.2001
Auteur: Matthias Kranz
Vertaald door: Guus Snijders
Languages: en de
Help Ons!
 

Vrije X-server voor MsWin

X-Server voor MsWin Er bestaan vrije X servers voor MsWin! Dit stelt je in staat programma's op een Linux computer te draaien met de weergave op een MsWin PC.

Inhoud:

Introductie

Het idee is om een X server op een MsWin 9x of NT machine starten, zodat we het kunnen gebruiken als een lokale machine.
Er zijn enkele commerciële X servers voor MsWin, de goedkoopste lijkt MicroImage te zijn met een prijs van $25, maar die werkt alleen met twm (Tom's Window Manager); deze software kon ons niet echt imponeren.

Met een beetje zoeken kun je een oude en volledig vrije versie van de MicroImage X server vinden. Deze is uitgekomen in 1997, maar we konden er geen serieuze problemen mee vinden, op wat kleine probleempjes met de grafische display na.

Benodigdheden

Je hebt de volgende dingen nodig:

Een Linux computer met een goed geconfigureerde netwerkkaart.

De window manager fvwm2 moet geïnstalleerd zijn maar hoeft niet de default manager te zijn.

De Linux computer moet RSH connecties accepteren.



MsWin moet geïnstalleerd zijn en stabiel werken (een uitdaging op zich!). De netwerkkaart moet ook zonder problemen werken.

Het programma dat je nodig hebt is xserver.zip. Deze kun je hier vinden en is vrij distribueerbaar.

Configuratie

Pak het bestand xserver.zip uit naar C:\mix_95. Volgens de documentatie moet de directory zo heten, maar je kunt het iedere naam geven die je wilt. Een ding moet je wel weten: de DOS naam van de directory. Dat betekend dat als je directorynaam meer dan 8 karakters lang is, de DOS naam de korte vorm met de tilde (~) is. We zullen de configuratie hier baseren op de directory c:\mix_95.

Vervolgens heb je een minimaal fvwm2 of twm configuratie bestand nodig. Deze heb je nodig voor je windowmanager. Default configuratie bestanden voor fvwm kun je (voor SuSE) vinden in /usr/X11R6/lib/X11/fvwm2/.fvwm2rc en voor twm in /usr/X11R6/lib/X11/twm/system.twmrc .

FVWM Zoeken met www.google.nl/linux naar .fvwm2rc of .twmrc zou hetzelfde moeten opleveren.

Het configuratie-bestand voor de window manager wordt opgeslagen onder respectievelijk $HOME/.fvwm2rc or $HOME/.twmrc. $HOME staat voor de home directory van de user die toegang tot de Linux PC via de X server wil. We wijzen er nog eens op dat het niet is aan te raden om te werken met het root account. De configuratie werkt overigens hetzelfde voor het root account (de $HOME is dan /root).

We willen er ook op wijzen dat rsh minder veilig is dan ssh. Deze oplossing is dan ook niet bruikbaar via het Internet, maar alleen in een veilig LAN.

De basisconfiguratie werkt vrij eenvoudig met twm. Wij waren niet erg dol op deze window manager en gingen de diepte van de configuratie van fvwm2 in. Wellicht kun je het aanpassen voor je favoriete wm, het werkt niet met KDE.

Vervolgens schrijven we het script om de X server op de Linux PC te initialiseren.

De vrije MicroImage X server heeft een beperkt aantal fonts. In het zip bestand staan ook andere lettertypen, maar deze moeten handmatig worden geïnstalleerd, dit gaat met het programma "xset". De parameter -fp geeft het FONT-PATH. Alle andere opties zijn beschreven in de man xset, maar zijn niet nodig voor de eerste keer.
De volgende stap is belangrijk: zet het PATH (dit is een andere dat het FONT-PATH). Standaard zijn alleen /bin/ en /usr/bin/ opgenomen. Om X clients uit te voeren zou je dan altijd het volledige pad moeten opgeven (/usr/X11R6/bin/...). Het vele typewerk gaat je al snel op de zenuwen werken, dus waarom neem je het niet op in de PATH declaratie in het INIT script van de X server?
Na het voor de eerste keer starten van de X server, realiseerden we ons dat bepaalde toetsen als de backslash, scheidingstekens enzovoorts niet werkten met ons Duitse toetsenbord, dus veranderden wij de toetsenbord instellingen en plaatsten de symbolen op ons toetsenbord op de juiste plek. Hiervoor gebruikten we het programma xmodmap. Wellicht moet je dit aanpassen voor je eigen toetsenbord.

Dat is het, ons volledige script volgt hieronder. Plaats deze in /home/user/initxscript en gebruik het commando chmod 755 initxscript om het uitvoerbaar te maken

File initxscript
   PATH="/bin:/usr/bin:/opt/bin:/usr/X11R6/bin:/usr/TeX/bin:/usr/local/bin"
export PATH
/usr/X11R6/bin/xset fp=\ c:/mix_95/pcf/75dpi/,c:/mix_95/pcf/misc/,c:/mix_95/bdf/misc/,\ c:/mix_95/fonts/100dpi/,c:/mix_95/fonts/75dpi/,c:/mix_95/fonts/latin2/,\ c:/mix_95/fonts/misc/,c:/mix_95/fonts/local/,c:/mix_95/fonts/pex,\ c:/mix_95/fonts/speedo/,c:/mix_95/fonts/type1,c:/mix_95/fonts/urw/\ >> /home/user/start.log & #Instelling voor Duits toetsenbord /usr/X11R6/bin/xmodmap -display 192.168.0.11:0.0 - ‹‹EOF keycode 125 = bar keycode 127 = asciitilde keycode 126 = braceright keycode 124 = braceleft keycode 92 = bracketleft keycode 94 = bracketright keycode 65 = at keycode 93 = backslash keycode 95 = asciicircum keycode 97 = quoteleft keycode 181 = quoteright EOF /usr/X11R6/bin/fvwm2 >> /home/user/start.log &


(download)

Opmerking: de user in het script moet je vervangen door de gebruikte gebruikersnaam.
De parameters van xset (derde regel), moeten alle in een commando!
Op ons Linux systeem vonden we nog wat fonts en hebben die erbij opgenomen. Standaard worden alleen de eerste 3(!) font-directories gebruikt. Geef geen niet-bestaande directories op, xset zal dan niet werken!

Het is ook handig de variabele MAIL=/var/spool/mail te exporteren. Neem deze regel op onder de PATH regel (1.regel) en verander het export commando in export PATH MAIL. Uiteraard kun je op deze manier meer opnemen.

Nu moet je de permissies zo zetten dat het Mswin toegestaan is dit script uit te voeren. Hiervoor maak je het bestand .rhosts in de directory /home/user/.
Dit bestand heeft de volgende structuur:

Bestand .rhosts
  computer-naam.domein.de user
  


computer-naam staat voor de naam van de MsWin computer (of de naam die je opgaf in het /etc/hosts bestand op je Linux computer). Als je MsWin computer het IP adres 192.168.0.11 is, zou je /etc/hosts er zo uit kunnen zien:

Bestadn /etc/hosts
  192.168.0.11	alex.technix.de		alex
  


dan vul je (dus) het volgende in in /home/user/.rhosts

Bestand .rhosts
  alex.technix.de user
  


Het .rhosts bestand staat een computer, mits opgenomen in dit bestand, toe om commando's zonder wachtwoord uit te voeren. Wees voorzichtig met deze mogelijkheid. Nu zie je waarom je dit niet als root moet doen!

Het bestand /home/users/.rhosts zou alleen voor de gebruiker leesbaar moeten zijn, dus gebruik je het commando:

  >> chmod 600 .rhosts
  
Voor het moment zijn we klaar met het configureren van de Linux computer.


Over naar de MsWin computer.
We schrijven een klein BATCH script dat eerst het initialisatie-script op de Linux PC start en daarna de window manager (FVWM2).

Het batch bestand kun je in c:\mix_95\ plaatsen en ziet er uit als:

bestand launch.bat
  REM Door Matthias Kranz (matthias.kranz@technix.de)
  REM Je kunt de REM in de volgende regel weghalen voor minder berichten
  REM ECHO OFF
  XS
  REM mijn Linux server heeft het IP 192.168.0.1 en de MsWin client
  REM het IP 192.168.0.11
  REM pas de volgende regel aan aan jouw opstelling
  rsh -l user 192.168.0.1 "xterm -display 192.168.0.11:0.0 -title \ 
  Initializing -e nohup /home/user/initxscript > /home/user/start.log &"
  EXIT
  EXIT
  EXIT
  


(download)

Nu kun je een snelkoppeling op je bureaublad maken. Je kunt de opties "Start geminimaliseerd" en "sluiten na afsluiten" zodat je geen last meer hebt van de de DOS pop-up box.

Dat zou het moeten doen. Een dubbelklik op de snelkoppeling en het zou moeten werken.

Belangrijke opmerkingen, probleem oplossingen en niet-opgeloste problemen:
- Start de MsWin X server, een wit scherm verschijnt en verdwijnt onmiddelijk. Dit is een probleem met het initxscript.
- Het X server venster gebruikt dezelfde resolutie als de MsWin computer. Het venster kan ook geen andere grootte krijgen.
- De X server wil de kleurdiepte van de Linux computer gebruiken, onafhankelijk van hoe de MsWin instellingen. Dit geeft geen conflicten of problemen.
- Enkele programma's willen niet werken, met name KDE programma's of programma's die andere fonts nodig hebben, maar die niet door de X server worden geleverd. Deze fonts kun je toevoegen aan je /home/user/.fvwm2rc of /home/user/.twmrc respectievelijk -> man fvwm2 of man twm .
- Op de MsWin PC kun je automatisch andere programma's starten via

  >> rsh -l LINUX-COMPUTER-IP "/path-to-program/program -display WINDOWS-COMPUTER-IP:0.0 &"
  

Voeg dit commando toe aan je launch.bat bestand. Of plaats het in je .fvwm2rc of twmrc respectievelijk.
- Starten van launch.bat eindigt in een crash van de MsWin X server, vooral als de MsWin langere tijd gebruikt is. Je moet dan MsWin rebooten.
- Tijdens het uitvoeren van het initxscript, wil de window manager niet correct starten. Hiervoor voeg je een herstart knop voor de window manager toe in de menus (de window manager kan onafhankelijk van de X server herstarten, zie man fvwm2 of man twm). Na de herstart zou alles weer OK moeten zijn.

Als je andere problemen (en eventueel ook de oplossing), is het wellicht aardig om ons hierover te schrijven.

Documentatie

Meer documentatie is te vinden in:

Links

http://www.uk.research.att.com/vnc/ Een andere vrije X server voor MsWin en andere OS'en. Deze X server is trager dan MicroImage (alle graphics zijn bitmaps) maar werkt met veel veel verschillende window managers. Er zijn snellere versies die compressie toepassen.
http://download.sourceforge.net/WeirdX/ Een andere X server, deze is volledig in Java geschreven (JDK 1.2.* + Swing). Werkt ook als een applet in een webbrowser met Java ondersteuning.


Dit artikel is een vertaling en herdruk van een artikel dat geschreven is door Matthias Kranz( (EN), (DE) Meer artikelen van M. Kranz en Jan Thiele zijn te vinden op hun homepage op http://www.price-of-freedom.de