· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
GentooX86 Handbook_Ko_1-7


1. 커널 설정

1.1. 시간대

시스템에 어디에 위치하고 있는지를 알려주는 시간대를 선택하는 것이 가장 필요할 것입니다. 시간대에 대한 정보는 /usr/share/zoneinfo에서 찾을 수 있고 만약 여기서 찾았다면 /etc/localtime로 복사하면 됩니다. 가급적 /usr/share/zoneinfo/Etc/GMT* 와 같은 이름은 기대하던 지역으로서 가리키지 마십시오. 예를 들어 GMT-8는 사실 GMT+8 입니다.

예제 1-1 : 시간대 정보 설정
# ls /usr/share/zoneinfo
(Suppose you want to use GMT)
# cp /usr/share/zoneinfo/GMT /etc/localtime


1.2. 소스 설치

1.2.1. 커널 선택

모든 배포판에서 빌드된 코어는 리눅스 커널입니다. 이는 사용자 프로그램과 하드웨어 사이에 있는 계층입니다. 젠투는 가능한커널 소스를 다양하게 제공하고 있습니다. 설명이 곁들여진 전체 목록은 [http]젠투 커널 가이드에서 찾아볼 수 있습니다.

x86 기반 시스템에서 우리는 gentoo-sources를 받습니다. (커널 소스와 별도의 특징들을 위한 패치들).

emerge 를 사용하여 커널 소스를 선택하고 설치해봅니다.

예제 2-1 : 커널 소스 설치
# emerge gentoo-sources

When you take a look in /usr/src 디렉토리를 들여다봤을때 linux라 불리우는 커널 소스를 가리키고 있는 심볼릭 링크를 볼 것입니다.이 경우 설치된 커널 소스는 gentoo-sources-2.6.24-r5를 가리키고 있습니다. 버전은 다를 수 있습니다. 그냥 그렇다는것만 알아두세요.

예제 2-2 : 커널 소스 심볼릭링크 보기
# ls -l /usr/src/linux
lrwxrwxrwx    1 root   root    12 Oct 13 11:04 /usr/src/linux -> linux-2.6.24-r5

이제 커널 소스를 설정하고 컴파일할 때가 되었습니다. 설치 CD에 의해 사용되는 커널과 같은 일반적인 커널을 만드는 도구인 genkernel을 사용할 수도 있습니다. 우리는 먼저 "수동" 환경설정을 설명할 것인데, 이것이 환경을 최적화 하는 최상의 방법입니다.

직접 커널을 설정하려 한다면 [http]기본 : 수동 설정 으로 넘어가기 바랍니다. genkernel을 사용하려고 한다면 이 대신 [http]대안책 : genkernel 사용 으로 넘어가세요.

1.3. 기본 : 수동 설정

1.3.1. 소개

커널을 직접 설정하는 것은 종종 어떤 리눅스 사용자들이든지 수행하기 어려워 보입니다. 아닌게 약간은 맞는데요... 커널을 여러번 설정해본 이후에는 어려웠다고 생각하진 않거든요 ;) (우물안 개구리?)

그러나 이거 하나만은 사실입니다. 커널을 설정하려면 시스템에 대해서 잘 알아야만 합니다. 대부분의 정보는 lspci가 포함된 pciutils를 이머징(emerge pciutils)하여 얻어낼 수 있습니다. 그러면 루트가 변경된 환경에서 lspci를 쓸 수 있게 될 것입니다. 아마 lspci가 던지는 pcilib의 경고 메시지(pcilib: cannot open /sys/bus/pci/devices) 쯤이야 안전하(고 가볍?? )게 무시할 것입니다. 대신, 루트가 전환되지 않은 환경에서도 lspci를 실행할 수 있습니다. 어쨌든 결과는 같습니다. 또한 lsmod를 실행하여 설치 CD에서 사용하는 커널 모듈이 어떤 것인지 볼 수 있습니다 ( 여기서 어떤 것이 사용가능한가에 대한 결정적 힌드를 제공할 것입니다).

이제 커널 소스 디렉토리로 이동하여 make menuconfig를 실행해봅시다. 이것은 ncurse기반의 설정 메뉴로 실행될 것입니다.

예제 3-1 : menuconfig 수행
# cd /usr/src/linux
# make menuconfig

몇몇 설정 섹션을 보게 될 것입니다. 우리는 반드시 접근해야 하는 몇몇 옵션을 우선적으로 지정할 것입니다(그렇지 않으면 젠투는 제 기능을 못하거나 추가적 조작 없이 기능이 올바르게 되지 않을 것입니다).

1.3.2. 필수 옵션 접근


시스템 부팅시 커널에서 컴파일되고 모듈로서 존재하는 모든 드라이버(SCSI 컨트롤러 같은것들...)가 활성화 되는가를 확인해보지 않으면 시스템은 완전히 부팅할 수 없을 것입니다.

이제 올바른 프로세서 계열을 선택합니다.

예제 3-2 : 올바른 프로세서 계열 선택
Processor type and features --->
  (Change according to your system)
  (Athlon/Duron/K7) Processor family

이제 File Systems 목록에 가서 현재 사용하고 있는 파일 시스템을 위해 지원할 항목을 선택합니다. 모듈로서 컴파일 하면 젠투 시스템은 파티션에 마운트 하지 못할 것입니다. 또한 가상메모리와 /proc 파일 시스템을 선택합니다.

예제 3-3 : 필요한 파일시스템 선택
File systems --->
  Pseudo Filesystems --->
    [*] /proc file system support
    [*] Virtual memory file system support (former shm fs)

(Select one or more of the following options as needed by your system)
  <*> Reiserfs support
  <*> Ext3 journalling file system support
  <*> JFS filesystem support
  <*> Second extended fs support
  <*> XFS filesystem support

PPPoE를 사용하여 인터넷에 연결하는 경우 혹은 전화접속 모뎀을 통해 연결하는경우 다음 옵션을 커널에 포함시킬 필요가 있습니다.

예제 3-4 : 필요한 PPPoE 드라이버 선택
Device Drivers --->
  Networking Support --->
    <*> PPP (point-to-point protocol) support
    <*>   PPP support for async serial ports
    <*>   PPP support for sync tty ports

두개의 압축 옵션은 해롭지는 않겠지만 커널모드 PPPoE로 동작하도록 설정되었을때, ppp에 의해서만 사용되는 PPPoE옵션 으로서가 아닌 다른 목적으로 필요할 경우가 있습니다.

만약 필요하다면 이더넷 카드를 위해 커널에서 지원하도록 포함하는걸 잊으시면 안됩니다.

만약 인텔 CPU가 하이퍼스레딩을 지원하거나, 시스템에 둘 이상의 CPU가 붙는다면 "Symmetric multi-processing support"를 활성화시켜야 할 것입니다.

예제 3-5 : SMP 지원 활성화
Processor type and features  --->
  [*] Symmetric multi-processing support 

유의사항 : 멀티코어 시스템에서는 코어 수 하나가 하나의 프로세서입니다

만약 4GB이상의 램을 보유하고 있는경우 "High Memory Support (64G)"를 사용가능케 할 필요가 있습니다.

USB 입력 장치를 사용한다면 (키보드나 마우스) 이것들 또한 사용가능하도록 해야 할 것입니다.

예제 3-6 : 입력장치를 위한 USB지원 활성화
Device Drivers --->
  [*] HID Devices  --->
    <*>   USB Human Interface Device (full HID) support

랩탑 환경을 위해 PCMCIA지원을 원한다면, PCMCIA 카드 브릿지 표시를 위한 지원을 가능하게 하는것을 잊지 마셔야 합니다.

예제 3-7 : PCMCIA 지원
Bus options (PCI, PCMCIA, EISA, MCA, ISA)  --->
  PCCARD (PCMCIA/CardBus) support  --->
    <*> PCCard (PCMCIA/CardBus) support
(select 16 bit if you need support for older PCMCIA cards. Most people want this.)
    <*>   16-bit PCMCIA support
    [*]   32-bit CardBus support
(select the relevant bridges below)
    --- PC-card bridges
    <*> CardBus yenta-compatible bridge support (NEW)
    <*> Cirrus PD6729 compatible bridge support (NEW)
    <*> i82092 compatible bridge support (NEW)
    <*> i82365 compatible bridge support (NEW)
    <*> Databook TCIC host bridge support (NEW)

커널 설정이 완료되었다면 [http]컴파일과 설치로 계속 넘어가세요.

1.3.3. 컴파일과 설치

커널의 환경설정이 끝났고 이제 컴파일과 설치를 할 때입니다. 환경설정을 빠져나오고 컴파일 과정을 시작합니다.

예제 3-8 : 커널 컴파일
# make && make modules_install

커널 컴파일이 끝났을때 커널 이미지를 /boot에 복사합니다. 어떤 커널이름이 어울리든지 맘에 드는 이름으로 쓰시고 나중에 부트로더를 설정할때 필요할테니 기억하시기 바랍니다. (보기에서는) kernel-2.6.24-gentoo-r5 로 커널이름과 버전을 고치고 기억해둡니다.

예제 3-9 : 커널 설치
# cp arch/i386/boot/bzImage /boot/kernel-2.6.24-gentoo-r5

이제 [http]커널 모듈 로 계속 넘어가세요.

1.4. 대안책 : genkernel 사용

이 섹션을 읽고 있다면 커널을 설정하기 위해 genkernel 스크립트를 사용하는 것을 선택하신 것입니다.

이제 커널 소스 트리가 설치되었고 자동으로 빌드하는 genkernel 스크립트를 이용하여 커널을 컴파일할 차례입니다. genkernel은 설치시디에 설정된 커널과 거의 이상적(같은 것의 차원을 넘어선)으로 된 설정에 의해 돌아갑니다. 이는 genkernel을 사용하여 커널을 빌드할때 독자의 시스템은 일반적으로 설치시디처럼 부트타임시 모든 하드웨어를 감지하게 된다는 의미입니다. 왜냐면 genkernel은 어떤 수동적 커널 설정이 필요없어, 커널을 직접 컴파일하기를 꺼려하는 사용자에게 이상적인 솔루션이 되기 때문입니다.

이제 genkernel을 어떻게 쓰는지 보도록 하겠습니다. 먼저 genkernel을 이머징 하도록 합니다.

예제 4-1 : genkernel 이머징
# emerge genkernel

그 다음, 커널 설정을 설치 CD로부터 복사하여 genkernel이 찾는 위치에 복사하도록 합니다. 예제 4-2 : 설치 CD 커널 설정 복사
# zcat /proc/config.gz > /usr/share/genkernel/arch/x86/kernel-config-2.6

이제 genkernel을 실행함을 통해 모든 커널 소스가 컴파일 됩니다. 이를 인지하겠지만, genkernel은 모든 하드웨어를 지원하도록 컴파일 하며, 다 되기까진 좀 더 걸립니다!

유의해야 할점이라면 부트 파티션이 ext2나 ext3가 아니라면 genkernel --menuconfig all 명령으로 지원해야 할 파일 시스템을 직접 설정해주어야 합니다 (모듈로서의 지원이 아닙니다). EVMS2LVM2 사용자들은 아마 변수로서 --evms2 나 --lvm2를 추가해야 할 것입니다.

예제 4-3 : genkernel 실행
# genkernel all

genkernel이 완료되었을 때, 커널은 모듈의 풀 셋을 갖추고 초기화 루트 디스크(initrd)가 만들어져 있을 것입니다. 우리는 커널과 initrd를 추후 부트로더 설정시 이 문서에서 다룰 것입니다. 부트로더 설정 파일에서 적어내려갈때 필요하게 될 커널 이름과 initrd 이름을 적어두십시오. initrd는 부팅 수행 후 파드웨어 자동감지시 (설치 CD 에서처럼)시작될 것입니다. "실제" 시스템이 시작하기 전에요.

예제 4-4 : 생성된 커널 이미지와 initrd 확인
# ls /boot/kernel* /boot/initramfs*

1.5. 커널 모듈

1.5.1. 모듈 설정

자동으로 로드되길 원하는 모듈을 /etc/modules.autoload.d/kernel-2.6에 지정할 것입니다. 원한다면 모듈에 대한 특별한 옵션도 추가할 수 있습니다.

사용가능한 모든 모듈을 보려면 다음 검색 명령을 실행합니다. 대신 사용하는 "<kernel version>" 과 컴파일한 커널의 버전을 잊으면 안됩니다.

예제 5-1 : 모든 사용가능한 모듈 보기
# find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko'

예를 들어 3c59x.ko를 자동으로 로드하려 한다면 kernel-2.6 파일을 편집하여 이 모듈을 입력합니다.

예제 5-2 : /etc/modules.autoload.d/kernel-2.6 편집
# nano -w /etc/modules.autoload.d/kernel-2.6

예제 5-3 : /etc/modules.autoload.d/kernel-2.6
3c59x

이제 [http]시스템 환경 설정 으로 넘어가셔도 됩니다.


ID
Password
Join
You will overcome the attacks of jealous associates.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2010-10-23 11:07:55
Processing time 0.0070 sec