Difference between revisions of "Installing LinuxMCE on Virtual Machine via KVM"
Daballiemo (Talk | contribs) (No longer concept, system is up and running) |
Daballiemo (Talk | contribs) |
||
Line 92: | Line 92: | ||
* set "Bus options (PCI etc.)" -> "Enable DMA Remapping Devices" to "*" | * set "Bus options (PCI etc.)" -> "Enable DMA Remapping Devices" to "*" | ||
* set "Bus options (PCI etc.)" -> "PCI Stub driver" to "*" | * set "Bus options (PCI etc.)" -> "PCI Stub driver" to "*" | ||
− | * optional setting: set "Bus options (PCI etc.)" -> "Support for Interrupt Remapping" to "*" | + | This line broke my setup so I took it out * ''optional setting: set "Bus options (PCI etc.)" -> "Support for Interrupt Remapping" to "*"'' |
Line 120: | Line 120: | ||
sudo reboot | sudo reboot | ||
− | + | Step 11) Deinstall networkmanager | |
+ | |||
+ | aptitude remove network-manager | ||
+ | |||
+ | Step 12) Setup your network, change /etc/network/interfaces to look like this | ||
+ | |||
+ | # 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 first bridge interface | ||
+ | auto bridge_ext | ||
+ | iface bridge_ext inet static | ||
+ | address 0.0.0.0 #no external access without going through DCERouter first | ||
+ | netmask 255.255.255.0 | ||
+ | broadcast 10.0.0.255 | ||
+ | gateway 10.0.0.138 | ||
+ | bridge_ports eth0 | ||
+ | bridge_stp off | ||
+ | bridge_maxwait 5 | ||
+ | # The second bridge interface | ||
+ | auto bridge_int | ||
+ | iface bridge_int inet static | ||
+ | address 192.168.80.240 | ||
+ | netmask 255.255.255.0 | ||
+ | broadcast 192.168.80.255 | ||
+ | gateway 192.168.80.1 | ||
+ | bridge_ports eth1 | ||
+ | |||
+ | With the above the host will use dcerouter as its way into the internet and thus the protection offered by the firewall. The host has no direct access to the 10.0.0.0 network. | ||
+ | bridge_stp off | ||
+ | bridge_maxwait 5 | ||
+ | |||
+ | Step 12) Install Linuxmce | ||
+ | |||
+ | Using virt-manager you can now install LinuxMCE. As we are all experts on that I will only give away my xml config file (should be enough ;-)) | ||
+ | |||
+ | |||
+ | |||
+ | |||
---- | ---- |
Revision as of 07:17, 30 August 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.
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.
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.4.tar.bz2 sudo tar -jxvf linux-2.6.30.4.tar.bz2 -C /usr/bin
Step 6) Install dependencies for make menuconfig.
sudo apt-get install gcc ncurses* kernel-package fakeroot
Step 7) Configure the new kernel.
cd /usr/bin/linux-2.6.30.4 sudo make menuconfig
* set "Bus options (PCI etc.)" -> "Support for DMA Remapping Devices" to "*" * set "Bus options (PCI etc.)" -> "Enable DMA Remapping Devices" to "*" * set "Bus options (PCI etc.)" -> "PCI Stub driver" to "*" This line broke my setup so I took it out * optional setting: set "Bus options (PCI etc.)" -> "Support for Interrupt Remapping" to "*"
Step 8) Build the new kernel.
sudo make-kpkg clean sudo fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers
You can grab a coffee, make a hot meal, have a sleep ;-)
Step 9) Install The New Kernel
After the successful kernel build, you can find two .deb packages in the /usr/bin directory.
cd .. ls -l linux*
Install them:
sudo dpkg -i linux-image-2.6.30.4-custom_2.6.30.4-custom-10.00.Custom_amd64.deb sudo sudo dpkg -i linux-headers-2.6.30.4-custom_2.6.30.4-custom-10.00.Custom_amd64.deb
Step 10) Check that menu.list has been updated with your new kernel
cat /boot/grub/menu.lst sudo reboot
Step 11) Deinstall networkmanager
aptitude remove network-manager
Step 12) Setup your network, change /etc/network/interfaces to look like this
# 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 first bridge interface auto bridge_ext iface bridge_ext inet static address 0.0.0.0 #no external access without going through DCERouter first netmask 255.255.255.0 broadcast 10.0.0.255 gateway 10.0.0.138 bridge_ports eth0 bridge_stp off bridge_maxwait 5 # The second bridge interface auto bridge_int iface bridge_int inet static address 192.168.80.240 netmask 255.255.255.0 broadcast 192.168.80.255 gateway 192.168.80.1 bridge_ports eth1
With the above the host will use dcerouter as its way into the internet and thus the protection offered by the firewall. The host has no direct access to the 10.0.0.0 network.
bridge_stp off bridge_maxwait 5
Step 12) Install Linuxmce
Using virt-manager you can now install LinuxMCE. As we are all experts on that I will only give away my xml config file (should be enough ;-))