이 섹션에서는 모듈화된 맞춤 커널 만들기에 대하여 설명해 보겠습니다. 단일 커널 (monolithic kernel)을 만드시려면, A.3 절에서 단일 커널 개발과 설치에 대한 설명을 참조하시기 바랍니다.
![]() | 알림 |
|---|---|
이 예시에서서는 2.4.20-2.47.1 을 커널 버전으로 사용합니다 (커널 버전은 다를 수도 있습니다). uname -r 명령을 입력하시면 커널 버전을 알 수 있습니다. 2.4.20-2.47.1을 알아낸 커널 버전으로 바꾸십시오. |
x86 구조에 사용될 맞춤 커널을 만드는 방법은 다음과 같습니다 (모든 작업을 루트로 실행하셔야 합니다):
쉘 프롬프트를 열고 /usr/src/linux-2.4/ 디렉토리로 이동합니다. 앞으로 모든 명령어는 이 디렉토리에서 실행되어야 합니다.
안정적인 환경에서 소스 트리를 사용하여 커널 개발을 시작하는 것이 중요합니다. 따라서 먼저 make mrproper 명령을 사용하여 소스 트리 주위에 흩어져 있는 이전 버전의 잔여물이나 설정 파일을 제거해 주십시오. 만일 /usr/src/linux-2.4/.config라는 기존 설정 파일이 있다면, 이 명령을 실행하기 전에 다른 디렉토리로 백업하신 후 나중에 다시 이 디렉토리로 가져옵니다.
기본 Red Hat Linux 커널의 설정을 사용하여 시작하시길 권장합니다. 이렇게 하시려면, /usr/src/linux-2.4/configs/ 디렉토리에서 시스템 구조에 맞는 설정 파일을 /usr/src/linux-2.4/.config로 복사하시기 바랍니다. 만일 시스템 메모리 용량이 4 기가바이트 이상이라면, 키워드 bigmem를 포함한 파일을 복사하십시오.
다음으로 셋팅을 사용자 설정하십시오. 만일 X 윈도우 시스템을 사용 가능하다면, 리눅스 커널 설정 프로그램을 실행하기 위해 make xconfig 명령을 사용하시길 권장합니다.
![]() | 알림 |
|---|---|
make xconfig 명령을 사용하여 시작된 그래픽 도구를 사용하시려면, wish 명령을 제공하는 tk 패키지가 설치되어 있어야 합니다. RPM 패키지를 설치하는 방법에 대한 보다 자세한 정보는 V 부을 참조하시기 바랍니다. |
그림 A-1에서 설정할 요소 범주를 클릭하여 선택해 주십시오. 각 범주 내에서는 구성 요소가 포함되어 있습니다. 구성 요소를 커널로 컴파일하시려면 y (yes)를 선택하시고, 커널 모듈로 컴파일 하시려면 m (모듈), 또는 컴파일하지 않으려면 n (no) 항목을 선택해 주십시오. 구성 요소에 대한 보다 자세한 정보를 원하시면, 구성 요소 옆에 위치한 도움말 버튼을 클릭하시기 바랍니다.
범주 목록으로 되돌아가시려면 주 메뉴 버튼을 클릭하십시오.
설정을 마친 후, 주 메뉴 창에서 저장 후 종료 버튼을 클릭하여 /usr/src/linux-2.4/.config 설정 파일을 생성하신 후 리눅스 커널 설정 프로그램을 종료하시기 바랍니다.
설정에 아무런 변화를 주지 않은 경우에도, 계속 진행하시기 전에 make xconfig 명령 (또는 커널 설정에 사용된 다른 방법)을 실행하셔야 합니다.
커널 설정을 위해 사용 가능한 다른 방법들은 다음과 같습니다:
make config — 상호 대화식 텍스트 프로그램. 한 줄에 한 개씩 구성 요소들에 대한 질문이 나타나면 여러분은 한번에 한개씩 대답합니다. X 윈도우 시스템이 필요하지 않는 방법으로서, 이전 질문에 대한 대답 변경이 불가능합니다.
make menuconfig — 텍스트 모드로 구성된 메뉴 위주의 프로그램. 구성 요소가 여러 범주로 나뉘어진 메뉴에 나타납니다; 텍스트 모드 Red Hat Linux 설치 프로그램에서 사용했던 방식과 똑같은 방법으로 원하시는 구성 요소를 선택하시면 됩니다. 다음 중 포함시킬 항목에 맞는 태그(tag)를 선택해 주십시오: [*] (내장), [ ] (제외), <M> (모듈), 또는 < > (모듈 가능). X 윈도우 시스템이 없어도 이 방법을 사용 가능합니다.
make oldconfig — 디폴트 설정 파일을 만드는 비-대화식 스크립트. 디폴트 Red Hat Linux 커널을 사용하시는 경우, 이 명령을 사용하시면 Red Hat Linux에 포함된 커널에 맞는 설정 파일이 생성됩니다. 이 방법은 원하지 않는 기능을 사용하지 않도록 커널을 디폴트 설정하는데 유용합니다.
![]() | 알림 |
|---|---|
kmod와 커널 모듈을 사용하시려면, 설정 과정에서 kmod support와 module version (CONFIG_MODVERSIONS) support에 대해서 Yes라고 대답하셔야 합니다. |
/usr/src/linux-2.4/.config 파일을 생성하신 후, 모든 의존성 관계를 올바르게 설정하기 위하여 make dep 명령어를 실행하시기 바랍니다.
make clean 명령을 사용하여 커널 개발에 사용될 소스 트리를 준비합니다.
기존 커널을 덮어쓰지 않도록 개발 중인 사용자 정의 커널에 다른 버전 번호를 부여하시기를 권장합니다. 이렇게 하시는 것이 사고 발생시 가장 쉽게 복구할 수 있는 방법입니다. 다른 방법에 대하여 알고 싶으시다면, http://www.redhat.com/mirrors/LDP/HOWTO/Kernel-HOWTO.html 또는 /usr/src/linux-2.4의 Makefile에서 자세한 사항을 참조하시기 바랍니다.
/usr/src/linux-2.4/Makefile 파일을 보시면, EXTRAVERSION로 시작하는 줄 마지막에는 custom이라는 단어가 기본으로 포함되어 있습니다. 줄 마지막 부분에 문자열을 삽입하시면 아직 작동하는 이전 커널과 새 커널 (2.4.20-2.47.1custom 버전)이 시스템 상에 동시에 존재하게 됩니다.
커널에 고유한 이름을 부가하시려면, 이 문자열 마지막에 날짜 (또는 다른 식별자)를 함께 첨가해 주십시오.
make bzImage을 사용하여 커널을 만듭니다.
make modules 명령을 사용하여 설정하신 모듈을 만듭니다.
make modules_install 명령을 사용하여 커널 모듈을 설치하실 수 있습니다. (커널 모듈을 만들지 않은 경우에도 설치 가능합니다). 반드시 밑줄 (_)을 입력하는 것을 잊지 마십시오. 이 명령은 /lib/modules/<KERNELVERSION>/kernel/drivers 디렉토리 경로에 커널 모듈을 설치할 것입니다. (앞의 경로에서 KERNELVERSION은 Makefile에서 지정된 커널 버전입니다). 이 예시에서 디렉토리 경로는 /lib/modules/2.4.20-2.47.1custom/kernel/drivers/가 됩니다.
make install 명령을 사용하여 새 커널과 관련 파일들을 적절한 디렉토리로 복사해 주십시오.
이 명령은 /boot 디렉토리에 커널 파일을 설치할 뿐만 아니라 새로운 initrd 이미지를 만드는 /sbin/new-kernel-pkg 스크립트를 실행하고 부트로더 설정 파일에 새로운 항목을 추가합니다.
SCSI 어댑터를 가지고 계신 경우, SCSI 드라이버를 모듈로 컴파일하거나 (Red Hat Linux에서 디폴트인) ext3 지원을 갖춘 커널을 모듈로 컴파일하기 위해서는 initrd 이미지가 필요합니다.
initrd 이미지와 부트로더가 올바르게 만들어졌는지와 2.4.20-2.47.1 대신 맞춤 커널 버전을 사용하는지 확인해 주십시오. 이러한 수정된 사항을 확인하는 방법에 대한 보다 자세한 정보를 원하신다면, 30.5 절과 30.6 절을 참조하시기 바랍니다.