Handbook:Parts/Installation/Kernel/ko

소스 코드 설치
주변에 빌드한 모든 배포판의 핵심은 리눅스 커널입니다. 이는 사용자 프로그램과 여러분의 시스템 하드웨어 사이에 있는 계층입니다. 젠투는 사용자에게 최대한 다양한 커널 소스코드를 제공합니다. 설명을 포함한 전체 목록은 커널 개요 페이지에 있습니다.

기반 시스템에서 젠투는 꾸러미를 추천합니다.

적당한 커널 소스를 선택하고 로 설치하십시오:

를 들여다보면 설치한 커널 소스를 가리키는 심볼릭 링크를 볼 수 있습니다:

이제 커널 소스를 설정하고 컴파일 할 차례입니다. 두가지 방식으로 접근할 수 있습니다:


 * 1) 직접 설정하고 빌드하는 방법, 또는
 * 2)  도구를 사용하여 자동으로 리눅스 커널을 빌드하고 설치하는 방법

환경을 최적화하는 기본적인 선택이자 최상의 방법인 직접 설정 방법을 설명하도록 하겠습니다.

도입부
커널을 직접 설정하는 방법은 리눅스 사용자가 해본 일중에 가장 어려운 과정으로 보입니다. 아니라고 하는것도 조금은 맞습니다 - 커널을 여러번 설정해본 사람중에는 이게 어려웠는지 기억하는 사람이 없습니다.

그러나 맞는 이야기이기도 합니다. 커널을 직접 설정했을 때 시스템을 알아둘 필요가 있습니다. 대부분의 정보는 명령이 들어있는 를 이머지하여 수집할 수 있습니다:

시스템 정보의 다른 근원은 설치 CD에서 사용하는 커널 모듈이 무엇인지 보여주는 를 실행했을때 나타나는 활성화 할 모듈에 대한 바람직한 실마리입니다.

이제 커널 소스 디렉터리로 이동하여 를 실행하십시오. 메뉴 기반 설정 화면을 실행합니다.

리눅스 커널 설정에는 수많은 섹션이 있습니다. 반드시 활성화해야 할 몇가지 옵션 목록을 먼저 보도록 하겠습니다(그렇지 않으면 젠투가 제 기능을 못하거나, 추가 설정 없이 제대로 동작하지 않을지도 모릅니다). 또한 더 많은 도움을 줄  젠투 커널 설정 안내서도 젠투 위키에 있습니다.

필수 옵션 활성화
시스템을 부팅할 때 살아있는 모든 드라이버(SCSI 컨트롤러 등)가 모듈로 남아있지 않고 커널에 들어갔는지 확인하십시오. 아니면 부팅을 제대로 진행할 수 없습니다.

정확한 프로세서 형식을 선택하십시오 MCE 기능을 활성화(가능할 경우)하여 사용자가 하드웨어 문제 알림을 받을 수 있도록 하는걸 추천합니다. 일부 아키텍처(x86_64)에서는 로 나타나지 않지만 에 나타납니다. 꾸러미가 필요한 부분입니다.

또한 Maintain a devtmpfs file system to mount at /dev( CONFIG_DEVTMPFS 와 CONFIG_DEVTMPFS_MOUNT )를 선택하여 부팅 과정에 중요한 장치 파일을 미리 준비할 수 있게 하십시오.

SCSI 디스크 지원( CONFIG_BLK_DEV_SD )을 활성화했는지 확인하십시오:

이제 File Systems로 가서 사용할 파일 시스템 지원을 선택하십시오. 루트 파일 시스템에서 사용할 파일 시스템을 모듈로 컴파일하지 마십시오. 그렇지 않으면 젠투 시스템에서 파티션을 마운트할 수 없습니다. 또한 Virtual memory와 /proc file system도 선택하십시오. 시스템에서 필요한 옵션( CONFIG_EXT2_FS, CONFIG_EXT3_FS , CONFIG_EXT4_FS , CONFIG_MSDOS_FS , CONFIG_VFAT_FS , CONFIG_PROC_FS , and CONFIG_TMPFS ) 중 하나 이상을 선택하십시오:

인터넷에 연결할 때 PPPoE를 사용하거나 전화걸기 모뎀을 사용한다면 다음 옵션 ( CONFIG_PPP, CONFIG_PPP_ASYNC , CONFIG_PPP_SYNC_TTY )을 활성화하십시오:

두 압축 옵션은 문제를 일으키진 않겠지만 꼭 필요하진 않으며, 커널 모드 PPPoE를 사용하도록 설정했을 때 PPP에서 사용하는PPP over Ethernet 옵션도 마찬가지입니다.

네트워크(유무선) 카드의 커널 지원 포함도 잊지 마십시오.

