Outils personnels
Vous êtes ici : Accueil Ze Valken's Blog Topics x.org
Tag Cloud
acer active directory adsl airport express alienware amazon anabret antec anti-spam antivirus app store apple apple expo apple store applecare arnaud larher asus asus terminator athlon 64 athlon xp ati audigy b'twin barebone batterie bind bitdefender blog blu-ray bluetooth boitier booq bouygues télécom brenthaven bug canalsat canon captcha chloe clavier coolermaster core 2 corsair covertec cpl creative css d-link d900 da vinci code dashboard dell divx done that ds dune dvd décathlon ecran edf emule enermax enregistreur numérique ericsson facebook films firefox flickr fon fossil france télécom free freebsd fujitsu fun gameboy garantie geforce gigabyte google gps graveur griffin gskill gundam half life 2 hdmi hitachi home-cinéma ibook id3 ilife internet internet explorer iphone iphoto ipod itunes ixus j'ai vu/lu jacky jeux jres k750 k800 l'express la fraise la poste lg linksys linux live search logitech loto mac mac os x macbook macbook pro maison mdp media center media extender microsoft mistergooddeal montgallet montre mp3 msi n95 nero netgear neuf télécom newsgator nintendo nokia norton nvidia open source orange ordinateur oregon scientific visual overclock p2p panda panne paypal pc-cillin pdair pentium iii philips photo photoshop album php picasa playstation plextor plone portable portage ports postfix postgrey powerbook qplonecomments quills radeon ram raptor realtek rer route 66 rss sac safari samsung sauvegarde scsi seagate seti sfr shozu sidebar simpleblog sims site snap snoopy société sony sony ericsson souris star wars stardate stargate atlantis stats suivi séries taisol technologie ten thèmes tnt tom tom tps travail tversity télé télé2 téléphone ups v3 vaja via victorinox viewsonic virgin virtualisation virus vmware vol vélo wave web webcam webmin western digital widcomm widget wifi wii windows windows ce wow wtf x.org xbox yahoo! widgets yamaha z600 zalman zope
 

x.org

10/12/2004

Multi-écrans sous X sur FreeBSD

by Paig Chong Woo — last modified 10/12/2004 00:00
Filed Under:

X Window peut faire du multi-écran, voici comment (youhou mon premier howto réellement intéressant !). - étendu 25 janvier 2005

Oui, X Window peut faire du multi-écran, et oui X.org peut le faire. Mais c'est pas super documenté sur le net (ou je cherche comme un pied, ce qui est aussi une possibilité ;)).

Le pire, c'est que c'est pas très compliqué. Mais Xorg ne configure pas automatiquement la prise en charge multi-écrans, même s'il détecte plusieurs cartes ! Il détecte bien les cartes et moniteurs, mais en lançant un gestionnaire de fenêtres, on se retrouve avec un seul écran fonctionnel, alors que le test marche bien... Pire encore, si on a une carte multi-affichages, on n'a qu'une seule carte et un seul moniteur !

Lisez mon papier sur xorg.conf si ce n'est déjà fait, j'y explique les bases à connaître sur le fichier de configuration de X.org, et je vais me baser dessus pour l'étendre à la prise en charge multi-écrans.

Les prérequis pour une configuration multi-écrans, c'est déjà plusieurs écrans :), et plusieurs cartes graphiques, ou un carte graphique pouvant gérer plusieurs écrans. De plus en plus de cartes ont cette fonction, il est probable que vous ayez une telle carte sans même le savoir. A fortiori si vous avez un ordinateur portable (assez) récent, la puce graphique intégrée en est capable.

Si vous n'avez pas tout ça, faut se faire une raison, il n'y aura pas de multi-affichage (je le précise, des fois on me pose des questions farfelues comme "peut-on lire une clé USB qui n'est pas reliée à l'ordinateur ?").

Si par bonheur (et abondance de place sur le bureau) vous avez deux écrans ou plus et des puces graphiques pouvant supporter vos écrans, on peut se tenter le coup de frime. ;)

Première étape, avoir une configuration Xorg qui marche, sur un écran (voir sinon). Si vous avez deux cartes vidéo, Xorg les aura trouvées (sinon voir plus bas pour une tentative de solution), et elles apparaîtront dans des sections Device séparées. Dans mon cas, j'ai une puce Intel Extreme Graphics 2 intégrée sur AGP et une Matrox Millenium PCI :

