「VMware」の版間の差分
細 |
|||
15行目: | 15行目: | ||
この記事は Arch Linux における VMware のインストールについての記事です。[[VMware に Arch Linux をインストール]]するのは別の記事になっています。 |
この記事は Arch Linux における VMware のインストールについての記事です。[[VMware に Arch Linux をインストール]]するのは別の記事になっています。 |
||
+ | {{Note| |
||
− | {{Note|この記事では最新のメジャーな VMware バージョン、VMware Workstation 10 と VMware Player (Plus) 6 '''だけを'''サポートしています。}} |
||
+ | *この記事では最新バージョンの VMware である VMware Workstation 11 と VMware Player (Pro) 7 を扱います。 |
||
+ | *古いバージョンを使用する場合は、[[Arch User Repository|AUR]] の {{AUR|vmware-patch}} を使って下さい。 |
||
+ | }} |
||
== インストール == |
== インストール == |
||
− | + | 適切な依存パッケージを[[インストール]]してください: |
|
*{{pkg|fuse}} - {{ic|vmware-vmblock-fuse}} サービスが {{ic|vmblock}} モジュールよりも[https://www.mail-archive.com/open-vm-tools-devel@lists.sourceforge.net/msg00213.html 優先される]ので、カーネルで [http://cateee.net/lkddb/web-lkddb/FUSE_FS.html fuse] を無効にしない限りビルドされません |
*{{pkg|fuse}} - {{ic|vmware-vmblock-fuse}} サービスが {{ic|vmblock}} モジュールよりも[https://www.mail-archive.com/open-vm-tools-devel@lists.sourceforge.net/msg00213.html 優先される]ので、カーネルで [http://cateee.net/lkddb/web-lkddb/FUSE_FS.html fuse] を無効にしない限りビルドされません |
||
*{{pkg|gtkmm}} - GUI 用 |
*{{pkg|gtkmm}} - GUI 用 |
||
*{{pkg|linux-headers}} - モジュールコンパイル用 |
*{{pkg|linux-headers}} - モジュールコンパイル用 |
||
− | + | 最新の [http://www.vmware.com/products/workstation VMware Workstation] または [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 VMware Player (Plus)] をダウンロードしてください (若しくは、可能であれば[https://communities.vmware.com/community/vmtn/beta ベータ]バージョン)。 |
|
− | + | インストールを開始してください ({{ic|--eulas-agreed}} で EULA をスキップできます): |
|
# sh VMware-''<edition>''-''<version>''.''<release>''.''<architecture>''.bundle --eulas-agreed |
# sh VMware-''<edition>''-''<version>''.''<release>''.''<architecture>''.bundle --eulas-agreed |
||
34行目: | 37行目: | ||
}} |
}} |
||
− | + | {{ic|System service scripts directory}} には、 {{ic|/etc/init.d}} を使って下さい (デフォルト)。 |
|
{{Note|インストール中に {{ic|"No rc*.d style init script directories"}} というエラーが表示されますが、Arch は [[systemd|systemd]] に移行しているので、無視してかまいません。}} |
{{Note|インストール中に {{ic|"No rc*.d style init script directories"}} というエラーが表示されますが、Arch は [[systemd|systemd]] に移行しているので、無視してかまいません。}} |
||
45行目: | 48行目: | ||
{{Tip|このセクションで行うことを自動化する {{AUR|vmware-patch}} というパッケージが [[Arch User Repository|AUR]] には存在します (古い VMware バージョンもサポートしています)。}} |
{{Tip|このセクションで行うことを自動化する {{AUR|vmware-patch}} というパッケージが [[Arch User Repository|AUR]] には存在します (古い VMware バージョンもサポートしています)。}} |
||
+ | |||
+ | {{Note|1=Workstation 11/Player (Pro) 7 は [http://www.phoronix.com/scan.php?page=news_item&px=MTI3MTE メインラインに入っている] カーネルモジュールを利用するので、VMCI/VSOCK のソースにパッチをあてる必要はありません。}} |
||
=== VMware モジュールパッチとインストール === |
=== VMware モジュールパッチとインストール === |
||
− | VMware Workstation |
+ | VMware Workstation 11.1.0 と Player (Plus) 7.1.0 は 3.18 までのカーネルをサポートしています。 |
− | ==== 3. |
+ | ==== 3.19 カーネル ==== |
− | 3. |
+ | 3.19 カーネルから {{ic|vmnet}} モジュールは [http://rglinuxtech.com/?p=1281 ビルド] に [https://communities.vmware.com/message/2469395 失敗] します。 |
− | パッチ |
+ | パッチは [http://pastie.org/9934018] にあります: |
− | $ curl http://pastie.org/pastes/9090538/download -o /tmp/vmware-3.14.patch |
||
+ | $ curl http://pastie.org/pastes/9934018/download -o /tmp/vmnet-3.19.patch |
||
− | モジュールのソースを展開する: |
||
− | $ cd /usr/lib/vmware/modules/source |
||
− | # for i in vmci vmmon vmnet vsock; do tar -xf $i.tar; done |
||
+ | {{ic|vmnet}} モジュールのソースを展開: |
||
− | パッチを適用する: |
||
− | # patch -p0 -i /tmp/vmware-3.14.patch |
||
+ | $ cd /usr/lib/vmware/modules/source |
||
− | アーカイブを再作成する: |
||
− | # |
+ | # tar -xf vmnet.tar |
+ | パッチを適用: |
||
− | 残ったゴミを削除する: |
||
− | # rm -r *-only |
||
+ | # patch -p0 -i /tmp/vmnet-3.19.patch |
||
− | モジュールを再生成する: |
||
− | # vmware-modconfig --console --install-all |
||
+ | 圧縮ファイルを再作成: |
||
− | {{Note|{{ic|Tar}} は[http://stackoverflow.com/q/583889/1821548 複数の操作] をサポートしていないため、{{ic|[http://www.cyberciti.biz/faq/bash-for-loop/ for]}} ループを使っています。}} |
||
+ | # tar -cf vmnet.tar vmnet-only |
||
− | ==== 3.15 カーネル ==== |
||
+ | 残ったファイルを削除: |
||
− | 3.15 カーネルでは {{ic|vsock}} モジュールに追加の [http://pastie.org/9311773 パッチ] が必要です: |
||
− | $ curl http://pastie.org/pastes/9311773/download -o /tmp/vmware-vsock-3.15.patch |
||
+ | # rm -r *-only |
||
− | モジュールのソースを展開する: |
||
− | $ cd /usr/lib/vmware/modules/source |
||
− | # tar -xf vsock.tar |
||
− | |||
− | パッチを適用する: |
||
− | # patch -p0 -i /tmp/vmware-vsock-3.15.patch |
||
− | |||
− | アーカイブを再作成する: |
||
− | # tar -cf vsock.tar vsock-only |
||
+ | モジュールをリビルド: |
||
− | 残ったゴミを削除する: |
||
− | # rm -r vsock-only |
||
− | モジュールを再生成する: |
||
# vmware-modconfig --console --install-all |
# vmware-modconfig --console --install-all |
||
− | === |
+ | === systemd サービス === |
+ | ''(任意)'' {{ic|/etc/init.d/vmware}} と {{ic|/etc/init.d/vmware-USBArbitrator}} ({{ic|<nowiki>start|stop|status|restart</nowiki>}}) を使って直接サービスを管理するのではなく、{{ic|.service}} ファイルを使用することもできます ([[AUR]] の {{AUR|vmware-systemd-services}} から取得することも可能): |
||
− | '''5.''' {{ic|Virtual machine communication interface}} (vmci) と {{ic|VM communication interface socket family}} (vsock) サービスは、メインの ''init.d'' スクリプトがカーネル内のドライバーの包含を上手く扱えないために、起動時に失敗することが[https://bbs.archlinux.org/viewtopic.php?id=169472 知られています]。 |
||
− | |||
− | VMware のドライバーを指定することで修正できます: |
||
− | |||
− | # sed -i 's/mod=$(vmwareRealModName $vmci $vmci_alias)/mod=vmci/' /etc/init.d/vmware |
||
− | # sed -i 's/mod=$(vmwareRealModName $vsock $vsock_alias)/mod=vsock/' /etc/init.d/vmware |
||
− | |||
− | === Systemd サービス === |
||
− | |||
− | '''6.''' (任意) {{ic|<nowiki># /etc/init.d/vmware {start|stop|status|restart}</nowiki>}} を使うかわりにサービスを直接管理するために {{ic|.service}} ファイルを作成することができます (または [http://communities.vmware.com/docs/DOC-20855 ファイル]): |
||
{{hc|/etc/systemd/system/vmware.service| |
{{hc|/etc/systemd/system/vmware.service| |
||
2=[Unit] |
2=[Unit] |
||
Description=VMware daemon |
Description=VMware daemon |
||
+ | Requires=vmware-USBArbitrator.service |
||
+ | After=vmware-USBArbitrator.service |
||
[Service] |
[Service] |
||
124行目: | 105行目: | ||
}} |
}} |
||
+ | {{hc|/etc/systemd/system/vmware-USBArbitrator.service| |
||
− | 作成したら、次を実行して起動時に有効にすることが可能です: |
||
+ | 2=[Unit] |
||
+ | Description=VMware USB Arbitrator |
||
+ | |||
+ | [Service] |
||
+ | ExecStart=/etc/init.d/vmware-USBArbitrator start |
||
+ | ExecStop=/etc/init.d/vmware-USBArbitrator stop |
||
+ | RemainAfterExit=yes |
||
+ | |||
+ | [Install] |
||
+ | WantedBy=multi-user.target |
||
+ | }} |
||
+ | |||
+ | 起動時に有効化するには: |
||
# systemctl enable vmware |
# systemctl enable vmware |
||
+ | # systemctl enable vmware-USBArbitrator |
||
== アプリケーションを起動する == |
== アプリケーションを起動する == |
||
265行目: | 260行目: | ||
Please make sure that the kernel module `vmmon' is loaded. |
Please make sure that the kernel module `vmmon' is loaded. |
||
− | これは {{Ic|vmmon}} VMware サービスが動作していないことを意味しています。[[#Systemd サービス |
+ | これは {{Ic|vmmon}} VMware サービスが動作していないことを意味しています。[[#Systemd サービス]]の [[systemd]] サービスを使っている場合は(再)起動してください。 |
=== Kernel headers for version 3.x-xxxx were not found. If you installed them[...] === |
=== Kernel headers for version 3.x-xxxx were not found. If you installed them[...] === |
||
277行目: | 272行目: | ||
{{Tip|{{AUR|vmware-patch}} でも対処できます。}} |
{{Tip|{{AUR|vmware-patch}} でも対処できます。}} |
||
− | VMware サービスが動作していると ([[ |
+ | VMware サービスが動作していると ([[systemd]] のサービスは[[#Systemd サービス]]を見て下さい)、インストールで {{ic|vmware-USBArbitrator}} スクリプトが消失します。[https://bbs.archlinux.org/viewtopic.php?pid=1003117#p1003117 フォーラムへのこの投稿]を見て手動で追加してください。 |
また、手動で VMware バンドルを展開して {{ic|''<destination folder>''/vmware-usbarbitrator/etc/init.d/}} から {{ic|/etc/init.d/}} に {{ic|vmware-USBArbitrator}} スクリプトをコピーすることも可能です: |
また、手動で VMware バンドルを展開して {{ic|''<destination folder>''/vmware-usbarbitrator/etc/init.d/}} から {{ic|/etc/init.d/}} に {{ic|vmware-USBArbitrator}} スクリプトをコピーすることも可能です: |
||
$ sh VMware-''<edition>''-''<version>''.''<release>''.''<architecture>''.bundle --extract /tmp/vmware-bundle/ |
$ sh VMware-''<edition>''-''<version>''.''<release>''.''<architecture>''.bundle --extract /tmp/vmware-bundle/ |
||
# cp /tmp/vmware-bundle/vmware-usbarbitrator/etc/init.d/vmware-USBArbitrator /etc/init.d/ |
# cp /tmp/vmware-bundle/vmware-usbarbitrator/etc/init.d/vmware-USBArbitrator /etc/init.d/ |
||
+ | # chmod +x /etc/init.d/vmware-USBArbitrator |
||
=== インストーラーが起動しない === |
=== インストーラーが起動しない === |
2015年3月25日 (水) 23:37時点における版
この記事は Arch Linux における VMware のインストールについての記事です。VMware に Arch Linux をインストールするのは別の記事になっています。
目次
- 1 インストール
- 2 設定
- 3 アプリケーションを起動する
- 4 Tips and tricks
- 5 トラブルシューティング
- 5.1 /dev/vmmon not found
- 5.2 Kernel headers for version 3.x-xxxx were not found. If you installed them[...]
- 5.3 USB デバイスが認識されない
- 5.4 インストーラーが起動しない
- 5.5 VMware にリモートでアクセスしようとすると Incorrect login/password エラー
- 5.6 ALSA 出力の問題
- 5.7 Kernel-based Virtual Machine (KVM) is running
- 5.8 "[...]timeTracker_user.c:234 bugNr=148722" というエラーで VMware が起動しない
- 6 アンインストール
インストール
適切な依存パッケージをインストールしてください:
- fuse -
vmware-vmblock-fuse
サービスがvmblock
モジュールよりも優先されるので、カーネルで fuse を無効にしない限りビルドされません - gtkmm - GUI 用
- linux-headers - モジュールコンパイル用
最新の VMware Workstation または VMware Player (Plus) をダウンロードしてください (若しくは、可能であればベータバージョン)。
インストールを開始してください (--eulas-agreed
で EULA をスキップできます):
# sh VMware-<edition>-<version>.<release>.<architecture>.bundle --eulas-agreed
System service scripts directory
には、 /etc/init.d
を使って下さい (デフォルト)。
設定
VMware モジュールパッチとインストール
VMware Workstation 11.1.0 と Player (Plus) 7.1.0 は 3.18 までのカーネルをサポートしています。
3.19 カーネル
3.19 カーネルから vmnet
モジュールは ビルド に 失敗 します。
パッチは [1] にあります:
$ curl http://pastie.org/pastes/9934018/download -o /tmp/vmnet-3.19.patch
vmnet
モジュールのソースを展開:
$ cd /usr/lib/vmware/modules/source # tar -xf vmnet.tar
パッチを適用:
# patch -p0 -i /tmp/vmnet-3.19.patch
圧縮ファイルを再作成:
# tar -cf vmnet.tar vmnet-only
残ったファイルを削除:
# rm -r *-only
モジュールをリビルド:
# vmware-modconfig --console --install-all
systemd サービス
(任意) /etc/init.d/vmware
と /etc/init.d/vmware-USBArbitrator
(start|stop|status|restart
) を使って直接サービスを管理するのではなく、.service
ファイルを使用することもできます (AUR の vmware-systemd-servicesAUR から取得することも可能):
/etc/systemd/system/vmware.service
[Unit] Description=VMware daemon Requires=vmware-USBArbitrator.service After=vmware-USBArbitrator.service [Service] ExecStart=/etc/init.d/vmware start ExecStop=/etc/init.d/vmware stop PIDFile=/var/lock/subsys/vmware TimeoutSec=0 RemainAfterExit=yes [Install] WantedBy=multi-user.target
/etc/systemd/system/vmware-USBArbitrator.service
[Unit] Description=VMware USB Arbitrator [Service] ExecStart=/etc/init.d/vmware-USBArbitrator start ExecStop=/etc/init.d/vmware-USBArbitrator stop RemainAfterExit=yes [Install] WantedBy=multi-user.target
起動時に有効化するには:
# systemctl enable vmware # systemctl enable vmware-USBArbitrator
アプリケーションを起動する
VMware Workstation を開くには:
$ vmware
VMware Player (Plus) の場合:
$ vmplayer
Tips and tricks
Workstation ライセンスキーを入力する
ターミナルから
# /usr/lib/vmware/bin/vmware-vmx-debug --new-sn XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
はあなたのライセンスキーに置き換えてください。
GUI から
上記で上手くいかない場合は、次を試すことができます:
# /usr/lib/vmware/bin/vmware-enter-serial
VMware BIOS を展開する
$ objcopy /usr/lib/vmware/bin/vmware-vmx -O binary -j bios440 --set-section-flags bios440=a bios440.rom.Z $ perl -e 'use Compress::Zlib; my $v; read STDIN, $v, '$(stat -c%s "./bios440.rom.Z")'; $v = uncompress($v); print $v;' < bios440.rom.Z > bios440.rom
改造 BIOS を使う
展開した BIOS に変更を加えるつもりならば、あなたの仮想マシンがその BIOS を使うようにするには BIOS を ~/vmware/<Virtual machine name>
に移動して:
$ mv bios440.rom ~/vmware/<Virtual machine name>/
ファイルの名前を <Virtual machine name>.vmx
ファイルに追記してください:
~/vmware/<Virtual machine name>/<Virtual machine name>.vmx
bios440.filename = "bios440.rom"
DKMS を使ってモジュールを管理する
Dynamic Kernel Module Support (DKMS) を使って Workstation のモジュールを管理することができ、カーネルを変更する度に vmware-modconfig
を再実行するのを避けることができます。以下の例ではカスタムした Makefile
を使って vmware-modconfig
によりモジュールをコンパイル・インストールします。その後モジュールはカーネルツリーから削除されます。
準備
まず公式リポジトリから dkms をインストールしてください。
それから Makefile
と dkms.conf
のソースディレクトリを作成してください:
# mkdir /usr/src/vmware-modules-10/
ビルド設定
git を使うか下の方法でファイルを取得してください。
1) Git を使う
$ cd /tmp $ git clone git://github.com/bawaaaaah/dkms-workstation.git $ sed -i 's/9/10/' dkms-workstation/dkms.conf # cp dkms-workstation/Makefile dkms-workstation/dkms.conf /usr/src/vmware-modules-10/
2) 手動設定
dkms.conf
にはモジュールの名前とコンパイル・インストールの手順を記述します。AUTOINSTALL="yes"
で自動的に毎回モジュールが再コンパイル・インストールされるようになります:
/usr/src/vmware-modules-10/dkms.conf
PACKAGE_NAME="vmware-modules" PACKAGE_VERSION="10" MAKE[0]="make all" CLEAN="make clean" BUILT_MODULE_NAME[0]="vmmon" BUILT_MODULE_LOCATION[0]="modules" BUILT_MODULE_NAME[1]="vmnet" BUILT_MODULE_LOCATION[1]="modules" BUILT_MODULE_NAME[2]="vmblock" BUILT_MODULE_LOCATION[2]="modules" BUILT_MODULE_NAME[3]="vmci" BUILT_MODULE_LOCATION[3]="modules" BUILT_MODULE_NAME[4]="vsock" BUILT_MODULE_LOCATION[4]="modules" DEST_MODULE_LOCATION[0]="/extra/vmware" DEST_MODULE_LOCATION[1]="/extra/vmware" DEST_MODULE_LOCATION[2]="/extra/vmware" DEST_MODULE_LOCATION[3]="/extra/vmware" DEST_MODULE_LOCATION[4]="/extra/vmware" AUTOINSTALL="yes"
そして Makefile
:
/usr/src/vmware-modules-10/Makefile
KERNEL := $(KERNELRELEASE) HEADERS := /usr/lib/modules/$(KERNEL)/build/include GCC := $(shell vmware-modconfig --console --get-gcc) DEST := /lib/modules/$(KERNEL)/vmware TARGETS := vmmon vmnet vmblock vmci vsock LOCAL_MODULES := $(addsuffix .ko, $(TARGETS)) all: $(LOCAL_MODULES) mkdir -p modules/ mv *.ko modules/ rm -rf $(DEST) depmod $(HEADERS)/linux/version.h: ln -s $(HEADERS)/generated/uapi/linux/version.h $(HEADERS)/linux/version.h %.ko: $(HEADERS)/linux/version.h vmware-modconfig --console --build-mod -k $(KERNEL) $* $(GCC) $(HEADERS) vmware/ cp -f $(DEST)/$@ . clean: rm -rf modules/
インストール
モジュールは次のコマンドでインストールできます:
# dkms install vmware-modules/10 -k $(uname -r)
トラブルシューティング
/dev/vmmon not found
エラーの全文は:
Could not open /dev/vmmon: No such file or directory. Please make sure that the kernel module `vmmon' is loaded.
これは vmmon
VMware サービスが動作していないことを意味しています。#Systemd サービスの systemd サービスを使っている場合は(再)起動してください。
Kernel headers for version 3.x-xxxx were not found. If you installed them[...]
ヘッダーをインストールしてください (linux-headers)。
USB デバイスが認識されない
VMware サービスが動作していると (systemd のサービスは#Systemd サービスを見て下さい)、インストールで vmware-USBArbitrator
スクリプトが消失します。フォーラムへのこの投稿を見て手動で追加してください。
また、手動で VMware バンドルを展開して <destination folder>/vmware-usbarbitrator/etc/init.d/
から /etc/init.d/
に vmware-USBArbitrator
スクリプトをコピーすることも可能です:
$ sh VMware-<edition>-<version>.<release>.<architecture>.bundle --extract /tmp/vmware-bundle/ # cp /tmp/vmware-bundle/vmware-usbarbitrator/etc/init.d/vmware-USBArbitrator /etc/init.d/ # chmod +x /etc/init.d/vmware-USBArbitrator
インストーラーが起動しない
.bundle
を開くとプロンプトに戻ってしまう場合、おそらく VMware インストーラーの古いバージョンまたは壊れたバージョンが存在しています。削除してください (この記事のアンインストールセクションも参照してください):
# rm -r /etc/vmware-installer/
VMware にリモートでアクセスしようとすると Incorrect login/password エラー
VMware Workstation 10 には vmware-workstation-server
サービスによって共有 VM をリモートで管理できる機能があります。しかしながら、vmware-authd
サービスの PAM 設定が間違っているために、"incorrect username/password"
エラーで失敗します。修正するには、以下のように /etc/pam.d/vmware-authd
を編集して:
/etc/pam.d/vmware-authd
#%PAM-1.0 auth required pam_unix.so account required pam_unix.so password required pam_permit.so session required pam_unix.so
vmware
の systemd サービスを再起動してください。
これでインストールで作られた証明書を使ってサーバーにアクセスできるはずです。
ALSA 出力の問題
以下は Bankim Bhavsar の wiki に記述されている、手動で VMware .vmx
の ALSA 出力デバイスを設定する方法です。品質の問題を解決したり、適切な HD オーディオ出力を有効にするのに役立ちます:
- Run
aplay -L
- If interested in playing 5.1 surround sound from the guest, look for
surround51:CARD=<vendor-name>,DEV=<num>
. If experiencing quality issues, look for a line starting withfront:
. - Open the
<Virtual machine name>.vmx
config file of the VM in a text editor, located under~/vmware/<Virtual machine name>/
, and edit thesound.fileName
field, e.g.:sound.fileName="surround51:CARD=Live,DEV=0"
. Ensure that it also readssound.autodetect="FALSE"
.
OSS エミュレーションを使っている場合、問題が発生することがあります。
Kernel-based Virtual Machine (KVM) is running
起動時に KVM
を無効にするために、以下のようなファイルを使うことができます:
/etc/modprobe.d/vmware.conf
blacklist kvm blacklist kvm-amd # For AMD CPUs blacklist kvm-intel # For Intel CPUs
"[...]timeTracker_user.c:234 bugNr=148722" というエラーで VMware が起動しない
The solution for this issue is taken from [2]. You have to specify the correct maximum host CPU speed in your global configuration file, /etc/vmware/config. If this file exists, edit it with a text editor, adding the lines described below. The file may not exist. If it does not exist, create it as a plain text file.
Add the following lines to your global configuration file:
host.cpukHz = "X" where "X" equals the maximum speed in KHz of your host machine. That is, its speed in MHz times 1000 or its speed in GHz times 1000000. A 3GHz machine would be 3000000. host.noTSC = TRUE ptsc.noTSC = TRUE
アンインストール
VMware をアンインストールするには製品名が必要です (vmware-workstation
または vmware-player
)。インストールされている製品を全て表示するには:
$ vmware-installer -l
次のコマンドでアンインストールしてください (--required
で確認をスキップできます):
# vmware-installer -u <product> --required
vmware
サービスを無効にして削除するのも忘れないで下さい:
# systemctl disable vmware # rm /etc/systemd/system/vmware.service
You may also want to have a look at the module directories in /usr/lib/modules/<kernel name>/misc/
for any leftovers.