Help us understand the problem. What is going on with this article?

SEIL/x86 Ayame on FreeBSD Xen Dom0

注意: この方法はサポート外になります。
動かないからと言ってサポートに問い合わせないでください。
問い合わせたところで公式の回答は得られません。

SEIL/x86 Ayame on FreeBSD bhyve の結果から、今度は FreeBSD Xen Dom0SEIL/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 などが利用できます。

seilx86_ayame_xen_login.png

VNCクライアントで接続して login: プロンプトが表示されていれば成功です。
あとは、SEIL/x86 Ayameの取り扱い方法とチュートリアルにしたがって、プロダクトキーを設定し、SEIL/x86 Ayame の設定を行っていってください。

おわりに

SEIL/x86 Ayame on FreeBSD bhyve ができたので、Xen DOM0 / FreeBSD 環境でもやってみました。
Xen の仮想ネットワークに対応していないようなので、互換NICを指定することで起動できることまで確認出来ました。

FreeBSD の仮想環境には VirtualBox もありますが、こちらは他のアーキテクチャの VirtualBox と差が無いので他の人にまかせます。

なお、公式サポート環境ではなないため、動かなかったからといってサポートに問い合わせないようにしてください。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした