wiki:Reading/XenG/vmgl

Version 1 (modified by rider, 15 years ago) (diff)

--

Xen GPU Cluster Practice

實作三: 在虛擬機器上獲得 GPU 硬體加速 - 使用VMGL

步驟一: 在 Dom0 上安裝 VMGL

# 安裝環境所需套件.
rider@cloud:~/vmgl$ sudo apt-get install build-essential mesa-common-dev libglu1-mesa-dev mesa-utils libxmu-headers libxmu6 libxmu-dev zlib1g-dev libjpeg62 libjpeg62-dev xutils-dev libxaw-headers libxaw7 libxaw7-dev libxext6 libxext-dev rxvt lwm xauth xvfb xfonts-100dpi xfonts-75dpi culmus xfonts-scalable xfonts-base
# 下載VMGL.
rider@cloud:~/vmgl$ wget http://www.cs.toronto.edu/~andreslc/software/vmgl-0.1.tar.bz2
rider@cloud:~/vmgl$ tar jxvf vmgl-0.1.tar.bz2
rider@cloud:~/vmgl$ cd ./vmgl.hg/tightvnc/
# Patch for AMD64_Machine.
rider@cloud:~/vmgl/vmgl.hg/tightvnc$ patch -p0 < ../../tightvnc-1.2.9-amd64support.patch
rider@cloud:~/vmgl$ cd ..
# 設定編譯器路徑.
rider@cloud:~/vmgl$ sudo ln -sf /usr/bin/make /usr/bin/gmake (if necessary)
# 編譯.
rider@cloud:~/vmgl/vmgl.hg$ make -j 4
# 安裝於 Dom0(host) 端上.
rider@cloud:~/vmgl/vmgl.hg$ sudo make install-host
# 設定主機信任清單.
rider@cloud:~$ xauth

# Set the authority for remote guest.

Using authority file /home/rider/.Xauthority
xauth> add guest/unix:10  MIT-MAGIC-COOKIE-1  ec0ffd387888b9749d55f88031505888
xauth> add guest/unix:1  MIT-MAGIC-COOKIE-1  6824789b4ce0ac5743aeb57fd3ef8f5b
xauth> exit

步驟二: 建構一台 VMGL Guest VM

# 設定你想要怎樣規格的虛擬機器. rider@cloud:~$ sudo vim /etc/xen-tools/xen-tools.conf

dir = /home
install-method = debootstrap
size   = 8Gb      # Disk image size.
memory = 1024Mb    # Memory size
swap   = 128Mb    # Swap size
fs     = ext3     # use the EXT3 filesystem for the disk image.
dist   = hardy    # Default distribution to install. ---> For CUDA Support (Ubuntu 8.0.4)
image  = sparse   # Specify sparse vs. full disk images.
gateway   = 140.XXX.XXX.XXX
netmask   = 255.255.255.0
broadcast = 140.XXX.XXX.XXX
kernel      = /boot/vmlinuz-`uname -r`
initrd      = /boot/initrd.img-`uname -r`
mirror = http://gb.archive.ubuntu.com/ubuntu/
ext3_options   = noatime,nodiratime,errors=remount-ro
ext2_options   = noatime,nodiratime,errors=remount-ro
xfs_options    = defaults
reiser_options = defaults

rider@cloud:~$ sudo xen-create-image --hostname guest --ip 140.XXX.XXX.XXX

步驟三: 設定虛擬機器(Guest)

rider@cloud:~$ sudo vim /etc/xen/nvidia.cfg

kernel      = '/boot/vmlinuz-2.6.22.9'
ramdisk     = '/boot/initrd.img-2.6.22.9'
 
memory      = '1024'
vcpus       = '4'

# 不需配置 PCIE 顯示卡
# pci         = ['01:00.0'] 

root        = '/dev/sda2 ro'
disk        = [
                  'file:/home/domains/nvidia/disk.img,sda2,w',
                  'file:/home/domains/nvidia/swap.img,sda1,w',
              ]
name        = 'nvidia'
 
#
#  Networking
#
vif         = [ 'ip=140.xxx.xxx.xxx,mac=00:16:3E:AA:70:5C' ]
 
#
#  Behaviour
#
on_poweroff = 'destroy'
on_reboot   = 'restart'
on_crash    = 'restart'

步驟四: 在 DomU(Guest) 上安裝 VMGL

# 啟動虛擬機器Guest並登入.
# 方法一.
rider@cloud:~$ sudo xm create -c guest.cfg
# 方法二.
@Dom0 rider@cloud:~$ sudo xm create guest.cfg
@UserSide rider@PC:~$ ssh 140.xxx.xxx.xxx
# 安裝環境所需套件.
rider@guest:~$ mkdir -p vmgl
rider@guest:~$ cd ./vmgl
rider@guest:~/vmgl$ sudo apt-get install build-essential mesa-common-dev libglu1-mesa-dev mesa-utils libxmu-headers libxmu6 libxmu-dev zlib1g-dev libjpeg62 libjpeg62-dev xutils-dev libxaw-headers libxaw7 libxaw7-dev libxext6 libxext-dev rxvt lwm xauth xvfb xfonts-100dpi xfonts-75dpi culmus xfonts-scalable xfonts-base
# 基本桌面環境.

# Desgin for lightweight basic windows support

xfonts-base xfonts-100dpi xfonts-75dpi -> fonts support
rxvt -> x-terminal-emulator for VNC
lwm  -> x-window-manager for VNC

# 下載VMGL.
rider@guest:~/vmgl$ wget http://www.cs.toronto.edu/~andreslc/software/vmgl-0.1.tar.bz2
rider@guest:~/vmgl$ tar jxvf vmgl-0.1.tar.bz2
rider@guest:~/vmgl$ cd ./vmgl.hg/tightvnc/
# Patch for AMD64_Machine.
rider@guest:~/vmgl/vmgl.hg/tightvnc$ patch -p0 < ../../tightvnc-1.2.9-amd64support.patch
rider@guest:~/vmgl$ cd ..
# 設定編譯器路徑.
rider@guest:~/vmgl$ sudo ln -sf /usr/bin/make /usr/bin/gmake (if necessary)
# 建立安裝所需基本目錄.
rider@guest:~/vmgl/vmgl.hg$ sudo mkdir -p /usr/lib/xorg (if necessary)
rider@guest:~/vmgl/vmgl.hg$ sudo mkdir -p /usr/lib/xorg/modules (if necessary)
rider@guest:~/vmgl/vmgl.hg$ sudo mkdir -p /usr/lib/xorg/modules/extensions (if necessary)
# 編譯.
rider@guest:~/vmgl/vmgl.hg$ make
# 安裝於 DomU(guest) 端上.
rider@guest:~/vmgl/vmgl.hg$ sudo make install-guest
# 修正 rgb PATH 問題.

## Fix the rgb_Path problem.
rider@guest:~/vmgl/vmgl.hg$ sudo mkdir -p /usr/X11R6/lib
rider@guest:~/vmgl/vmgl.hg$ sudo mkdir /usr/X11R6/lib/X11
rider@guest:~/vmgl/vmgl.hg$ sudo ln -sf /etc/X11/rgb.txt /usr/X11R6/lib/X11/rgb