====== Wine ====== {{ :wine:tux-with-windows.png?direct&250|}} ===== Présentation ===== Wine est une couche d'émulation des API Windows permettant de **faire fonctionner la majorité des logiciels et jeux Windows sous Linux**. Est-ce que votre logiciel ou jeu fonctionnera dans Wine ? C'est un peu la loterie, il n'y a pas de garantie. Mais la majorité passent sans problème: Près de **90% des jeux Windows fonctionnent sous Linux**. Cette page est un guide pour installer, configurer et utiliser Wine. Un petit guide complémentaire pour Proton est fourni en fin de document. Pour être tout à fait exacte, Wine n'est pas un émulateur ("WINE" = "**W**ine **I**s **N**ot an **E**mulator"). Wine n'émule pas Windows, mais exécute directement les exécutables Windows, et redirige les appels des API Windows vers les API Linux (par exemple DirectX vers OpenGL/Vulkan). L'avantage de cette solution par rapport à des machines virtuelles (VMware, VirtualBox): * Accès quasi-direct au matériel par les programmes, donc meilleures performances. * Moindre consommation mémoire. * Moindre consommation d'espace disque (pas besoin d'avoir un Windows entier installé). L'inconvénient étant que Wine n'émule pas Windows dans sa totalité, et certains programmes spécifiques peuvent ne pas tourner (en particulier les jeux contenant des systèmes anti-triche, qui très souvent ne fonctionnent absolument pas dans Wine). Je vous propose **deux solutions**: * **[[#installation_version_courte|Wine]]** fonctionnera pour **90% des jeux**. * Pour les **jeux récents** sur les **cartes graphiques récentes**, **[[#lancement_de_jeux_windows_non-steam_avec_proton|GE-Proton]]** pourra être une alternative intéressante. Ces deux solutions fonctionne hors de Steam. Note : Il existe des //wrappers//, c'est à dire des logiciels qui encapsulent Wine dans une interface graphique, comme [[https://usebottles.com/|Bottles]],[[https://lutris.net/|Lutris]], [[https://www.playonlinux.com/fr/|PlayOnLinux]], [[https://github.com/tkashkin/GameHub|GameHub]] ou [[https://github.com/sharkwouter/minigalaxy|MiniGalaxy]]. Ils sont tous basés sur Wine. Dans cette page, nous allons utiliser purement Wine sans ces logiciels. ---- ===== Installation (VERSION COURTE) ===== * Installez **Wine 9.0** ou supérieur. * Installez **winetricks** (ou récupérez juste [[https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks|le script]]) * Avec Winetricks, installez:winetricks vcrun2022 winetricks dxvk winetricks vkd3d winetricks corefonts winetricks xna40 * Faites également:wine reg.exe ADD "HKEY_CURRENT_USER\Software\Wine\X11 Driver" /v UseTakeFocus /t REG_SZ /d N /f * Ajoutez la ligne suivante à votre ''~/.bashrc'':export WINEFSYNC=1 **Vous êtes maintenant paré•e pour faire tourner près de 90% des jeux Windows.** Voici une liste non exhaustive de jeux Windows que j'ai réussi à faire tourner sous Linux : //Borderlands 2 et 3, Alien Isolation, Hellblade, Detroit:Become human, Doom Eternal, StarWars Fallen Order, Ratchet & Clank : Rift apart, Mirror's Edge Catalyst, Mass Effect Legendary Edition, The Invincible, Death Stranding, Life is Strange, Control, The Talos Principle, Call of the sea, Chernobylite, Cities Skylines, Crash Bandicoot NSaneTrilogy, Deadlight Director's Cut, Deep Rock Galactic, Disco Elysium Director's Cut, Eastward, Endless Space 2, Event[0], Factorio, Hades, Hob, Humanity, illWill, Inside, Journey, Katana Zero, Lego Builder's Journey, Maquette, Metro Exodus, Minecraft Legends, Narita Boy, Necromunda Hired Guns, Noita, No Man's Sky, Observation, Omno, Outer Wilds, Oxenfree, Oxygen Not Included, Pikuniku, Planet of Lana, Portal, Portal 2, Prey, Prodeus, RainWorld, Rayman Origins, RiME, RtypeFinal 2, Sable, Satisfactory, Scorn, Severed Steel, Shadow Warrior 2, SOMA, STALKER (les 3 épisodes), Stardew Valley, Stray, Subnautica, Le donjon de Naheulneuk, The Entropy Centre, The Stanley Parable, The Universim, The Wandering Village, The Witness, Tinkertown, Tinykin, Tunic, Ultrakill, Unpacking, Untitled Goose Game, Viewfinder, Void Bastards, Wasteland 2 Director's Cut, We love Katamari Reroll Royal, What remains of Edith Finch, XEL, Ynglet…// Explications des commandes: * //winetricks// permet d'installer facilement des modules et runtimes nécessaires au fonctionnement de certains jeux. * //vcrun2022// contient les différentes versions des runtimes Microsoft Visual C++ (utilisés par beaucoup de jeux). * //dxvk// sert à émuler DirectX 9/10/11 (via Vulkan) * //vkd3d// sert à émuler DirectX 12 (via Vulkan) * //corefonts// installe les polices Microsoft standard (sans cela, dans certains jeux les menus et textes apparaissent vides). * //xna40// est un framework de chez Microsoft pour aider à la création de jeux. Certains rares jeux en ont besoin. * Notez que l'installation de //xna40// va aussi installer DotNet 4.0 (package //dotnet40//) * La ligne ''reg.exe'': Dans certains jeux, le fait de basculer de fenêtre (Alt+Tab) et revenir au jeu fait que le clavier ne répond plus. Cette commande évite le problème. * ''export WINEFSYNC=1'' active fsync dans Wine (désactivé par défaut), ce qui améliore les performances dans les jeux (cette option est activée par défaut dans Proton). (Au démarrage d'une application, Wine doit alors afficher ''fsync: up and running.''. Notez qu'il faut que notre noyau Linux le supporte, mais cela devrait être le cas depuis le 5.13.) Avec ça, vous devriez être paré⋅e. **Si vous avez des problèmes de performances** (en particulier avec les jeux DirectX 12) ou des jeux qui ne démarrent pas, je vous recommande d'essayer avec [[#lancement_de_jeux_windows_non-steam_avec_proton|GE-Proton]] au lieu de Wine. Le paquet //physx// (nécessaire pour une poignée de jeux) est cassé depuis Wine 9.5. Y compris dans Wine 10. Il est rare que les jeux l'exigent (c'est souvent optionnel) et certain le fournissent avec le jeu. Cela ne devrait donc poser problème que dans moins de 1% des jeux. J'ai récemment eu des problèmes avec wine-staging (10.2). Je suis repassé à wine-stable. ---- ===== Installation (version détaillée) ===== Les guides d'installation pour les différentes distributions sont disponibles dans cette page: https://wiki.winehq.org/Download Pour bien cerner les termes: * **Wine** : Logiciel permettant de lancer des applications et jeux Windows sous Linux en émulant certaines fonctions de Windows. * **préfixe** : Répertoire préparé par Wine contenant les fichiers nécessaire à faire tourner les applications Windows (généralement dans ''~/.wine''). Les applications Windows voient ''~/.wine/drive_c'' comme le disque **C:**. * **runtimes** : Ensemble de composants pour Windows (DLL et autres fichiers) nécessaires à certains logiciels et jeux (exemple: DirectX, Microsoft Visual C++ Runtimes, DotNet, XNA...). **winetricks** simplifie l'installation de ces composants. Nous allons expliciter l'installation pour Ubuntu ci-dessous: ==== Ubuntu ==== Il est possible d'installer Wine: * Depuis les dépôts officiels de votre distribution * Depuis WineHQ (plus récent): https://gitlab.winehq.org/wine/wine/-/wikis/Debian-Ubuntu Je vous recommande chaudement d'installer depuis les dépôts de WineHQ, car vous bénéficierez des toutes dernières versions. L'équipe de WineHQ travaille vite et publie plusieurs versions par an améliorant la compatibilité avec les jeux. Nous allons décrire ici l'installation pour Ubuntu 24.04 (et Linux Mint 22.x): * Commencez par supprimer (purger) les anciennes versions de Wine que vous auriez:sudo apt purge wine* * Si ce n'est pas fait, activez le support des architectures 32 bits: sudo dpkg --add-architecture i386 * Ajoutez les clés du dépôt Wine:sudo mkdir -pm755 /etc/apt/keyrings wget -O - https://dl.winehq.org/wine-builds/winehq.key | sudo gpg --dearmor -o /etc/apt/keyrings/winehq-archive.key - * Ajoutez le dépôt Wine. Pour Ubuntu 24.04 et Linux Mint 22.x, c'est: sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/noble/winehq-noble.sources * Mettez à jour la liste des paquets:sudo apt update * Installez Wine (et //winetricks//) * Note: il existe plusieurs versions de Wine. La "Stable" est une version plus ancienne (et c'est généralement celle incluse avec votre distribution), mais je vous recommande prendre la "Staging". Elle est nettement plus récente, sans pour autant bouger autant que la version "Development". La version "Staging" est mise à jour plusieurs fois par an. * sudo apt install --install-recommends winehq-staging winetricks * Il est possible que apt ne s'en sorte pas avec les dépendances. Il peut parfois être utile de passer par **aptitude**:sudo apt install aptitude sudo aptitude install winehq-staging winetricks --with-recommends * Suivez les instructions sur le site de Wine concernant votre version d'Ubuntu: https://wiki.winehq.org/Ubuntu * Les dernières versions de Wine ont besoin de //libfaudio0// et //libfaudio0:i386// et ces paquets ne sont pas forcément disponibles dans votre distribution. Dans ce cas, allez les chercher [[https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_18.04/|directement là]]. C'est à dire les fichiers //libfaudio0...deb// dans les sous-répertoires //i386// et //amd64//. Par exemple: * https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_18.04/amd64/libfaudio0_19.07-0~bionic_amd64.deb * https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_18.04/i386/libfaudio0_19.07-0~bionic_i386.deb * et installez ces deux paquets. \\ Une fois Wine installé, il est nécessaire de préparer les préfixes. ---- ===== Préparation des préfixes ===== Un "préfixe" (dans le vocabulaire de Wine) est un répertoire dans lequel Wine aura préparé un ensemble de fichiers nécessaires au lancement des applications Windows. Ces répertoires ont la même structure qu'un disque Windows: Si vous avez créé un préfixe ''~/.wine'', vous trouverez par exemple les programmes Windows installés dans ''~/.wine/drive_c/Program Files''. Vous pouvez créer autant de préfixes que vous voulez (si vous voulez séparer vos installations), mais cela prendra plus de place. Dans cette page, nous utiliserons un unique préfixe. Wine utilise par défaut le répertoire ''.wine'' dans votre répertoire personnel. Il est possible de créer des préfixes 32 et 64 bits. Depuis quelques versions, Wine créé par défaut un préfixe 64 bits. Avec les évolutions de Wine et winetricks, il n'est plus vraiment nécessaire de créer des préfixes 32 et 64 bits séparés: La majorité des applications 32 bits tournent sans problème dans un préfixe 64 bits. Si vraiment vous voulez créer des préfixes séparés, voir [[wine32#preparation_des_prefixes|l'ancienne page]]. Nous allons donc préparer le répertoire ''~/.wine''. Il est nécessaire de préparer ce répertoire pour //chaque utilisateur de la machine//. Cette préparation n'est à faire qu'une seule fois. **Si vous aviez déjà des préfixes avec des logiciels installés dedans, sauvegardez-les car nous allons les effacer.** Si vous aviez des sauvegarde de jeux Windows, elles sont probablement stockées dedans. On re-créé donc un préfixe Wine tout propre: rm -rf ~/.wine wineboot Lors de cette préparation, Wine voudra peut-être télécharger des fichiers. Répondez "oui" quand il vous pose la question. ==== Installation de runtimes supplémentaires ==== Certaines applications et jeux ont besoin de runtimes et DLL supplémentaires pour fonctionner: DotNet, DirectX, Microsoft C++ Runtimes, etc. Il y a **3 packages qui permettent de faire tourner 80% des jeux**. Ces packages sont //**vcrun2022**//, //**dxvk**// et //**vkd3d**//. Ces packages ne sont à installer qu'une fois. winetricks vcrun2022 Cela va installer les DLL //Microsoft Visual C++// (2015 à 2022) nécessaires à énormément de jeux, ainsi qu'à des moteurs 3D comme l'Unreal Engine (utilisé par beaucoup de jeux). Notez que 2 installeurs seront lancés: celui 32 bits (x86) et celui 64 bits (x64). Il vous faudra cliquer pour accepter l'installation. winetricks dxvk Cela va installer dxvk qui permet aux jeux Windows conçus pour DirectX 9/10/11 de fonctionner directement avec votre carte graphique (pour peu qu'elle soit compatible Vulkan sous Linux, ce qui doit être le cas de plus de 90% des cartes graphiques). winetricks vkd3d La même chose pour les jeux DirectX 12. Je sais que winetricks permet d'installer plusieurs packages à la fois, mais certains bugs de téléchargement semblent survernir quand on fait cela. Je vous recommande d'utiliser winetricks pour installer un seul package à la fois comme ci-dessus. La plupart des jeux sont créés pour une version spécifique de DirectX. La vaste majorité des jeux utilisent DirectX 9/10/11, donc dxvk doit suffir dans la plupart des cas. Notez que certains jeux sont capables de fonctionner avec DirectX 11 ou 12 (par exemple: //Borderlands 3// ou //Satisfactory//). Si cela ne marche pas en 12, essayez en 11 (et inversement). Très souvent, ces jeux acceptent de démarrer avec une option ''-dx11'' ou ''-dx12'' pour forcer une version de DirectX (c'est le cas de //Satisfactory//). D'autres fois, c'est sélectionnable dans les menus (c'est le cas de //Borderlands 3//). **Ces 3 packages winetricks (vcrun2022, dxvk et vkd3d) devraient vous permettre de faire fonctionner plus de 80% des jeux.** Certain jeux dépendent d'autres modules. Je pense en particulier à un framework de chez Microsoft, **XNA**. Si un jeu ne passe pas, vous pouvez éventuellement ajouter:winetricks xna40 Vous aurez quelques fenêtres d'installation à valider. Et essayez de relancer le jeu. Si vous tombez sur un jeu dont les menus n'affichent pas de texte (par exemple //Star Valor//), essayez: winetricks corefonts (Cette installation prendra un certain temps.) Certains lanceurs (comme ceux de //Trine//) peuvent aussi afficher des zones blanches pour le texte. Dans ce cas, repassez votre bureau Linux en thème clair standard et relancez le jeu. ---- ===== Installation des logiciels ===== Si le logiciel/jeux possède un installeur, lancez-le simplement avec: wine installeur.exe Si l'installeur du jeu vous propose d'installer DirectX ou les "Microsoft Visual C++ Runtime", pensez à bien **décocher** ces options, car il est préférable de les installer via winetricks (comme vu ci-dessus). Notez bien que pour les applications et installeurs Windows: * **C:** correspond au chemin ''~/.wine/drive_c'' * **Z:** correspond à ''/'' (la racine de votre système Linux). Notez que vous n'avez absolument pas l'obligation d'installer les applications Windows dans C: (c'est à dire ~/.wine...): Vous pouvez les mettre ailleurs (Personnellement, j'ai un dossier ''~/apps'', donc j'installe les applications Windows dans ''Z:\home\sebsauvage\apps\''). Par la suite, pour lancer l'application, faites (là où est installée l'application): wine application.exe Il est possible que le jeu dépende d'autres packages/DLL. Il n'est pas toujours facile d'identifier les runtimes manquants, mais **winetrick** vous simplifiera grandement l'installation de ces librairies. Par exemple, certains logiciels ont besoin de DotNet:winetricks dotnet40 Pour voir la liste de package winetricks installables: winetricks dlls list Vous y retrouverez: //Adobe Air, DirectX, DotNet, Adobe Flash, Internet Explorer 6/7/8, contrôle MS RichEdit, QuickTime, Shockwave, MS Visual Basic 2/3/4/5/6 runtime, MS Visual C++ runtimes librairies (vcrunXXXX), XNA...// Pour lister les runtimes déjà installés:winetricks list-installed Notes: * De temps en temps, pensez à mettre à jour winetricks:sudo winetricks --self-update * Et pour mettre à jour un package (par exemple dxvk):winetricks -f dxvk En particulier, dxvk et vkd3d sont en développement actif : Ils ont plusieurs nouvelles versions par an. ---- ===== Déinstallation des applications ===== winetricks uninstaller Et choisissez l'application à dé-installer. Vous pouvez ainsi déinstaller les jeux/logiciels installés, ainsi que les runtimes que vous avez installés. {{ :wine:winetricks-uninstaller.png?nolink |}} ---- ===== Astuces ===== ==== Activation de Proton dans Steam pour tous les jeux ==== Proton est une version modifiée de Wine intégrée au client Steam Linux. Par défaut, il n'est actif que sur quelques titre spécifiquement testés par Valve, mais il est possible de forcer l'activation pour tous les jeux (sans bien sûr la garantie qu'il fonctionne avec //tous// les jeux). Pour effectuer cette activation: * Lancer Steam * Menu //Steam// > //Paramètres// * //Compatibilité// > cocher //Activer Steam Play pour tous les autres titres// * Exécuter les autres titres avec : //Proton Hotfix// {{ :wine:steam-steamplay2.png?direct&600 |}} Vous pouvez alors installer et lancer les jeux Windows. Notez que plusieurs versions de Proton vous sont proposées. D'une manière générale, il vaut mieux choisir la version la plus récente. C'est elle qui sera utilisée par défaut. Il peut arriver que certains jeux fonctionnent mieux avec d'anciennes versions de Proton. Dans les propriétés de chaque jeu, vous pouvez forcer la version de Proton. À vous d'essayer plusieurs versions de Proton pour faire passer un jeu. Après avoir forcé la version de Proton sur un jeu, il est possible que Steam re-télécharge des fichiers ou que le bouton de lancement du jeu affiche "Mettre à jour". Cliquez dessus. Il est également possible que lors du lancement du jeu Steam décider d'installer les dépendances nécessaires (DirectX, msvcrt...). Cela peut prendre un certain temps. **Astuce:** Si vous avez des jeux natifs Linux dans Steam qui ne démarrent pas, forcez l'utilisation de Proton ! Vous utiliserez alors la version Windows de ces mêmes jeux. **Astuce:** Certains jeux existent dans Steam pour Linux et Windows. Il peut être intéressant d'essayer la version Windows de votre jeu, car parfois les versions Windows sont mieux maintenues que les versions Linux et il est possible que vous ayez de meilleures performances avec les versions Windows des jeux (C'est flagrand pour //Borderland 2// par exemple, dont la version Windows est //beaucoup// plus fluide que la version Linux). ---- ==== Lancement de jeux Windows non-Steam avec Proton ==== GE-Proton est une version modifiée de Proton comportant des patchs supplémentaires. Proton est lui-même un dérivé de Wine, possédant des patchs supplémentaires. Il peut être intéressant d'essayer les jeux avec Proton au lieu de Wine, en particulier les jeux récents DirectX 12 si vous avez de mauvaises performances sous Wine ou si le jeu ne démarre pas. Notez que comparativement à la solution Wine, GE-Proton met l'accent sur les performances et les jeux récents au détriment de la compatibilité avec les anciennes cartes graphiques. GE-Proton est conçu pour être utilisé dans Steam, mais //umu-launcher// permet de l'utiliser en dehors de Steam. Nous allons utiliser 2 logiciels: * //**GE-Proton**// (une version modifiée de Proton incluant divers patchs pour les performances). * //**umu-launcher**// est un outils conçu pour aider au lancement des jeux dans GE-Proton hors de Steam. Instructions: * **Téléchargez GE-Proton** : * Page de téléchargement : https://github.com/GloriousEggroll/proton-ge-custom/releases/latest/ * Télécharger le GE-ProtonXXXXXX.tar.gz et décompressez-le (par exemple dans ''~/GE-Proton'') * Vous devez donc avoir GE-Proton installé par exemple dans ''~/GE-Proton/GE-Proton9-27/'' * **Téléchargez et installez umu-launcher**: * Page de téléchargement : https://github.com/Open-Wine-Components/umu-launcher/releases/latest/ * Téléchargez le package (.deb ou .rpm) pour votre distribution et installez-le. * De manière générale, il est préférable d'avoir un **préfixe séparé pour chaque jeu**. On va donc faire par exemple: * ''~/Talos2/TheTalosPrinciple2_win_wine/'' : Le jeu lui-même (Placez le jeu dans son propre sous-répértoire). * ''~/Talos2/pfx'' : Son préfixe (c'est là que le jeu va mettre ses sauvegardes). * Avant le premier lancement du jeu, il faut installer les runtimes Microsoft VisualC++. Lancez le script suivant dans ''~/Talos2/'' (cela n'est à faire qu'une seule fois):#!/usr/bin/env bash mkdir -p ./pfx export WINEPREFIX=$(readlink -f ./pfx) export GAMEID=0 export PROTONPATH=$(readlink -f "$HOME/GE-Proton/GE-Proton9-27/") umu-run winetricks -q win10 # Simuler une machine Windows 10 umu-run winetricks vcrun2022 * Note : il n'est pas utile d'installer dxvk/vkd3d : Ils sont déjà inclus dans GE-Proton. * Placez le script suivant dans ''~/Talos2/''. Utilisez ce script chaque fois que vous voulez lancer le jeu:#!/usr/bin/env bash mkdir -p ./pfx export WINEPREFIX=$(readlink -f ./pfx) export GAMEID=0 export PROTONPATH=$(readlink -f "$HOME/GE-Proton/GE-Proton9-27/") cd "TheTalosPrinciple2_win_wine" umu-run $(readlink -f "Talos2.exe") * WINEPREFIX va pointer là vous voulez mettre votre préfixe (le jeu y mettra ses sauvegardes) * GAMEID peut rester à zéro, c'est sans importance. * PROTONPATH pointe vers GE-Proton. Notez que si le jeu exige d'autres runtimes, vous pouvez réutiliser le script ''runtimes.sh'' pour installer d'autres composants (//corefonts//, //xna40//, etc.) Sur ma RTX3070, mes jeux DirectX 12 qui avaient de mauvaises performances sous Wine+vkd3d ont maintenant d'excellente performances dans GE-Proton : //STALKER 2, The Talos Principle 2, Age of Wonders 4, Avowed//... ---- ===== FAQ ===== * //Mon jeu/logiciel ne fonctionne pas !// * Lancez Wine en ligne de commande: Certains messages d'erreur vous guiderons peut-être sur la cause du problème. * Il manque peut-être un runtime Windows pour votre logiciel: DotNet ? DirectX ? Microsoft Visual C++ runtimes ? autres ? Les messages d'erreur pourront éventuelement vous aider. Utilisez //winetricks// pour installer les runtimes manquants. * Regardez s'il y a un fichier //readme// ou //lisezmoi// là où est installé le logiciel. Il arrive que les développeurs y indiquent les runtimes nécessaires à leur logiciel. * Parfois même, certains sous-répertoires du jeu contiennent les runtimes à installer. Explorez (est-ce qu'il y a un sous-répertoire "Redist", par exemple ?) * Une nouvelle version de Wine est sortie ? Ré-essayez votre logiciel ! WineHQ travaille en permanence à améliorer la compatibilité des logiciels, et il est possible que votre logiciel ou jeu fonctionne avec une nouvelle version de Wine. * Essayez aussi de mettre à jour winetricks, puis dxvk. De nouvelles versions de dxvk sortent régulièrement, augmentant le nombre de logiciels compatibles. Cela vaut le coup de ré-essayer. * Si vous avez Steam, essayez de lancer le jeu depuis Steam (donc avec Proton au lieu de Wine). Essayez avec différentes versions de Proton. ===== Liens divers ===== * Variables d'environnement influant sur le démarrage de Wine : https://simpler-website.pages.dev/html/2021/1/wine-environment-variables/