Table des matières

Wine

Cette page est l'ancienne version de ma page sur Wine, avec la séparation des préfixes 32 et 64 bits. Je ne recommande désormais plus de séparer les préfixes 32 et 64 bits, car les évolutions de Wine font que la majorité des logiciels et jeux 32 bits fonctionneront dans les préfixes 64 bits. Voir la nouvelle page.

Présentation

Wine est une sorte de couche d'émulation des API Windows permettant de faire fonctionner la majorité des logiciels et jeux Windows sous Linux. (Valve a d'ailleurs inclus une version modifiée et améliorée de Wine dans Steam sous le nom de Proton (aussi appellé "Steam Play") qui permet de faire fonctionner une grande quantité de 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: Selon les statistiques de ProtonDB, 78% 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" = "Wine Is Not an Emulator"). 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):

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).


Installation

Les guides d'installation pour les différentes distributions sont disponibles dans cette page: https://wiki.winehq.org/Download

Nous allons expliciter l'installation pour Ubuntu ci-dessous:

Ubuntu

Il est possible d'installer Wine:

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 20.04.

Si vous avez une version d'Ubuntu plus ancienne que la 20.04:

Si vous avez une version d'Ubuntu plus ancienne que la 20.04:


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. Il existe des préfixes 32 bits et des préfixes 64 bits, adapatés respectivement au lancement des applications Windows 32 et 64 bits. 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 utilisons seulement 2 préfixes: un pour 32 bits, un pour 64 bits, afin de limiter la duplication des fichiers.

Nous allons donc préparer deux répertoires (cachés, placés dans votre répertoire personnel):

Il est nécessaire de préparer ces préfixes pour chaque utilisateur de la machine.

Si vous aviez déjà des préfixes avec des logiciels installés dedans, sauvegardez-les car nous allons les effacer.

Il faut savoir que si vous ne spécifiez pas de préfixe quand vous lancez Wine, il utilisera le préfixe par défaut ~/.wine et démarrera en mode 32 bits. Mais on peut indiquer dans la ligne de commande quel préfixe et architecture utiliser.

Lors de cette préparation, Wine voudra télécharger des fichiers. Répondez "oui" quand il vous pose la question.

Si vous changez de version de Wine (à l'occasion d'une mise à jour), vous verrez que Wine repasse par cette phase de préparation (sans toutefois effacer vos fichiers) lors du premier lancement d'un programme dans le préfixe. Vous pouvez déclencher manuellement cette mise à jour avec la commande wineboot.

Installation des logiciels

Vous devez installer le jeu/logiciel dans le préfixe correspondant: Si c'est un jeu 32 bits, dans le préfixe 32 bits. Si c'est un jeu 64 bits, dans le préfixe 64 bits.

(Car, si non spécifié, par défaut Wine uilisera le préfixe et l'architecture 32 bits.)

Notez bien que pour les applications Windows:

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\).

Comment savoir si une application est 32 ou 64 bits ?

Ne vous inquiétez pas si vous vous êtes trompé⋅e de préfixe: Quand vous lancerez le logiciel, Wine vous dira immédiatement que ce n'est pas la bonne architecture. Vous devrez alors déinstaller le logiciel de ce préfixe et aller l'installer dans le bon préfixe. Exemple de message d'erreur quand on lance un programme 64 bits dans un préfixe 32 bits:

0024:err:module:process_init L"Z:\\home\\sebsauvage\\apps\\Vignettes-windows\\Vignettes.exe" 64-bit application not supported in 32-bit prefix

Installation de runtimes supplémentaires

Certaines applications et jeux ont besoin de runtimes supplémentaires pour fonctionner: DotNet, DirectX, Microsoft C++ Runtimes, etc.

Il n'est pas toujours facile d'identifier les runtimes manquants, mais winetrick vous simplifiera grandement l'installation de ces librairies.

