Problembehebung
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
- Aktualisierung unter 18.04 schlägt fehl
- Installation von Microsoft DLLs, EULA akzeptieren
- Anwendung startet nicht unter x64
- Anwendung startet nicht (mehr) wegen fehlerhafter MESA-Version
- Fehlerhaftes EXE-Format
- Ausführung sehr langsam
- Dateien nicht gefunden oder gespeichert
- p11-kit und der GNOME-Keyring
- Kein Klang in manchen Programmen
- Eine .dll fehlt
- CD wird nicht gefunden
- Datei als nicht ausführbar markiert
- Druckdialog öffnet sich nicht
- Schrift ist Zeichensalat
- Schrift unlesbar
- gdiplus.dll fehlt
- Zu wenig Videospeicher oder Memory
- Größe des Videospeichers korrigieren
- Photoshop-Werkzeuge reagieren nicht auf die ALT-Taste
- Links
Da Windows-Programme naturgemäß für Windows entwickelt wurden, sind Probleme bei der Ausführung unter Linux nicht auszuschließen. Manchmal rühren sie auch von einer falschen Handhabung des Benutzers von Wine her. Viele dieser Probleme lassen sich allerdings lösen. In diesem Artikel werden einige von ihnen behandelt.
Aktualisierung unter 18.04 schlägt fehl¶
Um unter Bionic die Aktualisierung von WineHQ auf Version >= 4.5 zu ermöglichen, sind bis auf weiteres diese Schritte durchzuführen.
Installation von Microsoft DLLs, EULA akzeptieren¶
An einer Stelle muss die EULA von Microsoft bestätigt werden. Dazu mit der Tab ⇆ -Taste zu "OK" springen und der -Taste oder der ⏎ -Taste bestätigen.
Anwendung startet nicht unter x64¶
Aufgrund von Bugs in Wine oder generellen Inkompatibiltäten kann es nötig sein, die Anwendung in einem 32-Bit-Wineprefix zu starten. Solch eine Umgebung kann man z.B. folgendermaßen anlegen (siehe auch die offizielle FAQ 🇬🇧) und das Programm darin starten:
WINEARCH=win32 WINEPREFIX=~/.wine32 wine Programm.exe
Für weitere Anwendungsstarts muss die WINEARCH-Variable nicht mehr angegeben werden (also nur noch der WINEPREFIX), denn nach der einmaligen Erzeugung ist die neue Wine-Umgebung auf 32-bit festgelegt.
Anwendung startet nicht (mehr) wegen fehlerhafter MESA-Version¶
Im Terminal gestartet sieht man dann:
X Error of failed request: GLXBadFBConfig
Für Versionen älter als Impish gibt es diese Fehlerumgehung.
Fehlerhaftes EXE-Format¶
Dieser Fehler weist meist darauf hin, dass ein Programm in einem falschen Wineprefix gestartet wurde. Dieser Fall tritt z.B. auf, wenn der Standard-Wineprefix ~/.wine fälschlicherweise für 32 Bit konfiguriert wurde und darin dann ein 64-Bit-Programm gestartet wird. In diesem Fall hilft es ~/.wine zu entfernen und vor einem erneuten Programmstart mittels Befehl wineboot
neu anzulegen.
Ausführung sehr langsam¶
3D-Grafik¶
Möglicherweise nimmt Wine eine zu niedrige Größe des Videospeichers an. In dem Fall sollte man die Größe des Videospeichers korrigieren.
DosBox¶
Statt mit Wine die Windows-Version von DOSBox zu starten, sollte man dessen Linux-Version verwenden.
ScummVM¶
Statt mit Wine die Windows-Version von ScummVM zu starten, sollte man dessen Linux-Version verwenden.
Dateien nicht gefunden oder gespeichert¶
Wenn ein Windows-Programm seine eigenen Dateien nicht findet (z.B. die Mods von Half-Life) oder Einstellungen nicht speichert, liegt das oft daran, dass es auf falsche Weise gestartet wurde. Wine muss das Arbeitsverzeichnis des Programms kennen, in dem die jeweilige EXE-Datei liegt, doch es interpretiert standardmäßig dasjenige Verzeichnis als Arbeitsverzeichnis, aus dem heraus Wine gestartet wird. In der Regel ist dies das persönliche Verzeichnis. Um das korrekte Arbeitsverzeichnis anzugeben, gibt es drei Möglichkeiten.
p11-kit und der GNOME-Keyring¶
Falls die folgende oder eine sehr ähnliche Fehlermeldung beim Programmstart im Terminal angezeigt wird ...
p11-kit: couldn't load module: /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so
... genügt es in 32-Bit-Systemen, wenn man nachträglich die Pakete gnome-keyring und p11-kit installiert. [1]
In Ubuntu 14.04 LTS kann es sein, dass das Verzeichnis /usr/lib32 nicht existiert.
Weil die Datei in ein Verzeichnis installiert wurde, wo sie von Programmen nicht gesucht wird, muss schließlich im richtigen Verzeichnis eine Verknüpfung zur Datei angelegt werden:
sudo mkdir -p /usr/lib/i386-linux-gnu/pkcs11/ sudo ln -s /usr/lib32/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so
Kein Klang in manchen Programmen¶
Oft ist PulseAudio die Ursache für Audio-Probleme. Um eine Wine-Anwendung ohne PulseAudio zu starten, kann man es temporär stoppen, indem man ein Skript für den Start der Wine-Anwendung schreibt. Zuvor muss allerdings der automatische Neustart von PulseAudio in der Datei /etc/pulse/client.conf deaktiviert werden. Dazu ändert man in einem Editor [5] mit Root-Rechten [4] den Eintrag
; autospawn = yes
folgendermaßen abändern. Das fehlende Semikolon beachten!
autospawn = no
Anschließend lässt sich folgendes Skript zum Starten verwenden, welches natürlich ausführbar [6] gemacht werden muss. Falls man ein anderes Wineprefix verwendet, muss dieses natürlich im Skript statt $HOME/.wine eingesetzt werden.
1 2 3 4 5 6 7 8 9 10 | #!/bin/sh # Deactivate PulseAudio if audio problems occur: pulseaudio -k # Start wine application: env WINEPREFIX="$HOME/.wine" wine start /Unix "/Pfad/zum/Programm.exe" # Reactivate PulseAudio: pulseaudio -D |
Eine .dll fehlt¶
Benötigt ein Programm eine bestimmte .dll, hat man zwei Möglichkeiten: Entweder man besorgt sich diese .dll von einer bestehenden Windows-Installation aus dem Verzeichnis Windows\system32 oder man benutzt Dienste wie dll-files 🇬🇧. Man sollte sich aber darüber im Klaren sein, dass es nicht legal ist, wenn man eine native Windows-DLL nutzt, ohne eine Lizenz für Windows erworben zu haben. In beiden Fällen muss die gefundene .dll in den Ordner drive_c/windows/system32 im Wine-Verzeichnis platziert werden, das im persönlichen Verzeichnis zu finden ist. Danach öffnet man im Terminal [3] das Programm
winecfg
und trägt unter dem Reiter "Bibliotheken" die DLL als "Native" (also nicht die "Builtin"-Version von Wine) ein. Allgemeine Informationen zu einem solchen Überschreiben von Bibliotheken finden sich im Abschnitt Konfiguration.
CD wird nicht gefunden¶
Wird eine sich im Laufwerk befindende CD beim Programmstart nicht gefunden, kann das zwei Ursachen haben.
Die Lösbare: Das CD-Laufwerk ist nicht als solches eingetragen, sondern als Festplatte. Wie diese Einstellung geändert werden kann, wird im Abschnitt Konfiguration beschrieben.
Schon schlechter sieht es aus, wenn das Programm kopiergeschützt ist. Kann man den Kopierschutz nicht umgehen (was in Deutschland nicht erlaubt ist), gibt es keine Lösung, solange der Kopierschutz nicht von Wine unterstützt wird. Man beachte: Ab und an wird gerade bei älterer Software durch einen offiziellen Patch des Entwicklers der Kopierschutz entfernt oder ausgeschaltet.
Datei als nicht ausführbar markiert¶
Manche Wine-Versionen lassen das Starten eines Windows-Programms per Mausklick aus Sicherheitsgründen nur dann zu, wenn es als ausführbar [6] markiert ist. Im Programmstarter von Wine selbst ist dann dem Wine-Befehl ein sogenannter cautious-launcher
vorangestellt. Versucht man trotz fehlendem Ausführungsrecht, ein Windows-Programm mit der Maus zu starten, erhält man folgende Fehlermeldung:
"The file '/Pfad/zum/Programm.exe' is not marked as executable. If this was downloaded or copied from an untrusted source, it may be dangerous to run. For more details, read about the executable bit."
Möchte man also Windows-Programme per Mausklick starten, markiert man entweder die jeweiligen Programme als ausführbar oder deaktiviert dieses Verhalten auf folgende Weise: Mit Root-Rechten [4] bearbeitet man die Datei /usr/share/applications/wine.desktop in einem Texteditor [5] und tauscht die Zeile
Exec=cautious-launcher %f wine start /unix
gegen folgende aus und speichert die Datei:
Exec=wine start /unix %f
Druckdialog öffnet sich nicht¶
Beim Drucken erscheint folgende Meldung:
err:commdlg:PrintDlgA GetPrinterDriverA failed, ..., fix your config for printer ...
Wenn man den genannten Drucker aus der Datei ~/.wine/system.reg entfernt, öffnet sich der Druckdialog wieder und man kann dann zumindest in eine Datei drucken.
Schrift ist Zeichensalat¶
Ausländische Windows Anwendungen können eine Textcodierung in der Heimatsprache voraussetzen. Zum Beispiel benötigen viele japanische Anwendungen Shift_JIS um korrekt dargestellt zu werden. Folgende Befehle erzeugen eine lokale Shift_JIS-Sprachkonfiguration:
1 2 3 | export LOCPATH=$HOME/.wine/locale-ja/ mkdir -p $LOCPATH localedef -c -f SHIFT_JIS -i ja_JP $LOCPATH/ja_JP.SJIS |
Nach Erzeugung der Sprachkonfiguration kann dann die Windows-Anwendung mit dieser folgendermaßen gestartet werden:
1 | env LOCPATH=$HOME/.wine/locale-ja/ LANG=ja_JP.SJIS wine start /Unix "/PFAD/ZUM/PROGRAMM.exe" |
Schrift unlesbar¶
Bei manchen Windows-Spielen kann es passieren, dass Text nicht mehr angezeigt wird ("verschwindet") und damit unlesbar ist. Dann kann man versuchen, am Ende der Datei ~/.wine/user.reg folgenden Text anzuhängen:
[Software\\Wine\\X11 Driver] 1210627404 "ClientSideWithRender"="N"
Allerdings scheint diese provisorische Lösung nicht immer frei von Nebenwirkungen zu sein und sollte nicht als Universallösung verwendet werden.
In diesem Zusammenhang kann es nützlich sein (z.B. bei Texteditoren unter Wine), die Schriftdarstellung bzw. die Kantenglättung anzupassen. Obwohl sich die erforderlichen Einträge auch manuell vornehmen ließen, erleichtert folgendes Skript die Einstellung.
Falls man ein Wineprefix verwendet, muss dieses natürlich im Skript statt $HOME/.wine eingesetzt werden.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | #!/bin/sh # Quick and dirty script for configuring wine font smoothing # # Author: Igor Tarasov <tarasov.igor@gmail.com> WINE=${WINE:-wine} WINEPREFIX=${WINEPREFIX:-$HOME/.wine} DIALOG=whiptail if [ ! -x "`which "$WINE"`" ] then echo "Wine was not found. Is it really installed? ($WINE)" exit 1 fi if [ ! -x "`which "$DIALOG"`" ] then DIALOG=dialog fi TMPFILE=`mktemp` || exit 1 $DIALOG --menu \ "Please select font smoothing mode for wine programs:" 13 51\ 4\ 1 "Smoothing disabled"\ 2 "Grayscale smoothing"\ 3 "Subpixel smoothing (ClearType) RGB"\ 4 "Subpixel smoothing (ClearType) BGR" 2> $TMPFILE STATUS=$? ANSWER=`cat $TMPFILE` if [ $STATUS != 0 ] then rm -f $TMPFILE exit 1 fi MODE=0 # 0 = disabled; 2 = enabled TYPE=0 # 1 = regular; 2 = subpixel ORIENTATION=1 # 0 = BGR; 1 = RGB case $ANSWER in 1) # disable ;; 2) # enable MODE=2 TYPE=1 ;; 3) # enable cleartype rgb MODE=2 TYPE=2 ;; 4) # enable cleartype bgr MODE=2 TYPE=2 ORIENTATION=0 ;; *) rm -f $TMPFILE echo Unexpected option: $ANSWER exit 1 ;; esac echo "REGEDIT4 [HKEY_CURRENT_USER\Control Panel\Desktop] \"FontSmoothing\"=\"$MODE\" \"FontSmoothingOrientation\"=dword:0000000$ORIENTATION \"FontSmoothingType\"=dword:0000000$TYPE \"FontSmoothingGamma\"=dword:00000578" > $TMPFILE echo -n "Updating configuration... " $WINE regedit $TMPFILE 2> /dev/null rm -f $TMPFILE echo ok |
Beispielsweise als ~/wine_fontsmoothing.sh speichern, ausführbar machen [6] und wie folgt im Terminal starten [3]:
./wine_fontsmoothing.sh
Prinzipiell stehen über die Tasten 1 bis 4 vier Möglichkeiten zur Auswahl:
1 "Smoothing disabled" (keine Kantenglättung)
2 "Grayscale smoothing" (Kantenglättung mit Graustufen)
3 "Subpixel smoothing (ClearType) RGB" (Kantenglättung für TFT- bzw. LCD-Bildschirme)
4 "Subpixel smoothing (ClearType) BGR" (Kantenglättung für TFT- bzw. LCD-Bildschirme)
Das Skript lässt sich auch mehrmals aufrufen, bis die eigene Wunscheinstellung gefunden ist. Die Änderung wirkt sich allerdings nicht auf bereits laufende Programme aus.
gdiplus.dll fehlt¶
Manche Programme oder ihre Installationsprogramme benötigen die native gdiplus.dll. Am einfachsten lässt sie sich mit winetricks nachinstallieren:
winetricks gdiplus
Der Standard-Webbrowser öffnet nun eine Seite, von der man die Datei NDP1.0sp2-KB830348-X86-Enu.exe herunterlädt. Diese muss ins Verzeichnis ~/.cache/winetricks/gdiplus/ kopiert werden, das nach Eingabe des obigen Befehls bereits existieren sollte. Zuletzt wendet man den obigen Befehl ein zweites Mal an, um den Prozess abzuschließen.
Zu wenig Videospeicher oder Memory¶
Dieser Fehler kann sich auf verschiedene Weisen äußern: Entweder zeigt das Windows-Programm eine ähnlich lautende Fehlermeldung an, oder Wine gibt folgende Meldung aus, wenn das Programm im Terminal gestartet wurde:
err:d3d:resource_init Out of adapter memory
Möglicherweise nimmt Wine eine zu niedrige Größe des Videospeichers an. In dem Fall sollte man die Größe des Videospeichers korrigieren.
Größe des Videospeichers korrigieren¶
Obwohl Wine die Größe des Videospeichers der Grafikkarte automatisch ermittelt, kann es sich in Ausnahmefällen irren. Dies kann dann problematisch sein, wenn ein Windows-Programm diese Information abfragt, fälschlicherweise einen zu niedrigen Wert mitgeteilt bekommt und dann so verfährt, als stehe zu wenig Videospeicher zur Verfügung. Um dem Problem zu begegnen, kann man in der Wine-Registry einen festen Wert hinterlegen.
Zunächst muss man die tatsächliche Größe des Videospeichers in Megabytes kennen. Wenn man sich unsicher ist, kann man ihn mithilfe des folgenden Befehls ermitteln: [3]
lspci -v -s `lspci | grep VGA | awk {'print $1'}` | egrep -o ", prefetchable\) [size=[[:digit:]]+" | egrep -o [[:digit:]]+
Nun öffnet man den Wine-Registrierungseditor:
regedit
Hier markiert man den Schlüssel "HKEY_CURRENT_USER / Software / Wine / Direct3D". Wenn der Schlüssel Direct3D nicht existiert, legt man ihn mit einem Rechtsklick auf den Schlüssel "Wine" und der Auswahl von "Neu" und "Schlüssel" an. Mit einem auf diesen Schlüssel und der Auswahl von "Neu" und "Zeichenfolge" legt man eine neue Zeichenfolge namens VideoMemorySize an. Nach einem auf diesen neuen Eintrag und der Auswahl von "Ändern..." gibt man die Videospeichergröße in Megabytes an, z.B. 512, und bestätigt mit "OK". Der Editor muss nun geschlossen werden.
Photoshop-Werkzeuge reagieren nicht auf die ALT-Taste¶
Beispiel: Wird mit Alt + eine Stempelquelle festgelegt, scheint das zu funktionieren. Will man dann aber das festgelegte Ziel mit einem linken Mausklick einfügen, erscheint die Meldung: „Konnte den Kopierstempel nicht benutzen, weil der zu klonende Bereich nicht definiert wurde (Alttaste + Klicken zum Festlegen des Quellpunkts).“ Hier hilft es Benutzern von Unity möglicherweise, in CCSM in der Kategorie "Fensterverwaltung" das Modul "Fenster verschieben" zu öffnen und dort die Maus-Belegung für "Fensterverschiebung initiieren" von "<Alt>Button1" auf z.B. "<Ctrl>Button1" zu ändern.
Links¶