Kernel/Configuration/ko
심볼릭 링크 설정
/usr/src/linux 심볼릭 링크는 언제든 현재 사용하는 커널 소스를 가리킵니다. 다음 세가지 방법 중 하나로 끝낼 수 있습니다:
1. symlink
USE 플래그를 활성화한 후 커널 소스를 설치하십시오. /usr/src/linux가 가리키는 대상을 새로 설치한 커널 소스로 설정합니다. 필요하다면 다음의 수정된 두가지 방식으로 나중에 수정할 수 있습니다:
2. eselect로 심볼릭 링크를 선택하십시오:
root #
eselect kernel list
Available kernel symlink targets: [1] linux-3.3.8-gentoo [2] linux-3.4.9-gentoo
이 출력 내용에는 사용할 수 있는 커널 소스가 있습니다. 별표 기호는 선택한 소스를 나타냅니다. 커널 소스를 바꾸려면 (예: 두번째 항목) 다음 명령을 실행하십시오:
root #
eselect kernel set 2
3. 직접 심볼릭 링크를 설정합니다:
root #
ln -sf /usr/src/linux-3.4.9-gentoo /usr/src/linux
root #
ls -l /usr/src/linux
설정
설정 도구
커널에서는 자체를 설정할 수 있는 몇가지 도구를 제공합니다.
명령 | 설명 |
---|---|
make config | 텍스트 기반 설정입니다. 이 옵션은 프롬프트 하나를 처리하면 다른 프롬프트가 뜨는 식입니다. 모든 물음에 응답했다면 순서를 거스르며 이전 옵션에 접근할 수 없습니다. |
make menuconfig | ncurses 기반 그래픽 메뉴입니다(텍스트 입력만). 결정한 옵션을 수정하려 메뉴로 탐색합니다. |
make defconfig | defconfig 파일에 있는 ARCH에서 기본 설정을 만듭니다. 소스코드에서 제공하는 기본 설정 파일로 되돌리려면 이 옵션을 선택하십시오. |
make nconfig | ncurses 기반 그래픽 메뉴입니다 sys-libs/ncurses를 설치해야합니다. |
make xconfig | Qt4 기반 그래픽 메뉴입니다. dev-qt/qtgui를 설치해야합니다. |
make gconfig | GTK+ 기반 그래픽 메뉴입니다. x11-libs/gtk+, dev-libs/glib, gnome-base/libglade를 설치해야합니다. |
make oldconfig | 커널 버전 사이에 바뀐 부분을 다시 검토하고, .config 파일을 커널에 새로 만들어 업데이트합니다. |
make allyesconfig | 커널의 모든 설정 옵션을 활성화합니다. 모든 커널 옵션을 * 로 마킹합니다. 시험적으로 이 명령을 사용하기 전에 현재 커널 설정을 가져와 백업했는지 확인하십시오!
|
기타 기본 설정을 만들 몇가지 스크립트도 있습니다. 더 깊은 단계에 있는 설정을 처리하여 시간을 효율적으로 단축할 수 있습니다. 메이크 대상 전체 목록을 보려면 다음 명령을 실행하십시오:
root #
make help
이 글에서는 make menuconfig를 사용하여 설정하는 방법을 설명합니다만, 절차는 다른 메뉴랑 비슷합니다.
root #
cd /usr/src/linux
root #
make menuconfig
사용법
화면에 나타난 메뉴에서 푸른색 막대는 커서 현재 위치를 나타냅니다. ↑, ↓ 화살표 키로 커서 위치를 바꿀 수 있습니다. ←, → 화살표 키로 메뉴 표시줄 하단을 순회하며 Enter 키를 누르면 어떤 설정을 할 지 정할 수 있습니다. ---> 로 끝나는 메뉴 항목에서 Select를 누르면 하위 메뉴로 들어갈 수 있고, Exit를 누르면 하위 메뉴에서 나갑니다. Exit를 선택하는 대신 Esc 키를 두번 쳐서 나갈 수 있습니다.
관련 문자 키를 A 키부터 Z 키까지 눌러보면 강조 문자를 가진 줄로 커서줄이 이동합니다. 여기서 Y, M, N 키는 다른 목적으로 사용하는 신성한 키므로(ㅋㅋ) 탐색 문자에서 제외했습니다. Y, M, N 중 한 문자로 시작하는 줄이 있다면 다음 글자를 강조하며 해당 문자를 가진 줄로 건너뛸 수 있습니다. 예를 들자면, 커서 현재 위치에 따라 다음줄이 "Network Device Support --->" 라면 E 키를 눌렀을 때 해당 줄로 커서를 이동합니다.
다음 기호 문자는 메뉴 줄 앞에 나타날 수 있습니다:
기호 | 설명 |
---|---|
[ ], [*]
|
사각괄호 안에 표시한 옵션은 활성화 또는 비활성화 할 수 있습니다. 별표 기호는 메뉴 항목을 활성화합니다. 값은 space 키로 바꿀 수 있습니다. 또한 Y 키 (Yes) 로 활성화하거나, N 키 (No) 로 선택 항목을 비활성화할 수 있습니다.
|
< >, <M>, <*>
|
각괄호에 나타난 옵션은 활성화 또는 비활성화하거나, 모듈로 활성화(M으로 표시)할 수 있습니다. Y/N키를 눌러 활성/비활성하거나 M 키를 눌러 기능이나 드라이버를 모듈로 활성화합니다.
|
{M}, {*}
|
중괄호에 표시한 옵션은 활성화 상태이거나 모듈 상태로 활성화한 상태지만, 비활성화할 수는 없습니다. 다른 기능/드라이버가 이 기능에 의존하기 때문에 이렇게 나타납니다. |
-M-, -*-
|
하이픈 사이에 나타난 옵션 표시는 다른 기능/드라이버의 선택 여부에 따라 나타납니다. 선택의 여지가 없습니다. |
게다가 어떤 항목은 뒷부분에 이런 표시를 붙였습니다:
태그 | 설명 |
---|---|
(NEW)
|
이 드라이버는 커널에 새로 추가했으며 아직 충분히 안정적이지는 않습니다. |
(EXPERIMENTAL)
|
이 드라이버는 실험적이며, 대부분 충분히 안정적이진 않습니다. |
(DEPRECATED)
|
이 드라이버는 오래되어 대부분의 시스템에서 필요하지 않습니다. |
(OBSOLETE)
|
이 드라이버는 낡아서 활성화하면 안됩니다. |
대부분 옵션에는 H 키를 누르거나 메뉴 표시줄의 Help를 선택하면 설명이 뜹니다.
드라이버 선택
모듈 검색
menuconfig에서 모듈을 검색하려면 / 키를 사용하십시오.
아래에서 보시는 바와 같이, 검색 결과는 일치하는 결과 앞에 번호를 나타내는 방식으로 표시합니다. 예제에서 1 을 누르면 make menuconfig로 바로 건너뛴 후 메뉴 구조상의 Bluetooth device drivers 옵션으로 이동합니다.
Symbol: BT_HCIBTUSB [=m]
Type : tristate
Prompt: HCI USB driver
Location:
-> Networking support (NET [=y])
-> Bluetooth subsystem support (BT [=y])
(1) -> Bluetooth device drivers
Defined at drivers/bluetooth/Kconfig:5
Depends on: NET [=y] && BT [=y] && USB [=m]
젠투 리눅스 일반 설정 활성화
sys-kernel/gentoo-sources와 젠투에서 관리하는 다른 커널 프로젝트 에서만 나타나는 CONFIG_GENTOO_LINUX 커널 설정 옵션이 있습니다. 자체적으론 하는 일이 없지만, 일반 설치 과정에서 필요한 다양한 설정 옵션을 설정합니다.
이 설정은 젠투 리눅스에서 /dev를 처리하는데 필요한 tmpfs
와 devtmpfs
지원을 자동으로 선택하지만, 젠투 리눅스 시스템의 다른 필수적 설정을 차후에 활성화하기 위해 확장됩니다. 더 많은 내용을 알아보려면, 이 안내서에 앞서 설명한 커널 설정 시스템을 통해 제공하는 도움말 정보를 읽어보십시오.
빌드
커널 설정을 완벽하게 끝냈다면 커널을 컴파일하십시오:
root #
make
프로세서 코어가 여러개 있다면 모든 코어가 동작할 수 있게 할 수 있습니다. 이렇게 하려면 -j(NUMBER_CORES +1)
매개 변수를 추가하십시오. 듀얼 코어 프로세서에는 논리코어 더하기 일입니다(2 + 1):
user $
nproc
3
}}
root #
make -j3
쿼드코어 시스템에서는 논리코어 네개 더하기 일입니다(4 + 1):
root #
make -j5
설치
드라이버를 모듈로 활성화 했다면, 설치해야 합니다:
root #
make modules_install
모듈은 /lib/modules의 하위 디렉터리에 복사합니다.
실제 커널을 설치하려면:
root #
make install
이 명령은 sys-apps/debianutils 꾸러미의 일부인 /sbin/installkernel 을 실행합니다. 새 커널은 {{Path|/boot/vmlinuz-{version}}}에 설치합니다. /boot/vmlinuz 심볼릭 링크가 이미 있다면, 새 커널에 대해 만든/boot/vmlinuz 링크를 만들고 바꾸며, 이전에 설치한 커널은 /boot/vmlinuz.old로 둡니다.(installkernel man page). config와 System.map파일과 같습니다. 이 심볼릭 링크는 파일 경로를 바꾸지 않고 항상 새로운 커널을 가리키기 때문에 단순합니다(예: 부트로더 설정에서 쓸 수 있습니다).
부트로더
시스템 부트 로더 설정을 바꾸어 새 커널로 부팅하도록 고르십시오.
마지막으로 새 커널로 시스템을 다시 부팅하십시오.
현재 커널 설정과 기본 설정 비교
기본 설정을 이어받은 커널 설정을 전반적으로 확인하려면 다음 과정을 활용하십시오. 설정 수정시에는 추가 설정이 필요함을 염두에 두십시오.
root #
cd /usr/src/linux
root #
cp .config ../.config.working
root #
make defconfig
root #
mv .config ../.config.default
root #
cp ../.config.working .config
root #
cd ..
root #
/usr/src/linux/scripts/diffconfig .config.working .config.default > .config.diff
make menuconfig의 검색 기능은 플래그 및 해석을 찾을때 사용할 수 있습니다. 과정이 끝났다면 남은 파일을 지우십시오:
root #
cd /usr/src/
root #
rm .config.working .config.default .config.diff
추가 참조
- Genkernel — 커널과 initramfs 빌드를 자동화할 때 사용하기 위해 젠투에서 만든 도구입니다.
- Kernel/Configuration/Kernel_Seeds — pre-made kernel configuration files.
- Kernel/Gentoo Kernel Configuration Guide