Section "Device"

        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
        ### [arg]: arg optional
        #Option     "NoAccel"            	# [<bool>]
        #Option     "SWcursor"           	# [<bool>]
        #Option     "ColorKey"           	# <i>
        #Option     "CacheLines"         	# <i>
        #Option     "Dac6Bit"            	# [<bool>]
        #Option     "DRI"                	# [<bool>]
        #Option     "NoDDC"              	# [<bool>]
        #Option     "ShowCache"          	# [<bool>]
        #Option     "XvMCSurfaces"       	# <i>
        #Option     "PageFlip"           	# [<bool>]
	Identifier  "Card0"
	Driver      "i810"
	VendorName  "Intel Corp."
	BoardName   "82865G Integrated Graphics Device"
	BusID       "PCI:0:2:0"
EndSection

Section "Device"

        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
        ### [arg]: arg optional
        #Option     "SWcursor"           	# [<bool>]
        #Option     "HWcursor"           	# [<bool>]
        #Option     "PciRetry"           	# [<bool>]
        #Option     "SyncOnGreen"        	# [<bool>]
        #Option     "NoAccel"            	# [<bool>]
        #Option     "ShowCache"          	# [<bool>]
        #Option     "Overlay"            	# [<str>]
        #Option     "MGASDRAM"           	# [<bool>]
        #Option     "ShadowFB"           	# [<bool>]
        #Option     "UseFBDev"           	# [<bool>]
        #Option     "ColorKey"           	# <i>
        #Option     "SetMclk"            	# <freq>
        #Option     "OverclockMem"       	# [<bool>]
        #Option     "VideoKey"           	# <i>
        #Option     "Rotate"             	# [<str>]
        #Option     "TexturedVideo"      	# [<bool>]
        #Option     "Crtc2Half"          	# [<bool>]
        #Option     "Crtc2Ram"           	# <i>
        #Option     "Int10"              	# [<bool>]
        #Option     "AGPMode"            	# <i>
        #Option     "AGPSize"            	# <i>
        #Option     "DigitalScreen1"     	# [<bool>]
        #Option     "DigitalScreen2"     	# [<bool>]
        #Option     "TV"                 	# [<bool>]
        #Option     "TVStandard"         	# [<str>]
        #Option     "CableType"          	# [<str>]
        #Option     "NoHal"              	# [<bool>]
        #Option     "SwappedHead"        	# [<bool>]
        #Option     "DRI"                	# [<bool>]
        #Option     "MergedFB"           	# [<bool>]
        #Option     "Monitor2HSync"      	# [<str>]
        #Option     "Monitor2VRefresh"   	# [<str>]
        #Option     "Monitor2Position"   	# [<str>]
        #Option     "MetaModes"          	# [<str>]
	Identifier  "Card1"
	Driver      "mga"
	VendorName  "Matrox Graphics, Inc."
	BoardName   "MGA 2064W [Millennium]"
	BusID       "PCI:1:7:0"
EndSection

Le pilote mga comporte beaucoup d'options, dont des références à un 2ème moniteur ("Monitor2Position"), mais la plupart sont destinées aux Milleniums récentes, dans la série G, pas mon ancêtre. :)

Les cartes sont correctement identifiées en tant que "Card0" et "Card1". On va pouvoir s'en servir directement.

Si vous avez une carte intégrée, c'est différent, vous n'avez qu'un seul Device, comme ceci :

Section "Device"
	Identifier  "Card0"
	Driver      "radeon"
	VendorName  "ATI"
	BoardName   "ATI Radeon Mobility M6"
	Option     "AGPMode" "4"
        #VideoRam   32768 
        # NOTE: Enabling VideoRam produces strange errors, 
        #       no problem, it detects 32MB anyway.
        BusID       "PCI:1:0:0"
EndSection

L'astuce, c'est qu'on sait que cette carte peut gérer deux moniteurs. On va donc la dupliquer :

Section "Device"
	Identifier  "Card0"
	Driver      "radeon"
	VendorName  "ATI"
	BoardName   "ATI Radeon Mobility M6"
	Option     "AGPMode" "4"
        #VideoRam   32768 
        # NOTE: Enabling VideoRam produces strange errors, 
        #       no problem, it detects 32MB anyway.
        BusID       "PCI:1:0:0"
