Contents

1 필요한 것들 다운받기
2 커널 소스 풀기
3 커널 패치 하기
4 커널 설정하기
4.1 현재 커널 설정 가져오기
4.2 커널 설정하기
5 커널 빌드하기
6 마지막 확인
7 커널 테스팅(?) 팁
8 Nvidia 그래픽 카드 유저들에게

  • P.S. 1 원문에서는 커널 2.6.14를 다뤘지만 현재 (2006년 1월 15일) 최신 버젼은 2.6.15이기에 이하 2.6.15로 통칭합니다.
  • P.S. 2 이 문서는 http://ubuntu.or.kr/wiki.php/KernelHowTo 의 내용과 거의 동일 하나 좀더 간략하고 최신 것인데다가 패치 하는 법과 추천 커널 옵션도 나와 있어서 번역하였습니다.
  • P.S. 3 현재 (2006년 1월 26일) 2.6.15.1 버젼이 나왔지만 이 버젼을 사용할때는 ck 패치셋이 안 먹힐 가능성이 있으니 패치를 하시려면 2.6.15 버젼을 사용하세요.
  • P.S. 4 최신 커널은 언제나 www.kernel.org 에서 찾을 수 있습니다.

원문 : Rúben Gonçalves http://ubuntuforums.org/showthread.php?t=84174
번역 : handrake http://ubuntu.or.kr/wiki.php/handrake

이 하우투 문서에서는 2.6.15 (우분투 5.10에 있는것보다 더 최신의) 바닐라 커널 (아무런 패치도 가하지 않은 깨끗한 버젼이라는 뜻)을 어떻게 컴파일/설치하고 Kon Colivas의 성능 패치셋을 적용하는지에 대해 다룰 것입니다.

- 이 패치들은 데스크탑 시스템의 반응 속도를 향상시키기 위해 제작되었습니다. 하지만 다른 경우에도 적용이 가능합니다. -

- These are patches designed to improve system responsiveness with specific emphasis on the desktop, but suitable to any workload. -
(Con Kolivas 웹사이트에서 발췌)


1 필요한 것들 다운받기 #


터미널에 다음과 같이 칩니다.
bash:~$ sudo apt-get install build-essential bin86 kernel-package
bash:~$ sudo apt-get install libqt3-headers libqt3-mt-dev (make xconfig을 위해서 필요합니다.)

커널과 패치를 자신의 홈디렉토리에 다운 받습니다.

2 커널 소스 풀기 #


커널 소스를 /usr/src로 옮깁니다.
bash:~$ sudo cp linux-2.6.15.tar.bz2 /usr/src
/usr/src로 이동합니다.
bash:~$ cd /usr/src
압축을 풉니다.
bash:~$ sudo tar -xvjf linux-2.6.15.tar.bz2
새로 생성된 디렉토리 이름을 바꿉니다. (바닐라 커널과의 구분을 위한 것으로 보입니다. 디렉토리 명은 그대로 커널 이름이 됩니다. 어디까지나 --append-to-name으로 덧붙여 주지 않을 때 이야기입니다만.)
bash:~$ sudo mv linux-2.6.15/ linux-2.6.15ck7
linux 심볼릭 링크가 존재한다면, 지웁니다.
bash:~$ sudo rm -rf linux
(역자주 : 여기서 굳이 -rf 옵션으로 다 지울 필요가 있는지는 모르겠습니다. rm linux로 링크만 제거해줘도 무방할 듯 합니다.)

새로운 심볼릭 링크를 생성해 2.6.15 커널 소스를 링크합니다.
bash:~$ sudo ln -s /usr/src/linux-2.6.15ck7 linux


3 커널 패치 하기 #


/usr/src/linux 디렉토리로 이동합니다.
bash:~$ cd /usr/src/linux
루트로 로긴합니다.
bash:~$ sudo -s -H
Password:
패치를 적용합니다.
bash:~$ sudo bzcat /home/username/patch-2.6.15-ck7.bz2 | patch -p1
( patch 명령어를 어떻게 쓰는지 더 자세히 알고 싶으시면 이곳을 참고하세요. )


4 커널 설정하기 #


4.1 현재 커널 설정 가져오기 #

