Hi Ross,
Bingo. I skipped one of the most important parts! ;) I keep
forgetting that grub.conf isn't automagically updated (which is a GOOD
thing). Changed over to the proper one and Xen 3.2.1 is running
beautifully in CentOS 5.2 x86_64.
I enabled vtd=1 and have successfully done a PCI passthrough (pciback) to a HVM
domU (Windows XP) for a video capture card device which is on the PCI Express
bus.
Thank you VERY much, Ross!
Cheers,
Daniel
P.S. So the full instructions are for getting Xen 3.2.1 installed onto a fresh
copy of CentOS 5.2 (without existing Xen packages):
1. rpm -i http://bits.xensource.com/oss-xen/release/3.2.0/centos-5.1/xen-3.2.0-0xs.centos5.src.rpm
2> /dev/null
2. cd /usr/src/redhat/SOURCES ; wget http://bits.xensource.com/oss-xen/release/3.2.1/xen-3.2.1.tar.gz
3. vi ../SPECS/xen.spec
i. Change "Version: 3.2.0"
to "Version 3.2.1"
ii. Change "Source0:
xen-3.2.0.tar.gz" to "Source0:
xen-3.2.1.tar.gz"
iii. Uncomment "#
/usr/lib/xen/boot/hvmloader" to "/usr/lib/xen/boot/hvmloader". (noted
from previous threads to avoid rpmbuild error of unpackaged file)
4. yum -y install transfig texi2html
tetex-latex gtk2-devel libaio-devel gnutls-devel (dependencies
needed for rpmbuild of xen.spec in CentOS)
5. cd /usr/src/redhat/SPECS ; rpmbuild -ba
./xen.spec
6. Grab some coffee...
... and come back to this:
Wrote:
/usr/src/redhat/SRPMS/xen-3.2.1-0xs.src.rpm
Wrote: /usr/src/redhat/RPMS/x86_64/xen-3.2.1-0xs.x86_64.rpm
Wrote: /usr/src/redhat/RPMS/x86_64/xen-libs-3.2.1-0xs.x86_64.rpm
Wrote: /usr/src/redhat/RPMS/x86_64/xen-devel-3.2.1-0xs.x86_64.rpm
Wrote: /usr/src/redhat/RPMS/x86_64/xen-debuginfo-3.2.1-0xs.x86_64.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.xxxxxx
+ umask 022
+ cd /usr/src/redhat/BUILD
+ cd xen-3.2.1
+ rm -rf /var/tmp/xen-3.2.1-0xs-root
+ exit 0
7. vi /etc/yum.conf and
temporarily set "gpgcheck=0"
to "gpgcheck=1" since
RPMs aren't signed.
8. cd /usr/src/redhat/RPMS/x86_64 ; yum -y
install xen-3.2.1-0xs.x86_64.rpm xen-libs-3.2.1-0xs.x86_64.rpm
xen-devel-3.2.1-0xs.x86_64.rpm
9. vi /etc/yum.conf and set
gpgcheck back to "gpgcheck=1".
10. vi /etc/grub.conf and change
the "kernel" line to
"kernel /xen.gz-3.2"
or "kernel /xen.gz-3.2 vtd=1"
or "kernel /xen.gz-3.2 vtd=1
msi_irq_enable=1" (one of the three depending if you want
Intel VT-d and/or MSI/MSI-X enabled for capable systems) and make sure "default=" is pointed to the correct
title. **Note: Double-check /boot/xen.gz-3.2 exists on your system!
11. Reboot.
Check Xen (xm dmesg) and see if you're golden.
12. Using yum, install virt-manager and/or virt-viewer to get all the CLI/GUI
utilities!
Cheers,
Daniel
Ross S. W. Walker wrote:
Daniel Kao wrote:
Hi Ross,
Thank you very much for the reply. It makes sense! So let
me break down the instructions:
1. rpm -i
http://bits.xensource.com/oss-xen/release/3.2.0/centos-5.1/xen
-3.2.0-0xs.centos5.src.rpm 2> /dev/null
2. cd /usr/src/redhat/SOURCES ; wget
http://bits.xensource.com/oss-xen/release/3.2.1/xen-3.2.1.tar.gz
3. vi ../SPECS/xen.spec
i. Change "Version: 3.2.0" to "Version 3.2.1"
ii. Change "Source0: xen-3.2.0.tar.gz" to "Source0: xen-3.2.1.tar.gz"
iii. Uncomment "# /usr/lib/xen/boot/hvmloader" to
"/usr/lib/xen/boot/hvmloader". (noted from previous threads
to avoid rpmbuild error of unpackaged file)
4. yum -y install transfig texi2html tetex-latex gtk2-devel
libaio-devel gnutls-devel (dependencies needed for rpmbuild
of xen.spec in CentOS)
5. cd /usr/src/redhat/SPECS ; rpmbuild -ba ./xen.spec
6. Grab some coffee...
... and come back to this:
Wrote: /usr/src/redhat/SRPMS/xen-3.2.1-0xs.src.rpm
Wrote: /usr/src/redhat/RPMS/x86_64/xen-3.2.1-0xs.x86_64.rpm
Wrote: /usr/src/redhat/RPMS/x86_64/xen-libs-3.2.1-0xs.x86_64.rpm
Wrote: /usr/src/redhat/RPMS/x86_64/xen-devel-3.2.1-0xs.x86_64.rpm
Wrote: /usr/src/redhat/RPMS/x86_64/xen-debuginfo-3.2.1-0xs.x86_64.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.xxxxxx
+ umask 022
+ cd /usr/src/redhat/BUILD
+ cd xen-3.2.1
+ rm -rf /var/tmp/xen-3.2.1-0xs-root
+ exit 0
7. vi /etc/yum.conf and temporarily set "gpgcheck=0" to
"gpgcheck=1" since RPMs aren't signed.
8. cd /usr/src/redhat/RPMS/x86_64 ; yum -y install
xen-3.2.1-0xs.x86_64.rpm xen-libs-3.2.1-0xs.x86_64.rpm
xen-devel-3.2.1-0xs.x86_64.rpm
9. vi /etc/yum.conf and set gpgcheck back to "gpgcheck=1".
Reboot.
xend won't start now with the following in /var/log/xen/xend.log
[2008-07-17 16:30:23 7029] INFO (SrvDaemon:226) Xend stopped
due to signal 15.
[2008-07-17 16:30:23 7870] INFO (SrvDaemon:331) Xend Daemon started
[2008-07-17 16:30:23 7870] INFO (SrvDaemon:335) Xend
changeset: unavailable.
[2008-07-17 16:30:23 7870] INFO (SrvDaemon:342) Xend version: Unknown.
[2008-07-17 16:30:23 7870] ERROR (SrvDaemon:353) Exception
starting xend ((13, 'Permission denied'))
Traceback (most recent call last):
File
"/usr/lib64/python2.4/site-packages/xen/xend/server/SrvDaemon.
py", line 345, in run
servers = SrvServer.create()
File
"/usr/lib64/python2.4/site-packages/xen/xend/server/SrvServer.
py", line 251, in create
root.putChild('xend', SrvRoot())
File
"/usr/lib64/python2.4/site-packages/xen/xend/server/SrvRoot.py
", line 40, in __init__
self.get(name)
File
"/usr/lib64/python2.4/site-packages/xen/web/SrvDir.py", line
82, in get
val = val.getobj()
File
"/usr/lib64/python2.4/site-packages/xen/web/SrvDir.py", line
52, in getobj
self.obj = klassobj()
File
"/usr/lib64/python2.4/site-packages/xen/xend/server/SrvNode.py
", line 30, in __init__
self.xn = XendNode.instance()
File
"/usr/lib64/python2.4/site-packages/xen/xend/XendNode.py",
line 709, in instance
inst = XendNode()
File
"/usr/lib64/python2.4/site-packages/xen/xend/XendNode.py",
line 83, in __init__
self.other_config["xen_pagesize"] =
self.xeninfo_dict()["xen_pagesize"]
File
"/usr/lib64/python2.4/site-packages/xen/xend/XendNode.py",
line 673, in xeninfo_dict
return dict(self.xeninfo())
File
"/usr/lib64/python2.4/site-packages/xen/xend/XendNode.py",
line 617, in xeninfo
info['xen_scheduler'] = self.xenschedinfo()
File
"/usr/lib64/python2.4/site-packages/xen/xend/XendNode.py",
line 607, in xenschedinfo
sched_id = self.xc.sched_id_get()
Error: (13, 'Permission denied')
I did a quick peek in /usr/lib64/python2.4/site-packages/xen
and all the Python tools looks to be correct with 3.2.1.
Any ideas?
Yes, almost perfect setup, except, need to edit /boot/grub/grub.conf
and switch all /boot/xen-3.1... references to /boot/xen-3.2...
the errors you saw are what happens when the newer libraries try
to access the older hypervisor.
-Ross
______________________________________________________________________
This e-mail, and any attachments thereto, is intended only for use by
the addressee(s) named herein and may contain legally privileged
and/or confidential information. If you are not the intended recipient
of this e-mail, you are hereby notified that any dissemination,
distribution or copying of this e-mail, and any attachments thereto,
is strictly prohibited. If you have received this e-mail in error,
please immediately notify the sender and permanently delete the
original and any copy or printout thereof.
--
Daniel Kao
Übermind, Inc.
Seattle, WA, U.S.A.