M1 MacでのWine 6.1のビルド
Wine
WindowsアプリケーションをLinuxやmacOS上で動作させることができるWineの開発版6.1をM1 MacのRosetta2環境でビルド&実行してみました。
以前
https://qiita.com/asfdrwe/items/d8e49320c2ab6c980fdc
で解説した6.0-rc5では
display: macdrv_init_display_devices No GPUs detected
と出て正常に動作しないのでパッチが必要でしたが、6.1で修正されたようなのでそのままビルドしても問題ありません。
Brendan Shanks (4):
winemac.drv: Use Metal to get a display's GPU info if possible.
Wineビルド環境構築
準備
~/Download/以下で作業していきます。
$ cd ~/Downloads
未インストールの場合Command line tools for XcodeとRosetta2上で動作するx86_64用homebrewをインストールして、Rosetta2環境下で作業します。
$ xcode-select --install
$ arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
$ arch -x86_64 /bin/bash
参考サイト
https://qiita.com/royroy/items/338362362de73a94fc0c
https://qiita.com/shira-shun/items/0f6213f4923cb5544367
https://zenn.dev/ress/articles/069baf1c305523dfca3d
homebrewから必要なものをインストール
homebrew経由でビルドに必要なbisonやflex他、SSL関係のgnutlsやVulkan→Metalの変換を行うMoltenVKなどライブラリやツールもインストールし環境変数の設定をします(一部不要なのがあるかも)。
$ brew install cmake ninja bison flex freetype mingw-w64 gnutls libtiff krb5 FAudio lcms2 gstreamer gst-plugins-base sane-backends libusb libgsm libgphoto2 molten-vk vulkan-headers spirv-cross spirv-tools glslang
$ export PATH="/usr/local/opt/net-snmp/sbin:/usr/local/opt/net-snmp/bin:/usr/local/opt/icu4c/sbin:/usr/local/opt/icu4c/bin:/usr/local/opt/sqlite/bin:/usr/local/opt/krb5/sbin:/usr/local/opt/krb5/bin:/usr/local/opt/[email protected]/bin:/usr/local/opt/flex/bin:/usr/local/opt/bison/bin:$PATH"
$ export GUILE_LOAD_PATH="/usr/local/share/guile/site/3.0"
$ export GUILE_LOAD_COMPILED_PATH="/usr/local/lib/guile/3.0/site-ccache"
$ export GUILE_SYSTEM_EXTENSIONS_PATH="/usr/local/lib/guile/3.0/extensions"
$ export GUILE_TLS_CERTIFICATE_DIRECTORY=/usr/local/etc/gnutls/
SPIRV-Headers
vkd3dのビルドに必要なSPIRV-Headersがhomebrewにないようなので手動で入れます。
$ git clone https://github.com/KhronosGroup/SPIRV-Headers.git
$ cd SPIRV-Headers
$ mkdir build
$ cd build
$ cmake ..
$ make install
$ cd ../..
SPIRV-Headersでインストールされるファイルは/usr/local/include/spirvと/usr/local/lib/cmake/SPIRV-Headersに入るので、SPIRV-Headersをアンインストールするときは手動で消してください。
vkd3d
Vulkan経由でDirectX12を動かすvkd3dをビルドします。/usr/local/opt/vkd3d-1.2にインストールします。
https://dl.winehq.org/vkd3d/source/
からvkd3d-1.2.tar.xzをダウンロードし展開してビルドしてインストールしvkd3dのpkgconfigのパスを通します。
$ tar xvfJ vkd3d-1.2.tar.xz
$ cd vkd3d-1.2
$ ./configure --prefix=/usr/local/opt/vkd3d-1.2 --with-spirv-tools
$ make
$ make install
$ cd ..
$ export PKG_CONFIG_PATH="/usr/local/opt/vkd3d-1.2/lib/pkgconfig/"
Wineのビルド
https://www.winehq.org/
からwine-6.1.tar.xzをダウンロードし展開します。/usr/local/opt/wine-6.1にインストールします。
$ tar xvfJ wine-6.1.tar.xz
$ cd wine-6.1
configureスクリプトに対して、Linux用と思われるinotify,v4l2,pulse,oss,udev,capiは無効にしています。Xはなくてもビルドできるので無効にしています。QuickTimeはビルドに必要なものがわからないで無効にしています。
オプションを指定してconfigureを実行し、ビルドとインストールを行います。
$ ./configure --prefix=/usr/local/opt/wine-6.1 --enable-win64 --without-quicktime --without-x --without-inotify --without-v4l2 --without-pulse --without-oss --without-udev --without-capi
$ make
$ make install
Wineの実行
wine64のパスを通してWineの設定ツールのwinecfgを実行します。
$ export PATH="/usr/local/opt/wine-6.1/bin:$PATH"
$ wine64 winecfg
winetricks
homebrewにwinetricksがあるのでインストールし、念のためhomebrewからインストールされるunzipへのパスを通します。
$ brew install winetricks
$ export PATH="/usr/local/opt/unzip/bin:$PATH"
環境変数のWINEにwine64を指定してwinetricksを実行します。
$ export WINE=/usr/local/opt/wine-6.1/bin/wine64
$ winetricks
例えば日本語フォントに関しては次のようにipamonaをインストールして設定できます。
$ winetricks fonts ipamona fakejapanese_ipamona
動作確認
7zipのx64版が動作するのを確認しています。インストーラーがx86のようなので、msi版インストーラをダウンロードして、msiexecコマンドでインストールしてください。
$ wine64 msiexec /i 7z1900-x64.msi
notepad++もインストーラが32bitですが、ポータブル版は動くはずです。
これ以外でも64bitアプリなのにインストーラーが32bitのものが多くインストールできないものが多いです。
PSPエミュレータのppssppは起動直後に落ちます。
こちらのビルドにミスがあるのかもしれませんが、現時点(2021/2/6)では素のWineはLinux上でのWineと違って正常に動作するのが少ないです。
補足
quarantine拡張属性
ネットからダウンロードしたexeを実行する際に、『開発元を検証できないため開けません』という警告が出ます。
セキュリティ上あまり好ましくないのですが
$ xattr -d com.apple.quarantine xxx.exe
とすればquarantine拡張属性を消せるので警告がでなくなります。
参考サイト
https://news.mynavi.jp/article/osxhack-187/
https://infornography.blue/mac/remove-quarantine-attribute/
Wine 6.1のビルド済みバイナリ
https://github.com/Gcenx/homebrew-wine
からgcenx氏ビルドの6.1(2021/2/6時点)がhomebrew経由でインストールできます。こちらのビルドと微妙にオプションが違っていますが(krb5等)。
gcenx氏のリポジトリを追加(tap)
$ brew tap gcenx/wine
インストール
$ brew install --cask --no-quarantine gcenx-wine-devel
Author And Source
この問題について(M1 MacでのWine 6.1のビルド), 我々は、より多くの情報をここで見つけました https://qiita.com/asfdrwe/items/e7f7e1ee779009d87201著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .