KVM - Kernel based Virtual Machine - unter Gentoo installieren
Nachdem ich mich gegen XEN und für die Kombination KVM/Qemu entschieden habe, habe ich in letzter Zeit damit etwas beschäftigt. Aufgrund meiner aktueller Hardware musste auch ein relativ aktueller Kernel her, der mindestens 2.6.20 sein musste. Das hatten vor ein paar Wochen noch nicht viele Distributionen. Ausserdem war es für mich wichtig, das ich jederzeit meinen eigenen Kernel kompilieren kann. Und damit sieht's dann mit XEN ganz schlecht aus. Man braucht eigentlich immer einen Kernel, der bei der Distribution dabei ist. Wenn man auf die Sourcen von der xensource.com Seite angewiesen ist, ist man eh verloren. Mich würd das einfach aufregen, immer darauf angewiesen zu sein, wann eine Distribution mal wieder einen Kernel mit XEN rausbringt oder XEN selbst mal wieder eine Anpassung an irgendeinen Kernel macht. Also was liegt näher, gleich die KVM zu verwenden, die seit 2.6.20 sowieso in jedem Kernel ist? Soweit ich das bis jetzt beurteilen kann, läuft das wirklich gut. Nur einen Nachteil gegenüber XEN habe ich bisher gefunden (ok man braucht noch einen Prozessor, der Hardwarevirtualisierung unterstützt, den XEN auch nicht braucht...), der schon etwas schade ist: Man kann keine PCI Geräte in die KVM einblenden. Bei XEN kann man z.B. eine TV-Karte aus der Dom0 ausblenden und in eine DomU einblenden. Bei der KVM ist man auf die Geräte beschränkt, die der Emulator mitliefert. Auf jeden Fall bin ich mit der Geschwindigkeit der KVM bisher sehr zufrieden.
Zunächst guggt man, ob man einen Prozessor mit Hardwarevirtualisierung (HVM) hat:
egrep '^flags.*(vmx|svm)' /proc/cpuinfo
Bei mir sieht das dann so aus:
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm
Kommt keine Ausgabe, dann kann man die KVM nicht nutzen. vmx erscheint bei Intelprozessoren und svm bei AMD. Inzwischen ist der Kernel 2.6.20 für die AMD64/EMT64 Plattform nicht mehr masked, so das bei der Installation des Kernels mit
emerge -av gentoo-sources
bei mir momentan 2.6.20-r8 installiert ist. Als nächstes sollte man im Kernelsource guggen, ob das KVM Kernelmodul auch einkompiliert ist. Dazu verwendet man entweder genkernel oder man wechselt nach /usr/src/linux und gibt make menuconfig ein. Ob das KVM Modul aktiviert ist, sieht man unter
Device Drivers
-> Virtualization
-> Kernel-based Virtual Machine (KVM) support
Hier schaltet man dann die KVM für Intel oder eben AMD ein, falls nicht schon passiert. Wenn man den Kernel neu erzeugen muss, dann sollte man das aber mit genkernel machen mit
genkernel --menuconfig
Wenn man dann einen fertigen Kernel hat und der Rechner eventl. restartet wurde, kann man das Kernelmodul laden für Intel
modprobe kvm-intel
und für AMD
modprobe kvm-amd
Nun ist es so, das das KVM Modul höchstwahrscheinlich mit dem GCC 4 kompiliert worden ist. Bei gcc -v kommt bei mir z.B. die Version 4.1.1 zu Tage. Der Emulator Qemu läßt sich aber momentan aber nur mit GCC 3 übersetzen. Also müssen wir den nachinstallieren:
emerge =sys-devel/gcc-3.4.6
Nun brauchen wir die Programme für den Userspace und damit u.a. den Emulator Qemu, der hier in einer angepassten Version für die KVM vorliegt. Die KVM Userspace-Programme kann man bei Sourceforge downloaden:
Für den Kernel 2.6.20 brauchen wir die Version 12 und für Kernel 2.6.22 KVM-36. Die Installation sieht dann z.B. wie folgt aus:
tar xvfz kvm-12.tar.gz
cd kvm-12
./configure --prefix=/opt/kvm --qemu-cc="/usr/bin/gcc32"
make
make install
U.U. muss man noch die Alsa-Sources nachinstallieren (die musste ich unter Debian Etch nachinstallieren). Bei mir waren alle nötigen Sourcen schon vorhanden. Wenn das dann durchgelaufen ist, findet man in /opt/kvm/bin qemu-img zum Erzeugen der VM-Images und qemu-system-x86_64 mit dem man die VM dann startet.
So... Dann sind also mal die Grundvoraussetzungen für die KVM geschaffen. Wie man Images erzeugt und wie man mehrere VMs mit Hilfe des VDE (Virtual Distributed Ethernet) ans Netz bringt, zeig ich dann später. Mehr zu dem Thema auch im KVM Gentoo Wiki.
Posted at 05:00vorm. Juli 07, 2007 by cetixx in General | Kommentare [0]
C64 - Arkanoid 2
Oweia... Das hab ich Stunden lang gespielt ;-)
Und von den 100 hier wahrscheinlich auch 3/4 ;-)
Ich schätze, das gilt auch für die hier ;-)
Posted at 03:00vorm. Juli 07, 2007 by cetixx in General | Kommentare [0]
Kommentare
Kleiner Fehler, große Wirkung... Die Kommentare auf meiner Seite funktionieren jetzt wieder. Dank an alle die mir gemailt haben!
Posted at 11:00nachm. Juli 06, 2007 by cetixx in General | Kommentare [0]
Nvidia GTS 8600, Gentoo und KDE
Also ich muss sagen, ich bin einigermaßen begeistert :-) Wer hätte das gedacht, das die 8600 GTS so schnell auf Gentoo mit den Nvidia-Treibern, Twinview und Kernel 2.6.20 laufen würde. Nachdem mein neuer Rechner eine ganze Weile nur als Server lief und inzwischen alle Server-Dienste in einer eigenen Qemu-VM (mit KVM) laufen, wollte ich auch endlich mal meinen alten Pentium IV einmotten und den neuen Geschwindigkeitsrausch genießen ;-)
Für die KDE-Installation passt man erst mal /etc/make.conf an:
LINGUAS="de en_GB"
Hier rein schreibt man die Sprachen für die Internationalisierung. Dabei bietet sich de für deutsch an, aber bei mir steht da immer en_GB drin, da ich immer mit den englischen Versionen arbeite. Dann installiert man das kde, dbus und hal Paket. Die enthalten alles, was man für KDE braucht und installieren mal einen Grundstock an KDE-Programmen:
emerge -av kde
emerge -av dbus
emerge -av hal
rc-update add dbus default
rc-update add hald default
echo "exec startkde" > ~/.xinitrc
Damit hat man dann alles, was man für KDE braucht. Also auf meinem T6700 dauerte das Kompilieren gute 3 Std. wenn mich nicht alles täuscht. Hatte das über Nacht durchlaufen lassen. Also es dauert auf jeden Fall etwas ;-) Dann müssen wir noch den Displaymanager anpassen in /etc/conf.d/xdm:
DISPLAYMANAGER="kdm"
Als nächstes holt man sich dann von der Nvidia-Seite den Treiber für die 8600 GTS. In meinem Fall war das die Version 100.14.11 für Linux AMD64/EM64T. Das hatte ich dann einfach per wget runtergeladen und mit sh NVIDIA-Linux-x86_64-100.14.11-pkg2.run gestartet. Dann folgt man einfach den Anweisungen des Programms. Dann konnte ich schon mal mit startx KDE starten. Das funktionierte auch gleich auf Anhieb und mein Eizo T965 zeigte auch gleich einen 1600x1200 großen Desktop mit 85 Hz an :-) Aber da hängt ja noch mein Eizo F730 dran. Da das NVIDIA X Server Settings Programm mal wieder nicht im Stande war (wie bei ATI auch), den zweiten Bildschirm einzurichten, musste ich also wieder Hand anlegen um Twinview ans Laufen zu bekommen. Das war aber nicht weiter schwierig. Xinerama wäre auch eine Option gewesen, aber bisher hat Twinview noch fast immer jeden Benchmark gewonnen. Und so sieht dann hierfür die /etc/X11/xorg.conf aus:
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
EndSection
Section "Files"
RgbPath "/usr/lib64/X11/rgb"
EndSection
Section "Module"
Load "dbe"
Load "extmod"
Load "type1"
Load "freetype"
Load "glx"
EndSection
Section "ServerFlags"
Option "Xinerama" "0"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol"
Option "Device" "/dev/input/mice"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Eizo"
ModelName "CRT-0"
HorizSync 30.0 - 110.0
VertRefresh 50.0 - 150.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
EndSection
Section "Device"
Identifier "Videocard0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce 8600 GTS"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 24
Option "CoolBits" "1"
Option "TwinViewOrientation" "RightOf"
Option "UseEdidFreqs" "True"
Option "SecondMonitorHorizSync" "30.0 - 110.0"
Option "SecondMonitorVertRefresh" "50.0 - 150.0"
Option "TwinView" "1"
Option "metamodes" "CRT-0: 1600x1200 +0+0, CRT-1: 1600x1200 +1600+0"
SubSection "Display"
Depth 24
Modes "1600x1200" "1280x1024" "1024x768" "800x600" "640x480"
EndSubSection
EndSection
Mehr zum Thema auch hier:
HOWTO KDE Desktop for the end-user
Technorati Tags: driver, gentoo, kde, nvidia
Posted at 12:30vorm. Juli 04, 2007 by cetixx in General | Kommentare [0]
Die Bahner streiken...
Ich frag mich blos, mit was das gerechtfertigt sein soll? Verspätungen ohne Ende, unfreundliche Mitarbeiter, mieser Service, Streckenstilllegungen, usw. sind doch an der Tagesordnung. Dafür mehr Lohn? Eine Unverschämtheit ist das!
Und egal wo und mit wen man bei der Bahn redet, es kümmert sich kein Mensch um irgendwas und es interessiert auch keinen. Die sollen das Streckennetz von der Bahn loslösen und endlich echten Wettbewerb auf der Schiene ermöglichen.
Posted at 11:15nachm. Juli 01, 2007 by cetixx in General | Kommentare [0]
X: X Error of failed request
Wenn man z.B. eine Linux-Distribution unter qemu remote auf einen anderen Rechner installieren möchte, muss man i.d.R. dafür sorgen, das die X-Ausgabe auf den lokalen Client ladet. Das läßt sich z.B. über ssh realisieren:
ssh -X rechnername
Wenn man nun versucht, z.B. Debian unter qemu zu installieren, kam bei mir folgende Meldung:
X Error of failed request
Die Lösung des Problem ist, das man anstatt -X den Switch -Y verwendet:
ssh -Y rechnername
Das schaltet das trusted X11 forwarding ein.
Technorati Tags: x11, ssh, qemu
Posted at 10:00nachm. Juli 01, 2007 by cetixx in General | Kommentare [0]