EndSection

Section "Device"
	Identifier  "Card1"
	Driver      "radeon"
	VendorName  "ATI"
	BoardName   "ATI Radeon Mobility M6"
	Option     "AGPMode" "4"
        #VideoRam   32768 
        # NOTE: Enabling VideoRam produces strange errors, 
        #       no problem, it detects 32MB anyway.
        BusID       "PCI:1:0:0"
EndSection

On recopie tout pareil, sauf qu'on change le nom de la carte, en "Card1" sur la "deuxième" carte !

Notez que votre XFree86 ou X.org peut ne pas présenter tous ces paramètres. Par exemple, sous Ubuntu, et XFree86 4 (je connais pas la version exacte, désolé), on a ce genre de chose :

Section "Device"
	Identifier	"ATI Technologies, Inc. Radeon Mobility 9000 M9 (R250 Lf)"
	Driver		"ati"
	BusID		"PCI:1:0:0"
EndSection

Ils omettent les infos VendorName et BoardName, mais Identifier est très explicite. Ce qui n'est pas forcément pratique pour relire le fichier. Mais en même temps, Ubuntu n'est pas vraiment fait pour les geeks qui éditent les fichiers de conf X à la main. :)

Enfin, ajouter une option pour indiquer au driver de la carte quels affichages matériels dépendent de cette carte, avec la directive Screen (qui n'est pas la section Screen !) :

Section "Device"
	Identifier  "Card0"
	Driver      "radeon"
	VendorName  "ATI"
	BoardName   "ATI Radeon Mobility M6"
	Option     "AGPMode" "4"
        #VideoRam   32768 
        # NOTE: Enabling VideoRam produces strange errors, 
        #       no problem, it detects 32MB anyway.
        BusID       "PCI:1:0:0"
    Screen 0
EndSection

Section "Device"
	Identifier  "Card1"
	Driver      "radeon"
	VendorName  "ATI"
	BoardName   "ATI Radeon Mobility M6"
	Option     "AGPMode" "4"
        #VideoRam   32768 
        # NOTE: Enabling VideoRam produces strange errors, 
        #       no problem, it detects 32MB anyway.
        BusID       "PCI:1:0:0"
    Screen 1
EndSection

Voilà, on a maintenant deux cartes prêtes à l'emploi. :) Si vous avez d'autres cartes ou si votre carte gère plus de deux affichages, continuez à copier-coller. ;)

J'ai également deux déclarations Monitor, et deux Screen, dans ce xorg.conf :

Section "Monitor"

	#DisplaySize	  300   230	# mm
 ### Uncomment if you don't want to default to DDC:
#	HorizSync    842150464.0 - 0.0
#	VertRefresh  809972032.0 - 0.0
	Identifier   "Monitor0"
	VendorName   "VSC"
	ModelName    "VE510s"
	Option	    "DPMS"
EndSection

Section "Monitor"

	#DisplaySize	  300   230	# mm
 ### Uncomment if you don't want to default to DDC:
#	HorizSync    1429222016.0 - 0.0
#	HorizSync    30.0 - 70.0
#	VertRefresh  1430467328.0 - 0.0
	Identifier   "Monitor1"
	VendorName   "DEL"
	ModelName    "DELL  E771p"
	Option	    "DPMS"
EndSection
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
	EndSubSection
EndSection

Section "Screen"
	Identifier "Screen1"
	Device     "Card1"
	Monitor    "Monitor1"
	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
	EndSubSection
EndSection

Le "Screen0" utilise la carte "Card0" et le moniteur "Monitor0", de même que "Screen1" utilise les "1". Si vous avez une carte multi-affichages, dupliquez les sections Monitor et Screen que vous avez, et éditez-les.

Pour Monitor, comme Xorg ne le détecte pas tout seul, il faut le fabriquer à la main. Mettez "Monitor1" comme Identifier, à peu près ce que vous voulez en VendorName et ModelName. Pour les taux de rafraîchissement, il faudra vous référer au manuel ou au site du constructeur, ou une autre ressource sur le net pour les trouver. Et faites attention à ne pas mettre n'importe quoi, sinon le moniteur risque de brûler...