대부분의 시스템에는 구성에 따라 다중 코어를 지니고 있기도 하므로, Symmetric multi-processing support( CONFIG_SMP ) 활성화도 중요합니다:

USB 입력 장치(키보드, 마우스)또는 다른 USB 장치( CONFIG_HID_GENERIC and CONFIG_USB_HID, CONFIG_USB_SUPPORT , CONFIG_USB_XHCI_HCD , CONFIG_USB_EHCI_HCD , CONFIG_USB_OHCI_HCD )를 사용한다면 마찬가지로 활성화를 잊지 마십시오:

선택: initramfs 빌드
대부분의 경우 초기 램 기반 파일 시스템 initramfs를 빌드해야 합니다. 중요한 파일 시스템 위치 또는 가 각각의 파티션으로 나누어져있을 경우가 대부분의 중요한 이유가 됩니다. initramfs로 initramfs내부의 도구를 활용하여 이 파티션을 마운트할 수 있습니다.

initramfs가 없으면, 파일 시스템에 있는 정보를 필요로 하는 파일 시스템 마운트 동작시 동작을 수행해야 하는 도구가 제대로 동작하지 않아 시스템 부팅이 제대로 동작하지 않는 큰 위험성이 있습니다. initramfs는 커널 부팅 후 바로 활용할 아카이브에 필요한 파일을 넣지만, 그 이전에 init 도구에 제어 권한을 넘깁니다. initramfs에 있는 스크립트는 시스템 부팅을 계속하기 전 파티션을 제대로 마운트했는지 확인합니다.

initramfs를 설치하려면, 우선 을 설치하고 initramfs를 만들도록 합니다:

LVM또는 RAID 등의 initramfs의 지정 기능을 활성화하려면 에 적당한 옵션을 추가하십시오. 더 많은 내용은 를 참고하십시오. 다음 예제에서 LVM과 소프트웨어 RAID를 활성화겠습니다:

initramfs는 에 저장합니다. 결과 파일은 간단히 initramfs로 시작하는 파일을 찾기만 하면 됩니다:

이제 커널 모듈로 계속 진행하십시오.

대안: genkernel 사용
직접 설정이 상당히 벅차다면, 을 추천합니다. 커널을 설정하고 빌드하는 과정을 자동으로 처리합니다.

은 설치 CD 커널이 설정한 방식과 거의 동일하게 커널을 설정하여 동작합니다. 커널을 빌드할 때 을 사용하면, 설치 CD에서 동작했던바와 같이 시스템에서 부팅 시간에 발견한 모든 하드웨어를 발견한다는 의미입니다. 왜냐면 은 직접적으로 커널을 설정할 필요가 없기 때문에 커널 컴파일을 귀찮아하는 사용자에게 이상적인 해결책입니다.

이제 genkernel을 사용하는 방법을 보겠습니다. 먼저 ebuild를 이머지하십시오:

다음 파일을 편집하여 두번째 필드에 가 들어있는 줄이 올바른 장치를 가리키도록 하십시오. 핸드북의 파티션 예제를 따라했다면 대부분 ext2 파일 시스템을 갖춘 입니다. 파일 내용은 다음과 같이 만들 수 있습니다:

이제 를 실행하여 커널 소스 코드를 컴파일하십시오. 은 대부분의 하드웨어를 지원하는 커널을 컴파일 하므로 컴파일이 끝나기까지 상당한 시간이 걸린다는 사실을 알아두십시오!

genkernel 동작이 끝나면, 모듈 전체 모음과 초기화 램 디스크(initramfs)를 만듭니다. 이 문서에서 나중에 부트로더를 설정할 때 이 커널과 initrd를 사용합니다. 부트로더 설정 파일을 편집할 때 정보로 사용하겠으니 커널과 initrd의 이름을 적어두십시오. "실제" 시스템을 시작하기 전에 하드웨어 자동 감지(설치 CD와 유사) 동작을 수행하는 즉시 initrd를 시작합니다.

모듈 설정
에서 자동으로 불러와야 하는 모듈을 조회하십시오. 필요한 경우 추가 옵션을 모듈에 추가할 수 있습니다.

존재하는 모든 모듈을 보려면 다음과 같이 명령을 실행하십시오. 잊지 말고 " " 부분을 컴파일한 커널의 버전으로 바꾸십시오.

예를 들어 모듈(3COM 네트워크 카드 계열 드라이버)을 자동으로 블러오려면,  파일을 편집하고 모듈 이름을 입력하십시오.

시스템 설정으로 설치 과정을 계속 진행하십시오.

선택: 펌웨어 설치
일부 드라이버는 동작하기 전에 시스템에 추가 펌웨어를 설치해야 합니다. 네트워크 인터페이스에 흔히 있는 경우이며 특히 무선 네트워크 인터페이스의 경우 그렇습니다. 대부분의 펌웨어는 에 있습니다: