{{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Programme_starten: Starten von Programmen] [:Terminal: Ein Terminal öffnen] [:sudo: Root-Rechte] [:Editor: Einen Editor öffnen] [:Rechte:Rechte für Dateien und Ordner ändern] }}} [[Inhaltsverzeichnis()]] [[Bild(Wine/logo.png, 44, left)]] 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 [:Wine/#Methode-2-Wine-Fremdquelle:WineHQ] auf Version >= 4.5 zu ermöglichen, sind bis auf weiteres [post:9135187:diese Schritte] durchzuführen. = Installation von Microsoft DLLs, EULA akzeptieren = An einer Stelle muss die EULA von Microsoft bestätigt werden. Dazu mit der [[Vorlage(Tasten, TAB)]]-Taste zu ''"OK"'' springen und der [[Vorlage(Tasten, leer)]]-Taste oder der [[Vorlage(Tasten, return)]]-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-[:Wine#Wineprefix:Wineprefix] zu starten. Solch eine Umgebung kann man z.B. folgendermaßen anlegen (siehe auch die [https://wiki.winehq.org/FAQ#How_do_I_create_a_32_bit_wineprefix_on_a_64_bit_system.3F offizielle FAQ] {en}) und das Programm darin starten: {{{#!vorlage Befehl 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 [post:9284127:diese Fehlerumgehung]. = Fehlerhaftes EXE-Format = Dieser Fehler weist meist darauf hin, dass ein Programm in einem falschen [:Wine/#Wineprefix:Wineprefix] gestartet wurde. Dieser Fall tritt z.B. auf, wenn der Standard-Wineprefix '''~/.wine''' [post:9125514: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 [#Groesse-des-Videospeichers-korrigieren Größe des Videospeichers korrigieren]. == DosBox == Statt mit Wine die Windows-Version von DOSBox zu starten, sollte man dessen [:DOSBox:Linux-Version] verwenden. == ScummVM == Statt mit Wine die Windows-Version von ScummVM zu starten, sollte man dessen [:Spiele/ScummVM: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 [:Wine#Windows-Programme-starten: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 [:Trusty: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: {{{#!vorlage Befehl 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 [:Wine#Wineprefix:Wineprefix] verwendet, muss dieses natürlich im Skript statt '''$HOME/.wine''' eingesetzt werden. {{{#!code bash #!/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 [http://www.dll-files.com/ dll-files] {en}. 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 {{{#!vorlage Befehl 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 [:Wine#Konfiguration: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 [:Wine#Konfiguration: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 [:.desktop-Dateien: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 [wikipedia:Shift_JIS:] um korrekt dargestellt zu werden. Folgende Befehle erzeugen eine lokale Shift_JIS-Sprachkonfiguration: {{{#!code bash 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: {{{#!code bash 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 [:Wine#Wineprefix:Wineprefix] verwendet, muss dieses natürlich im Skript statt '''$HOME/.wine''' eingesetzt werden. {{{#!code bash #!/bin/sh # Quick and dirty script for configuring wine font smoothing # # Author: Igor Tarasov 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]: {{{#!vorlage Befehl ./wine_fontsmoothing.sh }}} Prinzipiell stehen über die Tasten [[Vorlage(Tasten, 1)]] bis [[Vorlage(Tasten, 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: {{{#!vorlage Befehl 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 [#Groesse-des-Videospeichers-korrigieren 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] {{{#!vorlage Befehl lspci -v -s `lspci | grep VGA | awk {'print $1'}` | egrep -o ", prefetchable\) [size=[[:digit:]]+" | egrep -o [[:digit:]]+ }}} Nun öffnet man den Wine-Registrierungseditor: {{{#!vorlage Befehl 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 [[Vorlage(Tasten, rmt)]] auf den Schlüssel ''"Wine"'' und der Auswahl von ''"Neu"'' und ''"Schlüssel"'' an. Mit einem [[Vorlage(Tasten, rmt)]] auf diesen Schlüssel und der Auswahl von ''"Neu"'' und ''"Zeichenfolge"'' legt man eine neue Zeichenfolge namens ''VideoMemorySize'' an. Nach einem [[Vorlage(Tasten, rmt)]] 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 [[Vorlage(Tasten, ALT + lmt)]] 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:CCSM] in der Kategorie ''"Fensterverwaltung"'' das Modul ''"Fenster verschieben"'' zu öffnen und dort die Maus-Belegung für ''"Fensterverschiebung initiieren"'' von ''"Button1"'' auf z.B. ''"Button1"'' zu ändern. = Links = * [:Wine:] {Übersicht} # tag: Emulation und Virtualisierung, Windows, Wine