Difference between revisions of "Installing LinuxMCE on Virtual Machine via KVM"

From LinuxMCE
Jump to: navigation, search
m (Adjusting step 5)
m (Updating step 6 & 7)
Line 80: Line 80:
  
  
Step 6) Configure the new kernel as explained in "How to assign devices with VT-d in KVM" [[http://www.linux-kvm.org/page/How_to_assign_devices_with_VT-d_in_KVM]]
+
Step 6) Install dependencies for make menuconfig and configure the new kernel as explained in "How to assign devices with VT-d in KVM" [[http://www.linux-kvm.org/page/How_to_assign_devices_with_VT-d_in_KVM]]
  
 +
sudo apt-get install gcc
 +
sudo apt-get install ncurses*
 
  sudo cd /usr/bin/linux-2.6.30.1
 
  sudo cd /usr/bin/linux-2.6.30.1
 
  sudo make menuconfig
 
  sudo make menuconfig
 +
 
   
 
   
  

Revision as of 19:14, 12 July 2009

KVM: To badly go where (almost) no man has gone before

In this overview I will try to follow the installation path to get LCME 8.10 into a virtual machine which uses PCI(-E) devices from the host. Normally the option to install on a dedicated computer is the best, but as I want to host several systems, including LCME, websites etc and the ease of testing out new stuff combined with the fact that I want to keep it as green as possible lead me to the conclusion that virtualization was the way to go. Over the last 2 years I've been building systems that have failed in doing what I wanted (XEN and KVM based), but with the latest state of soft- and hardware I'll hope I'll have a better change. The below is my queste for the wanted setup up, step by step.

Virtualization the way I want to do it can only be done with specific hardware/firmware which uses VT-d, a virtualization PCI Passthrough technique embedded in the bios.

Status is concept from step 4

So I will state my machine details first:

  • Motherboard: ASUS P5E VM DO with bios 10.1
  • CPU: Q6600
  • 6 Gb DDR-2 Memory
  • 1 onboard GbE Nic
  • 1 PCI-E GbE Nic
  • 1 Hauppauge PVR-150 (for the moment)


han@obelix:~$ lspci                                                             
00:00.0 Host bridge: Intel Corporation 82Q35 Express DRAM Controller (rev 02)    
00:02.0 VGA compatible controller: Intel Corporation 82Q35 Express Integrated Graphics Controller (rev 02)
00:03.0 Communication controller: Intel Corporation 82Q35 Express MEI Controller (rev 02)                 
00:03.2 IDE interface: Intel Corporation 82Q35 Express PT IDER Controller (rev 02)                        
00:03.3 Serial controller: Intel Corporation 82Q35 Express Serial KT Controller (rev 02)                  
00:19.0 Ethernet controller: Intel Corporation 82566DM-2 Gigabit Network Connection (rev 02)              
00:1a.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 (rev 02)            
00:1a.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 (rev 02)            
00:1a.2 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 (rev 02)            
00:1a.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 (rev 02)
00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 (rev 02)
00:1c.4 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express Port 5 (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 92)
00:1f.0 ISA bridge: Intel Corporation 82801IO (ICH9DO) LPC Interface Controller (rev 02)
00:1f.2 IDE interface: Intel Corporation 82801IR/IO/IH (ICH9R/DO/DH) 4 port SATA IDE Controller (rev 02)
00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 02)
00:1f.5 IDE interface: Intel Corporation 82801I (ICH9 Family) 2 port SATA IDE Controller (rev 02)
00:1f.6 Signal processing controller: Intel Corporation 82801I (ICH9 Family) Thermal Subsystem (rev 02)
01:00.0 IDE interface: JMicron Technologies, Inc. JMB368 IDE controller
02:00.0 Ethernet controller: Intel Corporation 82572EI Gigabit Ethernet Controller (Copper) (rev 06)
03:01.0 Multimedia video controller: Internext Compression Inc iTVC16 (CX23416) MPEG-2 Encoder (rev 01)
03:02.0 FireWire (IEEE 1394): Agere Systems FW323 (rev 70)

Step 1) Install Ubuntu 9.04 server AMD 64 (should be easy enough if you are able to get LMCE up and running :-) )


Step 2) Make the system current:

 sudo apt-get update
 sudo apt-get upgrade


Step 3) Add some management tools:

sudo wget http://prdownloads.sourceforge.net/webadmin/webmin_1.480_all.deb
sudo apt-get install libnet-ssleay-perl libauthen-pam-perl libio-pty-perl libmd5-perl
sudo dpkg -i webmin_1.480_all.deb
sudo apt-get install mc

I use webmin to give my server a fixed ip address and perform other administrative tasks. MC (Midnight Commander) is a nice tool to move files around the server.


Step 4) To be able to do remote monitoring of virtual machines, install virt-manager on your remote machine. If your are using Jaunty on your remote system, install ssh-askpass as per [[1]]

sudo apt-get install ssh-askpass

or use ssh keys


Step 5) Download the latest kernel from The Linux Kernel Archives [[2]] and unpack it into /usr/bin.

sudo wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.1.tar.bz2
sudo tar -jxvf linux-2.6.30.1.tar.bz2 -C /usr/bin/test


Step 6) Install dependencies for make menuconfig and configure the new kernel as explained in "How to assign devices with VT-d in KVM" [[3]]

sudo apt-get install gcc
sudo apt-get install ncurses*
sudo cd /usr/bin/linux-2.6.30.1
sudo make menuconfig


Step 7) After configuring the kernel we have to build it:

make 
make modules_install 
make install