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

7) 시스템 콜 테이블에 위에서 추가한 시스템 콜을 추가한다.

#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) MakefileObject파일을 추가한다.

#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


+ Recent posts