Howto setup a AMD 32bit Windows HVM
on a notebook ASUS A6T

Bernd Broermann

18.7.2006

Goal was to have a notebook with a modern linux desktop and the  possibility  to run a native windows as a guest system.

1. About the Hardware

The ASUS A6T is quite new  an cost about 1100 EUR.
Hardware in brief:
- AMD Turion(tm) 64 X2 Mobile Technology TL-52
- processor on a nVidia C51 board.
- 1GB Memory 
- 100GB disk space ( 60 GB for Dom-0 rest LVM ) 
- RTL8111/8168B PCI Express Gigabit (did not work with  SMP-kernel) 

This just fits  the requirement for starting a couple of guest systems.

2. Basic Install

Dom-0 OS is Kubuntu Dapper Drake. 
First I used the howto for setup the base xen server, but I used the  
XEN-3.0.2-2 binaries for 32-Bit systems.
(On my Desktop I have no demand for 64-Bit  Applications.)
http://www.howtoforge.com/xen_3.0_ubuntu_dapper_drake [1]

3. Checking HVM capabilities

The running xen kernel shows the olbliatory svm flag in the output of 
# cat /proc/cpuinfo | grep svm
flags           : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm cr8legacy ts fid vid ttp tm stc
flags           : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm cr8legacy ts fid vid ttp tm stc

Note: 
On AMD Pacifica CPUs  you must look for the „svm“ flag not „vmx“. I could only  see the "svm" flag when I start the XEN kernel. 
The SMP Kernel seems to have Problems with the PCI routing on this board. So I decided to plugin a PCMCIA Network card and adjust it in /etc/iftab to become "eth0".  So I didn't need to change the entrys in /etc/xen/xend-config.sxp. This avoids problems with the xen bridging  scripts.

The started XEN deamon should show now:

# xm dmesg | grep "SVM Extension is enabled"
(XEN) AMD SVM Extension is enabled for cpu 0.
(XEN) AMD SVM Extension is enabled for cpu 1.

Before I started to put on an WINXP I decided to get a never version of XEN
XEN 3.0.2-2 , because to this time  Version 3.0.2-2 was 2 mounth old.

4. Update to testing

a) Getting the software

http://www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads.html [2]
# apt-get install mercurial
# cd /usr/src/
# hg clone http://xenbits.xensource.com/xen-3.0-testing.hg
# cd xen-3.0-testing.hg
# make world
# make install
# mkinitramfs -o initrd.img-2.6.16.13-xen 2.6.16.13-xen
# ln -sf initrd.img-2.6.16.13-xen initrd.img-2.6-xen

Note: Please use  mkinitramfs instead of mkinird.

Adust the ubuntu specials like in the HOWTO [1].

b) I removed the asus-apci module, because it didn't work.

# make linux-2.6-xen-config CONFIGMODE=menuconfig
# make linux-2.6-xen-build
# make linux-2.6-xen-install

# mkinitramfs  -o initrd.img-2.6.16.13-xen  2.6.16.13-xen

c) Check grub

# cat /boot/grub/menu.lst
title Xen 3.0 / XenLinux 2.6
root            (hd0,0)
kernel /xen-3.gz dom0_mem=768000
module /vmlinuz-2.6-xen root=/dev/hdc3 ro
module /initrd.img-2.6-xen


Note: When you dont set the dom0_mem parameter, the systems crashes or freeze.
768MB for the kubuntu  system is sufficient.

d) Prepare the virtual disk.

# lvcreate -L 4GB -n winxp vg01

e) Setting up XEN config for use with LVM

I followed advices in the following link an the this mailing list.
http://en.opensuse.org/Xen_Full_Virtualization_Example [3]
except I use the LVM.


Note:  Put in the hole path of the LV device !!!!.
# cat /etc/xen/winxp.hvm
disk    = [ 'phy:/dev/vg01/winxp,ioemu:hda,w']
cdrom='/dev/hda'
boot='d'
sdl=1
vncviewer=0

5. Setup KDE for user root to install VM as this.

# passwd root
# vi  /etc/kde3/kdm/kdmrc
AllowRootLogin=true

In KDE I choose "Start a new desktop" to login as root
In a Terminal I start xterm with a root prompt. 

6. Boot from Virual Harddisk not from Virtual CDROM

# xm create /etc/xen/winxp.hvm 
The installation runs smoothly.
Change boot='d' -> boot='c'

7. Setting up autostart



After finishing Installation, enable the remote desktop support and change from
sdl to vnc, because I want to autostart the winxp guest.

# cat /etc/xen/winxp.hvm
sdl=0
vnc=1

8. Connect to the VM

At least one  could connect to the winxp guest with
krdc rdp:/192.168.x.x

This installation succeded on following hardware as well
MB: K9N Neo-F nForce550,AMD AM2  ( ~60 EUR )
CPU: AMD Athlon 64  3000+ Socket AM2  ( ~90 EUR )

Conclusion

WinXP runs smoothy and I did not recognized any  errors as posted in the xen-users mailing list in the past.

cool software.

References:
[1] http://www.howtoforge.com/xen_3.0_ubuntu_dapper_drake

[2] http://www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads.html

[3] http://en.opensuse.org/Xen_Full_Virtualization_Example