bash:~$ uname -r
2.6.12-10-386
현재 어떤 커널이 올라와 있는지 알 수 있습니다. (필자의 경우에는 2.6.12-10-386)
bash:~$ sudo cp /boot/config-2.6.12-10-386 .config
를 실행해 설정(config) 파일을 가져와서 새 커널 설정의 토대가 되도록 합니다. (맞는 설정 파일을 선택하는 것을 잊지 마시고요)

4.2 커널 설정하기 #

bash:~$ sudo make xconfig

여러분이 필요한대로 커널 설정을 바꾸고 다음의 설정을 추가로 해주는 것도 좋습니다.

"General Setup"에 다음을 활성화 시킵니다. (체크 표시를 하세요)

-Support for paging of anonymous memory (swap)
--Support for prefetching swapped memory

"Processor type and features"에서는
- 자신의 CPU에 맞는 Processor Family를 선택하시고, 다음을 활성화 시킵니다.
-Preemption Model
--Voluntary Kernel Preemption (Desktop)

-High Memory Support
--off - 램이 1 GB 미만이라면
--1GB Low Memory Support - 램이 1 GB 일때
--4GB - 램이 1 GB 이상일때

-Timer frequency
--1000 Hz

"Device drivers"에서 "Block devices"의 "IO Schedulers"에 간다음, "CFQ I/O scheduler"만 키고 다 끄는게 성능 향상을 위해 좋습니다.

"Kernel hacking"에서 "Kernel debugging"를 끕니다.

Ctrl+S로 설정을 저장하고 윈도우를 닫습니다.


5 커널 빌드하기 #


터미널에서 현재 /usr/src/linux에 루트 권한으로 있는지를 확인합니다.

여기서는 우분투에서 설치 될 수 있는 ".deb" 파일을 make-kpkg를 사용해 빌드 하겠습니다.

터미널에 다음의 명령을 입력합니다.
bash:~$ make-kpkg clean
bash:~$ make-kpkg -initrd --revision=ck7 kernel_image
만약 아무런 에러가 발생하지 않는다면 /usr/src 디렉토리에 ".deb" 파일이 생길 것입니다.

설치하기 위해서는 다음과 같이 합니다.
bash:~$ sudo dpkg -i kernel-image-2.6.15-ck7_ck7_i386.deb
나중에 제거해야 할 필요가 생긴다면 간단하게
bash:~$ sudo dpkg -r kernel-image-2.6.15-ck7
하시면 됩니다.


6 마지막 확인 #


이제 재부팅하면 새로운 커널로 부팅될 것입니다.
bash:~$ uname -r
2.6.15-ck7
로 새 커널이 제대로 적용되었는지 확인해 봅니다.


7 커널 테스팅(?) 팁 #


gana코코넛님이 알려주신 방법입니다.

커널을 테스트하기 위해서 뭔가 바꿀 때마다 전체 커널을 컴파일 하는 것은 시간이 너무 오래 걸리기 때문에 바람직하지 않습니다. 그보다는 모듈로 만들어서 컴파일 후 내렸다 올렸다 하면서 컴파일 하는게 편합니다. 그렇게 하기 위해서는 우선 make xconfig나 make menuconfig에서 해당되는 것을 모듈로 만든다고 설정하고 (m으로 되어 있어야 함) 커널 컴파일 후에, (여기서는 키보드 드라이버를 디버깅 한다고 가정합니다.)
 $ make modules SUBDIRS=drivers/input/keyboard
이렇게 하면 해당 디렉토리에 ko 파일이 만들어 집니다. (예를 들어 atkbd.ko) 그러면 그 디렉토리로 가서
$ rmmod atkbd.ko && insmod atkbd.ko 
를 실행시킵니다.


8 Nvidia 그래픽 카드 유저들에게 #


Nvidia 드라이버를 설치하기 위해서는 다음의 링크를 따라가 보시기 바랍니다. ( 이미 /usr/src/linux에 소스가 있으므로 linux-headers를 새로 설치할 필요가 없습니다.)


Rúben Gonçalves
      리눅스  |  2007. 10. 8. 12:03



sokoban's Blog is powered by Daum & Tattertools