Pour Screen, faites juste attention à associer les bonnes cartes et les bon écrans, et à le nommer correctement (si vous gardez cette nomenclature de "0", "1","2", etc, ça ne devrait pas être trop difficile ;)). Reportez-vous au manuel pour connaître les différents modes d'affichage (profondeur de couleur, résolution) pour les reporter dans les SubSecton "Display". Les profondeurs de couleurs devraient suffire, pour FreeBSD.

J'ai vu qu'il existait des variantes (toujours chez Ubuntu) :

Section "Monitor"
	Identifier	"Ecran générique"
	HorizSync	30-67
	VertRefresh	50-75
	Option		"DPMS"
EndSection

Section "Screen"
	Identifier	"Default Screen"
	Device		"ATI Technologies, Inc. Radeon Mobility 9000 M9 (R250 Lf)"
	Monitor		"Ecran générique"
	DefaultDepth	24
	SubSection "Display"
		Depth		1
		Modes		"1400x1050"
	EndSubSection
	SubSection "Display"
		Depth		4
		Modes		"1400x1050"
	EndSubSection
	SubSection "Display"
		Depth		8
		Modes		"1400x1050"
	EndSubSection
	SubSection "Display"
		Depth		15
		Modes		"1400x1050"
	EndSubSection
	SubSection "Display"
		Depth		16
		Modes		"1400x1050"
	EndSubSection
	SubSection "Display"
		Depth		24
		Modes		"1400x1050"
	EndSubSection
EndSection

La section Monitor a les fréquences de rafraîchissement de l'écran renseignés, alors que sur la même section de X.org de FreeBSD, elles sont auto-détectées par défaut. Donc dans le doute, suivez les préférences de votre serveur X, et pour ajouter une section, renseignez les valeurs qu'il mentionne dans les sections existantes (je sais pas si je suis clair, là :).

De même, les sous-sections Display de la section Screen sont légèrement différentes. X.org de FreeBSD décrit une variable Viewport, alors que XFree86 de Ubuntu décrit une variable Modes. Je ne suis malheureusement pas expert en serveurs X pour dire si c'est une différence entre XFree86 et X.org ou si c'est une différence d'implémentation entre FreeBSD et Ubuntu... Donc c'est ce que je disais, renseignez les infos conformément à ce qui existe dans votre fichier quand vous spécifiez des écrans et cartes supplémentaires.

Enfin, passons au ServerLayout. Il y a juste deux options à vérifier. Mon xorg.conf par défaut me disait ça :

Section "ServerLayout"
	Identifier     "X.org Configured"
	Screen      0  "Screen0" 0 0
	Screen      1  "Screen1" RightOf "Screen0"
	InputDevice    "Mouse0" "CorePointer"
	InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Notez les paramètres de Screen 1. Il donne le nom de l'affichage à utiliser, et une position relative par rapport à l'écran principal, "Screen0". Par défaut, l'écran secondaire est sensé être placé à droite de l'écran principal, donc RightOf. Or mon écran secondaire est place à gauche du principal. Je vais donc remplacer cette option par LeftOf :

Section "ServerLayout"
	Identifier     "X.org Configured"
	Screen      0  "Screen0" 0 0
	Screen      1  "Screen1" LeftOf "Screen0"
	InputDevice    "Mouse0" "CorePointer"
	InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Le test (X -xfconfig /<emplacement>/xorg.conf) me donnera bien la bonne position d'écran, et si je déplace le curseur à gauche, il partira bien sur l'écran secondaire. Mais le bureau du gestionnaire de fenêtres sera toujours confiné à un seul écran !

Le truc, c'est une option jamais définie par défaut dans le xorg.conf : "Xinerama". Elle permet d'utiliser les différents écrans en bureau étendu :

Section "ServerLayout"
	Identifier     "X.org Configured"
	Screen      0  "Screen0" 0 0
	Screen      1  "Screen1" LeftOf "Screen0"
	InputDevice    "Mouse0" "CorePointer"
	InputDevice    "Keyboard0" "CoreKeyboard"
	Option		"Xinerama" "true"
EndSection

Et voilà, vous avez un affichage multi-écrans fonctionnel sous X ! :)

J'avais promis de dire un mot sur les cartes non reconnues, et je le fais ici. Il peut y avoir plusieurs raisons à la non-détection de la carte vidéo. Première raison, elle n'est pas supportée par la version de X que vous avez. Là, pas de miracles, il faut se récupérer le bon driver, le recompiler au besoin et retenter la détection. Si vous savez qu'elle est supportée et que pour une raison obscure elle n'est pas détectée, regardez dans le dmesg pour voir si elle apparaît dans les périphériques détectés par le noyau. Moi, la Matrox Millenium donne ça :

