読者です 読者をやめる 読者になる 読者になる

はわわーっ

はわわわわっ

ubuntuでxenでパススルーするまでのメモ

とりあえずubuntuサーバインストールした。
アップデートしてsshd入れる。
あと、automakeとか。

$ sudo apt-get update -y && sudo apt-get dist-upgrade -fy
$ sudo apt-get install -fy openssh-server
$ sudo apt-get install -fy automake build-essential bridge-utils

カーネルをビルド。
コンフィグはubuntuのをそのまま使う。

$ curl -O https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.17.4.tar.xz
$ tar -Jxf linux-3.17.4.tar.xz
$ cd linux-3.17.4/
$ cp /boot/config-3.13.0-40-generic .config
$ make olddefconfig
$ make -j16 INSTALL_MOD_STRIP=1 deb-pkg
$ sudo dpkg -i ../linux-image-3.17.4_3.17.4-1_amd64.deb ../linux-headers-3.17.4_3.17.4-1_amd64.deb

xenをビルド。xenとtoolsだけにした。

$ sudo apt-get install -fy bcc bin86 gettext git iasl \
    libaio-dev libc6-dev-i386 libglib2.0-dev libncurses5-dev \
    libpci-dev libpixman-1-dev libssl-dev libyajl-dev \
    pkg-config python-dev uuid-dev
$ curl -O http://bits.xensource.com/oss-xen/release/4.4.1/xen-4.4.1.tar.gz
$ tar -zxf xen-4.4.1.tar.gz
$ cd xen-4.4.1/
$ ./configure --disable-kernels --disable-stubdom --disable-docs --disable-ocamltools
$ make -j16 debug=y debball
$ sudo dpkg -i dist/xen-upstream-4.4.1.deb

grubの設定でとりあえずdebugにしとく。

--- /etc/default/grub.0 2014-12-05 21:25:58.353547734 +0900
+++ /etc/default/grub   2014-12-05 23:12:28.257679926 +0900
@@ -3,13 +3,15 @@
 # For full documentation of the options in this file, see:
 #   info -f grub -n 'Simple configuration'
 
-GRUB_DEFAULT=0
+GRUB_DEFAULT=2
 #GRUB_HIDDEN_TIMEOUT=0
 GRUB_HIDDEN_TIMEOUT_QUIET=true
 GRUB_TIMEOUT=2
 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
-GRUB_CMDLINE_LINUX_DEFAULT=""
+GRUB_CMDLINE_LINUX_DEFAULT="debug"
 GRUB_CMDLINE_LINUX=""
+GRUB_CMDLINE_XEN_DEFAULT="loglvl=all guest_loglvl=all iommu=debug"
+GRUB_CMDLINE_XEN=""
 
 # Uncomment to enable BadRAM filtering, modify to suit your needs
 # This works with Linux (no patch required) and with any kernel that obtains

ネットワークインターフェース

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet manual

auto xenbr0
iface xenbr0 inet dhcp
bridge_ports eth0

設定を更新して再起動。

$ sudo update-grub
$ sudo update-rc.d xencommons defaults
$ sudo ldconfig
$ sudo reboot

適当にファイル作ってゲスト起動。

$ dd if=/dev/zero of=ubuntu.img bs=1G count=0 seek=32
$ cp /etc/xen/xlexample.hvm ubuntu.hvm
$ sudo xl create ubuntu.hvm

domuのコンフィグは適当。

builder = "hvm"
name = "u01"
memory = 2048
vcpus = 2
vif = [ 'bridge=xenbr0,mac=00:16:3e:11:11:11' ]
#disk = [ '/home/yomi/domu/ubuntu.img,,hda', '/home/yomi/domu/ubuntu.iso,,hdc,cdrom' ]
disk = [ '/home/yomi/domu/ubuntu.img,,hda' ]
pci = [ '00:02.0', '00:03.0', '00:14.0', '00:1a.0', '00:1d.0' ]
gfx_passthru = 1
device_model_version = 'qemu-xen-traditional'