R&D/VRouter

KVM 커널 설치

sunshout 2009. 4. 20. 11:40
우분투 리눅스에서 KVM 의 지원을 받는 Virtualization 을 구현하기 위한 방법

0. 커널 컴파일을 위한 패키지 설치

패키지 설치 (Language : text)
# apt-get install git-core kernel-package fakeroot build-essential ncurses-dev


1. KVM 지원 커널 받기
   git는 CVS와 같은 소스코드 관리 프로그램으로 리눅스 커널은 git 를 이용해서 다운로드 가능하다.

커널 받기 (Language : text)
# git clone git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm.git


2. KVM-USERSPACE 받기

kvm-userspace 받기 (Language : text)
# git clone git://git.kernel.org/pub/scm/virt/kvm/kvm-userspace.git

1과 2를 실행하고 나면 현재 폴더에 linux-2.6 과 kvm-userpace 폴더가 생성되어 있다.


정식 git 트리 위치 (Language : text)
# git clone git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git
kvm-userpace.git 파일이 언제부터인가 사라져 버렸다. 따라서 qemu-kvm.git 파일로 소스를 싱크받아야 한다.

3. 현재 커널 설정을 가져 옴

kernel 설정 가져 오기 (Language : text)
# cd kvm/linux-2.6
# cp /boot/config-`uname -r` .config

4. 커널 옵션 설정
  커널 옵션을 설정하는 스텝으로 불필요시 안해도 상관없다.
Kernel 설정 옵션 (Language : text)
# make oldconfig (TEXT 기반 설정)
# make menuconfig (ncurses 기반 설정)

5. 커널 컴파일
   두번째 줄의 N은 커널 컴파일시 사용할 CPU의 개수로 빨리 컴파일을 하고 싶으면 숫자를 2~4(듀얼 또는 쿼드 CPU) 높이면 된다.

커널 컴파일 (Language : text)
# make-kpkg clean  (현재 커널 폴더를 정리하고)
# CONCURRENCY_LEVEL=N fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers

위 과정을 하고 나면 상위 디렉토리에 두개의 .deb 파일이 생성된다. 하나는 커널 이미지이고 하나는 헤더 파일임

6. 커널 설치

커널 설치 (Language : text)
# cd ..
# dpkg -i linux-image-2.6.XXXXX.deb
# dpkg -i linux-headers-2.6.XXXXXX.deb

7. reboot

리부팅을 하고 나면 새로운 커널이 로드되어 있음을 알 수 있다. 이 후는 kvm-userpace를 다시 설치할 순서 이다. 이전에 신규 커널에는 kvm, kvm-intel 모듈이 로드되어 있어야 한다.

8. kvm-userpace 컴파일 (kvm-userpace 폴더에서)

kvm-userpace 컴파일 (Language : text)
# ./configure [--kerneldir=/home/sunshout/kvm/linux-2.6
# cd kernel
# make sync LINUX=/home/sunshout/kvm/linux-2.6
# cd ..
# make
# make install

위에 6번까지 한 커널 컴파일 소스의 위치가 /home/sunshout/kvm/linux-2.6 일 때

패치 파일
net.c 파일 수정 버전


net.c diff 파일


zlib 관련 에러 발생시
apt-get install zlib1g-dev 패키지 설치

sdl 관련 에러 발생시
apt-get install libsdl-dev 패키지 설치