1. 커널 소스를 다운받습니다.
$ apt-get install linux-source (최신버전 받기)
2. 필요한 패키지를 설치합니다.
$ apt-get install build-essential kernel-package libncurses5-dev
(libncurses5-dev 안깔리면 system -> administration -> synaptic package manager에서 libncurses5-dev 검색하시고 받으면 됩니다)
3. 사용자를 src 그룹에 등록(?) 합니다
$ sudo adduser 사용자id src
그럼 ....done 뭐 이렇게 뜨면 성공입니다.
4. 커널 소스 압축을 풀어봅시다.
커널소스는 /usr/src 에 저장되어있을 겁니다.
$ cd /usr/src
$ sudo tar xvfj linux-2.6.32.tar.bz2 (파일이름은 버전에 따라 다르겠죠?)
5. 디렉토리명을 편하게 linux라는 이름으로 링크시켜줍니다.
$ sudo ln -s /usr/src/linux-2.6.32 linux
이제 저렇게 긴 디렉토리명 안쓰고 linux라고 쓰면 됩니다.
음... 자꾸 sudo 명령어 쓰니까 귀찮네요 그냥 su 명령어로 루트계정 들어가서 작업하시면 sudo 안써도 되고 편합니당.. 아래부터는 sudo 생략합니다.
6. 커널의 의존성 설정 제거합니다(저는 리눅스 깔자마자 커널컴파일하는거라 안해도 상관없는 것 같네요)
$ make mrproper
7. menuconfig를 해봅시다
$ cd /usr/src/linux
$ make menuconfig
저는 kernel hacking이라는 메뉴에서 kernel debugging만 해제했습니다(저게 설정되면 커널 크기가 많이 커진다고 합니다..)
esc를 눌러서 종료하고 저장할꺼냐고 물으면 y선택합니다.
8. make 합니다.
$ make
마지막에 에러 없으면 잘 된 겁니다.
이 과정이 꽤 오래 걸립니다.
2.6은 make하나로 모든 과정이 통합되는데, 2.4는 이 과정이 좀 다르니 꼭 확인하시길.
9. 모듈을 설치 등등
$ make modules_install
$ make install
10. grub을 update해 봅니다.(이부분은 과정에 필요 없습니다. 확인차 해보는 부분..)
$ update-grub
아마 새로 설치할 커널의 이미지 파일이 없을 꺼예요. 그럼 만들어 줘야 합니다.
이거 안만들어주면 커널 패닉...
11. 커널 이미지 만들기
$ mkinitramfs -o /boot/initrd.img-커널버전 커널버전
즉,
$ mkinitramfs -o /boot/initrd.img-2.6.32 2.6.32
이렇게 하면 됩니다.
12. grub을 다시 update해보고 커널 이미지가 생성되었는지 확인합니다.
10번과 동일
13. 새로 빌드된 커널 이미지 복사(필요 있는지는 모르겠으나 한번 해봤습니다)
$ cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.32
14. 재부팅
$ reboot
재부팅하면 커널 버전을 선택하는 게 새로 생겼을 겁니다. 2.6.32 커널을 선택합니다.
14. 재부팅후 터미널에서 커널 버전비 바뀌었는지 확인합니다!
$ uname -a
저는 왕초보라... 무지 힘들었습니당 ㅜ