注意: この方法はサポート外になります。
動かないからと言ってサポートに問い合わせないでください。
問い合わせたところで公式の回答は得られません。
SEIL/x86 Ayame on FreeBSD bhyve の結果から、今度は FreeBSD Xen Dom0 で SEIL/x86 Ayame が動くかやってみました。
- SEIL/x86 Ayame の入手方法
- スタンダードのプロダクトキーの購入
については、SEIL/x86 Ayame on FreeBSD bhyveを参照してください。
FreeBSD Xen Dom0 の準備
などを参考にして、FreeBSD Xen Dom0 環境を用意します。
Xen Dom0 の母艦として使用する PC は SEIL/x86 Ayame on FreeBSD bhyve と同じものとします。
Xen のインストール
Xen のインストールは、
などを参照してください。
FreeBSD Dom0 では source code からコンパイルしてインストールしていますが、FreeBSD 12 は pkg binary が既にあるので、pkg install で Xen のインストールが出来ます。
# freebsd-version
12.1-RELEASE-p2
# pkg search xen-
jaxen-1.0_4 Java XPath Engine
pixen-0.1_9 Graphics editing software for small-scale pictures for GNUstep
uhexen-0.601_11 Yet another port of Hexen, popular game from Raven Software
xen-guest-tools-4.6.1_2 Xen tools within FreeBSD domU
xen-kernel-4.12.1 Hypervisor using a microkernel design
xen-tools-4.12.1 Xen management tools
[root@vmm-1100 ~]#
pkg install xen-kernel xen-tools
/etc/rc.conf に dev.xenpy.0.%driver の値をみて、Xen Dom0 の場合だけ必要な設定を入れるようにしておきます。
ルータとして使うため、bridge interface を二つ作るようにしておきます。
echo "if [ "X`sysctl -n dev.xenpv.0.%driver`" = 'Xxenpv' ] ; then" >> /etc/rc.conf
echo "# Xen" >> /etc/rc.conf
echo 'xencommons_enable="YES"' >> /etc/rc.conf
echo 'cloned_interfaces="bridge0"' >> /etc/rc.conf
echo 'cloned_interfaces="bridge1"' >> /etc/rc.conf
echo '' >> /etc/rc.conf
echo 'ifconfig_bridge0="group vm-switch description vm-public addm em0 SYNCDHCP"' >> /etc/rc.conf
echo 'ifconfig_bridge1="group vm-switch description vm-public addm em1 SYNCDHCP"' >> /etc/rc.conf
echo 'fi' >> /etc/rc.conf
/etc/sysctl.conf に Xen 用の設定を追加します。
echo 'vm.max_wired=-1' >> /etc/sysctl.conf
Xeon Dom0 で起動した場合の console を設定しておきます。
echo 'xc0 "/usr/libexec/getty Pc" xterm on secure' >> /etc/ttys
Xen Dom0 の場合に必要となるディレクトリを作成しておきます。
mkdir -p /var/lock
mkdir -p /var/run/xen
次回起動時に Xen Dom0 で起動するように /etc/loader.conf を設定します。
sysrc -f /boot/loader.conf if_tap_load="YES"
sysrc -f /boot/loader.conf xen_kernel="/boot/xen"
sysrc -f /boot/loader.conf xen_cmdline="dom0_mem=8192M dom0_max_vcpus=4 dom0=pvh console=com1,vga com1=115200,8n1 guest_loglvl=all loglvl=all"
設定が終わったら、再起動して Xen Dom0 の状態で起動させます。
shutdown -r now
SEIL/x86 Ayame DomU の設定
SEIL/x86 Ayame 用の DomU を作成します。
SEIL/x86 Ayame on FreeBSD bhyve でつかった PC をそのまま使う場合は、作成済みの ZVOL を流用します。
新規に ZVOL を用意する場合は、SEIL/x86 Ayame on FreeBSD bhyve と同じように配布ファイルから VMDK を取り出し、イメージ変換したものを新規に作成した ZVOL に書き込んでください。
ここでは、/dev/zvol/zroot/vm/seilx86-ayame/disk0 を使うこととします。
/usr/local/etc/xen/auto に SEIL/x86 Ayame 用の DomU の設定ファイル seilx86-ayame.conf を作ります。
設定は、Xen HowTo などを参考にして作成します。
設定で注意することは、
- bootloader は pygrub を使う
- NICは VMware でもサポートされている e1000 となるように model で指定する
- VNCを有効にしておく
です。
disk = [
'/dev/zvol/zroot/vm/seilx86-ayame/disk0,raw,hda,rw',
]
vif = ['mac=22:AA:BB:CC:DD:EE,bridge=bridge0,model=e1000']
vif = ['mac=22:AA:BB:CC:DD:FF,bridge=bridge0,model=e1000']
memory=1024
vcpus=1
name = "seilx86-00"
xen_platform_pci=1
bootloader="pygrub"
builder='hvm'
vnc=1
vnclisten="0.0.0.0"
vncunused=0
vncdisplay=40
serial='pty'
SEIL/x86 Ayame 用 DomU を起動
作成した DomU を起動します。
xl create seilx86-ayame.conf
起動したら、VNCクライアントを使って接続します。
pkg binary を使う場合は、tightvnc などが利用できます。

VNCクライアントで接続して login: プロンプトが表示されていれば成功です。
あとは、SEIL/x86 Ayameの取り扱い方法とチュートリアルにしたがって、プロダクトキーを設定し、SEIL/x86 Ayame の設定を行っていってください。
おわりに
SEIL/x86 Ayame on FreeBSD bhyve ができたので、Xen DOM0 / FreeBSD 環境でもやってみました。
Xen の仮想ネットワークに対応していないようなので、互換NICを指定することで起動できることまで確認出来ました。
FreeBSD の仮想環境には VirtualBox もありますが、こちらは他のアーキテクチャの VirtualBox と差が無いので他の人にまかせます。
なお、公式サポート環境ではなないため、動かなかったからといってサポートに問い合わせないようにしてください。