pci1: <display, VGA> at device 7.0 (no driver attached)

Le noyau sait que c'est une carte vidéo, mais n'a pas de pilote spécifique à y affecter. Notez que la carte est présente sur le bus pci1, périphérique 7.0. C'est ce nombre que vous devrez fournir à xorg.conf pour forcer l'utilisation de cette carte. Rappelez-vous ma section "Device" :

Section "Device"
	Identifier  "Card1"
	Driver      "mga"
	VendorName  "Matrox Graphics, Inc."
	BoardName   "MGA 2064W [Millennium]"
	BusID       "PCI:1:7:0"
EndSection

L'option BusID permet de désigner la carte utilisée. Il faut aussi déterminer le driver à utiliser pour la carte. Pour ça, je ne sais pas. :) Mais en creusant sur le net, ça doit pouvoir se trouver...

Voilà, j'espère que ça a pu vous aider ! Merci de m'avoir lu. :)

09/12/2004

Le fichier xorg.conf sur FreeBSD

by Paig Chong Woo — last modified 09/12/2004 00:00
Filed Under:

Suite de la configuration X sous FreeBSD, on va expliciter le fichier de configuration.

Maintenant qu'on a un X qui marche (sinon voir ici), on va essayer de comprendre sa configuration, et ça nous servira de base pour gérer plusieurs écrans.

Il faut dire en aparté qu'à part Webmin (j'en parle ici), je n'utilise presque aucun utilitaire de configuration système, je me tape les fichiers de config à la main sous vi (c'est un vim, je crois, sous FreeBSD). C'est un peu comme pour le HTML, j'ai l'impression que j'ai une plus grande maîtrise sur le code (c'est sûrement qu'une impression). Donc dans ce papier, on va faire les choses à la dure, au vi. Utilisez ee ou un éditeur similaire, pas un outil de forcené comme vi, dans la vie réelle. Moi l'habitude du vi me vient de mes cours à la fac, où on me disait que seul vi était un outil de base de tout Unix et assimilés. Mais bon, je crois que c'est plus vraiment le cas de nos jours... Puis il y a un utilitaire bien fait pour X (par X.org), en mode graphique, tout en menus (assez) joli qui modifie le xorg.conf tout seul comme un grand, xorgcfg. Mais ça fait pas de mal de comprendre, pour pouvoir bidouiller le fichier si jamais X se plante...

On va partir d'un fichier auto-configuré. Le fichier xorg.conf est séparé en sections :

ServerLayout

Cette section décrit la configuration de l'affichage. C'est un agrégat des autres sections décrites dans le fichier. Il indique quels périphériques utiliser pour l'affichage (carte(s), écran(s)), et quels dispositifs de pointage utiliser (souris, clavier(s)). Voici ce que me donne l'auto-configuration :

Section "ServerLayout"
	Identifier     "X.org Configured"
	Screen      0  "Screen0" 0 0
	InputDevice    "Mouse0" "CorePointer"
	InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

  • Identifier est juste le nom que vous donnez à cette configuration. Là, Xorg me l'a rempli tout seul, mais j'aurais tout aussi bien pu mettre un truc du genre "Mon écran de bombe de balle". Aucune incidence sur le fichier de configuration (à part si vous mettez des guillemets dans la chaîne, ce qui ferait des erreurs). Il doit être unique.
  • Screen permet d'indiquer les écrans en service. Un écran est défini dans une section Screen, qui décrit un ensemble carte et écran (physique). Voir plus bas. L'écran décrit ici est le numéro 0, donc le premier écran, il reprend la définition de "Screen0", et il affiche le bureau à partir des coordonnées 0 0, en abscisses et ordonnées. En résumé, c'est le premier (et seul) affichage, et il affiche le bureau à partir du haut gauche (les abscisses sont inversées, elles croissent vers le bas de l'affichage).
  • Les InputDevice décrivent le clavier et la souris à utiliser, en indiquant leur définition. La mention "CorePointer" et "CoreKeyboard" indiquent que ces périphériques sont les périphériques principaux, si jamais il y avait plus d'un seul clavier ou plus d'une seule souris sur le système (pensez aux tablettes graphiques, par exemple).

