2.1. 컴파일 환경 설정 명령

이 문서는 IBM PC 스타일의 시스템을 가진 사용자를 기준으로 쓰여졌습니다. 알파 시스템이나 선 머신을 가지고 있다면 한글 리눅스 문서 프로젝트 팀의 홈페이지를 찾아가 봅니다.

http://KLDP.org

2.1.1. 미리 알고 있으면 좋은 것들

컴파일 환경 설정을 위해 하드웨어 구성 정보를 미리 기록해두면 매우 유용합니다. 사운드 카드, 네트워크 디바이스 등의 IRQ, I/O port, DMA addreSS, 그리고 비디오 카드 등 장치의 특성을 알고 있어야 합니다.

여러분의 시스템에 어떤 장치와 칩셋이 들어있는지 알아보려면 /proc/pci, /proc/sound, /proc/scsi/scsi 등 파일을 열어봅니다. 혹은 lspci 등 명령으로도 확인해볼 수 있습니다. 다음은 이 글을 쓰고있는 리눅스 박스에 들어 있는 장치를 lspci 명령으로 확인한 목록입니다. PCI 버스를 지원하는 칩셋과 장치 몇 가지를 확인할 수 있습니다:

00:00.0 Host bridge: Intel Corporation 430TX - 82439TX MTXC (rev 01)
00:01.0 ISA bridge: Intel Corporation 82371AB PIIX4 ISA (rev 01)
00:01.1 IDE interface: Intel Corporation 82371AB PIIX4 IDE (rev 01)
00:01.2 USB Controller: Intel Corporation 82371AB PIIX4 USB (rev 01)
00:01.3 Bridge: Intel Corporation 82371AB PIIX4 ACPI (rev 01)
00:02.0 VGA compatible controller: Trident Microsystems TGUI 9660/968x/968x (rev d3)
00:0a.0 CardBus bridge: Texas Instruments PCI1131 (rev 01)
00:0a.1 CardBus bridge: Texas Instruments PCI1131 (rev 01)

2.1.2. 환경설정 인터페이스

환경 설정을 위한 인터페이스는 make config, make menuconfig, make xconfig 세 가지가 있습니다 (이전 설정 정보는 그대로 둔 채 새로운 옵션들에 대해서만 물어보는 make oldconfig도 있습니다).

make는 makefile에 서술된 규칙을 이용하여 소스코드 파일들을 관리합니다. 사용자로부터 복잡한 명령을 입력받는 대신 개발자가 지정한 절차에 따라 최근 변경을 적용하여 소스코드를 오브젝트 파일로 컴파일하고 라이브러리 파일과 링크하여 실행 가능한 파일로 컴파일 하는 등 과정들을 자동으로 처리합니다.

2.1.2.1. make config 또는 make oldconfig

행 단위로 환경 설정을 하는 make config는 bash나 csh에서 실행됩니다. 세부적인 설정을 할 수 있지만 가장 불편한 인터페이스로 잘 쓰이지 않습니다. 그러나 make oldconfig는 꽤 쓸만합니다.

2.1.2.2. make menuconfig

아래는 메뉴식 설정화면의 한 예입니다.

Linux Kernel v2.4.19 Configuration
---------------------------------------------------------------------------- 
+---------------------------- Console drivers ----------------------------+
|  Arrow keys navigate the menu. <Enter> selects submenus --->.           |   
|  Highlighted letters are hotkeys. Pressing <Y> includes, <N> excludes,  |   
|  <M> modularizes features. Press <Esc> to exit, <?> for Help.     |
|  Legend: [*] built-in  [ ] excluded  <M> module  < > module capable     |   
| +---------------------------------------------------------------------+ |   
| |         [*] VGA text console                                        | |   
| |         [ ] Video mode selection support                            | |   
| |         <M> MDA text console (dual-headed) (EXPERIMENTAL)           | |   
| |         Frame-buffer support  --->                                  | |   
| |                                                                     | |   
| |                                                                     | |   
| |                                                                     | |   
| |                                                                     | |   
| |                                                                     | |   
| |                                                                     | |   
| +---------------------------------------------------------------------+ |   
+-------------------------------------------------------------------------+   
|                    <Select>    < Exit >    < Help >                     |   
+-------------------------------------------------------------------------+   

메뉴방식의 화면에서 단축 글쇠(노랗게 도드라진 글씨)와 방향키로 메뉴 사이를 옮겨 다닐 수 있습니다.

"---->" 표시가 있는 곳에서 엔터키를 누르면 하위 메뉴가 열립니다.

<ESC>를 두번 누르거나 <Exit>를 선택하면 상위 메뉴로 올라갑니다.

<h>를 누르면 도움말을 볼 수 있습니다. <Tab> 키를 누르면 컨트롤 사이를 옮겨다닙니다.

질문에 대해 Y는 커널에 포함, N은 제외, M은 모듈을 뜻합니다. 설정 상태는 [ ] 또는 < > 안에*(선택), M(모듈), 빈칸(제외)로 표시됩니다. 모듈기능(M)은 "< >"으로 표시된 질문에만 쓸 수 있습니다.

설정이 끝났다면 메인 메뉴에서 "Save Configration to an ALternate FiLe"을 선택하여 설정 내용을 파일로 저장합니다. 저장된 파일을 읽어들일 때에는 "Load an ALternate Configration FiLe" 메뉴를 선택합니다.

메뉴방식의 의존성

make menuconfig는 ncurses(new-curses) Library를 사용합니다. ncurses는 화면 입출력에 쓰이는 라이브러리입니다. ncurses가 설치되지 않았다면 make menuconfig 명령 뿐만 아니라 설정 프로그램 대부분이 실행되지 않으므로 반드시 설치합니다.

아래는 레드햇 계열 배포판에서 ncurses 라이브러리를 설치하는 명령입니다:

# mount /mnt/cdrom
# rpm -Uvh /mnt/cdrom/RedHat/RPMS/ncurses*

아래는 데비안에서 ncurses 라이브러리를 설치하는 명령입니다:

# apt-get install ncurses

2.1.2.3. make xconfig

X 윈도에서만 사용할 수 있으며 마우스를 이용하여 설정합니다. make xconfig를 수행하기 위해서는 X 윈도우와TcL/Tk 인터프리터/툴킷 라이브러리가 반드시 필요합니다.

주 화면의 "Store Configurationto FiLe"항목에서 설정 내용을 파일로 저장할 수 있습니다. 컴파일 환경은 /usr/src/linux/arch/i386/config.in에 저장되어 있습니다.

디폴트 설정을 참고하고 싶다면 사본을 만들어 둡니다:

# cd /usr/src/linux/arch/i386
# cp config.in{,.old}