1) Kernel.org에서 최신 커널소스를 다운로드
2) 소스 압축해제
#tar -xvjf linux-/*version*/.tar.bz2 |
3) 개발용 필수 패키지 설치
#apt-get install build-essential bin86 kernel-package wget libncurses5 libncurses5-dev |
4) 현재 사용중인 커널의 옵션설정을 가져옴
#cp /boot/config-/*version*/ ./.config |
5) 커널 옵션 설정
#make menuconfig |
6) 시스템 콜 등록 (다운받은 소스파일이 /usr/src 안에 있다고 가정)
#vi /usr/src/linux-/*version*//arch/x86/include/asm/unistd_32.h |
#vi /usr/src/linux-/*version*//arch/x86/kernel/syscall_table_32.s |
8) 새로 추가되는 시스템 콜 함수를 만들어준다.
#vi /usr/src/linux-/*version*//arch/x86/kernel/custom_read.c |
9) Makefile에 Object파일을 추가한다.
#vi /usr/src/linux-/*version*//arch/x86/kernel/Makefile |
10) 시스템 콜 함수를 선언해준다.
#vi /usr/src/linux-/*version*//arch/x86/include/asm/syscalls.h |
11) 새로운 커널을 컴파일한다.
#cd /usr/src/linux-/*version*/ #make-kpkg clean #make-kpkg --initrd --revision=/*version*/ kernel_image |
12) 새로운 커널을 적용한다.
#dpkg -i linux-image-/*version*/.deb |
13) 재부팅한다.
#init 6 |