Files, Modules

Ces sections décrivent les extensions à charger et les chemins d'accès aux bibliothèques. Ne changez pas ces déclarations si vous ne savez pas ce qu'elles signifient, ou sur quoi elles ont effet. Les réglages par défaut sont adéquats pour la plupart des usages.

InputDevice

C'est là qu'on définit les périphériques de saisie, souris, claviers, tablettes graphiques, tablette à numériser, etc. Voyons un exemple de souris et un exemple de clavier :

Section "InputDevice"
	Identifier  "Mouse0"
	Driver      "mouse"
	Option	    "Protocol" "auto"
	Option	    "Device" "/dev/sysmouse"
	Option 	"Buttons" "5"
	Option	"ZAxisMapping"  "4 5"
EndSection

  • Identifier est un nom pour cette définition de périphérique. On peut y mettre n'importe quoi, mais nommer les périphériques en rapport avec leur nature aide à la relecture du fichier. :)
  • Driver indique quel pilote utiliser pour ce périphérique. Généralement, "mouse" est le mieux indiqué pour une souris, à part si vous avez un driver particulier fourni par le fabricant (mais il y a des chances que ce ne soit pas une souris :).
  • Nous avons ensuite des déclarations Option, qui permettent de préciser le comportement du périphérique.
    • "Protocol" indique le "driver" à utiliser. "auto" est le choix le plus judicieux de nos jours, à moins que vous n'ayez une souris série (et qui a une souris série sur une machine récente de nos jours ?). Pour une souris USB, "auto" est une obligation.
    • "Device" indique le nom du périphérique dans /dev. /dev/sysmouse est un périphérique virtuel vers le périphérique réel, /dev/ums0, pour une souris USB, par exemple.
    • Les options "buttons" et ZAxisMapping ne sont pas créés par défaut par Xorg. Ils permettent d'indiquer le nombre de "boutons" de la souris, et de définir le défilement de la roulette. Chacune des directions de la souris est considéré comme un bouton, donc sur une souris deux boutons et une roulette cliquable, on a 5 "boutons" en tout. ZAxisMapping indique quels boutons seront utilisés pour le défilement, ici la roulette haut et bas, "4 5". Si on met "1 2", les boutons gauche et droits feront défiler le texte dans les fenêtres ! Tout est possible. :)

Section "InputDevice"
	Identifier  "Keyboard0"
	Driver      "keyboard"
	Option	    "XkbRules" "xorg"
	Option	    "XkbModel" "pc105"
	Option	    "XkbLayout" "fr"
EndSection

Le clavier ne diffère pas beaucoup de la souris. Identifier est toujours un nom (presque) quelconque, et son Driver est "keyboard". Les options sont un peu différentes, toutefois.

  • "XkbRules" indique le comportement du clavier. "xorg" est le comportement "standard" du clavier. Paraît qu'on peut le mettre "à la Emacs", mais vu que j'aime pas Emacs, je ne sais pas comment. ;) Bon, en 30 s de recherche manuelle (même pas par Google, la honte), je ne trouve pas de docs là-dessus. Je verrai si j'ai le temps. ;)
  • "XkbModel" indique le type de clavier que vous avez. C'est plus important qu'on ne croit, car il y a de subtiles différences entre claviers du monde, en nombre de touches. Mais bon, les claviers modernes européens (français ?) comportent 105 touches, donc j'utilise "pc105". Et "XkbLayout" indique ce qu'on a comme sérigraphie dessus, pour que ça corresponde. :) Se reporter à xorgcfg pour les layouts.

Monitor

Une des sections essentielles de xorg.xonf, car elle décrit l'écran physique.

Section "Monitor"
	#DisplaySize	  300   230	# mm
 ### Uncomment if you don't want to default to DDC:
#	HorizSync    842150464.0 - 0.0
#	VertRefresh  809972032.0 - 0.0
	Identifier   "Monitor0"
	VendorName   "VSC"
	ModelName    "VE510s"
	HorizSync    30.0 - 62.0
	VertRefresh	50.0 - 75.0
	Option	    "DPMS"
EndSection

