[Index de La FAQ] [Section 10 - Gestion du Système] [Section 12 - Questions Spécifiques Aux Plates-Formes]
X est considéré comme un protocole fonctionnant sur le mode "client-server" mais cette terminologie peut parfois prêter à confusion. L'ordinateur avec l'affichage graphique à l'écran est le "serveur X". L'application qui défini ce que le serveur X doit afficher à l'écran est le "client X" même s'il s'agit d'une machine bien plus puissante dans un centre d'hébergement. Ce modèle peut être utilisé afin d'avoir des applications gourmandes en ressources processeur (clients X) tournant sur une machine très puissante mais utilisant un serveur X tournant sur une petite machine de faible puissance sur votre bureau pour afficher leurs interfaces.
Il est possible de faire tourner des clients X sur un système sans support graphique. Ainsi, on pourrait avoir une application (le client X) tournant sur un mvme88k et affichant son interface sur un alpha (le serveur X). Puisque X est un protocole bien défini et multiplate-forme il est même possible d'avoir une application X tournant (par exemple) sur une machine Solaris et utiliser une machine OpenBSD pour l'afficher.
Le client et le serveur peuvent également tourner sur la même machine et pour la majorité de cette documentation, c'est ce que nous supposerons.
Ceci dit, l'utilité de faire tourner X est généralement d'utiliser des applications X. Certaines de ces applications sont très peu gourmandes, d'autres vous sembleront utiliser tout le processeur et la RAM que vous leur octroierez. Evidemment, certains utilisateurs n'utilisent X qu'afin de bénéficier de nombreux xterm(1)s, ce qui reste possible même sur du matériel modeste.
Plusieurs plates-formes requièrent le pilote d'aperture xf86(4) qui offre un accès à la mémoire et aux ports d'entrée/sortie de la carte VGA ainsi qu'aux registres de configuration PCI nécessaires. Ce pilote doit être activé avant d'être utilisé soit en répondant "yes" à la question suivante posée durant l'installation du système :
Do you expect to run the X window System [no]
soit en changeant la valeur de machdep.allowaperture en une
valeur non nulle appropriée à votre plate-forme dans le fichier
/etc/sysctl.conf et en redémarrant la machine (pour raisons de
sécurité, cette valeur sysctl ne peut pas être changée après le
lancement de la machine).
Il existe des conséquences sur la sécurité, ne le faites pas si vous
n'en avez pas vraiment besoin.
Mettez machdep.allowaperture=1 dans /etc/sysctl.conf.
Les cartes TGA ainsi que certaines VGA sont supportées. Aucune configuration supplémentaire ne devrait être nécessaire.
Mettez machdep.allowaperture=2 dans /etc/sysctl.conf.
Dans la plupart des cas, X sous amd64 se configure automatiquement et aucune manipulation supplémentaire ne devrait être nécessaire. Si une configuration spécifique est nécessaire, utilisez la procédure X -configure comme expliquée plus bas.
Mettez machdep.allowaperture=2 dans /etc/sysctl.conf pour les serveurs X.Org ou 1 pour les serveurs XFree86 v3.
Du fait du choix énorme de cartes vidéos, souris, claviers et autres matériels pour cette plate-forme, configurer X sous un système i386 peut s'avérer excitant. Suffisamment excitant d'ailleurs pour qu'une section séparée soit proposée.
Fort heureusement, les choses ne sont pas toujours aussi noires qu'elles le semblent ; dans la plupart des cas, X "fonctionne tout simplement" en tapant "startx". Dans ce cas, votre matériel sera détecté et interrogé sur ses capacités ce qui permettra à X de très bien fonctionner.
Les systèmes Mac68k "fonctionneront tout simplement", aucune configuration n'est nécessaire.
La souris : la souris Macintosh standard ne possède qu'un seul bouton ce qui est un problème puisque X s'attend à une souris 3-boutons. Certaines souris de vendeurs tiers auront un deuxième bouton qui fonctionnera sous X. Sinon, vous devrez vous référer au manuel Xmac68k(1) afin d'obtenir des informations sur l'émulation pour les souris à un bouton.
Mettez machdep.allowaperture=2 dans /etc/sysctl.conf.
Les systèmes PPC Macintosh peuvent fonctionner sous deux modes différents : "accéléré" et "framebuffer" (non accéléré).
En mode "framebuffer", le système tournera avec 8 bits par pixel et la résolution vidéo sera contrôlée par l'environnement Macintosh, vous devrez donc garder une petite partition sous MacOS sur votre disque afin de pouvoir changer la configuration. Ce mode à l'avantage de "fonctionner tout simplement" mais il peut apparaître comme statique et frustrant (par exemple, changer la résolution peut demander un redémarrage sous MacOS).
Si votre Macintosh possède un système vidéo basé sur de l'ATI il peut tourner en mode X accéléré ce qui offre de meilleures performances et plus de contrôle sous l'environnement OpenBSD. Les cartes vidéo NVIDIA présentes dans certains systèmes macppc devraient également fonctionner dans la plupart des cas. Le fichier README contient des détails sur la configuration du pilote accéléré, basez-vous sur l'exemple qu'il fourni.
Bien que le fichier README contienne des détails pour utiliser une souris Apple standard à un bouton sous X, à moins d'utiliser un portable, il vous est vivement recommandé d'acheter une souris tierce plus moderne.
Avec un seul framebuffer supporté il n'y a pas besoin de configuration. Si vous souhaitez utiliser une configuration multi-affichage, lisez le README ci-dessous pour plus de détails.
La résolution est contrôlée par le firmware avant de démarrer OpenBSD.
Il existe de nombreuses variations de ces machines et vous aurez besoin de connaître quel type de bus votre système utilise (PCI ou SBus), à quel port votre souris est branchée (zstty, com, ou USB/PS2) et quel type de carte vidéo vous possédez. Démarrez avec le fichier d'exemple xorg.conf présent dans le README et modifiez les valeurs indiquées en fonction de votre matériel et de vos besoins. N'espérez pas que le fichier d'exemple fonctionne sans modification sur votre machine !
Le serveur X ne fonctionne pour l'instant que sur les models VAXstation 4000 en utilisant soit le framebuffer lcg(4) soit le framebuffer lcspx(4).
Pas de configuration nécessaire, X "fonctionne tout simplement".
Nous nous arrêterons là en ce qui concerne le serveur XFree86 v3. Faire tourner les anciens serveurs X sur du vieux matériel reste une "danse tribale" et nous serions désolés de vous la rendre aisée.
Il existe trois programmes permettant de créer un fichier configuration pour les serveurs X.Org i386 de façon semi-automatique. Malheureusement, aucun d'entre eux ne garanti la création d'un fichier xorg.conf utilisable.
vga1 at pci1 dev 0 function 0 "3DFX Interactive Banshee" rev 0x03
Il s'agit d'une ancienne carte haut-de-gamme qui n'est à présent plus
vraiment supportée par les nouvelles versions des systèmes
d'exploitation "principaux".
L'écran relié au système est un moniteur CRT "Sony Multiscan G400 19" et
il serait plaisant de pouvoir afficher une résolution de 1280x1024 sur
celui-ci avec une fréquence de rafraîchissement décente et des couleurs
24 bit.
En premier lieu, après avoir installé OpenBSD avec X (et être certain que le pilote d'aperture est activé dans le noyau), voyons ce que la détection et la configurarion automatique de X.Org nous propose, après tout nous pourrions être chanceux. Nous allons nous identifiez puis utiliserons donc la commande startx(1). L'écran devient blanc quelques secondes puis nous obtenons le fond d'écran en "échiquier" de X, le curseur X et une fenêtre xterm.
Ca marche !
Plus ou moins. Bien que le système soit pleinement fonctionnel, il ne paraît pas avoir détecté une quelconque des fonctionnalités de l'écran et tourne à très basse résolution (640x480). Nous espérons pouvoir faire mieux que cela. Bien mieux en fait. Cependant, cela signifie que nous aurons besoin de créer notre propre fichier de configurarion xorg.conf.
Servons-nous de la commande "X -configure" afin de créer un fichier xorg.conf de base. Vous devrez lancer la commande suivante en tant qu'utilisateur root :
# X -configure
[...]
Your xorg.conf file is /root/xorg.conf.new
To test the server, run 'X -config /root/xorg.conf.new'
Au fait, ce message est sérieux ; utilisez le chemin complet vers votre
fichier xorg.conf.new même s'il repose dans votre répertoire
actuel par défaut.
Sinon,
X(7)
ne trouvera pas le fichier et il utilisera la configuration par défaut
qui peut n'avoir aucun rapport avec le fichier sur lequel vous affiner
actuellement la configuration.
Cela permettra de vous éviter de déboguer le pourquoi cela ne fonctionne
pas.
Faites-nous confiance là-dessus.
Donc, faisons comme il dit et voyons ce que nous obtenons :
# X -config /root/xorg.conf.new
A présent, tout ce que nous avons est un écran noir.
Les choses avaient pourtant si bien commencées...
Le moment est peut-être venu de vous parler des différentes manières de sortir de X lorsqu'il démarre de cette façon. Par ordre de préférence :
Maintenant, il est utile de connaître votre matériel. Brancher ce système sur un moniteur différent alors que l'écran noir est toujours présent affiche le message "Sync. Out of Range" sur l'écran. Apparemment donc, la configuration que X nous a fourni ne fonctionnera pas sur ce moniteur et peut-être même sur AUCUN si le mode sélectionné ne fonctionne pas avec cette carte particulière (souvenez-vous que X détecte la puce sur la carte et ce qu'elle est potentiellement capable de faire, pas la façon dont le fabricant a intégré tous les éléments). Différents moniteurs réagiront différemment lorsque le rafraîchissement est mauvais, certains tenteront tout de même d'afficher ce qu'ils peuvent, d'autres passeront en mode de conservation d'énergie alors que d'autres émettront d'horribles bruits ou afficheront des messages informatifs à l'écran. Ce moniteur ne semble rien faire de tout cela. On notera de ne PAS utiliser cet écran pour une configuration initiale de X dans le futur.
En jetant un oeil au fichier xorg.conf.new l'on peut voir ceci :
Section "Monitor"
#DisplaySize 370 270 # mm
Identifier "Monitor0"
VendorName "SNY"
ModelName "SONY CPD-G400"
### Comment all HorizSync and VertSync values to use DDC:
HorizSync 30.0 - 107.0
VertRefresh 48.0 - 120.0
Option "DPMS"
EndSection
Pour le test, essayons d'utiliser DDC ("Data Display Channel", une façon
que possède le moniteur de renseigner l'ordinateur et la carte vidéo sur
ses capacités) et voyons ce qu'il se passe.
Cette fois, nous obtenons le maillage X et un curseur de souris mobile
ce qui est tout ce à quoi nous pouvons nous attendre lorsque nous
démarrons X de cette façon (nous quittons X en utilisant
CTRL-ALT-Backspace comme expliqué plus haut).
Cela reste (encore) dans une très basse résolution, mais cela fonctionne
ce qui signifie certainement que la résolution et la fréquence de
rafraîchissement posent problème.
Nous restaurons "HorizSync" et "VertRefresh" à leur valeur précédente
car nous avons vérifié les spécifications de ce moniteur en recherchant
sur Internet.
Essayons de forcer Xorg à une résolution spécifique et voyons si nous avons de la chance. Dans la partie Section "Screen" du fichier xorg.conf, nous ajouterons deux lignes. Celles-ci sont montrées en gras :
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 1
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 4
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 8
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 15
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 16
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1280x1024"
EndSubSection
EndSection
Ces deux changements indiquent que nous souhaitons faire tourner X à
une profondeur d'affichage de 24 bit et, pour cette profondeur,
bénéficier d'une résolution de 1280x1024.
Puisqu'aucune autre résolution n'est précisée pour le mode "Depth 24",
le système sera forcé de l'utiliser.
Nous testons nos changements et... SUCCES ! Nous obtenons ce qui semble être un très bel affichage en haute résolution. Notez bien que TOUT ce à quoi vous devez vous attendre est un maillage X (appelé "rootweave", il est parfait pour voir la qualité de votre moniteur et pour calibrer les écrans LCD, ) et un curseur mobile. A ce point, rien ne se doit d'être fonctionnel.
A présent, installons ce fichier xorg.conf afin de voir comment cela fonctionne avec un X fonctionnel qui tourne.
# cp xorg.conf.new /etc/X11/xorg.conf
Nous pouvons maintenant utiliser la commande normale startx(1).
Ca marche !
Il serait probablement bon de vérifier que nous sommes bien à la résolution et à la profondeur que nous désirons et que nous tournons à une fréquence de rafraîchissement correcte. Nous pouvons le vérifier avec les commandes xrandr(1) et xdpyinfo(1). Entre autres, xdpyinfo(1) nous dit :
[...]
screen #0:
print screen: no
dimensions: 1280x1024 pixels (433x347 millimeters)
resolution: 75x75 dots per inch
depths (7): 24, 1, 4, 8, 15, 16, 32
root window id: 0x44
depth of root window: 24 planes
[...]
Donc oui, nous tournons bien à 1280x1024 avec une profondeur de 24
planes (bits).
xrandr(4) nous dit :
SZ: Pixels Physical Refresh
*0 1280 x 1024 ( 433mm x 347mm ) *85 75 60
1 1280 x 960 ( 433mm x 347mm ) 85 60
[...]
ce qui signifie que nous tournons avec une fréquence de rafraîchissement
de 85Hz, ce qui devrait être confortable pour la plupart des
utilisateurs.
Sur certaines plates-formes, vous aurez besoin de désactiver la console getty(8) pour utiliser xdm(1).
[Index de La FAQ] [Section 10 - Gestion du Système] [Section 12 - Questions Spécifiques Aux Plates-Formes]