Linux(ubuntu)ヘッドレス環境にVMware Workstation pro 17.6.2をインストールしてWindowsXPなゲストOSでDirect3Dゲームを動かす

WindowsXP時代の古いゲームをやりたくなっていざ仮想環境をサーバーに構築すると、Direct3Dが使えないという問題に直面する。incus+qemu/kvmの仮想マシンではインストールも大変で動かすことができず、最近個人利用が無償化されたVMware Workstation pro 17.6.2を使用してみたところうまくいった。インストールコマンドを備忘録として残す。

nucbox10 メモリ16GB

ubuntu 24.04

broadcomでユーザー登録して、vmwareはダウンロードしておく。その後、ダウンロードしたvmware.bundleファイルをbashなどで実行してvmwareをインストールする。

Bash
$ sudo bash vmware.bundle --console

terms of useが出るので、全部読んでyesと回答。–consoleを付けないと初回起動時にGUIで確認プロンプトが出るそう。

Bash
$ mkdir winxp
$ cd winxp
$ vmware-vdiskmanager -c -s 20GB -a ide -t 0 winxp.vmdk  #-t 1でファイル分割
$ nano winxp.vmx
.encoding = "UTF-8"
config.version = "8"
virtualHW.version = "10"
vmci0.present = "TRUE"
displayName = "Windows XP"
guestOS = "winxppro"
memsize = "512"
numvcpus = "1"
ide0:0.present = "TRUE"
ide0:0.fileName = "winxp.vmdk"
ide1:0.present = "TRUE"
ide1:0.deviceType = "cdrom-image"
ide1:0.fileName = "winxpsp3.iso"
ethernet0.present = "TRUE"
ethernet0.connectionType = "nat"
sound.present = "TRUE"
sound.virtualDev = "es1371"
sound.fileName = "-1"
sound.autodetect = "TRUE"
usb.present = "TRUE"
svga.vramSize = "256"
svga.autodetect = "TRUE"
svga.vga64 = "FALSE"
mks.enable3D = "TRUE"
RemoteDisplay.vnc.enabled = "TRUE"
RemoteDisplay.vnc.port = "5901"
RemoteDisplay.vnc.password = "your_password"

仮想マシンは他のデスクトップでVMwareを起動してそこで作成したほうが早いかもしれません。こうやって作成した仮想マシンを起動するには、

Bash
$ vmrun -T ws start winxp.vmx nogui 

てな感じにするとヘッドレスで起動できるので、あとはvncで接続してあげると良い。最初はモジュールが足りないというエラーが出るので、表示されたモジュールをインストールする。D3Dを使うにはvulkanモジュールをインストールして、かつ、ユーザーが/dev/dri/renderD128にアクセスできるようにする必要がある。Ubuntuでは(?)、ユーザーubuntuをrenderD128のグループrenderに所属させれば良い。

Bash
$ sudo apt install libvulkan*
$ sudo adduser ubuntu render

カーネルをアップデートした場合はモジュールの再インストールが必要。しておかないと、systemctl status vmwareでvmmon及びvmnetがfailedとなって、vmrun -T ws startがthe operaion was canceledとなる。このときはログも出ないので動かない理由が調査できなくて焦った。

Bash
$ sudo vmware-modconfig --console --install-all

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です