Si votre écran est compatible DCC, la carte graphique obtiendra automatiquement les fréquences optimales d'affichage. Mais comme on peut le voir, des fois, ça donne des résultats curieux... :)

  • DisplaySize, paramètre complètement optionnel, précise la taille physique de l'écran, en millimètres. Je ne sais pas bien à quoi ça peut servir ?
  • HorizSync, spécifie les fréquences de balayage horizontaux de l'écran. La détection DCC donne des chiffres fantaisistes, et sur cet écran LCD, la carte envoyait une fréquence non supportée... J'ai donc dû trouver les spécifications sur le net, et j'ai mis la valeur moi-même : 30.0 - 62.0, fréquence en Hz.
  • VertRefresh, pareil que HorizSync, la détection donne n'importe quoi, j'ai mis les valeurs constructeur à la place : 50.0 - 75.0, toujours en Hz. Attention, X prend pour argent comptant les fréquences manuelles spécifiées, si l'écran ne les supporte pas, il peut être abîmé par la manœuvre !
  • VendorName et ModelName sont obtenus par DCC, et sont optionnels. Ce sont la marque et le modèle de l'écran. Là, j'ai un Viewsonic VE510s.
  • Enfin, "DPMS" indique que l'écran supporte les modes d'économie d'énergie, qu'il peut passer en veille et tout.

Device

Ici on décrit la carte graphique, ses capacités, son emplacement, tout ça.

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
        ### [arg]: arg optional
        #Option     "NoAccel"            	# [<bool>]
        #Option     "SWcursor"           	# [<bool>]
        #Option     "ColorKey"           	# <i>
        #Option     "CacheLines"         	# <i>
        #Option     "Dac6Bit"            	# [<bool>]
        #Option     "DRI"                	# [<bool>]
        #Option     "NoDDC"              	# [<bool>]
        #Option     "ShowCache"          	# [<bool>]
        #Option     "XvMCSurfaces"       	# <i>
        #Option     "PageFlip"           	# [<bool>]
	Identifier  "Card0"
	Driver      "i810"
	VendorName  "Intel Corp."
	BoardName   "82865G Integrated Graphics Device"
	BusID       "PCI:0:2:0"
EndSection

La détection marche plutôt bien, sur les X récents, et Xorg donne une liste exhaustive des options du driver de la carte. Les Intel Extreme Graphics sont pauvres en options... :)

  • Identifier, un nom. :)
  • Driver, le pilote le plus adapté pour la carte. Là, j'ai un Intel Extreme Graphics 2 sur un chipset Intel 865G, qui est pris en charge par le driver "i810".
  • VendorName et BoardName, c'est comme les VendorName et ModelName de la section Monitor, c'est pour la frime. ;)
  • BusID précise l'emplacement de la carte. C'est un triplet de nombres. Ici "0:2:0", c'est le bus AGP (0), 3e emplacement (2), premier périphérique (0) (je suis pas complètement certain de cette explication, mais ça me semble avoir du sens). C'est le paramètre le plus important de Device.

Screen

Ici on décrit l'affichage, en tant que couple Monitor/Device, et on spécifie les modes d'affichage disponibles.

Section "Screen"
	Identifier "Screen0"
	Device     "Card0"
	Monitor    "Monitor0"
	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	"800x600" "1024x768"
	EndSubSection
EndSection

  • Identifier, pareil, un nom.
  • Device et Monitor, la carte et l'écran à utiliser pour cet affichage. Une seule carte et un seul écran par affichage. Pour un double affichage à partir de la même carte, il y a une autre astuce (voir Multi-écrans).
  • Chaque SubSection "Display" contient la définition d'un mode d'affichage.
    • Viewport indique à partir d'où afficher le bureau par défaut. 0 0 commence en haut à gauche. En mettant d'autres coordonnées, on peut afficher seulement une portion de l'écran (ou afficher le milieu du bureau par défaut ? A vrai dire j'ai jamais essayé).
    • Depth indique la profondeur de couleurs à utiliser pour l'affichage. Il va de 1 à 32, d'habitude (peut-être plus pour des cartes de graphistes professionnels). Il y a une SubSection "Display" par profondeur de couleur.
    • Modes permet de définir les résolutions supportées par l'affichage dans cette profondeur de couleurs. En l'absence de cette valeur, les modes sont déduits du DCC. On peut forcer une certaine résolution en ne précisant que celle-ci. Par exemple, si je veux forcer l'affichage en 1024x768 en couleurs 24 bits, alors que le DCC préconise 1152x864, je mettrai 
      	SubSection "Display"
      		Viewport   0 0
      		Depth     24
      		Modes "1024x768"
      	EndSubSection
      