L'installation de runtimes avec winetricks fonctionne très bien en 32 bits, mais pas toujours en 64 bits. C'est pour cela que tant que c'est possible, je vous recommande d'utiliser les versions 32 bits des logiciels/jeux quand elles existent. D'autre part, même si les jeux 32 bits fonctionnent dans les préfixes 64 bits, ils auront de meilleures performances dans un préfixe 32 bits.

Typiquement, beaucoup de logiciels récents ont besoin de DotNet4. Vous pouvez l'installer facilement en ligne de commande avec:

winetricks dotnet40

(ou dans le préfixe 64 bits: WINEPREFIX=~/.wine64 WINEARCH=win64 winetricks dotnet40)

Pour lister les runtimes 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…

Je vous recommande l'installation des packages suivants, car ce sont les plus couramment utilisés par les jeux:
winetricks dxvk vcrun2019

Si votre jeu utilise DirectX 12, vous pouvez essayer d'ajouter vkd3d, mais ce logiciel est encore récent votre jeu risque malgré tout de ne pas fonctionner. (Certains jeux comme Borderlands 3 peuvent être configurés pour utiliser DirectX 11 ou 12: Pour Wine, préférez 11.)

Pour lister les runtimes installés:

winetricks list-installed
Les jeux Windows ont généralement besoin de DirectX. Je vous conseille d'installer dxvk (winetricks dxvk). Cela permet de faire fonctionner la majorité des jeux Windows nécessitant DirectX 9/10/11 avec d'excellentes performances, car il fait appel à l'API Vulkan (la plupart des cartes graphiques sont compatibles Vulkan). Avec ça, il est même probable que vous ayez de meilleures performances que sous Windows (!). Si l'installation d'un jeu propose l'installation de DirectX, pensez bien à décocher l'option.

Notes:


Lancement

Placez-vous dans le dossier où est installé votre programme Windows, et lancez-le:

wine monprogramme.exe

ou en 64 bits:

WINEPREFIX=~/.wine64 WINEARCH=win64 wine monprogramme.exe

Déinstallation des applications

Dans le préfixe 32 bits:

winetricks uninstaller

Dans le préfixe 64 bits:

WINEPREFIX=~/.wine64 WINEARCH=win64 winetricks uninstaller

Et choisissez l'application à dé-installer. Vous pouvez ainsi déinstaller les jeux/logiciels installés dans chaque préfixe, ainsi que les runtimes que vous avez installés.


Astuces

Installation d'une version spécifique de Wine

La branche "staging" de Wine évolue vite, avec plusieurs livraisons par an. Si une nouvelle version pose problème, vous avez la possibilité de revenir à une ancienne version.

Activation de Proton dans Steam pour tous les jeux

Proton est une version modifiée de Wine intégrée au client Steam. 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:

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 version 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).

Installation et mise à jour de Proton-GE dans Steam

Proton-GE est une version modifiée (et non officielle) de Proton intégrant des corrections et améliorations. Elle peut parfois permettre de faire passer des jeux qui ne passeraient pas avec les versions officielles de Proton.

Vous devrez la télécharger manuellement, et l'installer dans Steam.

Instructions:

Et Proton-GE devrait apparaitre dans la liste des versions de Proton disponibles.

Lancement de jeux Windows non-Steam avec Proton

Il est possible de lancer les jeux hors Steam depuis Steam afin de profiter de Proton (si par hasard un de vos jeux refuse de fonctionner sous Wine). L'avantage de lancer un jeu de cette manière est que cela facilite également la détection des manettes.

Vous pouvez:

Notez que quand vous allez lancer le jeu, il y a de fortes chance que le bouton de lancement repasse immédiatement au vert. Laissez un peu de temps à l'ordinateur pour démarrer le jeu.

Interfaces

Il exiser des interfaces pour simplifier l'utilisation de Wine (par exemple la gestion des préfixes) ou apporter des fonctions supplémentaires: Lutris, Bottles, PlayOnLinux

FAQ