L`accélération 3D sous Linux
Transcription
L`accélération 3D sous Linux
L'accélération 3D sous Linux Pré-requis Vous devez avoir au préalable installé un serveur graphique et un environnement graphique (KDE, gnome...). Pour plus d'informations, vous pouvez consulter cet article. Problématique Si vous utilisez une carte nvidia ou ati et que vous souhaitez bénéficier de l'accélération matérielle 3D, vous devrez installer un driver spécifique. Malheureusement, ces constructeurs n'ont pas dévoilé le fonctionnement de leurs cartes et les drivers libres ne permettent donc pas de prendre pleinement en charge votre carte 3D. Or pour jouer à des jeux utilisant de la 3D ou activer des effets composites (effets 3D) au niveau de votre bureau graphique, le serveur X doit prendre en charge l'accélération matérielle de votre carte vidéo. On peut installer un driver 3D à n'importe quel moment. Il faudra simplement relancer le serveur X après avoir chargé le module correspondant pour en bénéficier. Comment tester si l'accélération 3D fonctionne ? Lancez une session graphique (serveur X + environnement graphique). Lancez en root la commande : Mistra Formation - 19 rue Béranger 75003 Paris - Métro République - 01 82 52 25 25 - [email protected] L'accélération 3D sous Linux aptitude install mesa-utils Ce paquet installe deux utilitaires (glxinfo et glxgears) que nous allons utiliser d'ici peu. Ensuite, lancez un terminal utilisateur. Si par exemple vous avez lancé votre session graphique avec le login mando, il faut que vous soyez loggué en tant que mando dans ce terminal, sinon les commandes suivantes vont échouer. Ensuite lancez : glxinfo | grep -i rendering Si l'accélération 3D fonctionne, voici ce que vous devriez voir : (mando@aldur) (~) $ glxinfo | grep -i render direct rendering: Yes OpenGL renderer string: GeForce 6600 GT/AGP/SSE/3DNOW! GL_NVX_conditional_render, GL_SGIS_generate_mipmap, GL_SGIS_texture_lod, Si vous voyez "No" et si votre carte est une carte offrant une accélération 3D, alors vous devez installer un pilote propriétaire pour bénéficier d'effets 3D. Sinon, vous pouvez tester si celle-ci est correctement prise en charge. Lancez la commande suivantes : glxgears Mistra Formation - 19 rue Béranger 75003 Paris - Métro République - 01 82 52 25 25 - [email protected] L'accélération 3D sous Linux Vous devriez voir apparaître des roues d'engrenages : Au bout de quelques secondes, vous devriez voir apparaître dans votre console le nombre de FPS (frame per second / nombre d'images par seconde). 4299 frames in 5.0 seconds = 859.385 FPS 7129 frames in 5.0 seconds = 1425.795 FPS 7101 frames in 5.0 seconds = 1420.197 FPS 7098 frames in 5.0 seconds = 1419.522 FPS Mistra Formation - 19 rue Béranger 75003 Paris - Métro République - 01 82 52 25 25 - [email protected] L'accélération 3D sous Linux Si l'animation est saccadée et que le nombre de FPS est faible, c'est probablement que vous devez installer un driver propriétaire. Installation Comment installer un driver propriétaire ? Installation du pilote propriétaire Ubuntu, Kubuntu, ... On passe par des paquets propriétaires (jockey) : voir ici. La démarche est la même que l'on ait une carte nvidia ou ati. Debian (>= squeeze) Pour les cartes nvidia, on utilise généralement dkms pour construire le pilote sur les debians récentes. Il suffit d'installer le paquet xserver-xorg-video-nvidia pour l'installer. aptitude update aptitude safe-upgrade aptitude install xserver-xorg-video-nvidia nvidia-kernel-dkms Pour les cartes ati, le principe est le même. Vérifiez au préalable que le paquet Mistra Formation - 19 rue Béranger 75003 Paris - Métro République - 01 82 52 25 25 - [email protected] L'accélération 3D sous Linux xserver-video-radeon ne convient pas. Sinon installez le paquet propriétaire (fglrx) : aptitude update aptitude safe-upgrade aptitude install fglrx-driver fglrx-control fglrx-modules-dkms Debian (< squeeze) On utilisera dans ce cas module-assistant. La démarche est présentée en détail dans l'article consacré à module-assistant. Sinon Pour n'importe quelle distribution on peut toujours télécharger le driver directement sur le site du constructeur et on suit les instructions mentionnées sur son site. Ce n'est pas forcément la méthode la plus simple. Chargement du module Une fois le module installé, pensez à le charger avec la commande modprobe. Si par exemple vous utilisez une carte nvidia, ce module s'appelle nvidia (respectivement fglrx pour une carte ati). On le charge en lançant en root la commande : modprobe nvidia Mistra Formation - 19 rue Béranger 75003 Paris - Métro République - 01 82 52 25 25 - [email protected] L'accélération 3D sous Linux Si une erreur apparaît, c'est probablement que vous n'avez pas encore installé le module pour le noyau que vous utilisez. Vérifiez que le chargement s'est bien déroulé en lançant les commandes suivantes : lsmod | grep nvidia dmesg | tail Si le module est bien chargé, vous devriez voir apparaître une ou plusieurs lignes en résultat de la première commande. Le cas échéant la seconde commande devrait vous donner des informations complémentaires. Configuration du serveur X Comme nous allons utiliser un driver autre que celui fournit par xorg (et par conséquent un driver autre que celui chargé par défaut), il faut dire à xorg de le charger. Ceci se fait par le biais du fichier /etc/X11/xorg.conf. À ce stade ce fichier n'existe pas forcément et xorg se lance implicitement avec les paramètres par défaut. On peut générer automatiquement ce fichier. Cartes nvidia Mistra Formation - 19 rue Béranger 75003 Paris - Métro République - 01 82 52 25 25 - [email protected] L'accélération 3D sous Linux Si vous utilisez une carte nvidia, l'outil nvidia-xconfig permet de le faire. Fermez votre session graphique si vous en avez ouvert une. Passez en mode texte (ctrl alt f1) et identifiez vous en root. Lancez les commandes : aptitude install nvidia-xconfig nvidia-xconfig Cartes ati La correction de ce fichier peut se faire par l'outil graphique catalyst. Selon que vous êtes sous KDE ou gnome, installez respectivement (kdesudo ou gksudo) l'une de ces deux commandes : aptitude install kdesudo aptitude install gksudo Configurez votre utilisateur comme étant un sudoer, comme indiqué ici. Puis, en fonction de ce que vous avez installé, lancez l'une de ces deux commandes : kdesudo /usr/bin/amdcccle gksudo /usr/bin/amdcccle Mistra Formation - 19 rue Béranger 75003 Paris - Métro République - 01 82 52 25 25 - [email protected] L'accélération 3D sous Linux Dans l'interface graphique qui apparaît, déclenchez la correction de la configuration du serveur graphique xorg. Premiers tests Relancez le mode graphique en relançant le gestionnaire de connexion graphiqueen lançant en root l'une des commandes suivantes, en fonction de ce que vous avez installé (généralement kdm avec KDE, gdm avec gnome, xdm sinon) : service kdm restart service gdm restart service xdm restart Notez que sur les anciennes distributions Linux, la commande service n'existe pas. Il faut alors lancer l'une de ces commandes /etc/init.d/kdm restart /etc/init.d/gdm restart /etc/init.d/xdm restart Le mode graphique s'affiche correctement Mistra Formation - 19 rue Béranger 75003 Paris - Métro République - 01 82 52 25 25 - [email protected] L'accélération 3D sous Linux Si le mode graphique fonctionne correctement, c'est bon signe. Prenez quelques minutes pour vérifier qu'il est stable. Vous pouvez également commencer à tester si les effets composites fonctionnent correctement (voir fin du tutoriel). Vous pouvez ensuite automatiser le chargement du module propriétaire (voir section suivante). Ceci vous évitera de lancer la commande modprobe à chaque fois que vous redémarrez la machine. Le mode graphique ne s'affiche plus (écran noir !) Pour récupérer le mode graphique, il faudra utiliser un pilote libre. Actuellement le serveur graphique se charge conformément au fichier /etc/X11/xorg.conf. Cela peut également arriver lorsque votre noyau est mis à jour. Si vous avez installé votre pilote autrement que via dkms (debian) ou le gestionnaire de pilote propriétaires (ubuntu), vous devrez reconstruire / réinstaller le pilote à chaque fois que le paquets "linux-image-..." est mis à jour. Pour retourner vers le pilote libre, il faut donc aller à l'encontre du fichier /etc/X11/xorg.conf actuel qui charge un pilote graphique qui ne fonctionne pas (ou qui n'existe pas pour cette version de noyau). La réparation doit se faire en mode texte. De nos jours, ceci se fait simplement en supprimant le fichier /etc/X11/xorg.conf et le mode graphique chargera par défaut un pilote libre. Sous Debian, identifiez-vous en root et tapez : mv /etc/X11/xorg.conf /etc/X11/xorg.conf.bak Sous Ubuntu, identifiez-vous en utilisateur et lancez : Mistra Formation - 19 rue Béranger 75003 Paris - Métro République - 01 82 52 25 25 - [email protected] L'accélération 3D sous Linux sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.bak Puis relancez gdm / xdm / kdm comme indiqué au début de ce paragraphe. Automatiser le chargement du module propriétaire Sous Debian et les distributions qui en dérivent, le chargement d'un module au démarrage se fait en le rajoutant dans la liste de module contenue dans /etc/modules. Modifiez ce fichier par exemple avec nano en lançant en root : nano /etc/modules Si le module que vous utilisez ne figure pas dans le fichier, ajoutez son nom dans ce fichier. Si vous utilisez une carte nvidia, voici à quoi pourrait ressembler ce fichier : # /etc/modules: kernel modules to load at boot time. # # This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with "#" are ignored. # Parameters can be specified after the module name. loop nvidia Mistra Formation - 19 rue Béranger 75003 Paris - Métro République - 01 82 52 25 25 - [email protected] L'accélération 3D sous Linux Activer les effets 3D Sous KDE Commencez par lancer le centre de configuration KDE (systemsettings). Pour cela, cliquez sur le menu K et dans l'onglet favori, cliquez sur configuration du système. Vous pouvez également le lancer en appuyant sur alt f2 et en tapant systemsettings dans le lanceur qui apparaît. Mistra Formation - 19 rue Béranger 75003 Paris - Métro République - 01 82 52 25 25 - [email protected] L'accélération 3D sous Linux Allez ensuite dans la section "Bureau" : Mistra Formation - 19 rue Béranger 75003 Paris - Métro République - 01 82 52 25 25 - [email protected] L'accélération 3D sous Linux Dans la rubrique "Effets de Bureau", activez les effets composites. Vous pourrez ensuite les désactiver en cliquant sur "Suspendre l'affichage composite" : Mistra Formation - 19 rue Béranger 75003 Paris - Métro République - 01 82 52 25 25 - [email protected] L'accélération 3D sous Linux Vous pouvez ensuite aller dans l'onglet "Tous les effets" pour activer et paramétrer les différents effets 3D. Remarque : si vous utilisez un ordinateur portable et que vous souhaitez désactiver les effets composite quand vous êtes sur batterie (ou que son niveau devient faible), vous pouvez le régler en allant dans "K > Centre de configuration > Avancé > Gestion de l'énergie". Vous verrez apparaître différents profils de gestion de l'énergie (performance, powersave, ...) en fonction des différents seuils de batterie. Vous pouvez ensuite régler leur comportement et notamment désactiver les effets composites s'ils sont activés. Carte nvidia : erreurs wine liées Mistra Formation - 19 rue Béranger 75003 Paris - Métro République - 01 82 52 25 25 - [email protected] L'accélération 3D sous Linux À ce stade certains jeux prévus initialement pour Microsoft Windows peuvent ne pas se lancer correctement via wine (ci-dessous nous allons traiter l'exemple de Warcraft III). De manière générale, quand vous êtes confronté à ce genre de problème il faut lancer votre jeux via les lignes de commandes pour récupérer les erreurs wine. À l'aide d'une recherche sur votre moteur de recherche favori, vous devriez trouver les causes de ces erreurs. Celles-ci peuvent être d'origine multiples (librairie manquante à installer avec winetricks...). Toutefois, quand elles mettent en jeu d3d, il est probable que ce soit dû à une installation incomplète du pilote. Exemple : on ici essaye de lancer Warcraft III sur une machine utilisant une carte nvidia : (mando@aldur) (~/Jeux/Warcraft III) $ wine war3.exe err:alsa:ALSA_CheckSetVolume Could not find 'PCM Playback Volume' element fixme:mixer:ALSA_MixerInit No master control found on Brooktree Bt878, disabling mixer err:ole:CoCreateInstance apartment not initialised fixme:advapi:SetSecurityInfo stub err:d3d:WineD3D_CreateFakeGLContext Can't find a suitable iPixelFormat err:d3d:InitAdapters Failed to get a gl context for default adapter err:wine_d3d:WineDirect3DCreate Direct3D8 is not available without opengl fixme:dbghelp:dump_system_info fill in CPU vendorID and feature set Mistra Formation - 19 rue Béranger 75003 Paris - Métro République - 01 82 52 25 25 - [email protected] L'accélération 3D sous Linux Sous Debian, ce problème se règle en installant le paquet libgl1-nvidia-glx-ia32 (pour une architecture 64 bits) ou libgl1-nvidia-glx (pour une architecture 32 bits). En root : aptitude update aptitude safe-upgrade aptitude install libgl1-nvidia-glx aptitude install libgl1-nvidia-glx-ia32 # pour une architecture 32 bits # pour une architecture 64 bits Note : Pour les versions récentes de debian 64 bits, vous devrez ajouter le support multi-arch et installer ce paquet comme suit : dpkg --add-architecture i386 aptitude update Mistra Formation - 19 rue Béranger 75003 Paris - Métro République - 01 82 52 25 25 - [email protected] L'accélération 3D sous Linux aptitude install libgl1-nvidia-glx:i386 Remarque : souvenez-vous que si vous utilisez des bureaux avec effects composites (bureaux 3d), ceci va considérablement dégrader les performances de votre jeu, voire l'empêcher de se lancer. Aussi il est recommandé de les désactiver au préalable. Ceci se fait sous KDE via "K > Configuration du système > Bureau > Désactiver les effets de bureau". . Mistra Formation - 19 rue Béranger 75003 Paris - Métro République - 01 82 52 25 25 - [email protected] Powered by TCPDF (www.tcpdf.org)