Voilà, j'espère que ça vous a plu et que ça vous a appris, parce que ça m'a pris un près de 2 heures à rédiger tout ça. :) (quoi, autant de temps pour ÇA ?! ;))

08/12/2004

Configurer X sous FreeBSD

by Paig Chong Woo — last modified 08/12/2004 00:00
Filed Under:

Deuxième étape de l'installation de FreeBSD, la configuration de l'interface graphique.

Après l'installation du système en soi, passons à la configuration de X Window.

La vraie doc sérieuse et bien faite se trouve dans le Handbook (en french), comme toujours. :)

Petite note : je parle ici de FreeBSD 5.3 et supérieurs, donc comprenant X.Org par défaut, à la place de XFree86. Une sombre affaire de licence a fait détourner de XFree86 la plupart des projets et entreprises utilisateurs de X Window...

Si vous avez suivi mon howto, vous devriez avoir la base de X. Sinon, lancez Sysinstall (sysinstall ou /stand/sysinstall), choisissez Configure, Distributions, et X.Org (XFree86 pour FreeBSD 5.2.1 et inférieurs). Ne chipotons pas, prenons tout dans les sous-catégories (entrez dans la sous-catégorie et sélectionnez All). Sysinstall vous demande alors d'où copier les binaires, remettez votre CD FreeBSD dans le lecteur, et sélectionnez CD/DVD.

FreeBSD 5.3 ne propose plus le configuration X Window. Il va falloir se débrouiller à la main, dans la console.

Je suppose que si vous avez suivi jusqu'ici, vous savez vous connecter sur un système Unix. Sinon, voici commen faire (du moins pour ce howto) : à l'invite login:, tapez root, appuyez sur la touche entrée, tapez le mot de passe du compte, et appuyez sur entrée. Voilà, vous êtes connecté en tant que root. Si vous préférez utiliser un autre utilisateur, faites comme bon vous semble. Mais il faut que cet utilisateur soit membre du groupe wheel, pour pouvoir utiliser la commande su, pour passer en super utilisateur et configurer le système.

En tant que root, tapez Xorg -configure. Cela lance une routine d'auto-configuration de X qui essaie (plutôt bien) de détecter votre carte graphique, votre écran et vos dispositifs de saisie. Vous pouvez tester le résultat avec la commande Xorg -config xorg.conf.new. Si vous avez un écran gris avec une croix en guise de curseur, c'est bon, votre X est configuré correctement. Sortez de l'écran de test en appuyant sur Ctrl-Alt-Backspace. Cette combinaison de touches arrête immédiatement le serveur X et vous fait sortir du mode graphique.

Copiez maintenant le fichier xorg.conf.new en /etc/X11/xorg.conf : cp xorg.conf.new /etx/X11/xorg.conf (créez le répertoire /etc/X11 au besoin).

Installons maintenant le gestionnaire de fenêtres. On va utiliser portupgrade, expliqué ce document. Choisissez un gestionnaire, et installez-le par portinstall. Ici, je choisis Xfce, mais vous êtes libre de prendre Gnome ou KDE. Je lance donc la commande portinstall xfce, qui me propose xfce ou xfce4, je choisis le plus récent, xfce4. Pour Gnome, vous utiliserez portinstall gnome2, et portinstall kde pour KDE, ou autre chose pour autre chose. :)

Laissez décanter, et passons à la fin de l'installation. Il faut maintenant indiquer à X ce qu'il faut qu'il lance comme gestionnaire de fenêtres. Créez un fichier .xinitrc à la racine de votre répertoire personnel (/usr/home/ ou /root pour root). Mettez-y le nom du programme de lancement de votre gestionnaire de fenêtres. Pour Xfce, c'est /usr/X11R6/bin/xfce4-session. Pour Gnome, c'est /usr/X11R6/bin/gnome-session, et pour KDE, c'est exec startkde.

Tapez startx, et hop vous avez un environnement graphique prêt à l'emploi. :)

Mécénat
Images chez flickr
www.flickr.com
Voici un module Flickr utilisant les photos d'un album intitulé Image du jour. Cliquez ici pour créer votre module.
 

Plone powered yeah baby! ;)

Ce site utilise Plone, pourquoi pas vous ?

Creative Commons License