· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/2.4 Kernel_Compile-KLDP

Linux KerneL Compile Guide

Linux KerneL Compile Guide

윤봉환, el@kldp.org

v.0.15.2, 7 Apr 2001, on vi
이 문서에서는 커널과 커널 컴파일에 대해 다룹니다. 커널 소스의 설치와 세부 환경설정, 컴파일과 새 커널 설치에 대해 이야기할 것입니다. 이 문서는 커널문서(/usr/src/linux/Documents/*)에서 가장 많은 도움을 받았으며, 단순한 커널 문서 번역물을 넘어서도록 만들기 위해 관련된 최신 문헌들, 웹 문서들을 살펴 나름대로의 해석들을 덧붙였습니다. 커널의 기능과 마이크로 컴퓨터에 대해 더 쉽고 빠르게 이해할 수 있도록 돕는 것이 이 문서의 목적입니다. 완전한 성과를 이룬 것은 아니겠지만, 공유할 것이 조금이라도 있으리라 기대합니다.

1. 커널

커널은 운영체제의 핵심입니다.

메모리에 상주하여 시스템 디바이스와 메모리, 프로세스를 관리하고, 입출력을 처리하는 등 유저의 다양한 요구에 바로 반응합니다. 지금은 다양한 프로그램들을 포함하는 운영체제를 가리키기도 하는 Linux라는 이름도 커널에 붙여진 것입니다.

리눅스의 다른 프로그램처럼 커널도 소스 형태으로 배포됩니다. 커널 소스는 모든 배포판에 들어있으며 ftp나 BBS유저그룹을 통해 다운받을 수 있습니다. 컴파일을 위한 환경은 잘 만들어진 몇 가지 스크립트를 이용하여 쉽게 설정할 수 있고 커널 해킹을 위한 문서 또한 쉽게 구할 수 있습니다. 다른 부분과 마찬가지로 리눅스의 열린 정신이 커널을 빠르고 강하게 만듭니다.

커널 컴파일은 항상 심각하게 다루어지는 주제이지만 왜 컴파일을 굳이 하느냐고 묻는 이들도 많습니다. 대개의 리눅서들이 두 세 가지 정도 이유를 말하는데, 일반적으로 커널 컴파일은 시스템 최적화의 한 수단으로 쓰입니다. 배포판에 포함되어 있는 기본 커널에는 혹시 쓰일지도 모르는 다양한 기능들이 들어 있어 실제로 여러분에게 필요한 커널보다 크기도 크고, 때로는 약간 성능이 떨어질 수도 있습니다. 그래서 많은 리눅서들이 시스템에 가장 적합한 작은 커널을 새로 만들어 리눅스 박스의 성능을 최대로 끌어올리는 것입니다. 또 한가지 이유는 새 커널을 생성해 빠르게 등장하는 진보된 기능을 사용하거나 새로운 장치를 지원하는 것입니다.

그리고 리눅서는 기쁨을 얻습니다. 그래서 어떤 커널 매니아들은 커널 컴파일 자체에 더 큰 흥미를 가진 듯 보이기도 합니다.

1.1 두 가지 커널 버전

리누스(LinuS TorvaLdS)와 많은 해커들의 노력으로 커널은 매우 빠르게 진보하고 있습니다. 그러나 기능 향상을 위해 빠르게 성장하는 동안 문제가 발생하기도 합니다. 대부분 일반 사용자들이 해결할 수 있는 범위를 넘어서는 것들이어서, 개발자들은 안정성과 발전을 위해 리눅스 커널을 두 가지 버전으로 부릅니다.

새로운 기능들이 실험되는 개발과정의 커널을 개발버전(DeveLopmentaLverSio N)이라 부르며, 새로운 것에 열광적인 리눅서와 테스터, 개발자를 위한 버전입니다. 개발버전은 많은 테스트와 패치과정을 거쳐 안정버전(StabLe verSion or productioN)으로 일반 사용자들에 배포됩니다. 배포판에 포함된 커널은 안정버전 커널입니다.

버전 번호

커널의 버전번호는 2.0.36또는 2.1.35와 같이세 부분으로 구성되어있습니다. 처음의 숫자는 커다란 변화가 있을 때 바뀌는 주 버전 번호입니다. 리눅스 커널의 2가 도스의 7보다 하찮게 느껴집니까? 버전 번호를 올리는 것은 개발자 마음이지만 버전번호가 모든 성능을 나타내는 것은 절대 아닙니다. 가운데 숫자는 짝수일 때 안정버전을 뜻하고 홀수일 때 개발버전임을 알려 줍니다. 마지막 숫자는 패치 레벨을 나타내는 서브 넘버입니다.

앨런 콕스의 커널버전

ac라는 꼬리를 붙여 리누스보다 먼저 커널을 내 놓는 이가 앨런 콕스입니다. 리누스가 새 커널 버전을 발표하기 전에 그보다 면저, 더 다양한 테스트해서 공개하므로, ac 커널이 더 새로운 기능들을 포함할 때가 많습니다.

2. 최신 커널 구하기

이 글을 쓰는 동안 최근 커널은 2.4.2 버전입니다. (이 글은 2.4.2 커널을 기초로 작성되었습니다.)

최신의 커널 소스를 구한다면 FTP사이트나 웹사이트를 통해 다운받습니다. 비교적 최근 배포판 CD-ROM을 가지고 있다면 그 안에서도 찾을 수 있습니다.

2.1 배포판 CD-ROM

리눅스 안정버전의 커널은 배포판 CD에 포함되어 있지만 아마 가장 최신의 커널은 아닐 것입니다.

레드햇 계열

국내에 가장 많은 사용자를 가진 레드햇 계열의 배포판에서 커널 소스는 CD-ROM의 RedHat/RPMS 디렉토리안에 헤더(예를 들어 kerneL-header-2.0.36-2.i386.rpm)와 소스(예를 들어 kerneL-Source-2.0.36-2.i386.rpm) 등 크게 두 부분으로 나뉘어 실려 있습니다. 커널 컴파일을 위해서는 두 패키지를 모두 설치해야 합니다.

# rpm -q kerneL-source
# rpm -Uvh kernel-header-2.2.14.i386.rpm
# rpm -Uvh kerneL-source-2.2.14.i386.rpm

그 밖에도 여러가지 패키지들이 있는데 커널 컴파일을 위해 모두 필요한 것은 아닙니다.

 kernel-source... 커널 소스 rpm
 kernel-headers... 커널 헤더 rpm
 kernel-doc... 커널 문?rpm
 kernel-BOOT... 부팅과 모듈 관련 rpm
 kernel-smp... 멀티 프로세셈?때 필요한 rpm
 kernel-pcmcia... 노트북 pcmcia에 필요한 rpm
 kernel-ibcs... Intel Binary Compatibility Specification 관련 rpm

데비안 배포판

데비안 배포판(최근 안정버전인 2.2 potato 버전을 바탕으로 글을 썼습니다)은 꼬리에 .deb라는 확장이름이 붙은 패키지 파일들이 있습니다. KLDP에서 한글 설정을 더해서 배포하는 포테이토는 모두 세 장인데 그 중 커널 소스는 첫 번째 디스크 /cdrom/dists/potato/main/binary-i386/ 아래 devel/ 디렉토리 안에 들어 있습니다. 커널 헤더는 세번째 디스크 /cdrom/dists/potato/main/binary-i386/devel 디렉토리에 들어 있습니다:

1: devel/kernel-source-2.2.17_2.2.17pre6-1.deb
1: misc/kernel-package_7.04.potato.3.deb
3: devel/kernel-headers-2.2.17_2.2.17pre6-1.deb
3: doc/kernel-doc-2.2.17_2.2.17pre6-1.deb

데비안 패키지를 설치할 때에는 "dpkg -i" 명령을 사용합니다:

첫 번째 시디롬을 넣고:
# mount /cdrom
# dpkg -i /cdrom/dists/potato/main/binary-i386/devel/kernel-source-2.2.17_2.2.17pre6-1.deb
# eject

두 번째 시디롬:
# dpkg -i /cdrom/dists/potato/main/binary-i386/devel/kernel-headers-2.2.17_2.2.17pre6-1.deb

세 번째 시디롬:
# dpkg -i /cdrom/dists/potato/main/binary-i386/doc/kernel-doc-2.2.17_2.2.17pre6-1.deb

2.2 FTP Site

ftp.kernel.org에 anonymous로 접속하여 /pub/linux/kernel디렉토리에서 리누스가 새로 발표한 커널 소스를 받을 수 있습니다.

그 밖의 미러 사이트:

커널 소스와 함께 패치파일을 받는 것을 잊지 말아야 합니다.

2.3 리눅스 유저 그룹

천리안, 하이텔, 나우누리 등 PC통신망의 리눅스 유저그룹(동우회?동호회)의 자료실에서 다운 받을 수 있습니다. 일반 전화회선을 이용한 모뎀 사용자라면 인터넷을 통한 다운로드보다 오히려 빠르게 전송받을 수 있습니다. 커널 2.4.2는 25MByteS 정도 크기입니다.

3. 커널 소스 설치하기

이 절에서는 Tar-Ball(tar로 묶은 다음 gzip으로 압축한 패키지) 형태의 소스를 다운받아 적절한 곳에 풀어 놓고, 기초 환경을 구성하는 방법을 설명합니다.

3.1 컴파일을 위한 기본 도구 알아보기

새 커널을 컴파일하기 위해 업데이트가 필요한 라이브러리나 프로그램이 있는지 확인하여 필요하다면 새로 설치합니다. 그러나 모든 도구들이 반드시 필요한 것은 아닙니다. 예를 들어 pcmcia-cs는 pcmcia장비가 없는 시스템에서는 설치하지 않아도 됩니다.

여러분이 새 커널 소스를 /usr/src아래 설치하고 linux라는 이름으로 링크해 두었다면, 관련된 문서는 /usr/src/linux/Documentation/Changes입니다.

아래는 각 도구마다 최소한의 버전(2.4.2 커널을 위한)과 확인하는 방법입니다. 예를 들어 Gnu C의 버전을 확인할 때에는 "gcc --version"이라는 명령을 사용합니다.

---------------+---------------+--------------------------------------
패키지         |  최소버전     |  확인하는 방법 
---------------+---------------+--------------------------------------
Gnu C        |  2.91.66    |  # gcc --version 
Gnu make     |  3.77       |  # make --version 
binutils     |  2.9.1.0.25 |  # ld -v 
util-linux   |  2.10o      |  # fdformat --version 
modutils     |  2.4.2      |  # insmod -V 
e2fsprogs    |  1.19       |  # tune2fs 
reiserfsprogs|  3.x.0b     |  # reiserfsck 2>&1|grep reiserfsprogs 
pcmcia-cs    |  3.1.21     |  # cardmgr -V 
PPP          |  2.4.0      |  # pppd --version 
isdn4k-utils |  3.1pre1    |  # isdnctrl 2>&1|grep version 
---------------+---------------+--------------------------------------

아래는 도구들을 구하는 인터넷 위치입니다. 파일 이름이나 버전 번호는 조금씩 달라질 수도 있습니다:

modutils :

위치 - ftp://ftp.kernel.org/pub/linux/utils/kernel/modutils/v2.4/

파일 - modutils-2.4.2.tar.gz

util-linux :

위치 - ftp://ftp.kernel.org/pub/linux/utils/util-linux/

파일 - util-linux-2.10s.tar.gz

E2fsprogs :

위치 - ftp://download.sourceforge.net/pub/sourceforge/e2fsprogs/

파일 - e2fsprogs-1.19.tar.gz 혹은 1.19-0.i386.rpm

주의! sourceforge에서 ls 명령을 사용하지 말 것..^^ 파일과 디렉토리가 너무 많아 마치 다운된 듯 보일 수도..

Reiserfsprog :

위치 - ftp://ftp.namesys.com/pub/reiserfsprogs/

파일 - reiserfs_utils-3.6.25-fsck-3.x.0b.tar.gz, reiserfsprogs-3.x.0d.tar.gz

Pcmcia-cs :

위치 - ftp://pcmcia-cs.sourceforge.net/pub/pcmcia-cs/

파일 - pcmcia-cs-3.1.24.tar.gz

PPP :

위치 - ftp://linuxcare.com.au/pub/ppp/

파일 - ppp-2.4.0b4.tar.gz

Isdn4k-utils :

위치 - ftp://ftp.isdn4linux.de/pub/isdn4linux/utils/

파일 - isdn4k-utils.v3.1pre1.tar.gz

3.2 컴파일을 위한 기본 도구 설치하기

새 커널 컴파일과 모듈 설정에 쓰이는 도구들을 인터넷으로부터 가져왔다면 다음과 같은 과정을 거쳐 자신의 머신에 설치합니다. 예를 들어 /usr/local/src/kernel-2.4/util-linux-2.10s.tar.gz를 설치한다면:

1. 먼저 적당한 위치에 압축을 풀어놓습니다.

   # cd /usr/local
   # tar xvzf /usr/local/src/kernel-2.4/util-linux-2.10s.tar.gz

2. 아마 util-linux-2.10s라는 이름으로 새로운 디렉토리가 만들어지고 
   그 안에 소스 파일들이 놓일 것입니다. 

   # cd util-linux-2.10s

3. 시스템 정보를 수집해서 컴파일을 위한 기초환경을 구성합니다. 

   # ./configure

4. 3에서 생성한 Makefile등 설정파일을 이용해 컴파일하고 설치합니다.

   # make;make install

3.3 커널 소스 풀기

일반적으로 커널 소스는 /usr/src 디렉토리 아래 설치합니다. /usr/src 아래에는 실제 헤더, 커널이 설치된 디렉토리와 그 링크가 있습니다. 이전 커널이 들어있는 디렉토리에 대한 링크를 삭제하고(우선은 링크만 지웁니다) 새 커널 소스가 설치된 디렉토리를 Linux라는 이름으로 다시 링크합니다.

# cd /usr/src
# rm -f linux
# mkdir linux-2.4.2
# tar xvzf linux-2.4.2.tar.gz linux-2.4.2
# ln -s linux-2.4.2 linux

RPM(다른 머신에서 미리 컴파일된 바이너리 패키지)이나 dpkg, 혹은 Tar-Ball 형태의 바이너리를 설치하지 않고, 소스코드를 컴파일해야 한다면 /usr/src/linux아래 코드들을 참고합니다.

새로 설치한 커널 소스가 개발버전이라면 컴파일 후 정상적으로 작동되더라도 이전의 안정버전을 삭제하지 않도록 합니다.

3.4 커널 패치

패치파일은 diff 유틸리티를 이용하여 커널의 일부분을 수정합니다. 패치파일은 빠르게 갱신되며 새로운 패치파일은 이전 패치에 대한 정보를 포함하지 않습니다. 그러므로 패치레벨은 순서대로 모두 적용해야만 합니다. 패치가 많이 이루어진 후라면 커널 소스 전체를 다시 받는 것이 유리할 수도 있습니다.

커널 2.2.9에서 커널 2.4.2로 업그레이드하기 위해서 patch-2.2.10.gz, patch-2.2.11.gz 모두를 순서대로 적용해야 합니다. 아래에 예가 있습니다.

옵션 가운데 p0는 패치파일에 들어있는 경로에 대한 상대적인 위치를 뜻합니다. 예를 들어 패치파일 안에 패치할 대상이 들어 있는 디렉토리와 대상 파일을 "/u/howard/src/blurfl/blurfl.c"이라고 설정했다면 -p0는 "/u/howard/src/blurfl/blurfl.c", -p1은 "u/howard/src/blurfl/blurfl.c", -p4는 "blurfl/blurfl.c"가 됩니다.

# cd /usr/src
# ls
linux linux-2.2.9 patch-2.2.10.gz patch-2.2.11.gzpatch-2.4.2.gz
# gzip -cd patch-2.2.10.gz | patch -p0
# gzip -cd patch-2.2.11.gz | patch -p0
# gzip -cd patch-2.4.2.gz | patch -p0

많은 패치 작업은 셸의 for 명령을 이용해 자동화할 수 있습니다.

# for LeveL in 10 11 12 ; do
> gzip -cd patch-2.2.$[LeveL].gz | patch -p0
> done
#
/usr/src/linux/scripts 디렉토리에는 여러 단계의 패치 작업을 자동으로 실행하는 스크립트 patch-kerneL이 있습니다.patch-kerneL은 /usr/src 아래에 있는 커널 패치파일들과 커널 소스의 버전과 비교하여 순서에 따라 패치를 적용합니다.
# cd /usr/src
# ls
linux linux-2.2.9 patch-2.2.10.gz patch-2.2.11.gzpatch-2.4.2.gz
# linux/scripts/patch-kernel
패치가 성공했다면 패치 대상이 된 파일의 원본은 이름끝에 .orig를 붙여 백업됩니다. 패치 과정에서 문제가 생겨 실패했다면 실패한 파일 이름 뒤에 .rej를 붙인 파일을 만듭니다. *.rej파일을 살펴보고 패치 작업을 다시 수행합니다.

# find /usr/src/linux/ -name "*.rej"

*.rej 파일을 찾을 수 없고 패치가 성공했다면 *.orig파일을 삭제합니다.

# find /usr/src/linux/ -name "*.orig" -exec rm -f {} \;

패치된 커널 소스 디렉토리 이름을 패치레벨 번호로 바꾸고 링크를 다시 설정합니다.

# cd /usr/src
# rm -f linux
# mv linux-2.2.9 linux-2.4.2
# ln -s 

3.5 한글 패치

최근 버전 커널에서는 한글 코드페이지와 로케일이 들어 있어 따로 패치하지 않아도 한글로 된 파일 이름 등을 사용할 수 있습니다.

3.6 make mrproper

이전에 설정한 정보를 지우거나 새로운 커널 소스를 가져다 컴파일 할 때에는 이 명령을 먼저 사용해야 합니다. 이전 커널을 컴파일할 때 만들어진 오브젝트 파일(*.o)과 의존성 설정, 컴파일 환경 설정값, 버전 정보 등 새로 시작하는 컴파일에 영향을 주는 이전 정보들을 삭제합니다. 이전에 설정된 컴파일환경을 재사용한다면 이 과정을 건너뜁니다.

# cd /usr/src/linux
# make mrproper

4. 컴파일 환경 설정 명령

이 문서는 IBM PC 스타일의 시스템을 가진 일반 사용자를 위한 컴파일 환경을 조언합니다. 알파 시스템이나 선 머신을 가지고 있다면 한글 리눅스 문서 프로젝트 팀의 홈페이지를 찾아가 봅니다.

http://KLDP.org

4.1 미리 알고 있으면 좋은 것들

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

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

 # cat /proc/pci 
PCI devices found:
Bus  0, device   0, function  0:
  Host bridge: VIA Technologies VT 82C598 Apollo MVP3 (rev 4).
    Medium devsel. Fast back-to-back capable. Master Capable. Latency=16. 
    Prefetchable 32 bit memory at 0xe0000000 [0xe0000008].
Bus  0, device   1, function  0:
  PCI bridge: VIA Technologies VT 82C598 Apollo MVP3 AGP (rev 0).
    Medium devsel. Master Capable. No bursts. Min Gnt=12.
Bus  0, device   7, function  0:
  ISA bridge: VIA Technologies VT 82C586 Apollo ISA (rev 71).
    Medium devsel. Master Capable. No bursts. 
Bus  0, device   7, function  1:
  IDE interface: VIA Technologies VT 82C586 Apollo IDE (rev 6).
    Medium devsel. Fast back-to-back capable. Master Capable. Latency=32. 
    I/O at 0x6400 [0x6401].
Bus  0, device   7, function  2:
  USB Controller: VIA Technologies VT 82C586 Apollo USB (rev 2).
    Medium devsel. IRQ 9. Master Capable. Latency=32. 
    I/O at 0x6800 [0x6801].
Bus  0, device   7, function  3:
  Host bridge: VIA Technologies VT 82C586B Apollo ACPI (rev 16).
    Medium devsel. Fast back-to-back capable. 
Bus  0, device  11, function  0:
  Ethernet controller: AMD Unknown device (rev 82).
    Vendor id=1022. Device id=2001.
    Medium devsel. Fast back-to-back capable. IRQ 11. Master Capable. Latency=32. Min Gnt=24.Max Lat=24.
    I/O at 0x6c00 [0x6c01].
    Non-prefetchable 32 bit memory at 0xed001000 [0xed001000].
Bus  0, device  12, function  0:
  Ethernet controller: DEC DC21140 (rev 34).
    Medium devsel. Fast back-to-back capable. IRQ 10. Master Capable. Latency=32. Min Gnt=20.Max Lat=40.
    I/O at 0x7000 [0x7001].
    Non-prefetchable 32 bit memory at 0xed000000 [0xed000000].
Bus  1, device   0, function  0:
  VGA compatible controller: NVidia Unknown device (rev 21).
    Vendor id=10de. Device id=2c.
    Medium devsel. Fast back-to-back capable. IRQ 10. Master Capable. Latency=32. Min Gnt=5.Max Lat=1.
    Non-prefetchable 32 bit memory at 0xe8000000 [0xe8000000].
    Prefetchable 32 bit memory at 0xea000000 [0xea000008].

4.2 환경설정 인터페이스

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

make는 "makefile"에 서술된규칙을 이용하여 소스코드 파일들을 관리합니다. 최근 변경을 적용하여 소스코드를 오브젝트 파일로 컴파일하고 라이브러리 파일과 링크하여 실행 가능한 파일로 컴파일 하는 과정들을 자동으로 처리합니다.

make config 또는 make oldconfig

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

make menuconfig

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

Linux Kernel v2.4.2 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><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가 설치되지 않았다면 실행되지 않는 프로그램들이 많으므로 반드시 설치합니다.

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

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}

5. 환경 설정 규칙: "내 커널은 내가 만든다"

커널은 시스템이 동작하는 동안 계속 메모리에 적재되어 있으므로 환경 설정이 매우 중요합니다. 다음 몇 가지 규칙을 잘 알고 반드시 지킵니다.

  • 작은 것이 아름답다는 유닉스철학을 생각합니다. 필요 없는 드라이버는 모두 제거합니다.
  • 모듈 기능은 반드시 켜둡니다. 모듈 로더 설정도 켭니다.
  • 도움말은 항상 "확실하지 않으면" 기본 설정을 그냥 두라고 경고합니다.
  • 모듈로 설정한 기능은 어떤 이름으로 컴파일 되는지 살펴봅니다. 모듈 이름은 <F1> 키를 눌러 도움말 상자에서 확인할 수 있습니다.
  • 이 문서에서 설정한 환경을 자신의 시스템에 그대로 적용하는 것은 좋은 생각이 아닙니다. 이 문서는 표준적인 환경설정은 제안하지 않습니다.
  • 모듈 기능은 매우 유용하지만 모든 옵션에 다 적용되는 것은 아닙니다. 모듈로 설정할 수 있는 것 가운데 어떤 것들은 커널에 내장하는 것이 좋을 수도 있습니다.

잘 모르는 기능은 커널 소스에 따라나오는 문서 등을 확인하여 익힙니다.

특정 하드웨어에 대한 문서는 drivers 아래 있습니다. 필요하다면 LDP, HOWTO, 뉴스그룹 기사, Readme, 메뉴얼 등 도움을 주는 많은 문서를 읽어봅니다. 특히 리눅스 커널 디렉토리 /usr/src/linux/Documentation 아래 문서들을 읽습니다.

6. Code maturity LeveL optionS

코드 성숙도(成熟度)에 관한 설정입니다.

[*] Prompt for deveLopment and/or incompLete code/drivers

Y를 선택하면 개발중인 새로운 기능과, 새로운 드라이버를 포함할 것인지에 대해 여러분에게 조금 더 많은 질문을 합니다. 시험적인 기능은 뒷부분에 "(EXPERIMENTAL)"이란 꼬리표가 붙습니다.

이 옵션을 켜 두었을 때 시스템 특성에 따라 에러가 발생하기도 합니다. 컴파일 과정이나 새 커널로 부트하는 과정에서 문제가 생겼는데 그 원인을 정확하게 알 수 없다면 이 옵션에 [N]를 설정해 봅니다. 이 기능을 선택하지 않아도 안정버전의 모든 기능을 사용할 수 있습니다.

7. LoadabLe moduLe SupporT

리눅스의 멋진 모듈기능에 대한 설정입니다.

[*] EnaLbLe LoadabLe moduLe Support
[ ] Set verSion information on aLL SymboLS for moduLeS
[*] KerneL moduLe Loader
EnaLbLe LoadabLe moduLe Support : verSion 1.2 이후부터 리눅스 커널은 모듈 기능을 이용합니다. 모듈을 이용하면 자주 쓰이지 않는 장치 드라이버나 기능들을 커널 바깥에 모듈로 만들어 두었다가 필요할 때에만 동적으로 메모리에 적재하여 사용합니다. 작업이 끝나면 메모리에서 다시 제거하므로 메모리를 효율적으로 사용할 수 있고, 커널 크기가 감소합니다. 또한, 모듈은 스스로가 컴파일되어 독자적인 기능을 가지므로 모듈로 설정한 기능에 변화가 있더라도 전체 커널에는 손대지 않을 수도 있습니다. 파일시스템, 장치 드라이버, 바이너리 포맷 등 많은 기능이 모듈을 지원합니다. 반드시 [Y]를 선택합니다.

Set verSion information on aLL SymboLS for moduLeS : 다른 버전의 커늘에서 만들어진 모듈이나 커널과 함께 배포되지 않는 특별한 모듈을 사용할 수 있도록 하는 기능입니다. 일반적으로 [N]를 선택합니다.

KerneL moduLe Loader : kerneld 데몬이 대체된 기능입니다. 모듈로 만들어진 기능을 필요할 때 적재하고 제거하는 작업들을 modprobe를 이용해 커널이 자동으로 관리합니다. 물론 적절한 옵션들도 덧붙입니다. 잘 모르겠으면 [Y]를 선택합니다.

8. ProceSSor type and featureS

컴퓨터의 중앙처리장치에 대한 기능들입니다.

(K6/K6-II/K6-III) ProceSSor famiLy
< > Toshiba Laptop support
< > /dev/cpu/microcode - Intel IA32 CPU microcode support
< > /dev/cpu/*/msr - Model-specific register support
< > /dev/cpu/*/cpuid - CPU information support
(off) High Memory Support
(1GB) Maximum Physical memory
[ ] Math emuLation
[ ] MTRR (Memory Type Range RegiSter) Support
[ ] Symmetric muLti-proceSSing Support

(K6/K6-II/K6-III) ProceSSor famiLy : 
( ) 386
( ) 486
( ) 586/K5/5x86/6x86/6x86MX
( ) Pentium-Classic
( ) Pentium-MMX
( ) Pentium-Pro/Celeron/Pentium-II
( ) Pentium-III
( ) Pentium-4
(X) K6/K6-II/K6-III
( ) Athlon/K7
( ) Crusoe
( ) Winchip-C6
( ) Winchip-2
( ) Winchip-2A/Winchip-3
그럴 일은 없겠지만 자신의 CPU가 어떤 것인지 모른다면 386을 선택해도 잘 동작합니다. 386을 선택하면 인텔 계열의 모든 프로세서에서 동작하는 커널이 만들어집니다. 물론 정확한 설정이 더 좋습니다. 커널은 CPU 각각의 특성과 버그에 최적화될 것입니다.

Toshiba Laptop support : Toshiba 노트북의 위력이 대단한가봅니다. 커널 옵션에도 들어 있네요. 여러분이 도시바 랩탑을 쓰고 있고, 이 옵션에 [Y]를 답하면, 바이오스 설정과 절전 옵션 등 Toshiba 랩탑을 위한 시스템 관리 모드를 사용할 수 있다고 합니다. [N]

/dev/cpu/microcode - Intel IA32 CPU microcode support : 이 기능을 사용하려면 "File systems" 섹션에 있는 "/dev file system support" 옵션도 켜 두어야 합니다. IA32 계열의 인텔 프로세서(예를 들어 펜티엄 프로, 펜티엄 II, III, 4, Xeon 등)에서 마이크로코드를 업데이트 할 수 있습니다.

/dev/cpu/*/msr - Model-specific register support : 이 장치는 x86 Model-Specific Registers(MSRs)에 접근할 수 있는 특권을 프로세스에 줍니다. MSR은 멀티-프로세서 시스템에서 지정한 CPU에 직접 접근합니다. 여러분의 시스템이 CPU가 두 개 이상인 멀티 프로세서 시스템이고 이 기능을 사용하는 프로그램이 있다면 [M]이나 [Y]를 선택합니다.

/dev/cpu/*/cpuid - CPU information support : 이 장치는 특정한 프로세서에서 실행될 수 있도록 x86 CPUID 명령들에 접근할 수 있는 특권을 줍니다. 여러분의 시스템이 CPU가 두 개 이상인 멀티 프로세서 시스템이고 이 기능을 사용하는 프로그램이 있다면 [M]이나 [Y]를 선택합니다.

(off) High Memory Support
(X) off
( ) 4GB
( ) 64GB

High Memory Support : 리눅스는 x86시스템에서 64 기가바이츠까지 물리적 메모리를 사용할 수 있습니다. 그렇지만, 비트 x86프로세서에서 주소 공간은 32비트이므로 최대 4 기가바이트까지만 지원합니다. 그런 이유로, 여러분이 물리적 메모리를 많이 가지고 있다 하더라도 모든 것을 커널에 의해 "영구적으로 사상(map)" 할 수는 없습니다. 영구적으로 지도를 만들 수 없는 물리적 메모리를 "상위 메모리 (high memory)"라 부릅니다. 모든 물리적인 RAM을 더해서 1 기가바이츠가 넘지 않는다면(앞으로도) "off"라고 답합니다. (대부분의 사용자에게 적당한 것이어서 기본값으로 설정되어 있습니다). 물리적 램이 1 이상 4기가바이츠 미만이라면 "4GB"를 선택합니다. 4기가바이트 이상 있다면 "64GB"를 선택합니다. 이 옵션은 인텔 PAE(Physical Address Extension)모드를 켭니다. PAE에는 3-레블 페이징이 있는데 리눅스에서는 모든 것을 지원합니다. Pentium Pro 이상의 인텔 프로세서에서는 모두 PAE를 지원합니다. 하지만 여러분의 프로세서가 PAE를 지원하지 않는다면 아마 부트조차 되지 않을 것입니다. 물리적 메모리는 커널에서 자동으로 그 크기를 감지하지만 부트 패러미터에 메모리 크기를 직접 지정할 수도 있습니다. (예를 들어 "mem=256M") 확실하지 않다면 (off)를 선택하는 것이 좋습니다.

Math emuLation : 수치연산 보조프로세서(co-proceSSor 또는 부동소수점 연산기)가 없는 386, 486SX 시스템에서 코프로세서를 에뮬레이션하는 기능입니다. CPU 처리 속도나 능력이 매우 낮았던 때에 수치연산만 도와주는 전용 프로세서를 따로 구입해서 사용하던 때가 있었습니다. 펜티엄, 혹은 K6 이상 시스템을 사용한다면 [N]을 설정합니다.

MTRR (Memory Type Range ReSiSter) Support : 인텔 Pentium II나 Pentium Pro, K6 시스템의 PCI나 AGP 버스 비디오 카드에 유용합니다. 이 기능은 이론상 이미지를 2.5배 이상 빨리 쓸 수 있도록 만든다고 합니다. MTRR이 없더라도 이 기능을 켜두는 것은 안전합니다.[Y]

Symmetric muLti-proceSSing Support : SMP는 두 개 이상의 프로세서(CPU)를 사용하는 멀티프로세싱 시스템을 위한 설정입니다. CPU 각각에 대한 정보는 "cat /proc/cpuinfo" 명령이나 ktop 등 유틸리티로 볼 수 있습니다. 이 곳에 "Y"를 답하고 프로세서 패밀리 아래 "586" 또는 "Pentium"을 선택하면 486 아키텍쳐에서는 동작하지 않을 것입니다. 마찬가지로 "PPro" 아키텍쳐는 모든Pentium 기반의 보드에서 동작하지 않을 것입니다. SMP를 사용하기 위해서는 "Enhanced ReaL Time CoLck Support"도 [Y]를 선택해야합니다. 그리고, "Advanced Power Management" 코드는 diSabLe 시켜야 합니다. 싱글프로세서를 가진 시스템에서 이 기능을 사용하면 제대로 동작하지 않거나, 오히려 시스템이 느려질 수 있습니다. CPU가 하나라면 [N].

9. GeneraL SetuP

네트워킹과 버스 프로토콜, 절전기능 등 시스템에 전반적으로 영향을 주는 설정들입니다.

[*] Networking Support
[ ] SGI ViSuaL WorkStaion Support
[*] PCI Support
(Any) PCI acceSS mode
[*] PCI device name database
[ ] EISA support
[ ] MCA support
[*] Support for hot-pluggable devices
PCMCIA/CardBus support  --->
[*] SyStem V IPC
[ ] BSD ProceSS Accounting
[*] SysctL Support
(ELF) Kernel core (/proc/kcore) format
<M> KerneL Support for a.out binarieS
<*> KerneL Support for ELF binarieS
<*> KerneL Support for MISC binarieS
[*] Power Management BIOS Support
[ ]   ACPI support
< >   Advanced Power Management BIOS support

Networking Support : 네트워크 없는 리눅스는 그 재미를 절반도 느낄 수 없습니다. 여러분이 네트워크에 대해 전혀 모르더라고 반드시 선택합니다. 네트워크에 연결되어 있지 않더라도 루프백 기능에서 필요하며, 전화선을 통해 인터넷에 접속하는 SLIP, PPP diaL-up 네트워킹에서도 필요합니다. 어떤 프로그램들, 특히 X 윈도우용 프로그램들은 네트워크 기능의 설정되어 있어야 제대로 동작하는 경우가 많습니다. 이미 설치되어 있는 도구들이 새 커널에 있는 기능을 미처 지원하지 못할 수도 있으므로, 커널을 업그레이드할 때 네트워킹 툴 업데이트를 고려해야 합니다. [Y]

SGI ViSuaL WorkStaion Support : 슈퍼 컴퓨터 크레이로 유명한 Silicon Graphics의 SGI 320이나 540 워크스테이션에서 리눅스를 사용한다면 [Y]를 답합니다. 다른 PC 보드에서는 동작하지 않을것입니다. 여러분 대부분은 "IBM PC 호환기종"이라 불리는 머신을 사용하고 있을테니 [N]를 답하는 것이 좋습니다.

PCI Support : 대부분의 486 시스템, Pentium 이상 기종의 마더보드는 PCI 버스를 지원하는 바이오스를 사용합니다. ISA(대개 16비트 컴퓨터 시절), EISA(386이나 486 초기 시절), MCA(IBM의 PS/2 전용)가 아닌 여러분 대부분은 [Y]를 선택합니다.

(Any) PCI acceSS mode : 오래된 PCI 마더보드 가운데 BIOS가 망가지거나 버그 때문에 PCI 장치들을 찾아내지 못하는 것이 있습니다. 리눅스는 커널이 BIOS의 도움 없이 하드웨어에 접근할 수 있는데 이 기능에는 세 가지 옵션이 있습니다. "BIOS"는 BIOS를사용하고, "Direct"는 BIOS를 사용하지 않습니다. "Any"는 커널이 직접 접근해 보고 동작하지 않으면 BIOS로 돌아갑니다. "Any"로 두는 것이 안전합니다.

PCI device name database : 기본 값으로, 커널은 모든 알려진 PCI 장치 이름들에 대해 /proc/pci, /proc/ioports에 사용자들이 쉽게 알아볼 수 있는 정보를 만들기 위해, 데이터 베이스를 가지고 있습니다. 이 데이터베이스는 커널 이미지 크기를 80KB 늘이지만, 시스템이 부트된 다음에는 다시 회수되는 메모리이므로, 실제로 커널 메모리에는 아무 영향을 주지 않습니다. 아무튼, 여러분이 설치디스켓이나 임베디드 시스템 등 크기가 가장 중요한 커널을 만든다면 이 기능을 뺄 수 있습니다. 다만, 장치들의 이름 대신 장치 ID 번호들을 사용해야 할 것입니다. 잘 모르겠으면 [Y]를 선택합니다.

EISA support : EISA(Extended Industry Standard Architecture) 버스는 오래 전에 (1988년부터 1995년 사이) 쓰이던 기능으로 PCI 버스가 나타난 이후로 아주 사라져 버렸습니다. 여러분의 PC에서 EISA를 사용하는 것이 확실할 때에만 이 기능을 사용합니다. 펜티엄 이상을 사용하는 모든 사용자는 [N]을 선택합니다.

MCA : MicroChanneL Architecture는 IBM PS/2 머신에서 찾아볼 수 있는데 국내에서는 잘 쓰이지 않습니다. [N]을 선택합니다.

Support for hot-pluggable device : PCMCIA-나 PC-카드 등은 컴퓨터가 동작하는 동안 장치를 새로 꽂거나 뽑는 일을 할 수 있습니다. 이런 기능을 이용하는 장치로는 네트워크 카드, 모뎀, 하드 드라이브 등 여러가지가 있는데 대개 랩탑 컴퓨터에서 사용하고 있습니다. 요즘에는 데스크탑에서도 USB를 이용해 이런 기능을 제공합니다. HOTPLUG와 KMOD를 활성화하고 커널 모듈로 만든 다음 에이전트 소프트웨어 (http://linux-hotplug.sourceforge.net)를 가져와서 시스템에 설치해야합니다.

PCMCIA/CardBus support : CardBus는 PC-카드를 위한 32 비트 버스 매스터링 아키텍쳐입니다. (원래 PCMCIA 표준 제품들은 16 비트 와이드 버스밖에 없습니다) 새로 나온 PC-카드 대부분은 CardBus 카드들입니다. PC-카드를 사용하려면 먼저 이 기능을 지원하는 소프트웨어를 (David Hind"s pcmcia-cs 패키지) 설치해야 합니다. 여러분에게 필요한 것인지 잘 모르겠다면 [Y] 또는 [M]을 선택합니다.

[*] CardBus support [ ] i82365 compatible bridge support [ ] Databook TCIC host bridge support

SyStem V IPC(Inter ProceSS Communication) : 프로세스 사이에서 동기화와 정보교환을 위한 라이브러리 함수와 시스템 콜 모음입니다. 대개 [Y]를 선택합니다. 특히, Dos emulator와 같은 프로그램을 사용하려 한다면 동기화를 위해 [Y]를 선택해야 합니다. 메모리에 적재되어 실행중인 프로그램이 프로세스이며 프로세스는 프로그램의 코드들과 프로그램 실행을 위한 다양한 값들을 포함하는 것으로 어떤 이들은 프로그램의 영혼이라 부르기도 합니다. 이 기능을 선택하면 커널이 18KB 정도 늘어나겠지만 반드시 [Y]라 답해야 합니다.

BSD ProceSS Accounting : 프로세스가 끝날 때 커널에 의해 프로세스 정보가 파일에 추가됩니다. 프로세스 정보는 생성시간, 소유권, 커맨드 이름, 메모리 점유율, 터미널 제어 등이 포함됩니다. 이 옵션에 [Y]라 답하는 것이 여로모로 유용합니다.

SysctL Support : sysctl 인터페이스는 커널컴파일 재질의나 시스템 재부팅 없이 실행중인 커널 매개변수를 동적으로 변경하는 방법을 제공합니다. 주 인터페이스는 시스템 콜로 이루어져 있지만, /proc 파일시스템이 설치되어 있다면 편집 가능한 sysctl 요소 트리가 /proc/sys 디렉토리 아래 생성됩니다. (특별히 바이너리가 필요한 경우를 제외하고 일반적으로 텍스트 포맷으로 구성됩니다) 이 기능을 선택하면 커널 크기가 8KB 늘어납니다. 그러나 인스톨/복구 디스크를 위해 사용하는 특수한 커널이나, 메모리가 극단적으로 적은 시스템이 아니라면 [Y]를 선택하는 것이 좋습니다. 대표적인 sysctl 기능으로 /proc/sys/kernel/panic이 있습니다. panic에 0보다 큰 정수값을 설정하면 시스템이 멈추었을 때 정해진 시간(초)이 지나면 자동으로 리부트합니다. 0은 이 기능을 비활성화합니다.

(ELF) Kernel core (/proc/kcore) format : "support for /proc file system"을 활성화하면 커널의 코어 이미지가 /proc/kcore 파일에 담깁니다. gdb에서 활용할 수 있습니다: $ cd /usr/src/linux ; gdb vmlinux /proc/kcore 둘 가운데 하나를 선택할 수 있습니다: ELF를 선택하면 /proc/kcore 파일이 ELF 코어 포맷으로 구성되고, A.OUT을 선택하면 이전 버전의 binutils 등 오래된 도구들이나 아키텍쳐에서 사용할 수 있습니다. 커널을 컴파일 할 때 "-g"옵션으로 디버깅 정보를 넣은 다음, 이 커널이 실행중인 동안에도 커널 데이터 구조를 시험하는 등 용도로 사용합니다. 잘 모르겠거나, 커널 해커가 아니라면 기본값인 ELF를 그대로 두는 것이 좋습니다.

KerneL Support for a.out binarieS : a.out(aSSembLer.output)은 ELF 이전에 쓰이던 바이너리로 점차 사라져 가는 포맷입니다. 대개 이 기능을 사용할 일이 없는데, 정말 필요하다면 모듈로 설정합니다[M].

KerneL Support for ELF binarieS : ELF(Executable and Linkable Format)은 서로 다른 OS나 Architecture에 호환이 될 수 있도록 표준화된 Binary File Format입니다. 또, ELF는리눅스 바이너리 포맷의 표준이기도 하므로 반드시 [Y]를 선택합니다. 리눅스 커널과 많이 쓰이는 모든 프로그램들이 ELF 포맷으로 컴파일 됩니다. ELF는 a.out에 비해 진보된 기능들을 포함합니다. 특히 a.out 포맷은 ELF의 공유 라이브러리의 동적 지원 기능이 없습니다. [Y]

KerneL Support for MISC binarieS : Java, EmacS-LiSp, DOS 실행파일 등 을 커널 바이너리 클래스에 등록했다면 인터프리터를 거치지 않고 셸 프롬프트에서 파일 이름을 쓰는 것만으로 간단히 프로그램을 시작할 수 있습니다. [Y]라고 답했다면 "KerneL Support for JAVA binarieS", "kerneLSupport for Linux/InteLELF bianrieS" 기능은 필요 없습니다. 어떻게 해야 할지 모르겠으면 [Y]를 선택합니다.

Power Management support : 컴퓨터를 끄거나 전력 소비를 줄이는 등 기능을 전원관리라 부릅니다. 여기에는 APM과 ACPI 두 가지 표준이 있습니다. 둘 가운데 어떤 것이든 원한다면 [Y]를 답하고 아래에서 적절한 옵션들을 선택합니다. 이 기능은 랩탑의 배터리처럼 시간 제한이 있는 전원장치를 가진 시스템에서는 매우 유용하지만 서버에서는 그다지 쓸모 있는 기능은 아닌 것 같습니다. 여러분의 서버가 슬립모드에서 깨어나는 동안 사용자들이 지쳐버릴지도 모릅니다. 이 옵션을 끄더라도 시스템을 멈추는 hlt 명령은 사용할 수 있습니다.

ACPI support : 리눅스에서 ACPI/OSPM 지원기능은 현재 개발중입니다. 그래서 이 옵션은 아직 완전하지 않습니다. ACPI(Advanced Configuration and Power Interface)는 이전의 전원관리 표준보다 더욱 세세한 정보들을 다룬다고 합니다. ASPI/OSPM을 사용하려면 이 기능을 지원하는 하드웨어/펌웨어를 갖춘 시스템이어야 하는데, 잘 모르겠다면 [N]을 선택하는 것이 안전합니다.

9.1 APM

Advanced Power Management BIOS Support : 노트북 등 전원관리가 필요한 시스템이라면 설정합니다.

[ ]     Ignore USER SUSPEND 
[ ]     EnabLe PM at boot time
[ ]     Make CPU IdLe caLLS when idLe 
[ ]     EnabLe conSoLe bLanking uSing APM
[ ]     RTC StoreS time in GMT
[ ]     ALLow interruptS during APM BIOS caLLS
[ ]     Use real mode APM BIOS call to power off (NEW)

9.2 사라진 것들..

PCI quirkS : BIOS가 깨어져 PCI 장치설정에 문제가 있다면 [Y]를 선택합니다. BIOS가 잘 동작한다면 [N]을 선택합니다.

PCI bridge optimization (experimentaL) : CPU와 PCI, 또는 PCI와 ISA 사이에 브리지가 있어 서로 다른 버스사이에서 데이터를 전송할 수 있도록 논리적인 기능을 합니다. 마더보드에 이 기능을 담당하는 칩셋이 있어 PCI는 다른 다양한 버스구조를 가진 슬롯과 함께 쓰일 수 있습니다. 바이오스에 문제가 있고 PCI 버스를 사용한다면 이 기능을 선택해 장치 엑세스 속도를 향상시킬 수 있습니다.

Backward compatibLe /proc/pci : 새로운 방법은 /proc/bus/pci를 사용합니다. 하지만 오래된 프로그램들을 가지고 있어 /proc/pci 파일에서 PCI 정보를 읽는다면 [Y]를 선택합니다. 확실하지 않다면 [Y]를 선택하는 것이 안전합니다.

KerneL Support for JAVA binarieS : Java(TM)은 SUN에서 개발된 객체지향 프로그램 언어입니다. JDK를 설치하려는 자바 개발자가 아니라면 Java bytecode 바이너리는 모듈이나 [N]를 선택합니다.

10. Memory Technology Devices (MTD)

< > Memory Technology Device (MTD) support

Memory Technology Device (MTD) support : MTD는 임베디드 디바이스에서 고형체 파일시스템(solid state filesystem, 그러니까 뱅글뱅글 돌지 않는)을 구성하는데 사용하는 플래시 메모리, RAM, 그리고 그 비슷한 다른 칩셋 등 메모리 장치입니다. 확실하지 않으면 [N]을 선택합니다.

11. Parallel port support

병렬포트 프로토콜과 장치들을 지원합니다.

< > Parallel port support 
< >   PC-style hardware (NEW)
[ ]   Support foreign hardware (NEW)
[ ]   IEEE 1284 transfer modes (NEW)

Parallel port support : PC의 패러랠 포트(구멍이 25개 있는 넓적한 커넥터)에 연결하는 프린터나 ZIP 드라이브, PLIP 링크(Parallel Line Internet Protocol; 패러랠 포트와 크로스 케이블을 이용해서 로컬 머신 둘을 연결하여 작은 네트워크를 만드는데 사용하는 프로토콜입니다) 등 장치들을 지원하는 옵션입니다. 이 옵션을 활성화하면 다양한 장치들이 커널을 통해 패러랠 포트 하나를 공유할 수 있습니다. 단, 여러분이 공유를 원한다면 모듈 지원 기능을 켜고, 모듈을 커널에서 관리하도록 설정한 다음, 장치 드라이버들을 모듈로 설정해야 합니다. 프린터, ZIP 드라이브 등 패러랠 포트를 이용하는 장치가 있거나 잘 모르겠으면 [Y]를 선택합니다.

PC-StyLe hardware : PC 스타일 패러랠 포트를 가지고 있다면 [Y]를 답합니다. 모든 IBM PC 호환기종과 알파 시스템 몇 기종은 PC 스타일 병렬 포트를 가집니다.

[ ]     Use FIFO/DMA if available (EXPERIMENTAL) (NEW)
[ ]     SuperIO chipset support (EXPERIMENTAL) (NEW)

Use FIFO/DMA if available (EXPERIMENTAL) : 요즘 나오는 대부분 칩셋이 프린팅 속도를 높일 수 있는 기능들을 지원하는데, 아마 여러분의 PC에서도 [Y]를 선택하는 것이 좋습니다.

SuperIO chipset support (EXPERIMENTAL) : 확실하지 않다면 [N]

Support foreign hardware (NEW) : 표준을 따르지 않는 패러랠 포트 형식을 지원합니다. 이 기능을 선택하면 퍼포먼스가 다소 떨어질 것입니다. 대부분의 사람들에게 필요 없는 기능입니다.[N]

IEEE 1284 transfer modes (NEW) : 여러분의 프린터가 status readback이나 device ID, 혹은 EPP, ECP처럼 향상된 전송 모드를 지원한다면 IEEE 1284 전송 모드를 활성화합니다. 장치 번호는 "cat /proc/sys/dev/parport/*/autoprobe*" 명령으로 확인할 수 있습니다. 잘 모르겠으면 [N]을 선택하는게 안전합니다.

12. PLug and PLay SupporT

새로운 장치나, 없어진 장치에 대한 정보를 스스로 설정하는 PnP 기능을 사용하려면 설정합니다.

[*] PLug and PLay Support
<M>   ISA Plug and Play support

ISA Plug and Play support : 리눅서들의 골칫거리 가운데 하나였던 ISA PnP 장치에 대한 지원입니다. 요즘은 ISA PnP 장치들이 많지 않으므로 대개는 [N]를 선택해도 좋습니다. 다만, 오래된 ISA 사운드 카드나, 게임패드 등을 가지고 있다면 이 기능을 활성화합니다.

13. BLock deviceS

블록 디바이스는 플로피 디스크, 하드 디스크, 시디롬처럼 블록단위로 읽고 쓰는 장치입니다.

<*> NormaL PC fLoppy diSk Support
< > XT hard diSk Support
<M> ParaLLeL port IDE device Support
<M>Compaq SMART2 support
< > Compaq Smart Array 5xxx support
< > Mylex DAC960/DAC1100 PCI RAID Controller support
<M> Loopback device Support
< > Network bLock device Support
< > RAM diSk Support
[ ]InitiaL RAM diSk (initrd) Support

NormaL PC fLoppy diSk Support: IBM PC나 그 호환기종에서 사용하는 일반적인 플로피 디스크 드라이브가 있다면 [Y]나 [M]을 선택합니다.

XT harddiSk Support : XT라는 매우 오래된 8bit 시스템에 대한 설정입니다. 하드디스크 뿐만 아니라, XT 시스템과 286 AT 시스템을 위한 프로젝트도 있습니다. 여러분에게는 필요 없을 것입니다.[N]

ParaLLeL port IDE device Support: 패러랠 포트에 연결하는블록 장치가 있다면 종류와 프로토콜을 설정합니다. 여러분 대부분은 [N].

Compaq SMART2 support : 컴팩의 SMART Array 컨트롤러를 지원하는 드라이버입니다. 이 보드가 있는 사람들은 모두 [Y]를 선택합니다. 이 드라이버를 지원하는 보드 목록은 다음 명령으로 확인합니다; "cat /usr/src/linux/Documentation/cpqarray.txt" 이 보드가 없거나, 잘 모르겠으면 [N].

Compaq Smart Array 5xxx support : 컴팩의 Smart Array 5xxx 컨트롤러를 지원하는 드라이버입니다. 이 보드가 있는 사람들은 모두 [Y]를 선택합니다. 이 드라이버를 지원하는 보드 목록은 다음 명령으로 확인합니다; "cat /usr/src/linux/Documentation/cciss.txt"cpqarray.txt 이 보드가 없거나, 잘 모르겠으면 [N].

Mylex DAC960/DAC1100 PCI RAID Controller support : 블록 디바이스를 병렬로 연결해서 속도나 안정성을 높일 수 있는 PCI RAID 컨트롤러를 지원합니다. 대개는 고가의 서버에서나 볼 수 있는 장비인데, 이 컨트롤러가 없는 장치들은 소프트웨어 RAID를 이용해서 같은 일을 할 수 있습니다. 리눅스 커널에서 지원하는 소프트웨어 RAID를 사용하려면 [N]를 선택합니다.

Loopback device Support : 루프백 디바이스는 파일을 블록 디바이스처럼 사용하는 기능으로 파일속에 파일시스템을 만들어서, 일반적인 블록장치을 다루듯 mount 명령으로 마운트하여 사용할 수 있습니다. 특별한 파일시스템의 실험, CDROM을 굽기 전에 또는 플로피디스크로 옮길 이미지 테스트, 그리고 암호화 등에 유용합니다. 암호화를 바란다면, 먼저 ftp://ftp.replay.com/pub/crypto/linux/all나 ftp://verden.pvv.org/pub/linux/kerneli/v2.1/에서 커널패치를 구해서 설치하고, 여기서 [Y]를 선택합니다. 이 loop 디바이스는 네트워크에서 loopback 연결(127.0.0.1)과는 상관이 없습니다. 이 옵션을 활성화해야 하는 또 한가지 이유를 들자면, CD-Recorder나, CD-RW 등 특별한 장치가 없을 때 ISO 이미지 파일로 나눠주는 FTP버전 배포판들을 가져와서 CD로 굽지 않고 파일 그대로 보통 CD-ROM처럼 마운트하여 사용할 수 있습니다. 잘 모르겠으면 [Y]를 답해도 좋습니다.

Network bLock device Support : 네트워크로 연결된 서버 또는루프백 서버의 파일시스템을 마운트하여 블록 디바이스(/dev/nd0,...)처럼 사용하는 기능입니다. 클라이언트와 서버는 TCP/IP로 통신합니다. 이 기능이 없더라도 NFS나 Coda를 사용하면 네트워크 파일시스템을 사용할 수 있습니다. 대개 [N]을 선택합니다.

RAM diSk Support, InitiaL RAM diSk (initrd)Support : 램을 하드 디스크와 같은 블록 디바이스처럼 사용하는 기능입니다. Linux를 인스톨하는 동안 램에 작은 루트 파일시스템을 생성하기 위해 사용되기도 합니다. 대부분 사용자는 램 디스크 기능이 필요 없을 것입니다. [N]

InitiaL RAM diSk (initrd) Support: 일반적인 부트 과정이 시작되기 전에 부트로더로부터 실행되는 램디스크입니다. 램 디스크는 일반적으로 "reaL" 루트파일시스템 등을 마운트하기 위해 필요한 모듈을 로드하기 위해 사용합니다. 대개는 [N], 잘 모르겠으면 [N].

14. Multi-device support (RAID and LVM)

RAID, LVM 등 다중 저장장치들을 지원합니다.

[ ] MuLtipLe deviceS driver Support
< >  RAID support
< >   Linear (append) mode
< >   RAID-0 (Striping) mode
< >   RAID-1 (mirroring) mode
< >   RAID-4/RAID-5 mode
< >  Logical volume manager (LVM) support

RAID support Support : 여러 개의 블록 디바이스를 하나의 커다란 블록 디바이스처럼 묶어 사용하는 기능입니다. 입출력이 분산되므로 디스크를 읽고 쓰는 속도가 훨씬 빨라져 다중사용자 시스템에 매우 유용합니다. RAID-0, RAID-1 (mirroring)은 일반적인 디스크보다 여러 면에서 위험하지만 RAID-5는 에러 복구가 가능하고 RAID-4의 문제점이었던 병목현상이 제거된 안정적인 모드입니다.

Logical volume manager (LVM) support : 이 드라이버는 RAID와는 조금 다른데 하드 드라이브, 하드 디스크 파티션, 멀티플 디바이스 혹은, 심지어 루프 디바이스까지도 몇 개를 묶어 볼륨 그룹화하는 것을 지원합니다. 볼륨 그룹은 일종의 가상 디스크, 논리 볼륨은 볼륨 그룹 안에서 만들 수 있는 가상 파티션이라 생각할 수 있습니다. 볼륨 그룹이나 논리 볼륨은 만들어진 다음에도 크기를 조정할 수 있습니다. 논리 볼륨은 /dev/VolumeGroupName/LogicalVolumeName이라는 장치이름을 가집니다.

15. Networking optionS

네트워크 설정은 조금 까다롭습니다. 시스템을 정확히 이해하고 바른 설정을 해야 합니다.

<*>   Packet Socket
[ ]   Packet socket: mmapped IO
[ ] KerneL/USer netLink Socket
[ ]   Routing meSSageS
< >   NetLink device emuLation
[*] Network packet filtering (replaces ipchains)
[ ]   Network packet filtering debugging (NEW)
[ ] Socket FiLtering
<*> Unix domain SocketS
[*] TCP/IP networking
[*]   IP: muLticaSting
[ ]   IP: advanced router
[ ]     IP: equal cost multipath (NEW)
[ ]     IP: use TOS value as routing key (NEW)
[ ]     IP: verbose route monitoring (NEW)
[ ]     IP: large routing tables (NEW)
[ ]   IP: kerneL LeveL autoconfiguration
<M>   IP: tunneLing
< >   IP: GRE tunneLS over IP
[ ]   IP: multicast routing
[ ]     IP: PIM-SM version 1 support (NEW)
[ ]     IP: PIM-SM version 2 support (NEW)
[ ]   IP: ARP daemon Support (EXPERIMENTAL)
[ ]   IP: TCP Explicit Congestion Notification support
[ ]   IP: TCP syncookie support (disabled per default)
IP: Netfilter Configuration  --->
< >   The IPv6 protocoL (EXPERIMENTAL)
[ ]     IPv6: enable EUI-64 token format
IPv6: Netfilter Configuration  --->
< >   Kernel httpd acceleration (EXPERIMENTAL) 
[ ] Asynchronous Transfer Mode (ATM) (EXPERIMENTAL)
---
< > IPX: SPX networking (EXPERIMENTAL)
<M> Appletalk protocol support 
< > DECnet Support
< > 802.1d Ethernet Bridging
< > CCITT X.25 Packer Layer (EXPERIMENTAL)
< > LAPB Data Link Driver (EXPERIMENTAL)
[ ] 802.2 LLC (EXPERIMENTAL)
[ ] Frame Diverter (EXPERIMENTAL)
< > Acorn Econet/AUN protocols (EXPERIMENTAL)
< > WAN router
[ ] Fast Switching (read help!)
[ ] Forwarding between high Speed interfaceS
QoS and/or fair sueing --->

Packet Socket : tcpdump처럼 매개 프로토콜 없이 직접 네트워크 장치와 통신하는 어플리케이션에서 사용됩니다. 잘 모르겠으면 [Y]를 선택합니다.

Packet socket: mmapped IO : 이 옵션을 활성화하면 패킷 프로토콜 드라이버는 더 빠른 통신을 지원하는 IO 메커니즘을 사용할 것입니다. 잘 모르겠으면, [N]

KerneL/USer netLink Socket : 커널의 어떤 부분들 또는 모듈과 유저 프로세스 사이의 양방향 통신을 허락합니다. 유저 프로세스는 /dev 디렉토리로부터 읽거나 쓸 수 있습니다. routing meSSage 기능과 함께 네트워크 관련 정보를 알리기 위해 사용하고 IP: firewaLL packet netLink device 기능과 함께 가능한 공격에 대한 정보를 알리기 위해 방화벽 코드에서 사용합니다. arpd 데몬, 네트워크 링크 드라이버를 사용하기 위해서는 [ Y]를 선택해야 합니다. 확실하지 않으면 [Y]를 선택합니다.

Routing meSSageS : 네트워크 관련 라우팅 정보를 /dev/route에서 읽을 수 있게 하는 기능입니다. mknod("man mknod")로 메이저 넘버 36, 마이너 넘버 0인 스페셜 캐릭터 파일로 /dev/route를 만들면 이 파일을 읽어서 라우팅 정보에 대해 알아낼 수 있습니다. 하지만 이 파일에 쓰는 것은 모두 버려지므로 기록하는 것은 의미가 없습니다. 잘 모르겠으면 [N].

Netlink device emulation (NEW) : 이 옵션은 곧 사라지고 진짜 넷링크 소켓으로 바뀔 것입니다. 여러분이 사용하는 오래된 프로그램 가운데 이 기능이 필요한 것이 있다면 [Y]를 선택합니다. 잘 모르겠으면 [N].

Network packet filtering (replaces ipchains) : 넷필터는 이전 커널에서 방화벽, 혹은 메스커레이딩이란 이름으로 불리던 옵션들의 새 이름입니다. 넷필터는 리눅스 박스를 지나가는 네트워크 패킷을 걸러내고(filtering) 조각내기(mangling) 위한 구조(체제)입니다. 패킷 필터링의 일반적인 사용은 여러분의 리눅스 박스를 방화벽으로 만들어 로컬 네트워크를 인터넷으로부터 보호하는 것입니다. 방화벽으로 쓰일 때 이 기능을 "패킷 필터"라 부르며, 이 것은 사적인 네트워크 패킷을 형태(type), 근원(source), 목적지(destination) 등을 기초로 거절할 수 있음을 뜻합니다. 방화벽의 또 다른 형태는 "프록시-기반(proxy-based one)"인데, 더 안전하지만 침입하기 쉽고 설정이 까다롭습니다; 프록시는 네트워크 트래픽을 훨씬 더 자세하게 살펴서 손보며, 패킷 필터는 지원하지 않는 상위 레블 프로토콜에 대해서도 잘 알고 있습니다. 게다가 프록시 기반 방화벽은 종종 로컬 클라이언트에서 실행중인 프로그램을 바꿀 것을 요구합니다. 프록시 기반 방화벽은 커널에서 지원하는 것이 아니지만, 자주 패킷 필터와 조합해서 쓰이므로, 아무튼 이 옵션은 활성화하는 것이 좋습니다. 이 옵션은 또 하나 공인 IP 주소가 없는 로컬 네트워크 머신들을 인터넷에 연결할 때 여러분의 리눅스 박스를 게이트웨이(gateway)로 만들기 위해 쓰입니다. 이 것은 "매스커레이딩(masquerading)"이라 부르는데: 여러분의 로컬 네트워크에 물려 있는 컴퓨터들 가운데 하나가 바깥에(그러니까 인터넷에) 무엇인가를 보내려합니다면 공인 IP 주소를 가지고 있는 여러분의 게이트웨이 박스는 그 컴퓨터를 "가장(masquerade)"해서 대신 주고 받을 수 있습니다. 다시 말하면 바깥 목적지로 트래픽을 보내지만, 패킷이 방화벽 박스 자신으로부터 나온 것처럼 보이게 하려고 패킷을 조금 손봅니다. 두 가지 방법이 있는데: 바깥쪽 호스트가 응답한다면 리눅스 박스는 조용히 트래픽을 올바른 로컬 컴퓨터로 보냅니다. 이 방법은 여러분의 로컬 네트워크에 있는 컴퓨터들을 비록, 바깥쪽에 닿아 원하는 것들을 주고 받을 수 있더라도, 바깥 세상에서는 완전히 볼 수 없게 합니다. 심지어는 포트 포워딩이라는 메커니즘을 사용하면 서버들까지도 메스커레이딩을 통해 바깥쪽에 서비스를 제공할 수 있습니다. 요즘은 메스커레이딩을 NAT라고 부르기도 합니다 (Network Address Translation). 넷필터는 투명한 프록시(transparent proxying)에도 쓰입니다: 로컬 네트워크에 물린 머신이 바깥쪽 호스트에 연결하려 할 때, 여러분의 리눅스박스가 그 트래픽을 몰래 로컬 서버로 보내서 프록시 서버에 있는 캐시를 보여줍니다. 넷필터에는 이전에 메스커레이딩(ipmasqadm)이라 부르던 도구, 패킷 필터링(ipchains), 투명한 프록시(transparent proxying), 포트포워딩 메커니즘(portforwarding mechanisms, ipfwadm) 등 다양한 모듈들이 있습니다. 이제 ipchains는 "iptables"로 바뀌었습니다. 여러분이 넷필터를 사용하려면 아래에 "Fast switching"에는 꼭 [N]을 답하고 이 곳에 [Y]를 답해야 합니다. 빠른 스위칭은 넷필터를 우회하기 때문입니다. 여러분의 리눅스 박스를 라우터나 게이트웨이로 쓰려면 [Y]를 답하고 그냥 보통 호스트로 사용한다면 [N]을 답합니다. 잘 모르겠으면 [N].

Network packet filtering debugging : 넷필터 코드를 디버깅하는데 유용한 정보들을 추가합니다. 잘 모르겠으면 [N].

Socket Filtering : 리눅스 소켓 필터는 버클리의 패킷 필터로부터 파생된 것입니다. 이 곳에 [Y]를 답하면 사용자-공간 프로그램들이 아무 소켓에나 필터를 붙일 수 있고 그래서 소켓을 통해 얻은 데이터에 대해 형식을 정하고 허가/불가 등 정책을 커널에 말합니다. 리눅스 소켓 필터링은 지금 ICP를 제외한 모든 소켓에서 동작합니다. 잘 모르겠으면 [N].

Network aLiaSing : 네트워크 드라이버가 여러 개의 IP 주소를 가질 수 있도록 하는 설정입니다. 아파치 웹 서버를 이용한 웹 호스팅 서비스 등에 쓰입니다. 또는 이더넷 카드 하나로 여러개의 논리적인 네트워크에 연결할 때 쓰입니다. 속도가 느려지지만, 하나의 이더넷 카드로 매스커레이딩 서비스를 제공할 수도 있습니다.

Socket FiLtering : 리눅스 소켓필터는 버클리 패킷필터에서 파생되었습니다. Unix 시스템은 소켓을 통해 프로세스 사이 통신이 이루어집니다. 이 기능을 선택하면 커널 수준에서 소켓을 조사하고, 허용하는지 마는지 지정할 수 있습니다. 리눅스 소켓 필터링은 TCP를 제외한 모든 종류의 소켓에 동작합니다. 잘 모르겠으면 [N].

Unix domain SocketS :소켓은 네트워크 연결을 개설하고 액세싱하기 위한 표준 장치(mechanism)입니다. 리눅스 박스가 어떤 네트워크에도 연결되지 않아도 X 윈도우 시스템이나 syslog 같은 많은 일반적인 프로그램이 소켓을 사용합니다. 이 기능을 모듈로 설정하고 모듈 적재를 잊으면(neglect to load the module) 몇 가지 중요한 서비스들이 제대로 동작하지 않을 것입니다. [Y]를 권장합니다.

TCP/IP networking : 인터넷과 이더넷 등 거의 대부분 네트워크에서 사용하는 표준 프로토콜입니다. 인터넷 접속뿐만 아니라 다른 많은 프로그램에 꼭 필요하므로 더 말할 것도 없이 반드시 [Y]를 선택합니다. TCP/IP는 데이터 통신 프로토콜 모음을 가리키는 것으로, 그 가운데 가장 중요한 전송 제어 프로토콜(transmission control protocol)과 인터넷 프로토콜(internet protocol)에서 이름을 따 온 것입니다.

IP: muLticaSting : 메시지를 미리 정한 여러 목적지에 보내는 기능입니다. 이와 다르게 broadcaSt는 네트워크 안의 모든 장치가 패킷을 수신합니다. 멀티캐스팅은 부서별 공지, 뉴스 푸시 등에 사용되기도 합니다. 잘 모르겠으면 [N].

[ ]   IP: multicasting
[ ]   IP: muLticaSt routing
[ ]     IP: PIM-SM verSion 1 Support
[ ]     IP: PIM-SM verSion 2 Support

IP: multicast routing : 리눅스 박스가 다수의 머신에 IP 패킷을 전송할 때 사용할 수 있습니다. MBONE, 오디오나 비디오 broadcast를 목적으로 구성된 높은 대역의 인터넷에서 사용됩니다. Multicast용 네트워크 카드 정보는 x Documentation/networking/multicast.txt에 있습니다. 대부분의 사용자에게 이 기능은 필요 없습니다. 잘 모르겠으면 [N].

IP: advanced router : 리눅스 박스를 주로 라우터로 사용할 계획이라면 설정합니다. 라우터는 패킷 경로를 제어하는 것으로 패킷을 어떤 게이트웨이로 보낼 것인지를 결정합니다. 라우터가 게이트웨이 역할까지 하는 경우가 많기 때문에 때로는 게이트웨이라 불리기도 합니다. 이 옵션은 일반적인 라우팅 기능에 필터링, 보안(예를 들어 IP 속이기 예방) 등 몇 가지 향상된 기능을 지원합니다. 잘 모르겠으면 [N].

[ ]     IP: poLicy routing
[ ]     IP: faSt network addreSS tranSLation
[ ]     IP: equaL coaSt muLtipath
[ ]     IP: uSe TOS vaLue aS routing key
[ ]     IP: verboSe route monitoring
[ ]     IP: Large routing tabLeS

IP: policy routing : 일반적으로, 라우터는 수신한 패킷의 목적지 주소에 따라 무엇을 할 지 결정합니다. 만일 이 옵션에 [Y]라고 답한다면 리눅스 라우터가 패킷의 송신지 주소를 고려할 수도 있게 됩니다. 아래 "IP: TOS 값을 라우팅 키로 사용하기"도 [Y]라고 답한다면 패킷의 TOS(Type-Of-Service서비스 타입) 부분은 라우팅 결정을 위해서 사용할 수 있게 됩니다. "IP: 빠른 네트웍 주소 번역"에 [Y]라고 한다면 리눅스 라우터는 전송된 패킷의 송신지와 목적지 주소들마저도 수정할 수 있게 됩니다.

IP: fast network address translation : [Y]를 선택하면, 통과하는 패킷들의 출발지 주소와 목적지 주소를 마음대로 변경할수 있게 됩니다. 네트웍 주소 해석에 대한 일반적인 정보를 원하면 다음의 주소로 가봅니다: http://www.csn.tu-chemnitz.de/ mha/linux-ip-nat/diplom/nat.html

IP: equal cost multipath : 일반적으로, 라우팅 테이블은 주어진 패킷에 대한 하나의 행동을 구체적으로 알려줍니다. 그러나, 여기에 만약 [Y]라고 답한다면 패킷 패턴에 여러 개의 행동을 덧붙이는 것이 가능해 지고, 그 패킷이 전달되기 위해 실제로 거쳐야 할 대체 경로들을 구체적으로 알려줍니다. 라우터는 이런 경로들을 동일한 "비용"으로 여겨서, 만일 일치하는 패킷이 도착하면, 유동적으로(non-deterministic fashion) 그 경로들 중에 하나를 선택하게 됩니다.

IP: use TOS value as routing key : 모든 IP 패킷의 헤더부분은 그 패킷이 요구하는 특정 처리부분을 담고 있는 TOS(Type of Service 서비스형태)값을 가지고 있습니다. 예를 들어, (상호작용하는 트래픽을 위한) low latency, 높은 처리량, 높은 신뢰도 같은 것들. 만일 여러분이 여기에 [Y]라고 답하면, 서로 다른 TOS값들을 가진 패킷들을 위해 서로 다른 라우트를 지정할 수 있게 됩니다.

IP: verbose route monitoring : 만일 여러분이 여기에 [Y]라고 답하면(권장사항입니다), 커널이 라우팅에 관해서 자세한 메시지들을 출력할 것입니다. 예를 들어, 이상하게 보이는 수신 패킷들이나, 시스템 설정 어딘가의 오류, 또는 공격의 증거가 될 수 있는 것들에 대해서 경고 메시지들을 말해 줍니다. 정보는 커널 메시지부분을 담당하는 klogd데몬이 다루고있습니다. ("man klogd")

IP: large routing tables : 라우팅 존에 64 항목 이상이 필요하다면 [Y]를 선택해서 라우팅 프로세스 속도를 높입니다.

IP: kerneL LeveL autoconfiguration : 클라이언트 시스템이 부팅할때 BOO TP 서버로부터 네트워크 설정 정보를 가져오는 기능입니다. 디스크가 없이 부트하는 시스템에 쓰이며, "NFS를 통한 루트 파일시스템" 항목도 역시 [Y]를 선택해야 합니다. 보다 새로운 방법은 DHCP를 사용하는 것입니다. 잘 모르겠으면 [N].

[ ]      IP: BOOTP Support
[ ]      IP: RARP Support

IP: tunneLing : 한 프로토콜 안에 다른 프로토콜의 자료를 캡슐화하여 서로 다 른 프로토콜 사이에서 전송하는 기능입니다. IP 주소 변경 없이 네트워크 사이 를 옮겨 다니는 MobiLe IP등 기능과 관련된 옵션입니다. 대부분 이 기능이 필요 없습니다. [N]

IP: GRE tunneLS over IP : GRE(generic routing encapSuLation)는 멀티캐스 트, IPv6를 지원합니다. CiSco 라우터에 연결될 때 유용합니다. 잘 모르겠으면 [N].

IP: ARP daemon Support (EXPERIMENTAL) : 일반적으로 커널은 로컬 네트워크에서 IP 주소와 하드웨어 주소 MAP을 내부 캐시로 가지고 있습니다. 수백개 이하의 호스트가 연결된 소규모 네트워크에서는 ARP(Address Resolution Protocol) 캐시를 커널 차원에서 관리하지만, 매우 큰 네트워크(switched network)에서는 별로 좋지않습니다. 만일 네트워크 연결(TCP/IP)들이 많다면 커널 메모리의 많은 부분을 ARP 캐시로 사용하게 됩니다. 이 옵션에서 [Y]를 선택하면, 커널 내부 ARP 캐쉬가 256 엔트리(entry)이하로 유지됩니다. (가장 오래된 엔트리는 LIFO을 통해 갱신됩니다.) 그리고 연결은 유저 공간의 arpd를 통해 이루어집니다. ARP나 RARP는 네트워크에 자신의 IP 주소나 물리주소를 묻거나(broadcast), 자신의 캐시에서 확인합니다. 잘 모르겠으면 [N].

IP: TCP Explicit Congestion Notification support : 이 옵션은 장비들에게 전송속도를 낮추어 줄 것을 요구하는 명백한 혼잡 공지(ECN) 비트를 허용합니다. 네트워크가 혼잡하면 응답시간이 늦어지고 처리량이 감소하게 됩니다(네트워크가 혼잡하면 교환기는 데이터를 단순히 삭제하기 때문입니다). 이럴 때 클라이언트가 체증에 대해 라우터에 알리도록 하면 결과적으로 버려지는 패킷이 줄어들게 되므로 네트워크 퍼포먼스가 높아집니다. 인터넷에는 ECN을 보내는 머신으로부터의 연결을 거부하는 고장난 방화벽들이 많이 있는데, 그런 방화벽 뒤에 있는 사이트에 접속하려면 이 옵션을 꺼야합니다. 그런 경우 이 곳에 [N]을 답하거나, sysctl을 이용해 실행시간에 끌 수 있습니다. (/proc/sys/net/ipv4/tcp_ecn) 잘 모르겠으면 [N].

IP: TCP SyncookeS Support (not enabLedper deauLt) : TCP/IP의 약점을 이용해 서버에 접속을 할 수 없도록 하는 SYN attack(이 약점을 이용해 TC P/IP hijack등 공격을 합니다)을 막아줍니다. 서비스 거부 공격(Denial-of-service)을 당하는 동안에는 합법적인 원격 사용자들이 접속하기 어려워지는데, 이런 공격은 인터넷에 연결된 머신이 있다면 누구든지 쉽게 시도할 수 있습니다. 그러나 이 옵션을 사용하면, TCP/IP 스택에서 "SYN cookies"라고 불리는 암호화된 프로토콜을 사용하므로, 컴퓨터가 공격을 받고 있더라도 합법적인 사용자가 계속해서 접속할 수 있도록 보호합니다. SYN cookies는 소프트웨어들에 대해 투명하게 동작하므로 사용자들은 자신의 TCP/IP 소프트웨어들을 변경할 필요가 없습니다. 만약 여러분이 SYN flood 공격을 받고 있다면, 커널이 알려주는 공격자의 주소는 위조 되었을 가능성이 높습니다; 그 주소는 패킷들의 실제 주소를 추적하는데 도움이 될 뿐이며, 절대적인 것으로 취급해서는 안 됩니다. SYN cookies는 만약 서버가 매우 과중한 부하에 시달리고 있어서, 클라이언트에 대한 에러를 올바로 알릴 수 없을 지경이라면 이 옵션을 선택하지 말아야 합니다. "/proc filesystem support"와 "Sysctl support"옵션에도 [Y]를 선택하고, 시스템을 proc 파일 시스템이 마운트되고 나서 다음 명령을 실행해야 SYN cookies가 동작합니다: echo 1 > /proc/sys/net/ipv4/tcp_syncookies SYN cookies에 대한 기술적인 정보: ftp://koobera.math.uic.edu/pub/docs/syncookies-archive. 잘 모르겠으면 [Y]를 선택합니다.

The IPv6 protocoL (EXPERIMENTAL) : Internet Protocol의 다음 버전에 대한 실험적인 지원입니다. 새로운 프로토콜은 (IP version 6: IPng또는 "IP next generation"이라고 불리기도 하는) 다음과 같은 특징을 갖습니다. 주소 공간이 128 비트로(현재는 32비트) 커져서 주소가 고갈되는 일이 (아마) 없을 것입니다. 프로토콜 내부에 인증과 비밀 유지 등 보안성이 향상됩니다. 헤더가 더 합리적으로 구성되어 처리속도가 빨라집니다. 그 밖에 중간 연결방법 없이 현재 버전 IP (IP version 4) 프로토콜과 상호 작용이 가능합니다. 아직은 [N]을 선택하는 것이 안전합니다.

Kernel httpd acceleration (EXPERIMENTAL) : 커널 httpd 가속 대몬(kHTTPd)은 커널 속에 만들어 넣은 (제한된) 웹서버입니다. 이 서버는 오직 파일시스템으로부터 파일들을 제공할 수 있으며 CGI 스크립트처럼 실행할 수 있는 목록은 다룰 수 없습니다. kHTTPd를 사용한다면 파일을 서비스하는 속도가 빨라집니다. 만약 kHTTPd가 클라이언트의 요청을 마칠 수 없다면, 아파치 등 유저 공간(user space; kernel과 반대되는 의미로)의 웹 서버에 투명하게 전해줍니다. 모듈로 설정할 수도 있지만; kHTTPd가 돌아가는데 만족스럽지 않을 것입니다. 안전을 이유로, 모듈이 올라간 뒤에 다음 명령을 내려야 모듈이 활성화됩니다: "echo 1 > /proc/sys/net/khttpd/start". kHTTPd는 아직 실험적인 수준이므로 이 옵션을 사용하는 제품을 만들 때에는 조심해야 합니다. 그리고 하나 더, 아직 가상 서버는 지원하지 않습니다. 잘 모르겠으면 [N].

Asynchronous Transfer Mode (ATM) : ATM(비동기전송모드)은 WAN(Wide Area Networks)또는 LAN에서 쓰이는 고속 네트워킹 기술입니다. ATM은 기존의 패킷 교환방식과 시분할 다중 장치(TDM)의 장점을 따서 개발한 기술로 가상채널을 통해 데이터와 화상, 음성 트래픽을 일정한 크기의 패킷(53바이츠)에 실어 보냅니다. WAN을 위한 기술로 개발되었지만 LAN에도 적용할 수 있습니다. ATM을 사용하려면 여러분의 리눅스 박스에 ATM 네트워킹 카드가 필요합니다. 만약 ATM 카드가 있다면 이 곳에서 [Y]를 선택하고 아래에서 맞는 드라이버를 고릅니다. 그리고, 커널 지원 외에도 유저 공간의 프로그램들이 필요합니다. ATM(Asynchronous Transfer Mode : 비동기전송모드)에서는 보내려는 정보를 미리 약속한 크기의 패킷으로 나눈 다음, 패킷의 헤더 부분에 목적지 정보를 덧붙여 전송합니다. 패킷들이 목적지에 다다르면 규칙에 따라 다시 원래의 정보로 환원합니다.

---

The IPX protocoL : NoveLL 네트워크에 연결할 때 설정합니다. 노벨 네트워크와 연결되지 않는다면 [N]을 선택합니다.

IPX: FuLL internaL IPX network, IPX:SPX networking (EXPERIMEN TAL) : 노벨 네트워킹과 관련된 기능입니다. [N]

Appletalk protocol support : AppLe컴퓨터를 위한 네트워크프로토콜입니다. 리눅스 박스를 이 네트워크에 연결하기 위해서는 netatalk 패키지가 필요합니다. 잘 모르겠으면 [N].

DECnet Support : (지금은 Compaq인)디지틀사에서 만든 많은 제품들이 DECnet 네트워킹 프로토콜을 사용합니다. 잘 모르겠으면 [N].

802.1d Ethernet Bridging : 리눅스박스를 이더넷 브리지로 사용합니다. 일반적으로 브리지보다 효율적인 기능을 가진 라우터가 더 많이 쓰입니다. 잘 모르겠으면 [N].

CCITT X.25 Packer Layer (EXPERIMENTAL) : X.25 패킷 레이어는 정부, 은행 등 기관에서 WA[N]을 구성하기 위해 사용하는 표준 네트워크 프로토콜입니다. PLP와 LAPB 두 개의 프로토콜로 구성됩니다. 잘 모르겠으면 [N].

LAPB Data Link Driver (EXPERIMENTAL) : Link Access Prodedure for Ba Lanced는 X.25 프로토콜의 하위 레벨 구성요소입니다. 리눅스에서는 이더넷 커넥션에 대한 LAPB만을 지원합니다. 잘 모르겠으면 [N].

802.2 LLC (VERY EXPERIMENTAL) : 일반적인 이더넷 카드를 이용하는 네트워크에서 X.25 네트워크에 연결하는 802.2 Logical LinkLayer 프로토콜입니다. 잘 모르겠으면 [N].

Acorn Econet/AUN protocols (EXPERIMENTAL) : Econet은 Arcon 컴퓨터에서 파일, 프린터 서버에 액세스하기 위해 사용되던 아주 오래되고 느린 네트워킹 프로토콜입니다. 잘 모르겠으면 [N].

WAN router : WAN은 하나 이상의 LAN으로 구성된 광역네트워크입니다. 고가의 WAN 라우터를 리눅스 박스를 이용하여 상대적으로 매우 저렴하게 구성할 수 있습니다. 이 기능을 위해서는 wan-tools 패키지가 필요합니다.

Fast Switching (read help!) : tuLip 등 이 기능을 지원하는 NIC(network int erface card)끼리 직접 데이터를 빠르게 교환할 수 있습니다. "advanced router" 기능과 함께 사용할 수 있지만 방화벽을 구축한다면 [N]을 선택해야 합니다.

Forwarding between high Speed interfaceS : tuLip 등 이 기능을 지원하는 NIC는 옵션이 활성화되었을 때 하드웨어 속도조절 기능을 지원합니다. [N]을 답하는 것이 좋습니다.

15.1 Netfilter

ipchains가 넷필터로 바뀌었습니다. 네트워크 케이블을 돌아다니는 패킷들을 검사하고 걸러내는 다양한 기능들이 추가되었습니다.

IP: Netfilter Configuration  --->
< > Connection tracking (required for masq/NAT)
<*>   FTP protocol support
< > Userspace queueing via NETLINK (EXPERIMENTAL)
< > IP tables support (required for filtering/masq/NAT)
< >   limit match support
< >   MAC address match support
< >   netfilter MARK match support
< >   Multiple port match support
< >   TOS match support
< >   Connection state match support
< >   Unclean match support (EXPERIMENTAL)
< >   Owner match support (EXPERIMENTAL)
< >   Packet filtering
<M>     REJECT target support
< >     MIRROR target support (EXPERIMENTAL)
< >   Full NAT
< >     MASQUERADE target support
< >     REDIRECT target support
< >   Packet mangling
< >     TOS target support
< >     MARK target support
< >   LOG target support
< > ipchains (2.2-style) support
< > ipfwadm (2.0-style) support

Connection tracking (required for masq/NAT) : 연결 추적은 어떤 패킷이 여러분의 머신을 거쳐 갔는지, 그들이 얼마나 연결 되었는지 그 기록을 유지합니다. 이 옵션은 메스커레이딩 혹은 다른 종류의 네트워크 주소 변환(Fast NAT는 빼고)에 필요합니다. 그리고, 향상돤 패킷 필터링에도 쓰입니다. 잘 모르겠으면 [N].

FTP protocol support : FTP 연결을 추적합니다. 확실하지 않다면 [Y].

Userspace queueing via NETLINK (EXPERIMENTAL) : 넷필터는 유저 공간에 패킷을 큐하는 기능을 가집니다: 넷링크 장치는 이 드라이버를 이용해서 그들에 엑세스 하도록 사용될 수 있습니다. 잘 모르겠으면 [N].

IP tables support (required for filtering/masq/NAT) : iptable은 일반적이며, 확장할 수 있는 패킷 식별 구조입니다. 패킷 필터링과 full NAT(masquerading, port forwarding, etc) 서브시스템은 이제 이 것을 사용합니다: 그런 서비스 가운데 하나를 쓰려면 이 옵션에서 [Y]나 [M]을 선택합니다. 잘 모르겠으면 [N].

limit match support : limit matching은 매치되는 룰에서 속도를 제어하도록 허용합니다: LOG 타깃과 (아래에서 "LOG target support") 서비스 거부 공격(DOS: Denial of Service) 회피 기능을 조합할 때 유용합니다. 잘 모르겠으면 [N].

MAC address match support : MAC 매칭은 출발지 이더넷 주소에 기반한 패킷 매치를 허용합니다. 잘 모르겠으면 [N].

netfilter MARK match support : 넷필터 마크 매칭은 "nfmark" 값에 기초한 패킷 매치를 허용합니다. MARK 타깃에 의해 설정됩니다. 잘 모르겠으면 [N].

Multiple port match support : 멀티포트 매칭은 출발지나 목적지 포트의 시리즈에 기반한 TCP나 UDP 패킷 매치를 허용합니다: 일반적으로 규칙 하나는 한 가지 포트 범위를 매치할 수 있습니다. 잘 모르겠으면 [N].

TOS match support : TOS 매칭은 IP 패킷의 서비스 필드의 형식에 기반한 패킷 매치를 허용합니다. 잘 모르겠으면 [N].

Connection state match support : 연결 상태 매칭은 추적한 커넥션의 관계에 기반한(예를 들어 이전 패킷들) 패킷 매치를 허용합니다. 이 옵션은 패킷 분류를 위한 강력한 도구입니다. 잘 모르겠으면 [N].

Unclean match support (EXPERIMENTAL) : 깨끗하지 않는 패킷 매칭은 IP, TCP, UDP와 ICMP 헤더에서 연속된 필드들을 살펴서 낯설거나 무효한 패킷들을 매치합니다. 잘 모르겠으면 [N].

Owner match support (EXPERIMENTAL) : 패킷의 소유자 매칭은 패킷을 생성한 사용자, 그룹, 프로세스나 세션에 기반하여 지역적으로-발생된 패킷을 매치하는 것을 허용합니다. 잘 모르겠으면 [N].

Packet filtering : 패킷 필터링은 로컬 input, 포워딩과 로컬 output에서, 심플 패킷 필터링을 위한 연속된 룰을 담는 "필터" 테이블을 규정합니다. 잘 모르겠으면 [N].

REJECT target support : REJECT 타깃은 들어오는 패킷에 대해 ICMP에러 메시지로 응답하는 대신 아무 소리 없이 버리는 필터링 규칙을 허용합니다. 잘 모르겠으면 [N].

MIRROR target support (EXPERIMENTAL) : MIRROR target은 들어오는 패킷이 보낸 이에게 되돌아가는 규칙을 허용합니다. 잘 모르겠으면 [N].

Full NAT : Full NAT 옵션은 메스커레이딩, 포트 포워딩, 그리고 다른 형식들 풀 네트워크 주소 포트 전환을 허용합니다. 이 기능은 iptables 안에 "nat" 테이블에 의해 제어됩니다. "man iptables" 잘 모르겠으면 [N].

MASQUERADE target support : 메스커레이딩은 NAT의 특별한 케이스입니다: 모든 나가는 연결들은 특정한 인터페이스의 주소로부터 온 것처럼 보이도록 바뀝니다, 그리고 그 인터페이스를 내리면, 그것들 연결들을 잃어버립니다. 이 옵션은 다이나믹 IP 주소를 사용하는 다이얼업 계정에만 유용합니다. (여러분의 IP 주소가 접속할 때마다 달라진다면) 잘 모르겠으면 [N].

REDIRECT target support : REDIRECT는 NAT의 특별한 케이스입니다: 모든 들어오는 연결들은 들어오는 인터페이스의 주소에 매핑되므로, 패킷들은 통과해서 직접 연결되는 대신 로컬 머신으로부터 오게 됩니다. 이 옵션은 투명한 프록시에서 유용합니다.. 잘 모르겠으면 [N].

Packet mangling : 이 옵션은 iptables에 "mangle" 테이블을 추가합니다: 이 테이블은 패킷이 어떻게 라우트될지에 영향을 줄 수 있는 다양한 패킷 변환에 사용됩니다. iptables(8) 맨 페이지를 참조합니다. 잘 모르겠으면 [N].

TOS target support : 이 옵션은 라우팅에 앞서 "mangle"테이블 안에 IP 패킷의 Type Of Service 필드를 바꾸는 규칙들을 만들도록 "TOS" 타깃을 추가합니다. 잘 모르겠으면 [N].

MARK target support : 이 옵션은 라우팅에 앞서 "mangle"테이블 안에 패킷 패킷과 관련된 netfilter mark(nfmark) 필드를 바꾸는 규칙들을 만들도록 허용하는 "MARK" 타깃을 추가합니다. 이 기능은 라우팅 메쏘드를 바꿀 수 있고 다른 서브시스템에 의해 그들을 behavior를 바꾸도록 이용될 수도 있습니다. 잘 모르겠으면 [N].

LOG target support : 이 옵션은 syslog에 패킷 헤더를 기록하는 규칙을 만들도록 허용하는 "LOG"타깃을 추가합니다. 잘 모르겠으면 [N].

ipchains (2.2-style) support : 이 옵션은 이제 iptables로 바뀌었습니다. ipchains를 사용하던 이들은 이 옵션을 활성화해 예전의 명령들을 계속 사용할 수도 있지만, iptables를 익히는게 좋을 것입니다.[N]

ipfwadm (2.0-style) support : 이 도구는 2.2 커널에서 ipchains로 바뀌었고, 다시 2.4 커널에서 iptables로 바뀌었습니다. [N]

15.2 QoS and /or fair queueing

패킷 스케쥴러에 따라 패킷을 제어하는 기능입니다. 네트워크 장치가 실시간 장치일 때 특히 이 기능이 중요합니다. 잘 모르겠으면 [N].

[ ] QoS and/or fair queueing

QoS and/or fair queueing : 네트워크 디바이스들을 통해서 내보내야 할 패킷들이 있을때, 커널은 어떤 것을 먼저 보내야 할 것인지 선택해야 합니다. 이런 선택은 최소한의 data flow rate가 필요한 실시간 서비스나 비즈니스 서비스를 제공할 경우 더 중요합니다. QoS는 "서비스의 질(Quality of Service)"라는 말 그대로 제한된 대역폭 안에서 프로토콜이나 애플리케이션에 따라 대역폭을 할당해서 최고의 서비스 질을 이끌어내는 기술입니다. 그 순서를 효율적으로 정하기 위해 몇 가지 알고리듬이 있는데 그 것들을 패킷 스케쥴러라 부릅니다. 만약 기본적인 패킷 스케쥴러(FIFO: first come, first served)를 그냥 사용한다면 [N]을 답합니다. 보다 효율적이라 생각하는 다른 알고리듬으로 바꿔보고싶다면 [Y]를 선택해 이 옵션을 활성화합니다. 네트워크 디바이스들마다 서로 다른 스케줄링 알고리즘을 할당 할 수도 있습니다. 다만, 이런 것들에 대해 잘 알고 있는 전문가들에게만 추천되는 기능입니다. 아무튼 이 옵션들을 활용하려 한다면 유저-레블 유틸리티들이 들어 있는 ftp://ftp.inr.ac.ru/ip-routing/ 에서 iproute2+tc 패키지를 가져와야 합니다. "/proc filesystem"이 활성화되어 있다면 /proc/net/psched 파일에서 우선순위 스케줄러에 대한 상태 정보를 얻을 수 있을 것입니다. 잘 모르겠으면 [N].

BQ packet scheduler : Class-Based Queueing(CBQ) 패킷 스케쥴링 알고리즘을 지원합니다. 이 알고리즘은 전송되기를 기다리는 패킷을 트리(tree)형태의 계층적 구조로 분류합니다.(net/sched/sch_cbq.c 파일의 시작부분) 이 트리의 리프(leaf) 노드들은 다른 알고리즘에 의해 스케쥴링됩니다. 이 리프 노드에 적용될 스케쥴링 알고리즘은 아래의 여러가지 큐잉 알고리즘 중에서 선택할 수 있습니다.

CSZ packet scheduler : Clark-Shenker-Zhang(CSZ) 패킷 스케쥴링 알고리즘을 지원합니다. 실시간(real-time) 응용 프로그램에 대한 서비스를 보장해줄 수 있는 알고리즘입니다(net/sched/sch_csz.c의 시작부분) 주의: 이 스케쥴러는 현재 완벽하지 않습니다.

The simplest PRIO pseudo scheduler :

RED queue : net/sched/sch_red.c의 시작부분 참고.

SFQ queue : net/sched/sch_sfq.c의 시작부분 참고.

TEQL queue : net/sched/sch_sfq.c의 시작부분 참고.

TBF queue : net/sched/sch_tbf.c의 시작부분 참고

QoS support : QoS 스케쥴링 기능을 지원합니다. [N]을 답하면 QoS에 대해서 더이상 묻지 않습니다.

Rate estimator : Quality of Service 스케쥴링을 사용하기 위해 네트워크 장치에 대한 현재 데이타 전송속도의 예측하는 기능을 지원합니다.

Packet classifier API : CBQ 스케쥴링 알고리즘은 네트웍 장치를 통해 전송되도록 스케쥴된 네트웍 패킷이 어떤 방식으로 분류될 것인지 물어본다. 이 옵션을 활성화하면 다양한 종류의 패킷 분류자를 선택할 수 있습니다.

15.3 사라진 것들..

IP: optimize aS router not hoSt : 네트워크 패킷들을 포워드 시키거나, 재분배하는 등 리눅스박스를 라우터로 동작하도록 설정하는 기능입니다. IP forwarding과 함께 매스커레이딩에 필요합니다. 어떤 리눅스 네트워크 드라이버들은 copy and checksum이라고 불리는 기술을 사용해서 호스트 성능을 최적화 시킵니다. 대부분의 시간을 라우터로 작동하며 패킷들을 다른 호스트로 전달하는 일만 하는 시스템에서 이러한 작업(copy and checksum)은 손해입니다. [Y]를 선택한다면 copy and checksum 기능은 작동하지 않고, 라우터의 작동에 대해서 최적화 되도록 여러 가지를 변경합니다. IP forwarding을 함께 선택해야만 리눅스 박스를 라우터처럼 동작하게 할 수 있습니다; "/proc filesystem support" 옵션과 "Sysctl support" 옵션에서도 [Y]를 선택합니다. 시스템이 부트될 때, 먼저 /proc 파일 시스템 마운트 되고, 다음 명령을 실행하면 IP forwarding이 가능해집니다. echo "1" > /proc/sys/net/ipv4/ip_forward IP forwarding을 사용한다면 rp_filter 기능도 함께 쓸 수 있습니다. rp_filter는 패킷이 도착했을 때, 그 패킷이 도착한 인터페이스와 라우팅 테이블의 엔트리에서 발견한 출발지 어드레스가 일치하지 않으면, 패킷 수신을 자동으로 거절합니다. IP spoofing 등 불리는 공격을 무력화 시킬 수 있습니다. 그러나, 비대칭 라우팅(시스템으로 들어오는 패킷과 나가는 패킷들이 서로 다른 경로를 거치는 것)을 사용하거나, 여러 개의 인터페이스들에 대해서 여러 개의 IP 어드레스들을 가지는 비라우팅 호스트를 운영하고 있다면, 다음 명령으로 rp_filter기능을 작동하지 않도록 설정합니다. echo 0 > /proc/sys/net/ipv4/conf//rp_filter 또는 echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter 대부분의 유저는 [N]을 선택합니다.

IP: aLiaSing Support : 하나의 물리적 네트워크 인터페이스에 IP 주소를 여러 개 줄 수 있습니다. 멀티 호스팅, 가상 도메인, 또는 가상 호스팅(mirtuaL hoSti ng)이라 부르는 서비스를 제공하려면 필요한기능입니다. 가상 호스팅은 리눅 스 박스 하나로 다양한 서비스를 제공할 수 있어 웹이나 ftp 서버로 사용하는 시 스템을 최대한 활용할 수 있다는 장점도 있습니다. 또, 두 개의 논리적 네트워크를 하나의 이더넷카드를 통해 엑세스하려고 한다면 [Y]를 선택합니다. alias address의 설정은 Doumentation/networking/alias.txt와 IP-Alias mini-HOWTO, http://www.thesphere.com/ dlp/TwoServers/, ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/Virtual-Services-HOWTO을 참고합니다.

IP: accounting : 리눅스 박스를 라우터나 방화벽으로 사용할 때 설정합니다.

IP: ReverSe ARP, IP: ALLow Large windowS (not recommended if <16 Mb of memory) : 손대지 않는 것이 안전하다고 경고하고 있습니다. RARP( Reverse Address Resolution Protcol)는 모든 H/W Ethernet card가 각자 가지고 있는 고유한 번호, 하드웨어 어드레스(6byte)를 가지고 IP 주소를 알아 낼 수 있는 프로토콜입니다. 디스크가 없는 머신에서 부팅할 때 IP 주소를 알아내기 위해서 주로 사용되며 Diskless Sun 3 머신이나 Linux Box에서 사용할 수 있습니다. 윈도우는 TCP 세그먼트 포맷의 필드 가운데 하나로, 윈도우를 담고 있거나, 원격 시스템이 수신할 수 있는 바이트 크기를 담고 있습니다.

CPU iS too SLow to handLe fuLL bandwidth : CPU가 네트워크전대역폭 (full-bandwidth)을 다루기에 충분히 빠르지 않다고 생각되면 설정합니다.

IP: aLwayS defragment (required for maSquerading) : 데이터그램이 서로 다른 네트워크를 통해 전달될 때(예를 들어 게이트웨이가 이더넷과 X.25처럼) MTU(maximum transmission unit)가 서로 다를 수 있습니다. 이럴 때 상대적으로 패킷 크기가 작은 네트워크로 전달되기 위해서는 새로운 크기로 잘라져야합니다. 이렇게 잘라진 조각들은 원래의 크기로 다시 조합할 수 있는 정보를 가지게 됩니다. 이 기능을 설정하면 들어오는 모든 패킷 조각을 항상 다시 조합합니다. 특히 IP: maSquerading, IP:tranSparent proxy, IP: firewalling 기능을 사용하려면 반드시 필요합니다. 일반적인 라우터나 호스트에서는 절대 [Y]를 선택하면 안됩니다. 일반적으로 게이트웨이와 라우터가 같은 의미로 쓰이지만 게이트웨이는 다른 프로토콜 사이에서 데이터를 중계하고 라우터는 다른 네트워크 사이에서 데이터를 옮겨주는 것입니다.

IP: tranSparent proxy Support : 리눅스 방화벽을 원격지 호스트처럼 동작하도록 가장하는 기능입니다. 투명하다는 것은 바깥쪽에서는 방화벽을 볼 수 없고 마치 호스트와 직접 연결된 것처럼 보인다는 것을 뜻합니다.

IP: maSquerading : 매스커레이딩은 IP(reaL IP)를 가진 하나의 호스트에 이더넷이나 모뎀으로 연결된 다른 컴퓨터들이 공식적으로 할당된 IP가 없더라도 인터넷에 연결되도록 하는 기능입니다. 가상 호스트 서비스를 위해 반드시 필요합니다. 매스커레이딩은 매우 효과적인 네트워크 보안방법이기도 합니다. 리눅스 박스가 방화벽인 지역네트웍의 한 컴퓨터가 바깥으로 무언가를 보내고자 할 때 리눅스 박스는 마치 해당 컴퓨터인 것처럼 "가장 masquerade"할 수 있습니다. 즉 리눅스는 바깥의 정한 목적지로 트래픽을 내보낼 때, 그것이 방화벽 자신으로로부터 출발한 것처럼 만듭니다. 이것은 양 쪽으로 작용하는데 바깥의 호스트가 응답하면, 리눅스 방화벽은 그 트래픽을 가만히 지역넷의 합당한 컴퓨터로 보내줍니다. 이 경우 지역넷의 컴퓨터는 바깥에 다다를 수 있고 응답을 받을 수도 있지만, 바깥 세계에서는 완벽하게 보이지 않게 됩니다. PPP를 비롯해 ADSL, ISDN 등에도 사용할 수 습니다. "/proc filesystem support" 와 "Sysctl suppot"옵션에 [Y]를 선택하고, 부팅할 때 /proc 파일 시스템이 마운트 되고 나면 다음 명령을 실행합니다. echo "1" > /proc/sys/net/ipv4/ip_forward

IP: ICMP maSquerading : 매스커레이딩에 ping 등 ICMP 패킷을 지원합니다. ICMP(Internet Control Message Protocol)은 송신자에게 수신된 데이터그램의 문제점을 알려주기 위해 호스트와 게이트웨이가 사용하는 IP의 확장된 메커니즘입니다. IP는 신뢰성이 없지만 ICMP는 비정상적인 상황이나 네트워크 때문에 데이터 그램의 경로를 지정하거나 전송할 수 없으면 원래 발신지에 상황을 알립니다. 흐름을 제어하고, 목적지를 확인하며, 라우팅을 변경하고, 원격 호스트를 점검합니다. 이 기능을 사용하는 대표적인 명령으로 ping(packet internet gopher)이 있습니다. 매스커레이딩을 사용하는 네트워크에서 ICMP를 사용하려면 이 기능에 [Y]를 답합니다.

IP: maSquerading SpeciaL moduLeS Support: 아래에 나오는 포트 포워딩 등 기능을 지원합니다.

IP: ipautofw maSq Support (EXPERIMENTAL) : (아직)자신의 프로토콜 helper가 없는 프로토콜의 매스커레이딩을 허락합니다. 아직 개발중이며 ipmasqadm 도구가 필요합니다.

IP: ipportfw maSq Support (EXPERIMENTAL) : 포트 포워딩은 제공한 포트를 통해서 패킷이 방화벽 안쪽으로 전송되도록 합니다. 웹서버는 매스커레이딩 호스트를 통해 인터넷에 접속되며 외부의 클라이언트에게는 방화벽 자체가 웹 서비스를 제공하는 것처럼 보입니다. 이 기능은 아직 개발중이며 ipmasqadm 도구가 필요합니다.

IP: ipmarkfw maSquerade Support (EXPERIMENTAL) : 포트 포워딩과 유사한 기능을 제공합니다. 다른 점은 패킷에 "firewaLLing mark"를 사용다는 것입니다.

IP: masquerading virtual server support (EXPERIMENTAL) :

(12) IP masq - VS table size (the Nth power of 2)

IP: forwording/gatewaying : 패킷을 중계하는 기능입니다. 매스커레이딩을 위해서는 반드시 켭니다. 이 경우 매스커레이딩 서비스를 제공하는 리눅스 박스가 디폴트 게이트웨이가 됩니다.

15.4 /etc/sysctl.conf

echo "1" 혹은 echo "0" 등 출럭을 리다이렉트해서 sysctl 요소를 제어할 수 있지만 더 체계적인 방법은 /etc/sysctl.conf를 사용하는 것입니다. 예를 들어 포워딩 옵션을 켜는 명령을 부트할 때마다 매번 실행하기보다는 /etc/sysctl.conf 파일에 다음 한 줄을 추가하는 것이 효율적입니다: net.ipv4.ip_forward=1

16. Telephony Support

여러분이 Quicknet 사의 telephony 카드를 사용하지 않는다면, 이 옵션들은 무시하는 것이 좋습니다.

<M> Linux telephony support
< > QuickNet Internet LineJack/PhoneJack support

17. ATA/IDE/MFM/RLL support

대부분의 PC에서(최근에는 PC급 서버에서도) 사용하는 ATA/IDE/MFM/RLL 장치들을 지원하는 옵션들입니다.

<*> ATA/IDE/MFM/RLL support
IDE, ATA and ATAPI Block devices  --->

ATA/IDE/MFM/RLL support : 저가의 대용량 저장 장치인 ATA/(E)IDE, ATAPI 장치들을 지원합니다. 일반적이 PC 대부분이 IDE 하드드라이브와 ATAPI CDROM 드라이브를 사용합니다. 여러분의 시스템이 SCSI 인터페이스로만 구성되어 있다면 이 옵션에 [N]을 답해도 됩니다. Integrated Disk Electronics (IDE aka ATA-1), Fast-IDE(ATA-2), Enhanced IDE (EIDE, ATA-3) 등 규격이 있습니다. UDMA/33 (aka UltraDMA/33)은 ATA-4로 바른 DMA 컨트롤러를 이용해 이전의 PIO (Programmed processor Input/Output) 방식보다 훨씬 빠른 전송속도(CPU를 덜 바쁘게 합니다)를 제공합니다. ATAPI(ATA Packet Interface)는 SCSI 프로토콜을 흉내내서 EIDE 테이프와 CDROM 드라이브를 위해 만든 프로토콜입니다. SMART IDE (Self Monitoring, Analysis and Reporting Technology)는 하드웨어 고장 조건들을 미리 감지해서(과열, 접근시간, 그리고 그 비슷한...) 데이터 손상과 디스크 뻑을 막으려는 의도로 설계되었습니다. 커널 혼자서는 이 기능을 다루지 못하며 유저 쪽의 프로그램들이 몇 가지 필요합니다. 잘 모르겠으면 [Y]를 답해야 합니다.

18. IDE, ATA and ATAPI Block devices

하드디스크, CDROM 등 블록 단위로 데이터를 다루는 저장장치들을(블록 디바이스) 위한 옵션들입니다.

<*> Enhanced IDE/MFM/RLL diSk/cdrom/tape/fLoppy Support
---PLeaSe See Documentation/ide.txt for heLp/info on IDE driveS
[ ]   USe oLd diSk-onLy driver on primary interface
<*>   IncLude IDE/ATA-2 DISK Support
[ ]     Use multi-mode by default
< >   PCMCIA IDE support
<M>   IncLude IDE/ATAIP CDROM Support
< >   IncLude IDE/ATAPI TAPE Support
< >   IncLude IDE/ATAPI FLOPPY Support
< >   SCSI emuLation Support
--- IDE chipset support/bugfixes
[*]   CMD640 chipSet bugfix/Support
[ ]     CMD640 enhanced Support
[*]   RZ1000 chipSet bugfix/Support
[*]   Generic PCI IDE chipSet Support
[*]     Sharing PCI IDE interrupts support
[*]     Generic PCI buS-maSter DMA Support
[ ]     Boot off-board chipsets first support 
[ ]     OPTi 82C621 chipSet enhancedSupport (EXPERIMENTAL)
[ ]   Other IDE chipset support

Enhanced IDE/MFM/RLL diSk/cdrom/tape/fLoppy Support : 대부분의 PC 에서 사용하는 E-IDE (enhanced-InteLLigent Drive ELectronicS, ATA-2) 디바이스 설정입니다. E-IDE는 IDE (ATA :AT Attachment) 인터페이스의 확장된 표준입니다(ATA-3). IDE에 비하여 인식할 수 있는 하드디스크 크기가 커지고 장착할 수 있는 디스크 제한이 4개로 늘어났습니다. [Y]

USe oLd diSk-onLy driver on primary interface : 매우 오래된 시스템에만 설정합니다. [N]

IncLude IDE/ATA-2 DISK Support : 루트 파일시스템이 이 방식의 IDE 디스크에 설치되었다면 모듈 기능으로 컴파일하지 않습니다. [Y]

Use multi-mode by default : 아래와 같은 에러가 발생하였으면 여기서 Y라고 하세요 hda: set_multmode: status=0x51 { DriveReady SeekComplete Error } hda: set_multmode: error=0x04 { DriveStatusError } 확실치 않다면 N라고 하세요.

PCMCIA IDE Support : 노트북컴퓨터 사용자를 위한 설정입니다. PCMCIA 블록장치가 있다면 [Y]를 설정합니다.

IncLude IDE/ATAPI CDROM Support : ATAPI는 SCSI 프로토콜을 흉내낸 IDE CDROM과 TAPE 드라이버의 새로운 프로토콜입니다. SCSI가 아닌 2배속 이상의 대부분 CDROM은 ATAPI 인터페이스를 사용합니다. "ISO 9660 CDROM fiLeSyStem Support"는 반드시 [Y] 또는 [M]으로 답해야 합니다.

IncLude IDE/ATAPI TAPE Support : 서버에서 흔히 사용하는 테이프 백업 장치 설정입니다. 요즘은 비용과 속도 효율성이 뛰어난 CDR이나 CDRW 등 장치도 백업 매체로 많이 쓰입니다. [N]

IncLude IDE/ATAPI FLOPPY Support : LS-120, IDE/ATAPI Iomega ZIP 드라이브(내장형)를 지원합니다. 이 곳에 [Y] 또는 [M]을 답하면 플로피 드라이브는 "hdb"나 "hdc"등 이름을 가진 IDE 장치로 인식됩니다. 패러랠 Zip 드라이브는 SCSI Low-LeveL driverS에서 설정합니다.

SCSI emuLation Support : 새로운 IDE디바이스들(ATAPI PD-CD or CDR, CDRW drive etc)이 사용하는 프로토콜입니다. IDE/ATAPI 드라이버에서 지원되지 않는 디바이스를 마치 SCSI 장비인 것처럼 사용합니다. [Y]

CMD640 chipSet bugfix/Support : CMD640 IDE 칩셋은 많은 486과 Pentium 마더보드에 사용되는 컨트롤러지만 설계상의 문제가 있습니다. [Y]를 답하면 커널이 몇가지 문제점을 바로잡습니다. 이 드라이버는 PCI 시스템에서 자동으로 동작하지만 베사 로컬버스(VLB)를사용한다면 커널 부트 매개변수로 "ide0=cmd640_vlb"를 넣어야 합니다. SCSI만을 사용하는 시스템에서는 [N]을 설정해야 합니다.

CMD640 enhanced support : CMD640 IDE 인터페이스를 가지고 있고, 장착된 시스템의 BIOS가 제대로 동작하지 않는다면 [Y]를 선택하십시요.

RZ1000 chipset bugfix/support : PC-Technologies RZ1000 IDE 칩은 많은 486, 펜티엄 보드에서 대개 "Neptune"칩셋과 함께 많이 사용됩니다. 불행히도,이 칩은 많은 상황에서 심각하게 데이터를 손실시키는 경우가 생길 수 있는 설계상의 결점을 가지고 있습니다. 이 옵션을 활성화하면 이런 문제를 자동으로 고치고 점검을 해주는 코드가 커널에 포함됩니다. 이 옵션때문에 디스크 입출력 속도가 조금 떨어질지도 모르지만 100퍼센트 신뢰할 수 있도록 작동할 것입니다. SCSI장치만을 가진 시스템이라면 여기에 [N]이라고 하세요. 잘 모르겠으면 [Y]를 답하는 게 안전합니다.

Support for sharing PCI IDE interrupts : 어떤 ATA/IDE 칩셋은 하나의 IRQ를 여러 장치가 공유할 수 있는 기능을 지원하기도 합니다. 대개는 [Y]라 답해도 안전하지만, 확실하지 않다면 [N]을..

Generic PCI bus-master DMA support : 여러분의 PCI 시스템이 IDE 드라이브(여러분 대부분)를 사용하고 bus-master DMA(Direct memory access)를 지원한다면 이 옵션을 활성화해 CPU의 부담을 줄일 수 있습니다. 자동으로 DMA를 설정하지 못한다면 나중에 hdparm 유틸리티를 이용하여 DMA를 사용할 수 있습니다. 기본적으로는 DMA가 죽어있지만 Use DMA by default when available 항목을 활성화하면 DMA를 사용할 수 있습니다. hdparm 유틸리티의 최신버전은 ftp://metalab.unc.edu/pub/Linux/system/hardware/ 에서 찾을 수 있습니다. [Y]라 답하는게 좋습니다.

Boot off-board chipsets first support : 일반적으로, 추가한 PCI카드(내장되지 않은 오프-보드콘트롤러)가 ide2와 ide3이 되고, 내장되어 있는 온-보드 IDE 컨트롤러는 ide0과 ide1됩니다. 이 옵션을 활성화하면 오프-보드 콘트롤러가 ide0/1로, 온-보드 콘트롤러가 ide2/3으로 바뀝니다. 오프-보드 콘트롤러를 이용해서 부팅할 때 lilo 등 부트 매니저의 기능성이 향상될 수 있습니다. 만약 여기에 [Y]라 답하면, hd* 장치는 재배열 되고, fstab등 다른 파일들을 손봐야 할 것입니다. 잘 모르겠으면 [N].

OPTi 82C621 chipSet enhancedSupport (EXPERIMENTAL) : EIDE 컨트롤러 가운데 하나입니다. 여러분의 마더보드에 이 칩셋이 있다면 [Y]

Use DMA by default when available : 커널 버전 2.1.112 이전에는, DMA를 지원하는 IDE 드라이브와 칩셋에 이 기능을 자동으로 사용하였습니다. 그러나 일부 하드웨에서 문제를 일으킬 수 있어, 이제는 DMA 기능을 자동으로 사용하지 않습니다. DMA 기능을 자동으로 사용하시려면, [Y]를 선택합니다. 만약 여러분의 하드웨어에 문제의 소지가 있다면, [N]을 선택합니다. 여러분의 메인보드가 VIA VP2 칩셋을 사용한다면 [N]을 선택해야 하고, 그렇지 않다면 [Y]를 선택해도 좋습니다.

Other IDE chipset support : 만약 마더보드와 애드온 카드에 사용된 갖가지 IDE 형식의 칩셋의 진보된 지원을 원한다면 이 기능을 화성화합니다. 그 다음 서브 옵션에서 맞는 IDE 칩을 선택합니다. 어떤 시스템에서는 이 옵션이 활성화 되어야 세번째/네번째 드라이브를 액세스할 수 있을지도 모릅니다. 시스템 퍼포먼스를 높이기 위해 고속 I/O 세팅도 가능할 것입니다. 이런 설정들을 위해서는 런타임과 관련된 특별한 커널 부트 파라미터도 필요합니다. SCSI만 사용한다면 [N].

18.1 사라진 것들

Generic PCI IDE chipSet Support : InteL 82371 PIIX (Triton I/II) DMA Su pport, Other IDE chipSet Support 등 PCI 칩셋을 위한 옵션은 메인보드 메뉴얼을 잘 살펴보고 설정합니다. 일반적으로 기본설정을 그냥 두어도 잘 동작합니다.

VIA82C586 chipset support (EXPERIMENTAL) : VIA 칩셋은 마더보드에 장착된 IDE 컨트롤러 타이밍을 설정합니다. 이 드라이버를 사용하려면 "Use DMA by default when available" 기능도 함께 선택합니다. 여러분의 마더보드에 VIA 칩셋이 있다면 [Y]

Support removabLe IDE interfaceS(PCMCIA) : 노트북컴퓨터 사용자를 위한 설정입니다. PCMCIA 블록장치가 있다면 [Y]를 설정합니다.

19. SCSI SupporT

고속, 고가의 주번기기 인터페이스인 SCSI를 지원합니다.

<*> SCSI Support
--- SCSI Support type (diSk, tape, CD-ROM)
<*> SCSI diSk Support
(40) Maximum number of SCSI disks that can be loaded as modules
< > SCSI tape Support
< >   SCSI OnStream SC-x0 tape support
< > SCSI CD-ROM Support
<M> SCSI generic Support
--- Some SCSI devideS (e.g. CD jukebox) Support muLtipLe LUNS)
[*]   Enable extra checks in new queueing code
[ ]   Probe aLL LUNS on each SCSI device
[ ]   VerboSe SCSI error reporting (kerneL Size +=12K)
[ ]   SCSI logging facility
SCSI Low-LeveL driverS --->
PCMCIA SCSI adapter support  --->

SCSI support? : SCSI(스커지 혹은 스카시) 하드 디스크나, 테이프 드라이브, 시디롬, 혹은 그 밖의 다른 SCSI 장비를 갖고 있다면 [Y]를 선택합니다. 여러분이 스커지 지원기능을 활성화하려면 반드시 SCSI 호스트 어댑터 (SCSI 컨트롤러라고도 합니다)의 이름을 알고 있어야 합니다. SCSI 컨트롤러가 없더라도 병렬 포트용 100Mb 아이오메가 Zip 드라이브를 가지고 있거나, CD-R, CD-RW 등을 가지고 있다면 이 옵션을 활성화해야 합니다. SCSI-Programming-HOWTO는 리부팅 안 하고 SCSI 장비를 붙이고 뗄 수 있는 정보를 제공합니다. 만약 여러분의 루트 파일시스템(루트 디렉토리(/)를 갖고 있는 파일시스템)이 SCSI 장비에 있다면 모듈로 컴파일하지 않습니다. (아마 부트할 수 없을 것입니다) 잘 모르겠으면 [Y]를 답합니다.

SCSI Support, SCSI diSk Support : 스커지 디스크가 부팅디스크라면 모듈로 설정하지 않습니다. SCSI tape, SCSI CD-ROM은 모듈로 선택해도 좋습니다.

SCSI generic Support : CD-Writer, 스캐너, 신디사이저 등 장치에 쓰입니다. 이 기능은 커널에서 바로 지원하지 않으므로, SCSI 프로토콜을 지원하는 특별한 소프트웨어들이 필요합니다. CD-Writer는 cdwrite나 cdrecord 등 특별한 소프트웨어를 구해야 합니다. 그 밖의 장비들은 SCSI-HOWTO와 SCSI-Programming-HOWTO 문서를 참조합니다. 아무튼, CD-R 등 장비가 있다면 [Y] 혹은 [M](모듈 이름은 sg.o).

Enable extra checks in new queueing code : 이 옵션은 시스템 성능에 부정적인 영향을 미치지만, 버그들이 빨리 잡힐 가능성을 높입니다. 이 옵션을 활성화하면 에러가 감지되었을 경우에 일반적으로 커널 패닉을 유발시키지만, (이 옵션이 선택되지 않아서) 이러한 패닉이 일어나지 않는다면 시스템 충돌이 발생할 것입니다.

Probe all LUNs on each SCSI device : CD Jukebox와 같이 하나 이상의 LUN(논리장치번호)을 지원하는 SCSI장치가 장치되어 있는데도 한개의 LUN만이 인식된다면 여기에서 [Y]를 선택해서 강제로 SCSI 드라이버가 다수개의 LUN을 검색하도록 할 수 있습니다. 다수개의 LUN을 지원하는 SCSI장치는 논리적으로 다수개의 SCSI장치처럼 동작합니다. 대다수의 SCSI장치는 하나의 LUN만을 지원하므로 대부분 여기에서 "N"을 선택해도 무방하며, 사실 "N"을 선택하는 편이 더 안정적이기 때문에 "N"을 선택해야만 합니다.

Verbose SCSI error reporting (kernel size +=12K) : 이 질문에 Y를 선택하면 SCSI 하드웨어에 관한 에러 메시지가 자세히 나와서 이해하기가 쉽습니다. 대신 커널 크기는 약 12K 증가합니다. 확실하지 않다면 [Y]를 선택합니다.

SCSI logging facility : SCSI에 관련된 debug에 사용할 수 있는 logging 도구를 활성화합니다. 이 옵션과 함께 아래에서 "/proc filesystem support", "Sysctl support"를 설정하면, echo "scsi log token [level]" > /proc/scsi/scsi 명령어로 로깅 기능을 활성화할 수 있습니다. [N]이라고 답하면 SCSI에 관련된 문제 가운데 어떤 것들은 추적하기 어려워질 수 있습니다. 물론 이 옵션에 대해 Y라고 체크하면 커널의 크기가 다소 커지는 것은 사실이지만, logging을 끈 상태에 비해 퍼포먼스가 저하되었다는 것을 느낄 수는 없을 것입니다.

19.1 SCSI Low-LeveL driverS

저수준의 특정 SCSI 드라이버에 대한 설정입니다.

< > 7000FASST SCSI Support
< > ACARD SCSI Support
< > Adaptec AHA152X/2825 Support
< > Adaptec `AHA1542 Support
< > Adaptec AHA1740 Support
< > Adaptec AIC7xxx Support
< > AM53/79C974 PCI SCSI Support
< > BuSLogic SCSI Support
.... 
<*> IOMEGA ParaLLeL port (ppa - oLder driveS)
< > IOMEGA ParaLLeL port (imm - newer driveS)
[ ]ppa/imm option - USe SLow (but safe) EPP-16
[ ]ppa/imm option - ASSume SLow parport xontroL regiSter
.... 

Adaptec AIC7xxc 드라이버 : Adaptec의 제품들 가운데 274x, 284x, 294x, 394x, 3985 등 모델을 지원합니다. 도움말을 반드시 살펴봅니다.

IOMEGA ParaLLeL port (ppa - oLder driveS) : 오래된 Iomega 패러랠 포트 Zip 드라이브(100MB)를 지원합니다. Zip 드라이브가 새로운 버전이라면 [N]를 선택하고 아래 IOMEGAparaLLeL port (imm -newer driveS)에서 [Y]를 선택합니다. 스커지 인터페이스를 사용하는 드라이브는 "SCSI disk support" 기능에서 지원하므로 이 옵션은 [N]를 설정합니다. 이 기능을 커널에 포함해도 프린터 등 다른 작업을 안전하게 사용할 수 있습니다. 패러랠 포트를 사용하는 IOMEGA Zip 드라이브는 /dev/sda4라는 장치이름을 사용합니다.

IOMEGA ParaLLeL port (imm- newer driveS) : 새로운 버전의 Iomega 패러랠 포트 Zip 드라이브(100MB)를 지원합니다. 오래된 버전 Zip드라이브라면 [N]를 선택합니다. "IOMEGA ParaLLeL port (ppa - oLderdriveS)"를 참고합니다.

19.2 PCMCIA SCSI adapter support

랩탑에서 사용하는 스커지 장비에 대한 설정입니다. SCSI 호스트 어뎁터로 동작하는 PCMCIA나 CardBus 카드가 있다면 적절한 것들을 설정합니다.

[ ] PCMCIA SCSI adapter support
< >   Adaptec AHA152X PCMCIA support
< >   Qlogic PCMCIA support
< >   Future Domain PCMCIA support
< >   Adaptec APA1480 CardBus support

CONFIG_SCSI_PCMCIA :

20. IEEE 1394 (FireWire) support

요즘 가장 주목받고 있는 기술 가운데 하나인 IEEE1394 관련 지원입니다. 여러분의 리눅스 박스가 IEEE1394를 지원하는 (비교적 행복한^^) 장비들을 가진 시스템이라면 이 옵션을 활성화합니다. I3E 1394는 파이어와이어, I-링크 등 다른이름으로 불리기도 합니다.

<M> IEEE 1394 (FireWire) support (EXPERIMENTAL)
< > Texas Instruments PCILynx support
< > OHCI (Open Host Controller Interface) support
< > Raw IEEE1394 I/O support
[ ] Excessive debugging output

여러분의 호기심을 위해 IEEE1394에 대한 짤막한 정리를 덧붙입니다.

IEEE1394의 유래 :

I3E1394 이전의 메인보드는(내 메인보드를 포함해서) 플로피디스크 컨트롤러와 E-IDE용 하드디스크 컨트롤러가 따로 있고, 어떤 이들은 SCSI 카드를 덧붙이기도 합니다. 당연한 듯 들리지만 플로피디스크 커넥터에 하드 디스크를 연결한다거나 스커지 기기를 E-IDE에 꽂는 따위는 불가능한 일이었습니다. 또 키보드 커넥터, 마우스 커넥터, Serial/Parallel 커넥터, 사운드 카드 등 정말 복잡한 모습을 볼 수 있습니다. 그래서 주변기기(특히 고속의 주변기기)를 케이블 하나에 연결하는 IEEE1394 표준이 새로 개발되었습니다. 브리지 하나마다 63개의 장치를 직렬로 연결할 수 있으며 한 장비의 전원이 나가더라도 다른 장비에는 영향을 주지 않습니다. 옵션에 있는 FireWire는 I3E1394의 코드네임으로 애플사와 텍사스인스트루먼트사가 공동으로 개발해왔습니다. I3E1394는 PC의 시리얼 통신(RS-232)의 1만배, USB의 10배, 그리고 스커지보다도 빠른 속도를 지원합니다. 앞으로는 1.6Gbps(현재의 광통신보다 빠른)도 개발된다고 합니다.

장점

디지털 인터페이스이기 때문에 아날로그로 변환할 필요가 없고 데이터의 손실이 적습니다. 얇은 케이블을 사용하여 작고, 저렴합니다. 사용하기 쉽습니다. Hot-Plugging, PnP를 지원합니다. 100, 200, 400Mbps의 서로 다른 속도를 혼합하여 사용할 수 있습니다. Flexible topology - daisy chaining와 true peer-to-peer communication을 지원하며 멀티미디어 데이터도 실시간으로 전송이 가능할 정도로 빠른 전송속도와 등시 전송 기능을 가집니다.

21. I2O device support

I2O을 지원하는 시스템은 호스트의 I/O 작업 부담을 덜고, 네트워크로 연결된 비디오와 그룹웨어, 클라이언트/서버 처리 등 높은 대역폭 응용 프로그램에서 I/O 성능이 눈에 띄게 빨라진다고 합니다.

< > I2O support
< >   I2O PCI support
< >   I2O Block OSM
< >   I2O LAN OSM
< >   I2O SCSI OSM
< >   I2O /proc support

I2O support : Intelligent Input/Output (I2O) 아키텍쳐는 입출력을 CPU에 맡기지 않고 장치에 있는 프로세서가 독립적으로 처리해서 네트워크 환경에서 I/O 병목현상을 줄여줍니다. 결과적으로 전체 네트워크 속도가 향상되며 I2O를 지원하는 서버는 더 많은 사용자에게 더 다양한 서비스를 원활하게 제공할 수 있습니다. 이 옵션이 제대로 동작하려면 이 카드는 특별한 I/O 프로세서(IOP)를 탑재한 I2O 인터페이스 어뎁터 카드가 있어야합니다. I2O는 서버급 시스템을 위한 아키텍처이지만 데스크탑 PC나 워크스테이션에서도 도움이 됩니다. 잘 모르겠으면 [N].

22. Network device SupporT

다양한 네트워크 디바이스에 대한 설정입니다. 이제 리눅스는 고가의 라우터 장비는 물론 Traffic Shaper 등 고도로 지능화된 장비들을 대신할 수도 있습니다. 모 CF 카피가 생각나는군요. "상상만 하면 되"

[*] Network device Support
< > ARCnet Support  --->
<M> Dummy net driver Support
< > Bonding driver support
< > EQL (SeriaL Line Load baLancing) Support
< > Universal TUN/TAP device driver support
< > Ethertap network tap (OBSOLETE)
< > General Instruments Surfboard 1000  
[*] Ethernet (10 of 100Mbit)  --->
Ethernet (1000 Mbit)  --->
[ ] FDDI driver support
[ ] HIPPI driver support (EXPERIMENTAL)
< > PLIP (parallel port) support
< > PPP (point-to-point protocol) support
< > SLIP (serial line) support
Wireless LAN (non-hamradio)  --->
Token Ring devices  --->
[ ] Fibre Channel driver support
< > Red Creek Hardware VPN (EXPERIMENTAL)
< > Traffic Shaper (EXPERIMENTAL)
Wan interfaces  --->
PCMCIA network device support  --->

Network device Support : 이더넷 디바이스와 PPP(전화선을 이용한 다이얼업 네트워크), SLIP(전화선을 이용한 다이얼업 네트워크), PLIP(패러랠포트를 이용한 네트워크) 등 네트워크 장치들을 지원합니다. 리눅스 박스가 네트워크에 연결되려면 반드시 [Y]를 선택합니다.

ARCnet Support : ARCnet 칩셋이 있는 네트워크 카드를 가졌다면 [Y]를 선택합니다. 아크넷은 전송률이 낮지만(2.5Mbps) 케이블이 훨씬 길어질 수 있어 공장 등에서 사용되기도 합니다. 잘 모르겠으면 [N].

< > ARCnet support                                       
< > Enable standard ARCNet packet format (RFC 1201) (NEW)
< > Enable old ARCNet packet format (RFC 1051) (NEW)     
< > Enable raw mode packet interface (NEW)               
...생략

Dummy net driver Support : Dummy net driver는 패킷을 버리는 쓰레기통 (bit-bucket)입니다. PPP나 SLIP을 사용한다면 [Y]나 [M]을 답합니다. 모듈로 컴파일하면 더미 터미널 여럿을 동시에 사용할 수 있습니다. 어떻게 설정하더라도 커널 크기는 늘어나지 않습니다. [M]을 권장합니다.

Bonding driver support : "bond" 다중 이더넷 채널을 사용하려면 [Y]나 [M]을 답합니다. SISCO에서는 이 것을 "Etherchannel"이라 부르며, Sun에서는 "Trunking", 리눅스에서는 "Bonding"이라 부릅니다. 여러분이 어떤 다른 컴퓨터에 이더넷 연결을 두 개 가지고 있다면, 이 드라이버를 이용해서 두 배 속도를 가진 하나의 장치처럼 동작하도록 만들 수 있습니다. 여러분의 리눅스 박스와 연결 된 저쪽 머신도 리눅스 Bonding이나 Cisco 5500 switch, 혹은 SunTrunking SunSoft driver처럼 이와 비슷한 기능을 지원해야 합니다. EQL 드라이버와 비슷하지만 시리얼 라인 대신 이더넷 세그먼트를 합칩니다. 잘 모르겠으면 [N].

EQL (SeriaL Line Load baLancing) Support : 여러 개의 PPP, SLIP 연결을 향상된 속도를 가진 하나의 연결로 사용하는 기능입니다. 연결된 저 쪽 끝에서도 이 기능을 지원해야 사용할 수 있습니다. 잘 모르겠으면 [N].

Universal TUN/TAP device driver support : TUN/TAP는 유저 공간의 프로그램들을 위한 패킷 수취와 전달을 제공합니다. TUN/TAP는 물리적인 매체로부터 패킷을 받는 대신, 유저공간 프로그램으로부터 받고, 물리적인 매체를 통해 패킷을 보내는 대신 유저공간 프로그램에 그 것들을 쓰는 간단한 Point-to-Point나 Ethernet 장치로 생각할 수 있습니다. 프로그램이 /dev/net/tun 파일을 열면, 드라이버가 tunX나 tapX 등 일치하는 넷 디바이스를 생성하고 등록합니다. 프로그램이 그런 장치들을 닫으면, 드라이버가 자동으로 tunXX나 tapXX 등 장치를 지우고 모두 이 것에 일치하도록 라우트합니다. 어떤 곳에 써야할지 모르겠다면 이 기능은 필요 없습니다.

Ethertap network tap (OBSOLETE) : 여러분이 이 옵션에 [Y]를 답하고 (위에서 "Kernel/User network link driver"도 [Y]) mknod 명령으로 메이저 넘버 36 마이너 넘버 16번인 캐릭터형 특수 파일 /dev/tap0을 만들었다면, 유저 공간 프로그램들이 이더넷 프레임들을 그 파일을 통해 읽고 쓸 수 있을 것입니다. tap0는 ifconfig와 route 명령에 의해 다른 이더넷 장치들처럼 설정될 수 있지만 어떤 물리적 LAN에도 연결되지 않습니다; 사용자가 /dev/tap0에 쓰는 모든 것이 마치 LAN으로부터 tap0 장치에 온 것처럼 커널에 의해 다뤄집니다; 커널이 tap0 장치 너머로 보내려 하는 모든 것들이 사용자에게는 /dev/tap0로부터 읽혀집니다. 어떤 곳에 써야할지 모르겠다면 이 기능은 필요 없습니다.

General Instruments Surfboard 1000 : SURFboard 1000 내장 케이블 모뎀 드라이버입니다. 이 카드가 없다면 [N]를 선택합니다.

Ethernet (10 or 100Mbit) : 여러분의 리눅스 박스에 들어있는 네트워크 인터페이스 카드(NIC) 대부분을 지원합니다. 잘 모르겠으면(그래서는 안되지만) [Y]를 설정합니다. 아래에 다시 자세한 설명이 나옵니다.

Ethernet n1000 Mbit) : 기가비트 이더넷 지원입니다. 잘 모르겠으면 [N].

FDDI driver support : HIgh Performance Parallel Interface (HIPPI)는 구리선(25m)이나 광섬유(멀티모드에서 300미터, 싱글모드에서 10킬로미터)를 매체로 800Mbit/sec과 1600Mbit/sec의 높은 속도를 내는 네트워크입니다. 일반적으로 클러스터와 슈퍼컴퓨터 연결에 쓰이는데, 이 기능을 사용하려면 HIPPI 네트워크 카드가 있어야 합니다. 여러분 대부분은 아마 [N]이 적절할 것입니다.

PLIP (paraLLeL port) Support : 패러랠포트와 크로스 케이블을 이용해 두 리눅스 박스를 연결합니다(TCP/IP를 이용합니다). PLIP에는 "nuLL printer" (또는 "fx") 케이블을 통해 4bitS 씩전송하는 mode0와, 특별한 PLIP 케이블을 이용해 8bitS를 전송하는 mode1이 있습니다. 잘 모르겠으면 [N].

PPP (point-to-point) Support : PPP는 SLIP보다 향상된 기능을 가진 시리얼 라인(전화선 등) 네트워킹 프로토콜입니다. "Set verSion information on aLL SymboLS for moduLeS"에 [Y]를 답했다면 모듈로만 컴파일할 수 있습니다. 케이블 모뎀이나 ADSL 등을 통해 인터넷에 열결되거나 이더넷 카드를 가지고 있다면(LAN) PPP는 필요 없습니다. 잘 모르겠으면 [N].

[ ]   PPP multilink support (EXPERIMENTAL)
< >   PPP support for async serial ports
< >   PPP support for sync tty ports
< >   PPP Deflate compression
< >   PPP BSD-Compress compression
< >   PPP over Ethernet (EXPERIMENTAL)

SLIP (SeriaL Line) Support : PPP 이전에 많이 사용하던 시리얼 라인 네트워크 프로토콜입니다. 잘 모르겠으면 [N].

WireLeSS LAN (non-hamradio) : radio와 무선 랜을 지원합니다. 그러나 amateur radio와 FM 방송은 제외합니다. 배선이 필요없고, 단말기 설치가 자유로우며, 네트워크 설치가 빠르고 유연하다는 장점이 있습니다. 일반적으로 저속의 무선 LAN은 공장 자동화나, 프린터 서버, 무선 모뎀 등 에 쓰입니다. 서로 떨어진 건물에 설치된 LAN 사이를 연결할 때에도 쓰이고 있습니다. 잘 모르겠으면 [N].

Token Ring devices : IBM에서 개발한 token 방식의 랜입니다. IBM 메인프레임에서 주로 사용합니다. 잘 모르겠으면 [N].

Fibre Channel driver support : Fibre Channel은 주로 대용량 저장 장치에 쓰이는 고속 시리얼 프로토콜입니다. 이 프로토콜을 SCSI와 호환되며 대체할 수 있습니다. Fibre channel 어뎁터 카드가 있는 분은 "SCSI support"와 "SCSI generic support"도 활성화해야 합니다. 잘 모르겠으면 [N].

Red Creek Hardware VPN (EXPERIMENTAL) : 이 옵션은 Virtual Private Network (VPN)을 제공하는 하드웨어를 위한 드라이버입니다. 그런 장치들이 있다면 [Y]를 선택합니다.

Traffic Shaper (EXPERIMENTAL) : Traffic Shaper는 어떤 네트워크 장치를 지나서 나가는 데이터 흐름 속도를 제한할 수 있는 가상의 네트워크 장치입니다 (traffic shaper라는 이름을 가진 고가의 실제 장비를 소프트웨어적으로 구현한 것입니다). 여러분이 속도를 낮추려는(예를 들어 덜 중요하다고 생각하는) 트래픽은 이 가상의 디바이스를 거친 다음에 라우트될 수 있습니다. traffic shaper는 Class-Based Queueing (CBQ) 스케쥴러로 대체할 수 있습니다. shaper 장치를 사용하려면 ftp://shadow.cabi.net/pub/Linux에서 shaper 패키지를 가져와야합니다. 잘 모르겠으면 [N].

22.1 Ethernet (10 of 100Mbit)

Ethernet (10 of 100Mbit) : 리눅스 박스에이더넷 네트워크 인터페이스 카드 (NIC)가 설치되었다면 반드시 [Y]를 선택합니다. (여러분이 흔히 랜카드(LAN Card)라 부르는 디바이스가 대부분 이더넷 카드입니다.) 3com 등 가장 많이 쓰이는 NIC와 다른 ISA, EISA, PCI 네트워크디바이스에 대한 세부 설정이 이어집니다. 이더넷 카드가 없다면 [N]을 선택합니다.

[*] Ethernet (10 or 100Mbit)                                      
[*]   3COM cards                                                  
< >     3c501 "EtherLink" support (NEW)                           
< >     3c503 "EtherLink II" support (NEW)                        
< >     3c505 "EtherLink Plus" support (NEW)                      
< >     3c507 "EtherLink 16" support (EXPERIMENTAL) (NEW)         
< >     3c509/3c529 (MCA)/3c579 "EtherLink III" support (NEW)     
< >     3c515 ISA "Fast EtherLink" (NEW)                          
< >     3c590/3c900 series (592/595/597) "Vortex/Boomerang" support
< >   AMD LANCE and PCnet (AT1500 and NE2100) support             
[ ]   Western Digital/SMC cards                                   
[ ]   Racal-Interlan (Micom) NI cards                             
< >   AT1700/1720 support (EXPERIMENTAL)                          
< >   DEPCA, DE10x, DE200, DE201, DE202, DE422 support            
< >   HP 10/100VG PCLAN (ISA, EISA, PCI) support                  
[ ]   Other ISA cards                                             
[*]   EISA, VLB, PCI and on board controllers                     
< >     AMD PCnet32 PCI support                                   
< >     AMD PCnet32 PCI support                                   
< >     Adaptec Starfire support (EXPERIMENTAL)                   
< >     Ansel Communications EISA 3200 support (EXPERIMENTAL)     
< >     Apricot Xen-II on board Ethernet                          
< >     CS89x0 support                                            
< >     DECchip Tulip (dc21x4x) PCI support                       
< >     Generic DECchip & DIGITAL EtherWORKS PCI/EISA             
< >     Digi Intl. RightSwitch SE-X support                       
< >     DM9102 PCI Fast Ethernet Adapter support (EXPERIMENTAL)   
<*>     EtherExpressPro/100 support                               
[ ]       Enable Power Management (EXPERIMENTAL)                  
< >     National Semiconductor DP83810 series PCI Ethernet support
< >     PCI NE2000 and clones support (see help)                  
< >     RealTek RTL-8139 PCI Fast Ethernet Adapter support        
< >     RealTek 8129 (not 8019/8029/8139!) support (EXPERIMENTAL) 
< >     SiS 900/7016 PCI Fast Ethernet Adapter support            
< >     SMC EtherPower II                                         
< >     Sundance Alta support                                     
< >     TI ThunderLAN support                                     
< >     VIA Rhine support                                         
< >     Winbond W89c840 Ethernet support                          
< >     Sun Happy Meal 10/100baseT PCI support                    
[ ]   Pocket and portable adapters                                

여러분이 가진(혹은 앞으로 구입할) NIC가 아니라면 당연히 [N]을 선택해야 합니다.

3COM cards : 3COM의 어뎁터들은 비싸지만 많은 네트워크에서 성능이 입증된 좋은 장비들입니다. 리눅스에서도 가장 많은 추천을 받습니다.

Other ISA cards : 이제 ISA NIC는 거의 쓰이지 않습니다. 여러분의 리눅스 박스에도 아마 없을 것입니다. ISA 슬롯은 PCI 슬롯보다 상대적으로 크며(길고 넓습니다) 대개가 까만 색입니다. 잘 모르겠으면 [N].

EISA, VLB, PCI and on board controllers : 요즘 구입할 수 있는 거의 모든 NIC가 PCI 방식입니다. 잘 모르겠으면 [Y]를 답하는 게 안전합니다. 자신의 이더넷 장비가 PCI를 사용한다면 다음 명령으로 칩셋 등 상세 정보를 확인할 수 있습니다:

# cat /proc/pci | grep -i ethernet
    Ethernet controller: AMD Unknown device (rev 82).
    Ethernet controller: DEC DC21140 (rev 34).

AMD PCnet32 PCI support : 홈랜(혹은 BnA) 형식의 ADSL 서비스에서 사용하기도 합니다. 32비트 버스 매스터링 어댑터로 가장 추천받는 NIC 가운데 하나입니다. HomePNA 장비는 보다 값싼 홈 네트워킹을 위해 개발되었으며 전화선을 통해 최고 10Mbps속도를 제공할 수 있습니다. 기존의 전화 서비스나 노이즈를 피하기 위해 고주파(2MHz 이상)를 사용하며, 전화 회선이 낡지 않았다면 신뢰성이 높으며 안전합니다. 앞으로 가전제품에도 TCP/IP 등 프로토콜을 사용할 수 있는 장비가 추가된다면 더욱 많은 역할을 하게 될 것이라 합니다.

Adaptec Starfire support (EXPERIMENTAL) : 다중 포트를 지원하는 어뎁터입니다.

DECchip Tulip (dc21x4x) PCI support : 튤립 역시 리눅스에서 호평받는 NIC입니다.

EtherExpressPro/100 support : 거의 모든 커널 버전에서 이 옵션이 활성화되어 있는 것을 볼 수 있는데 그 이유는 모르겠습니다. 가장 안정적인 NIC 가운데 하나로 리눅서들 사이에서 많은 사랑을 받기는 하지만. 이 어뎁터가 없다면 [N]를 선택합니다.

PCI NE2000 and clones support (see help) : ISA 시절에는 NE2000이 가장 많은 추천을 받는 카드였습니다.

RealTek RTL-8139 PCI Fast Ethernet Adapter support : 리얼텍 시리즈는 최근 가난한 리눅서들 사이에 가장 많은 추천을 받는 대만산 저가형 NIC 가운데 하나입니다.

22.2 Wan interfaces :

리눅스 박스와 WAN 인터페이스 카드를 이용해 저럼하게 (고가의 WAN 장비와 비교해서 상대적으로) WAN 라우터를 구현할 수 있습니다.

[*] Wan interfaces support                                    
< >   Comtrol Hostess SV-11 support (NEW)                     
< >   COSA/SRP sync serial boards support (NEW)               
< >   MultiGate (COMX) synchronous serial boards support (NEW)
< >   LanMedia Corp. SSI/V.35, T1/E1, HSSI, T3 boards (NEW)   
< >   Sealevel Systems 4021 support (NEW)                     
< >   SyncLink HDLC/SYNCPPP support (NEW)                     
< >   Frame relay DLCI support (NEW)                          
< >   SBNI12-xx support (NEW)                                 

X.25, 프레임 릴레이, 임대 회선 등과 같은 WAN(Wide Area Networks). 보통 비동기 모뎀 접속 속도보다 훨씬 빠른 데이터 전송율을 이용하여 원거리의 LAN(Local Area Networks)을 상호 연결하는데 사용됩니다. 일반적으로 WAN에 연결하려면 꽤 고가 장비인 "WAN 라우터"가 있어야 합니다. 하지만 이에 대한 대안으로 리눅스 커널에 WAN 라우팅 기능을 넣을 수 있습니다. 시중에 판매되는 비교적 저가의 WAN 인터페이스 카드를 이용하면 외장 라우터 가격의 절반도 안되는 비용으로 완벽한 WAN 라우터를 만들 수 있습니다. 이런 카드를 갖고 있고 또 리눅스 박스를 WAN 라우터로 사용할 계획이라면 이 옵션에 Y를 선택하고, 다음에 나오는 WAN 드라이버도 선택하십시오. 그런 다음에는 ftp://ftp.sangoma.com에서 구할 수 있는 wan-tools 패키지가 있어야 합니다. 잘 모르겠으면 [N].

22.3 PCMCIA network device support :

PCMCIA나 CardBus 네트웍 어댑터를 가지고 있다면 [Y]를 선택합니다. 잘 모르겠으면 [N].

[*] PCMCIA network device support
<M>   3Com 3c589 PCMCIA support
< >   3Com 3c574 PCMCIA support
< >   Fujitsu FMV-J18x PCMCIA support
< >   NE2000 compatible PCMCIA support
< >   New Media PCMCIA support
< >   SMC 91Cxx PCMCIA support
< >   Xircom 16-bit PCMCIA support
< >   Xircom Tulip-like CardBus support
[ ]   Pcmcia Wireless LAN
< >     Aviator/Raytheon 2.4MHz wireless support
< >     Xircom Netwave AirSurfer wireless support
< >     AT&T/Lucent Wavelan wireless support
< >     Aironet 4500/4800 PCMCIA support

22.4 그 밖에

AC Wire(교류 전선): 아직 안정성이라든가 속도가 기존의 네트워크에 비해 떨어지지만 앞으로 매우 크게 성장하리라 예상됩니다. 모든 가정에서 이미 갖추고 있는 전기배선을 이용해 네트워크를 구성하므로 홈 네트워킹에 가장 이상적인 기술이 될 것입니다. 아마 리눅스에서도 곧 이 기술을 지원하게될 것입니다. 리눅스가 들어 있는 에어컨에 접속하는 상상을 해보면..

23. Amateur Radio SupporT

Amateur radio를 이용해 무선 네트워킹을 하는 기술입니다. 잘 모르겠으면 [N].

[ ] Amateur Radio Support

AX.25-HOWTO에 커널설정과 기술 구현에 대한 자세한 정보가 있습니다. HAM-HOWTO, NET-3-HOWTO를 참고합니다.

24. IrDA (infrared) SupporT

무선 네트워킹, 장비 연결에 쓰이는 적외선 프로토콜을 지원합니다. 4Mbps 속도에 전송거리도 블루투스보다 넓지만 장애물이 있을 경우 전송이 어렵습니다.

<M> IrDA SubSyStem Support
--- IrDA protocols
< >   IrLAN protocoL
< >   IrNET protocol
< >   IrCOMM protocoL
[ ]   Ultra (connectionless) protocol
[*]   IrDA protocoL optionS
Infrared-port devide driverS --->

IrDA SubSyStem Support : InfraredData ASSociation(TM)은 적외선을 이용한 근거리 무선통신 시스템, 프린터, 시리얼 장치등의 표준 프로토콜을 지원합니다.

24.1 Infrared-port device driverS

적외선을 이용해서 무선으로 데이터를 주고 받는 장비들을 지원합니다.

--- SIR device drivers
< > IrTTY (uses Linux serial driver)
< > IrPORT (IrDA serial driver)
--- FIR device drivers
< > NSC PC87108/PC87338
< > Winbond W83977AF (IR)
< > Toshiba Type-O IR Port
< > SMC IrCC (Experimental)
--- Dongle support
[ ] Serial dongle support

25. ISDN SubSySteM

ISDN을 통해 인터넷에 연결되지 않는다면 어떤 것도 활성화하지 않습니다.

<M> ISDN Support
[ ] Support SynchronouS PPP
[ ] Support audio via ISDN
[ ] X.25 PLP on top of ISDN (EXPERIMENTAL)
< > ICN 2B and 4B Support
< > iSdnloop Support
< > PCBIT-D Support
< > HiSax SiemenSChipSet drive Support
< > AVM-B1 with CAPI2.0 Support
ISDN Support : ISDN은 전화선을 이용한 디지틀 종합 서비스입니다. 일반적으로 B채널 두 개를 사용하는데(2B 방식) 한 채널이 64KB의 전송속도를 가집니다. ISDN을 사용하기 위해서는 특별한 단말 장치를 구비해야 합니다. ISDN을 사용하지 않는다면 [N].

Support SynchronouS PPP : 이 프로토콜은 CiSco와 Sun에서 시험적으로 사용되었습니다. 접속된 저 끝에서 지원한다면 [Y]를 답합니다. 이기능을 사용하기 위해서는 ipppd라 불리는 특별한 버전의 pppd가 필요합니다.

[ ] USe VJ-compreSSion with SynchronouS PPP
[ ] Support generic MP (RFC 1717)
Support audio via ISDN : HiSax 처럼 Low LeveL Driver가이 기능을 지원한다면 리눅스 박스를 getty를 이용하여 ISDN 응답 서버로 만들 수 있습니다.

X.25 PLP on top of ISDN (EXPERIMENTAL) : Documentation/isdn/READ ME.x25를 참고합니다.

ICN 2B and 4B Support : 2B는 표준 버전으로 두 채널을 가진 한 라인을 말하고 4B는 두 라인을 지원합니다.

iSdnLoop Support : 테스트를 위한 가상(virtuaL) ISDN 카드를 제공합니다.

AVM-B1 with CAPI2.0 Support : AVM-B1 ISDN카드를 지원합니다. CAPI (common ISDN appLcation programming interface)를 지원합니다.

26. OLd CD-ROM driverS (not SCSI, not IDE)

요즘은 거의 볼 수없는 오래된 CD-ROM들의 비표준 인터페이스를 지원하는 드라이버들입니다. [N]

[ ] Support non SCSI/IDE/ATAPI CDROM driverS

27. Input core support

입력장치들을 지원합니다.

<M> Input core support
< >   Keyboard support
< >   Mouse support
< >   Joystick support
< >   Event interface support

Keyboard support : USB HID키보드를 시스템 키보드로 사용하려면 [Y]를 선택합니다.

Mouse support : USB로 컴퓨터에 키보드, 마우스, 조이스틱, 그래픽 태블릿, UPS, 또는 다른 HID 기반 장치를 연결하려면 [Y]를 선택합니다. 확실하지 않으면 [Y]를 선택합니다.

Horizontal screen resolution : 여러분이 디지타이저나 그래픽 테블릿, 마우스 등을 사용하며 이 것들을 마우스처럼 쓰고 싶다면 mousedev 드라이버가 X window 스크린 해상도를 알고 있어야 크기를 제대로 다룰 수 있습니다. 디지타이저나 그래픽 테블릿 등 장비가 없다면 [N]을 선택합니다.

Vertical screen resolution : 여러분이 디지타이저나 그래픽 테블릿, 마우스 등을 사용하며 이 것들을 마우스처럼 쓰고 싶다면 mousedev 드라이버가 X window 스크린 해상도를 알고 있어야 크기를 제대로 다룰 수 있습니다. 디지타이저나 그래픽 테블릿 등 장비가 없다면 [N]을 선택합니다.

Joystick support : USB HID 조이스틱이나 게임패드가 있다면 [Y]를 선택합니다.

Event interface support : USB나 ADB HID 장치 이벤트를 /dev/input/eventX 장치를(문자형 디바이스 13:64+) 통해 일반적인 방법으로 엑세스하려면 [Y]를 선택합니다.

28. Character deviceS

터미널, 비디오 어뎁터, 마우스, 프린터 등 다양한 장치들을 지원합니다.

[*] VirtuaL terminaL
[*]   Support for conSoLe on virtuaL terminaL
<M> Standard/generic (dumb) SeriaL Support
[ ]   Support for conSoLe on SeriaL port
[ ] Extended dumb SeriaL driver optionS
[ ] Non-standard serial port support
[*] Unix98 PTY Support
(256) Maximum number of Unix98 PTYS in uSe (0-2048)
<M> ParaLLeL printer Support
[ ]   Support for console on line printer
< > Support for user-space parallel port device drivers
I2C support  --->
Mice  --->
Joysticks  --->
[ ] QIC-02 tape Support
Watchdog Cards  --->
< > Intel i8x0 Random Number Generator support
< > /dev/nvram support
< > Enhanced Real Time Clock Support
< > Double Talk PC internal speech card support
< > Siemens R3964 line discipline
< > Applicom intelligent fieldbus card support
Ftape, the floppy tape device driver  --->
<*> /dev/agpgart (AGP Support)
[*]   Intel 440LX/BX/GX and I815/I840/I850 support
[*]   Intel I810/I815 (on-board) support
[*]   VIA chipset support
[*]   AMD Irongate support
[*]   Generic SiS support
[*]   ALI chipset support
[*] Direct Rendering Manager (XFree86 DRI support)
< >   3dfx Banshee/Voodoo3+
< >   3dlabs GMX 2000
< >   ATI Rage 128
< >   ATI Radeon
< >   Intel I810
< >   Matrox g200/g400
PCMCIA character device support  --->

VirtuaL terminaL : 하나의 물리적인 터미널 위에 여러 개의 가상 터미널을 실행하는 리눅스의 멋진 기능입니다. 가상 터미널은 여러 개의 X 세션을 띄울 수도 있습니다. 가상 터미널 사이를 옮겨 다닐 때에는 <aLt>키와 기능키를 조합하여 사용합니다. 최소한 하나의 가상 터미널이 있어야 키보드와 모니터를 쓸 수가 있습니다. 잘 모르겠으면 [Y]를 선택합니다.

Support for conSoLe on virtuaL terminaL : 시스템 콘솔은 모든 커널메시지와 경고 메시지를 수취하고, 단독 사용자 모드에서 로그인을 허용하는 장치입니다. [Y]를 답하면 가상 콘솔을 "console=tty3"와 같은 명령을 사용하여 시스템 콘솔로 사용할 수 있습니다. 잘 모르겠으면 [N].

Standard/generic (dumb) SeriaLSupport : 모뎀과 시리얼 마우스, 시리얼 디바이스를 사용하는 기능입니다. 잘 모르겠으면 [Y]를 답하는 게 안전합니다.

Support for console on serial port : 이 옵션을 활성화하면 직렬 포트를 시스템 콘솔로 쓸 수 있습니다. (시스템 콘솔은 커널 메세지와 경고들을 받아 뿌려주고 싱글 유저 모드로 로긴할 수 있게 해주는 디바이스입니다.) 가령 직렬 포트 프린터 등으로 여러 메시지들을 기록할 수도 있습니다. 여기서 [Y]를 설정해도 /dev/tty0가 시스템 콘솔로 잡혀 있습니다. 예를 들어 두번째 시리얼 포트를 시스템 콘솔을 바꾸려면 커널 명령 라인에 "console=ttyS1" 명령을 씁니다. "man bootparam"이나 부트 로더용 문서들을 보면 부트 로더(lilo나 loadlin)가 부팅할 때 어떤 옵션을 넣어야 하는지 알 수 있습니다. 이 옵션을 이용하면 VGA 카드가 없는 리눅스 시스템도 운영할 수 있는데, 커널이 자동으로 시스템 콘솔을 /dev/ttyS0로 잡습니다. 잘 모르겠으면 [N]을 선택합니다.

Extended dumb serial driver options : 만일 표준 "더미(dumb)"드라이버의 비표준 기능들 가운데 하나라도 쓰려 한다면, 이 옵션을 활성화합니다. HUB6지원, 공유 시리얼 인터럽트, 스페셜 멀티포트 지원, 그리고 COM 1/2/3/4 이상의 보드 등을 지원합니다. 이 곳에 [Y]를 답하면 또다른 질문들이 활성화됩니다. 잘 모르겠으면 [N].

Non-Standard SeriaL port Support : 표준 시리얼 포트를 벗어나는 멀티포트 제품군을 지원합니다. 잘 모르겠으면 [N].

Unix98 PTY support : PTY는 소프트웨어로 구동되는 가장 장치입니다(pseudo terminal). 매스터와 슬레이브 두 부분으로 구성되어 있는데 슬레이브는 물리적 터미널과 똑 같이 동작하며 슬레이브는 터미널을 흉내냅니다. 매스터 디바이스는 슬레이브로부터 데이터를 읽거나, 혹은 슬레이브에 데이터를 쓸 때에 사용합니다. 전형적인 매스터 사이드 프로그램은 telnet 서버나 xterm입니다. 리눅스는 BSD 형식을 따라 매스터는 /dev/ptyxx, 슬레이브는 /dev/ttyxx를 사용하였지만, 몇 가지 문제가 있어 새로 Unix98 naming 표준을 지원합니다. 새로운 표준을 따르면 장치 이름들이 조금 달라지는데, 이전에 /dev/ttyp2로 불리던 슬레이브는 /dev/pts/2로 바뀌게 됩니다. /dev/pts/의 파일들은 가상 파일 시스템에 의해서 동작 중 자동적으로 생성됩니다; 그러므로 이 옵션을 활성화한다면 "Unix98 PTS를 위한 /dev/pts 파일 시스템"옵션도 선택합니다. [N]을 선택해도 안전합니다.

Maximum number of Unix98 PTYs in use (0-2048) : 동시에 열 수 있는 Unix98 PTY 개수. 디폴트 값인 256은 데스크탑 장치일 때는 충분합니다. 텔넷/rlogin/ssh 접속과 X 터미널등은 모두 PTY를 사용합니다.

ParaLLeL printer Support : 프린터와 패러랠 함께 포트를 사용하는 PLIP, ParaLLeL Zip drive 등 다른 장치를 함께 사용하려면 반드시 모듈로 설정합니다.[M]

Support for console on line printer : 프린터를 콘솔로 삼으면 커널 메세지가 발생할 때 종이 등 매체에 인쇄할 수 있습니다. 이 옵션을 활성화하고 커널 커맨드에 (부트할 때) "console=lp"란 옵션을 덧붙입니다. (또는 /etc/lilo.conf 파일의 적당한 블록에 append="console=lp" 항목을 추가합니다) 잘 모르겠으면 [N].

Support for user-space parallel port device drivers : [N]이 안전합니다 -- 일반적인 프린팅 작업이나 패러랠 CD-ROM/disk 등에는 필요 없습니다.

Software Watchdog : 소프트웨어 워치독입니다. 하드웨어 워치독과 다르게 때에 따라 시스템을 재부팅 시키는데 실패할 수 있습니다. 필요하다면 [M]을 선택해 모듈로 사용할 수도 있습니다.

WDT Watchdog timer와 그 아래 메뉴들은 watchdog 보드에 관한 설정들입니다. 여러분의 하드웨어에 맞는 설정을 선택합니다.

Intel i8x0 Random Number Generator support : Intel i8xx 칩셋을 가진 마더보드에서 선택합니다. 잘 모르겠으면 [N].

/dev/nvram Support : PC에서 CMOS RAM, Atari에서 Non-VolatiLe RAM 이라 부르는 비휘발성 메모리로 만든 리얼 타임 클럭(RTC) 가운데 50byteS를 읽거나 쓸 수 있도록 합니다. 이 기능을 사용하려면 mknod 명령으로 메이저 넘버 10, 마이너 넘버 144짜리 캐릭터형 특수 파일인 /dev/nvram 을 만들어야 합니다. 하드디스크에 두기는 위험한 데이터나 전원이 꺼져도 잃어버리면 안되는 매우 중요한 데이터를 저장하는데 쓰입니다. 시스템에 따라 이미 중요한 데이터가 들어 있을지도 모르므로 조심해서 설정해야 합니다. 잘 모르겠으면 [N].

Enhanced ReaL Time CLock Support : 소프트웨어가 컴퓨터 실시간 시계를 사용할 수 있도록 하는 기능입니다. (Documentation/rtc.txt) 멀티 프로세서 머신을 가지고 있고 SMP 기능을 사용한다면 반드시[Y]를 답합니다. 그리고 주기적인 data SampLing 등 이 기능을 유용하게 쓸 장치가 있다면 설정합니다. 이 기능을 사용하려면 mknod 명령으로 메이저 넘버 10, 마이너 넘버 135인 캐릭터형 특수 파일 /dev/rtc를 만들어야 합니다. 잘 모르겠으면 [Y]를 답하는 게 안전합니다.

DoubLe taLk PC internaLSpeech card Support :RC 시스템에서 제작한 음성합성장치(Speech SyntheSizer)인 "DoubleTalk" 드라이버입니다. 잘 모르겠으면 [N].

Siemens R3964 line discipline : 지멘스 R3964 패킷 프로토콜을 통해 장치들이 상호 동기적으로 통신할 수 있게 합니다. 잘 모르겠으면 [N].

Applicom intelligent fieldbus card support : 잘 모르겠으면 [N].

28.1 I2C support --->

I2C(발음: I-square-C)는 필립스에서 개발한 느린 시리얼 버스 프로토콜로 많은 마이크로 컨트롤러 어플리케이션에서 사용됩니다. SMBus(시스템 관리 버스:System Management Bus)는 I2C의 하위 프로토콜입니다. I2C와 SMBus 모두를 이 옵션에서 지원합니다. 하드웨어 센서나, 비디오 포 리눅스 지원을 위해서 필요할 것입니다. I2C 옵션을 활성화하면 나타나는 서브 옵션들은 장치 드라이버들입니다. 잘 모르겠으면 [N].

28.2 Mice --->

Bus Mouse Support : 여러분 대부분에게 필요 없습니다. 시리얼 마우스나 PS/2, 혹은 USB 마우스를 사용하는 모든 분들은 [N]을 설정합니다.

MouSe Support (not SeriaL mice) : 시리얼 마우스나 버스 마우스를 제외한 장치를 사용하기 위한 기능입니다. PS/2 마우스, 디지타이저 패드 등 장치를 사용하는 여러분 대부분은 [Y]를 설정해야 합니다.

PS/2 mouse (aka "auxiliary device") support : PS/2 마우스는 키보드 포트와 비슷하게 생긴 동그란 전용포트에 꽂아쓰는 마우스입니다. 시리얼 포트를 차지하지 않으므로 다른 주변장치와 충돌하는 일이 거의 없습니다. PS/2 포트를 사용하는 장치는 그 밖에도 라이트 펜, 태블릿, 키패드 등 입력 장치가 있습니다. 트랙볼이나 터치패드 등 노트북용 장치들도 PS/2 프로토콜을 사용합니다. PS/2 마우스를 "MicroSoft BuSmouSe"라고 말하는 제조업체도 있는데 핀의 수를 세어보면 구분할 수 있습니다. PS/2는 6핀, MS 버스마우스는 9핀입니다. 잘 모르겠으면 [Y]를 답하는 게 안전합니다.

28.3 Joysticks --->

CLaSSic PC anaLog joyStickS, gamepadS, MicroSoft SideWinder, Sega, Logitech, 스티어링 휠, 무기 제어 시스템이나 그 밖의 다양한 게임 컨트롤러들도 지원합니다. Documentation/joystick.txt을 참조합니다.

QIC-02 tape Support : 스커지 방식이 아닌 tape 드라이브가 있다면 설정합니다. 잘 모르겠으면 [N].

28.4 Watchdog Cards --->

[*] Watchdog Timer Support
[ ]   Disable watchdog shutdown on close
< >   Software Watchdog
< >   WDT Watchdog timer
< >   WDT PCI Watchdog timer
< >   Berkshire Products PC Watchdog
< >   Acquire SBC Watchdog Timer
< >   SBC-60XX Watchdog Timer
< >   Mixcom Watchdog
< >   Intel i810 TCO timer / Watchdog

Watchdog Timer Support :시스템이 Lock-Up 상태로 서비스를 제공할 수 없는 상태가 이어지면 리부트하는 등 서비스를 다시 시작할 수 있도록 하는 기능입니다. 네트워크 서버처럼 재부팅을 하더라도 가능한 빨리 온라인 상태를 복구해야 할 때 유용합니다. 하드웨어/소프트웨어 Watchdog을 지원합니다. 하드웨어로 구현한 Watchdog 보드는 시스템 내부 온도를 측정해서 활용할 수도 있다고 합니다. 소프트웨어 Watchdog은 워치독 데몬과 함께 사용하는데 ftp://tsx-11.mit.edu/pub/linux/sources/sbin/에서 필요한 소프트웨어를 구할 수 있습니다. 만일 여러분이 이 옵션을 활성화하고 (그리고 추가적인 옵션들 중 하나를 선택하고) mknod 명령으로 major 번호가 10이고 minor 번호가 130인 character special 파일 "/dev/watchdog"을 만들면, watchdog을 얻게됩니다. 이후로 1분 이내에 watchdog 파일을 열고 쓰기 동작을 하지 않는다면 컴퓨터는 재부팅하게 될 것입니다. 잘 모르겠으면 [N].

Disable watchdog shutdown on close : 기본적으로 워치독을 관리하는 프로세서가 /dev/watchdog 파일을 닫으면 타이머가 멈춥니다. 하지만 만일 여러분이 이 옵션에서 [Y]를 선택하면, 한 번 시작된 워치독은 멈출 수 없게 됩니다.

28.5 Ftape, the floppy tape device driver --->

<*> /dev/agpgart (AGP Support) : AGP(Accelerated Graphics Port)는 그래픽 카드를 연결하는데 주로 사용하는 고속의 버스 시스템입니다. 여러분의 시스템이 AGP를 지원한다면 [Y]를 설정합니다. 당분간은 [N]을 선택하겠지만, XFree86 3.3.6에 쓰이는 GLX 컴포넌트를 시험하고 싶다면 http://utah-glx.sourceforge.net/에서 다운 받으면 됩니다. GLX나 i810 서버를 가지고 있다면 테스트해 볼 수 있습니다.

그 밖에 Intel 440LX/BX/GX, I815/I840/I850, Intel I810/I815 (on-board), VIA, AMD, Generic SiS, ALI 등은 모두 AGP 지원과 관련된 옵션들입니다. 여러분의 가진 보드 메뉴얼을 살펴 보시고 적절한 것으로 선택합니다. 기본 값을 그냥 두어도 나쁘지는 않습니다.

Direct Rendering Manager, 3dfx Banshee/Voodoo3+ 옵션을 활성화하면 3dlabs GMX 2000, ATI Rage 128, ATI Radeon, Intel I810, Matrox g200/g400 등 비디오 카드와 관련된 옵션들이 나타납니다. 여러분의 장치에 적절한 것으로 선택합니다.

28.6 PCMCIA character device support --->

< > PCMCIA serial device support
< > CardBus serial device support

PCMCIA serial device support : 시리얼 포트 카드, 모뎀, ethernet/modem 다기능 카드 등 16-비트 PCMCIA 직렬 디바이스를 지원합니다. 잘 모르겠으면 [N].

CardBus serial device support : ethernet/modem 다기능 디바이스들의 모뎀 기능을 포함한 CardBus 직렬 디바이스를 지원합니다. 잘 모르겠으면 [N].

29. Multimedia devices

audio/video 캡쳐, 오버레이 보드와 FM radio 카드를 지원합니다.

<M> Video For Linux
Video For Linux  --->
Radio Adapters  --->

Video for LinuX, Radio Adapters :

30. FiLe SyStemS

리눅스에서 접근할 수 있는 다양한 파일시스템에 대한 설정입니다.

[*] Quota Support
< > KerneL automounter Support
<*> KerneL automounter version 4 support (also supports v3)
< > Reiserfs support
[ ]   Have reiserfs do extra internal checking
< > ADFS filesystem support (read only) (EXPERIMENTAL)
< > Amiga FFS fiLeSyStem Support
< > AppLe MacintoSh fiLeSyStem Support (EXPERIMENTAL)
< > BFS file system support (EXPERIMENTAL)
<M> DOS FAT fS Support
<M>   MSDOS fS Support
< >     UMDOS: Unix-Like file system on top of standard MSDOS fs
<M>   VFAT (WindowS-95) fS Support
< > EFS file system support (read only) (EXPERIMENTAL)
< > Compressed ROM file system support
< > Simple RAM-based file system support
<M> ISO9660 cdrom fiLeSyStem Support
[*]   MicroSoft JoLiet CDROM extenSionS
< > Minix fS Support
< > NTFS fiLeSyStem Support (read onLy)
[ ] OS/2 HPFS fiLeSyStem Support (read onLy)
[*] /proc fiLeSyStem Support
[ ] /dev file system support (EXPERIMENTAL)
[*] /dev/pts fiLeSyStem for Unix98 PTYS
< > QNX fiLeSyStem Support (read only) (EXPERIMENTAL)
< > ROM fiLeSyStem Support
<*> Second extended fS Support
< > SyStem V and Coherent fiLeSyStem Support
< > UDF file system support (read only)
< > UFS fiLeSyStem Support (read only)
Network FiLe SyStemS --->
Partition TypeS --->
Native Language Support  --->

Quota Support : ext2 파일시스템에서 유저/유저그룹이 사용할 수 있는 디스크 공간의 크기를 제한하는 기능입니다. 리눅스 박스를 서버로 쓰지 않고 개인적인 용도로 사용하는 유저는 설정할 필요 없습니다.

KerneL automounter Support : automounter는 요청에 따라 원격 파일시스템을 자동으로 마운트하는 툴입니다. BSD의 amd는 완전히 사용자 공간의 데몬이지만 리눅스의 automounter는 파일시스템이 이미 마운트된 경우 오버헤드를 줄이기 위해 부분적으로 커널에 의지합니다. 이 기능을 사용한다면 "NFSfiLeSyStem Support"도 활성화합니다. 여러분의 리눅스 박스가 큰 분산 네트워크에 달려 있지 않다면, 아마 automounter가 필요 없을테고, [N]을 선택합니다.

Kernel automounter version 4 support (also supports v3) : 만약 여러분의 시스템이 큰 분산 네트워크에 연결되어 있지 않거나, 동적으로 재설정이 필요한 랩탑의 가운데 하나가 아니라면 아마 automounter가 필요 없을테고 여기서 [N]을 선택합니다.

Reiserfs support : 저널링(journaling) 파일시스템을 지원합니다. 저널링 파일 시스템에서는 인덱스가 갱신되기 전에 관련 내용이 기록되므로 정전이나 다른 이유로 인덱스에 문제가 생기더라도 다시 시스템을 재가동하면 운영체제가 로그를 보고 복구를 할 수 있습니다. 일반적인 경우 ReiserFS는 ext2 정도의 속도를 내지만, 큰 디렉토리에 작은 파일들이 많은 경우 매우 효율적입니다. NFS와 quota를 ReiserFS와 함께 사용하려면 패치를 해야합니다 (관련 링크: www.reiserfs.org)

Have reiserfs do extra internal checking : 대부분 이 옵션은 필요 없습니다. 이 옵션을 활성화하면 디버깅에 유용한 메시지들을 더 많이 볼 수 있지만 퍼포먼스가 낮아집니다.

Acorn"s ADFS filesystem support (read only) (EXPERIMENTAL) : Advanced Disk File System은 Acorn 시스템의 플로피와 하드 디스크에서 사용되는 파일 시스템입니다. 잘 모르겠으면 [N].

Amiga FFS filesystem support : The Fast File System (FFS)은 AmigaOS Version 1.3 (34.20)이후로 Amiga(tm) systems에서 하드디스크에서 사용하는 일반적인 파일시스템(filesystem)입니다. 잘 모르겠으면 [N].

Apple Macintosh filesystem support (experimental) : 매킨토시 형식으로 포맷된 플로피 디스크와 하드 드라이브 파티션을 읽고 쓸 수 있습니다. 필요하다면 [M]이나 [Y]를 선택합니다.

DOS FAT fS Support :FAT 기반의 MSDOS fS Support, VFAT (WindowS-95) fS Support 등 m$의 파일시스템을 마운트하여 사용하려면 설정합니다. [Y]를 설정하면 커널 크기가 24KB 늘어납니다. 이 기능은 스스로 파일 시스템을 지원하지 못하므로 MS-DOS 파일시스템 지원하는 "DOS FAT fS Support"와 MS-DOS, Windows 9x 시리즈를 지원하는 "VFAT (Windows-95) fs support" 옵션을 함께 사용합니다. 모듈로 설정하면 각각 fat.o, msdos.o, vfat.o로 컴파일됩니다. <M>

umdoS: Unix Like fS on top of Std MSDOS FAT fS는 도스 파일시스템 위에 서 리눅스를 실행합니다. 사용중인 도스 파티션에 영향을 주지 않고 리눅스를 사용할 수 있지만 제한이 많으므로 리눅서라면 절대로 쓰이지 않습니다. [N]

EFS filesystem support (experimental) : EFS는 SGI사의 IRIX OS에서 CDROM용 파일시스템과 [초기버전의] 파일시스템에서 사용하는 파일 시스템입니다. 잘 모르겠으면 [N].

Compressed ROM file system support : 롬 기반 임베디드 시스템에서 압축된 파일시스템을 사용한다면 Cramfs 옵션을 활성화합니다. 읽기 전용이며 256MB로 크기가 제한되어 있습니다. 또, 16/32 비트 uid/gid나 하드 링크, 타임스탬프는 지원하지 않습니다. 잘 모르겠으면 [N].

Simple RAM-based file system support : Ramfs는 램 안에서 읽기 쓰기가 모두 가능한 파일시스템을 지원합니다. 다른 파일시스템과 마찬가지로 마운트하여 사용합니다: 예를 들어 /ramfiles 디렉토리에 마운트한다면: "mount -t ramfs ramfs /ramfiles" 또는 /etc/fstab에 설정 정보를 넣어 자동화할 수도 있습니다. 일반적으로 램은 하드 드라이브보다 속도가 매우 빠르므로 물리적인 램이 충분하다면 엑세스가 빈번한 자료나 바이너리 등을 이 곳에 넣어 시스템 퍼포먼스를 높일 수도 있습니다. Ramfs 안에 저장된 것들은 모두 가상적으로 다루어지므로 하드 드라이브로 옮겨놓지 않는다면, 재부팅 했을 때 아무 것도 남아있지 않을 것입니다. 쓸만한 이유를 찾지 못했다면 [N]을 선택합니다.

ISO9660 cdrom fiLeSyStem Support : ISO에서 제안한 시디롬을 위한 표준 파일시스템입니다. 반드시 필요합니다. CD-ROM을 부트 디바이스로 사용하려면 모듈로 설정하지 않습니다. [Y]

MicroSoft JoLiet CDROM extenSionS : Micro$oft에서 개발한 유니코드 형식의 긴 파일이름을 지원하는 확장 ISO9660 CDROM 파일시스템입니다. m$ 윈도우즈용 프로그램들을 담고 있는 CD는 대부분 JoLiet 형식으로 저장되어 있습니다.

Minix fS Support : 매우 오래된 파일시스템입니다. 지금도 커널을 공부할 때 사용하기도 합니다. 일반 사용자라면 엑세스 할 일이 거의 없습니다. 커널 크기가 25KB 늘어납니다. [N]

NTFS fiLeSyStem Support (read onLy) : MicroSoft NT 파일시스템을 읽는 기능입니다. [N]

OS/2 HPFS fiLeSyStem Support (read onLy) : OS/2 파일시스템을 읽기만 할 수 있습니다. [N]

/proc fiLeSyStem Support : 커널과 프로세스를 위한 가상의 파일시스템입니다. 실제 디스크 공간을 점유하지는 않습니다. 프로세스 등 시스템 정보를 제공하는 많은 프로그램이 사용하는 유용한 기능입니다. 반드시 [Y]를 선택합니다. /proc 아래 시스템 정보들은 텍스트형태로 관리되므로 cat 명령으로도 정보를 볼 수 있습니다. 예를 들어 cpu 정보를 보려한다면 다음 명령을 사용합니다: # cat /proc/cpuinfo

/dev file system support (EXPERIMENTAL) : /proc 파일 시스템처럼 특별한 목적을 가진 가상 파일 시스템입니다. /dev 디렉토리에서 볼 수 있는 장치드라이버에 대한 인터페이스를 제공하는 파일 시스템입니다. Major와 minor 넘버 배치와는 상관 없이 /dev 목록에 장치 드라이버가 자동적으로 등록됩니다. devfs를 사용하지 않는다면 /dev디렉토리에 수백 수천개의 inode가 필요할것 입니다. devfsd를 설치하지 않는다면 깨진코드를 패치하거나 설정 파일을 고치는데 엄청난 시간을 소비하게 될 것입니다. 일시적으로 /dev 파일시스템을 사용하지 않으려면 커널 명령에 "devfs=nomount"를 넣습니다. 잘 모르겠으면 [N].

/dev/pts fiLeSyStem for Unix98 PTYS : "Unix98 PTY Support" 기능과 함께 사용합니다. mount -t devpts 명령으로 /dev/pts에 마운트할 수 있는 가상 파일시스템을 만들고 Unix98의 표준 다중채널 가상 터미널(pseudo terminal)로 사용하는 기능입니다. 이전에 /dev/ttyp2 였던 가상 터미널은 이 옵션을 활성화하면 /dev/pts/2가 됩니다. [Y]

QNX fiLeSyStem Support (EXPERIMENTAL) : QNX4운영체제에서 사용되는 파일시스템입니다. [N]

ROM fiLeSyStem Support : 주로 인스톨디스크의 램디스크 초기화에 쓰이는 매우 작은 읽기전용 파일시스템입니다. 어떤 곳에 써야할 지 모른다면 [N]을 선택합니다.

Second extended fS Support : 리눅스에서 현재 사용하는 표준 파일시스템입니다. FAT 시리즈는 비교도 할 수 없는 뛰어난 파일시스템입니다. m$ windogS에서는 ext2nt나 expLorer2fS를 이용해 ext2 파일 시스템을 엑세스할 수 있습니다. 반드시 활성화합니다. [Y]

SyStem V and Coherent fiLeSyStem Support : Xenix와 Cherent는 인텔 기종을 위한 상용 유닉스 시스템입니다. (나중에 Xenix는 SCO에 팔려 SCO UNIX로 바뀌었습니다) 주위에 이 시스템이 없다면 [N]을 선택합니다.

UDF file system support (read only) : 몇몇 CDROM과 DVD드라이버에서 사용되는 새로운 파일 시스템입니다. DVD 디스크 혹은 패킷모드로 기록된 CDRW를 마운트 하거나, DirectCD와 같이 UDF유틸리티로 기록을 할 것이라면 [Y]를 선택합니다. 잘 모르겠으면 [N].

UFS fiLeSyStem Support : BSD와 Unix에서 파생된 버전(SunOS,FreeBSD, NetBSD, OpenBSD, NextStep)들은 UFS라는 파일시스템을 사용합니다. 어떤 SyStem V 유닉스는 디스크 파티션이나 플로피 디스크에 UFS 파일시스템을 사용하기도 합니다. 일반적으로 플로피 디스크에서는 tar 프로그램을 사용하므로 이 기능은 필요 없습니다. 또한 NFS를 사용한다면 이 옵션을 [N]로 설정합니다.

30.1 Native Language Support --->

MS의 fat 파일시스템족은 고유언어 문자셋으로 파일이름을 다룰 수 있습니다. 이런 문자셋은 DOS 코드페이지에 저장되어 있어 mS DOS/WindowS 파티션의 파일이름을 정확하게 읽으려면 필요합니다.

   Default NLS Option: "euc-kr" (NEW)
<*> Codepage 437 (United States, Canada)
...
< > Codepage 936 (GBK)
<*> Codepage 949 (UnifiedHangul)
< > Codepage 950 (Big5)
...

Codepage 949 (UnifiedHangul) : 한글 코드페이지입니다.

Default NLS Option : 다음과 같은 옵션을 사용할 수 있습니다: big5, cp437, cp737, cp775, cp850, cp852, cp855, cp857, cp860, cp861, cp862, cp863, cp864, cp865, cp866, cp869, cp874, cp932, cp936, cp949, cp950, euc-jp, euc-kr, gb2312, iso8859-1, iso8859-2, iso8859-3, iso8859-4, iso8859-5, iso8859-6, iso8859-7, iso8859-8, iso8859-9, iso8859-14, iso8859-15, koi8-r, sjis 한국어를 위해서는 euc-kr을 설정합니다. 잘 모르겠으면 "iso8859-1"를 지정합니다.(잘못 설정한 경우 자동으로 "iso8859-1"가 설정됩니다)

+-------------------------- Default NLS Option ---------------------------+   
|  Please enter a string value. Use the <TAB> key to move from the input  |   
|  field to the buttons below it.                                         |   
| +---------------------------------------------------------------------+ |   
| |euc-kr                                                               | |   
| +---------------------------------------------------------------------+ |   
|                                                                         |   
+-------------------------------------------------------------------------+   
|                         <  Ok  >      < Help >                          |   
+-------------------------------------------------------------------------+   

30.2 Network FiLe SyStemS

네트워크를 통해 다른 머신의 파일 시스템을 마운트하여 사용하기 위한 옵션들입니다. 공동 작업이나 자료 공유 등에 쓰입니다.

< > Coda fiLeSyStem Support (advanced networkS fS)
<*> NFS fiLeSyStem Support
[ ]   Provide NFSv3 client support
<M> NFS Server Support
[ ]   Provide NFSv3 server support
< >EmuLate SUN NFS Server
<M> SMB fiLeSyStem Support (to mount WFW ShareS etc..)
[*]    Use a default NLS
     Default Remote NLS Option: "cp437"
[ ]SMB Win95 bug work-around
< > NCP fiLeSyStem Support (to mount NetWare voLumeS)
[ ]Packet SignatureS
[ ]Proprietary fiLe Locking
[ ]CLear remove/deLete inhibit when neede
[ ]USe NFS nameSpace if avaiLabLe
[ ]USe LONG (OS/2) nameSpace if avaiLabLe
[ ]ALLow mounting of voLume SubdirectorieS
[ ]Use Native Language Support
[ ]Enable symbolic link and execute flags

Coda fiLeSyStem Support (advanced networkS fS) : Coda는 NFS와 비슷하지만 더 진보된 네트워크 파일시스템입니다. Coda는 비접속 운영, 캐시, 보안과 인증 등 NFS보다 좋은 점에 몇 가지 있습니다. 이 질문에 [Y]를 답하면 Coda 클라이언트로 동작할 것입니다. 서버와 클라이언트 모두가 지원해야 합니다. Coda 서버들은 사용자 공간의 프로그램들이며 커널이 지원해야 하는 것은 아닙니다. 잘 모르겠으면 [N].

NFS fiLeSyStem Support : 네트워크 파일시스템 클라이언트입니다. 만약에 SLIP이나 PLVIP, PPP, 이더넷등으로 다른 유닉스 컴퓨터에 물려있고 그 컴퓨터를 마운트해서 그 쪽 파일을 엑세스하고 싶다면 [Y]를 선택합니다. 상대편 컴퓨터는 NFS 서버, 여러분의 리눅스 박스는 클라이언트가 되는데 서버에는 nfsd, mountd, portmap 등이 떠 있어야 하며, /etc/export 파일에서 여러분을 허용해야 합니다. "파일을 마운트한다"는건 클라이언트가 보통 유닉스 명령어로 서버쪽 파일들을 자기 하드에 있는것처럼 접근할 수 있다는 뜻입니다. TCP/IP를 사용하며 커널 크기가 27kb정도 늘어납니다. 잘 모르겠으면 [N].

NFS server support : 커널 기반의 NFS 서비스입니다. 유저 공간의 nfsd보다 더 빠르지만 아직 불안합니다. nfsd 데몬을 이용하여 서비스하거나 잘 모르겠으면 [N].

Root fiLe SyStem on NFS : i "IP: kernel level autoconfiguration"과 함께 쓰여 네트워크 위의 다른 컴퓨터를 마운트하여 루트 파일시스템으로 사용합니다. 하드 디스크가 없는 터미널 등에서 사용합니다. 잘 모르겠으면 [N].

SMB fiLeSyStem Support (to mount WFW ShareS etc..) : 리눅스 박스에서 m$ windogS 9x/NT 네트워크 자원을 공유하는 기능입니다. 대부분의 네트워크 클라이언트가 MS 윈도우즈 박스이므로 SMB 옵션을 활성화할 것을 권장합니다. 이 기능을 이용하여 저가의 CD-ROM 쥬크박스를 구현할 수도 있습니다. 잘 모르겠으면 [N].

SMB Win95 bug work-around : 속도가 조금 느려지겠지만 WindowS 95 서버를 더 안정적으로 만듭니다.

NCP fiLeSyStem Support (to mountNetWare voLumeS) : NCP(netware core protocoL)은 IPX 를 이용한 랜 프로토콜입니다. 노벨 네트웨어 클라이언트가 NCP를 통해 파일서버 볼륨을 마운트하여 사용합니다. Linux 박스가 서버로 동작하거나 netware 네트워크에 연결되지 않는다면 (여러분 대부분) 필요 없습니다. [N]

30.3 Partition TypeS

일반적으로 상용 유닉스 시스템들은 각자 자신의 파일시스템과 바이너리 타입을 가지고 있어 그 운영체제에서만 사용할수 있도록 되어 있습니다. 매킨토시를 제외한 유닉스 파티션은 "UFS fileSyStem Support"와 함께 설정합니다. 플로피 디스크만 사용한다면 파일시스템 지원 기능을 커널에 포함하지 않고 tar 유틸리티를 사용할 수도 있습니다.

[ ] Advanced partition selection
[ ] BSD diSkLabeL (BSD partition tabLeS) Support
[ ] MacintoSh partition map Support
[ ] SMD diSkLabeL (Sun partition tabLeS) Support
[ ] SoLariS (x86) partition tabLe Support
[ ] Unixware SLiceS Support (EXPERIMENTAL)

31. ConSoLe driverS

콘솔이란 직접 기계에 연결된 모니터, 키보드를 말합니다. 보안 등 여러가지 조건에서 네트워크 터미널과 구별되며 훨씬 많은 기능과 권한을 가집니다.

[*] VGA text conSoLe
[ ] Video mode SeLection Support
< > MDA text conSoLe (duaL-headed) (EXPERIMENTAL)
Frame-buffer support  --->

VGA text conSoLe : 일반 VGA 표준모드 콘솔을 지원합니다. SVGA 모드를 사용하려면 ftp://metalab.unc.edu/pub/Linux/utils/console에서 SVGATextMode를 내려받습니다. 아무트 [Y]를 설정합니다.

Video mode SeLection Support : 커널을 시작할 때 "vga="옵션으로 비디오 모드를 선택하는 기능입니다. 예를 들어 "VGA=ASK"옵션을 사용하면 커널이 시작될 때 비디오모드 메뉴가 나타납니다. "man bootparm"명령으로부트 매개변수를 알아봅니다. 잘 모르겠으면 [N].

MDA text conSoLe (duaL-headed) (EXPERIMENTAL): 허큘리스 등 흑백 디스플레이 어뎁터를 가지고 있으면 설정합니다. [N]

31.1 Frame-buffer support --->

Support for frame bufferdeviceS (EXPERIMENTAL) : 콘솔에서 그래픽 기능을 사용할 수 있도록 커널자체가 지원하는 기능입니다. 확실하지 않으면 [N]을 선택합니다. 잘못 설정하면 모니터나 비디오 카드에 물리적인 손상을 줄 수도 있습니다.

프레임 버퍼는 리눅스에서 지원되는 여러가지의 하드웨어 종류에 대해 동일하게 접근하도록 만들어 주기 때문에 응용 프로그램 작성이 매우 쉽고, 이식성이 좋은 환경을 제공합니다. 프레임 버퍼의 모든 기능을 완전히 사용하기 위해서는 fbset 이라고 불리는 유틸리티 프로그램이 필요합니다.

32. SounD

사운드 장치들을 지원합니다.

<M> Sound card Support
< >   C-Media PCI (CMI8338/8378)
< >   Creative SBLive! (EMU10K1)
< >   Crystal SoundFusion (CS4280/461x)
< >   Crystal Sound CS4281
< > Endoniq AudioPCI (ES1370)
< > Creative EnSoniq AudioPCI 97 (ES1371)
< >   ESS Technology Solo1
< >   ESS Maestro, Maestro2, Maestro2E driver 
< >   ESS Maestro3/Allegro driver (EXPERIMENTAL)
< >   Intel ICH (i8xx) audio suppor
< >   S3 SonicVibes
< >   Trident 4DWave DX/NX, SiS 7018 or ALi 5451 PCI Audio Core
< >   Support for Turtle Beach MultiSound Classic, Tahiti, Monterey
< >   Support for Turtle Beach MultiSound Pinnacle, Fiji
< >   VIA 82C686 Audio Codec
< >   OSS sound modules

[ ]       Verbose initialisation
[ ]       Persistent DMA buffers
< >     AD1816(A) based cards (EXPERIMENTAL)
< >     Aztech Sound Galaxy (non-PnP) cards
< >     Adlib Cards
< >     ACI mixer (miroPCM12)
< >     Crystal CS4232 based (PnP) cards
< >     Ensoniq SoundScape support
< >     Gravis Ultrasound support
< >     Loopback MIDI device support
< >     MediaTrix AudioTrix Pro support
< >     Microsoft Sound System support
< >     MPU-401 support (NOT for SB16)
< >     NM256AV/NM256ZX audio support 
< >     OPTi MAD16 and/or Mozart based cards
< >     ProAudioSpectrum 16 support
< >     PSS (AD1848, ADSP-2115, ESC614) support
< >     100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) supp
< >     AWE32 synth
< >     Full support for Turtle Beach WaveFront (Tropez Plus, Tropez,
< >     Limited support for Turtle Beach Wave Front (Maui, Tropez) sy
< >     Yamaha FM synthesizer (YM3812/OPL-3) support
< >     Yamaha OPL3-SA1 audio controller
< >     Yamaha OPL3-SA2 and SA3 based PnP cards
< >     Yamaha YMF7xx PCI audio (native mode)
< >     6850 UART support
< >     Gallant Audio Cards (SC-6000 and SC-6600 based)
< >   TV card (bt848) mixer support

Sound card Support : X 윈도우와 윈도우 매니저 등을 사용할 계획이라면 사운드 기능을 반드시 설정합니다. 콘솔에서도 MP3 플레이어, CD 플레이이어, 녹음기 등을 사용할 수 있습니다. 이 문서에서 다루지않은 내용은 Sound-HOWTO, drivers/sonund/Readme.*를 읽어봅니다. [Y] 여러분의 사운드 장치에 대한 정보는 아마 /proc/sounds 파일에 있을 것입니다. 아래는 이 글을 쓰는 리눅스 박스에 들어 있는 사운드 장치에 대한 정보입니다:

# cat /proc/sound 
OSS/Free:3.8s2++-971130
Load type: Driver loaded as a module
Kernel: Linux alive 2.2.14-12kr #1 Wed May 17 23:49:15 KST 2000 i586
Config options: 0

Installed drivers: 

Card config: 

Audio devices:
0: ESS ES1868 AudioDrive (rev 11) (3.01)

Synth devices:
0: Yamaha OPL3

Midi devices:
0: ESS ES1688

Timers:
0: System clock

Mixers:
0: Sound Blaster

wouLd Coniguration exiStS in/etc/soundconf. USe it? : 설정을 바꾸려하거나 새로운 커널로 업그레이드할 경우 [N] 라고 답변한 다음 설정 과정을 계속해야 할 것입니다.

OSS Sound moduLeS : Open Sound SyStem 사운드 카드 드라이버 모음입니다. OSS로 공유(common) API를 제공하면서 사운드 프로그램 제작이 쉬워졌습니다. 위쪽의 목록 가운데 찾는 사운드 카드가 없다면 이 기능에 [Y]나 [M]을 설정합니다.

100% Sound BLaSter compatibLeS (SB16/32/64, ESS, Jazz16) Support : Creative LabS이 제작한 오리지널 사운드 블래스터나100% 하드웨어 호환되는 카드를 가지고 있다면 [Y]를 설정합니다. SB AWE 32나SB AWE 64를 가지고 있다면 이 곳과 "AdditionaL Low LeveL Sound driverS"와 "SB32/AWE" 아래 [Y]로 답합니다.

Loopback MIDI device Support : MIDI는 FM과 다르게 실제소리를 음원으로 이용합니다. /dev/sequencer 와 /dev/music을 이용한 MIDI 포트의 접속(acceSS) 그리고 /dev/midixx의 사용을 포기한다면 [N]라고 답해도 좋습니다. 이 옵션은 MPU401 그리고 MIDI표준인 GM(generaL MIDI)호환 디바이스에도 영향을 미칩니다.

MPU-401 Support (NOT for SB16) : MPU401 인터페이스는 초기에 미디 칩으로 거의 모든 사운드 카드가 지원합니다. 그렇지만 MPU401 기능이 없거나, 자신만의 MPU401 드라이버를 가지는 사운드 카드는 충돌이 일어날 수 있습니다. [M]

FM SyntheSizer (YM3812/OPL-3) Support: FM(frequency mduLation)은 사운드 카드 초기의 애드립 카드부터사용하던 주파수 변조방식의 음원입니다. YMF3812는 AdLib 카드에서 쓰던 음원이고 OPL3는 사블프로를 비롯한 16Bit 사운드 카드에서 사용하는 음원칩입니다. [Y]

6850 UART Midi Support : 거의 사용되지 않으며 오히려 문제를 일으킬 수 있습니다. [N]

/dev/dsp and /dev/audio support :analog-digital, digital-analog 변환을 하는 매우 유용한 장치입니다.

뱀의 다리: 사운드 기능을 커널에 포함하면 선택한 사운드 카드의 몇가지 설정 값을 넣어야 합니다. 일반적으로 I/O addreSS, IRQ, DMA 번호, 그리고 미디에 대한 설정을 합니다. 사운드 카드에 첨부된 제조(판매)회사의 메뉴얼을 참고합니다.

모듈로 설정하였다면 modprobe 매개변수로 IRQ 등 설정값을 입력합니다. "sndconfig"유틸리티로 pnp 기능을 이용하여 자동/수동 설정할 수 있습니다.

TV card (bt848) mixer support :

32.1 AdditionaL Low LeveL Sound driverS

AdditionaL Low LeveL Sound driverS : drivers/sound/lowlevel/README.*를 읽어봅니다.

[ ] AdditionaL Low LeveL Sound driverS
< > ACI mixer (microPCM12)
< > AWE32 Synth
< > GaLLant Audio CardS (SC-6000 and Sc-6600 baSed)

33. USB support

직렬버스의 새로운 표준인 USB를 지원합니다.

<*> Support for USB
[ ]   USB verbose debug messages
--- Miscellaneous USB options
[ ]   Preliminary USB device filesystem
[ ]   Enforce USB bandwidth allocation (EXPERIMENTAL)
<*>   UHCI Alternate Driver (JE) support
< >   OHCI (Compaq, iMacs, OPTi, SiS, ALi, ...) support
--- USB Device Class drivers
< >   USB Audio support
< >   USB Bluetooth support (EXPERIMENTAL)
<*>   USB Mass Storage support 
[ ]     USB Mass Storage verbose debug 
[ ]     Freecom USB/ATAPI Bridge support
< >   USB Modem (CDC ACM) support
< >   USB Printer support 
--- USB Human Interface Devices (HID)
< >   USB Human Interface Device (full HID) support
< >   USB HIDBP Keyboard (basic) support
< >   USB HIDBP Mouse (basic) support
< >   Wacom Intuos/Graphire tablet support
--- USB Imaging devices
< >   USB Kodak DC-2xx Camera support
< >   USB Mustek MDC800 Digital Camera support (EXPERIMENTAL)
< >   USB Scanner support
< >   Microtek X6USB scanner support (EXPERIMENTAL)
--- USB Multimedia devices
< >   DABUSB driver
--- USB Network adaptors
< >   PLUSB Prolific USB-Network driver (EXPERIMENTAL)
< >   USB ADMtek Pegasus-based ethernet device support (EXPERIMENTAL)
< >   NetChip 1080-based USB Host-to-Host Link (EXPERIMENTAL)
--- USB port drivers
< >   USS720 parport driver
--- USB misc drivers 
lt; >   USB Diamond Rio500 support (EXPERIMENTAL)

Support for USB : Universal Serial Bus (USB)는 기존의 PC 직렬 포트 보다 높은 스피드와 더 많은 특성을 제공하는 직렬 버스의 표준입니다. USB에서는 전원이 들어가 있는 상태에서도 새로운 장치를 꽂거나 빼는 등 작업을 할 수 있습니다. 최대 127개 까지의 주변장치가 하나의 직렬 포트에 트리 형태로 연결될 수 있으며, 새로운 PC는 거의 대부분 USB포트를 가지고 있어서 스캐너, 키보드, 마우스, 모뎀, 프린터 등 주변기기들도 이 포트를 통해서 PC에 연결될 수 있습니다. USB를 사용하려면 이 옵션에 [Y]를 답하고 아래에서 UHCI support, OHCI support 가운데 하나를 선택해야 합니다. [Y]를 선택하는 게 좋습니다.

USB verbose debug messages : 잘 모르겠으면 [N].

USB device file system : 이 파일 시스템은 "devices" 파일과 "drivers" 파일, 그리고 현재 연결된 모든 디바이스마다 "xxx/yyy" 라는 이름을 가지는 파일을 구현합니다. "devices"파일은 현재 여러분의 USB 버스에 연결된 디바이스들의 리스트를 가지고 있습니다. "drivers"파일은 현재 로드된 USB 커널 클라이언트 드라이버들의 리스트를 가지고 있습니다. "xxx/yyy"라는 파일명에서 xxx는 버스 번호이며 yyy는 디바이스 번호로서 사용자영역의 드라이버가 디바이스와 통신하기위하여 사용될 수 있습니다. USB를 지원하는 시스템이라면 [Y]를 답하는게 좋습니다.

Enforce USB bandwidth allocation (EXPERIMENTAL) : [N]를 답하면 제대로 동작하지 않는 장치들이나 드라이버가 있을지도 모릅니다.

UHCI (intel PIIX4, VIA, ...) alternate (JE) support? : "JE driver"로도 불리는 The Universal Host 제어 인터페이스는 PC안의 USB 하드웨어에 엑세스하기 위해 인텔에서 만들어진 표준입니다. Intel PCI 칩들을 내장한 최근의 보드들 (intel 430TX, 440FX, 440LX, 440BX, i810, i820 과 같은)은 이 표준을 따르고 있습니다. 또 모든 VIA PCI chipsets (VIA VP2, VP3, MVP3, Apollo Pro, Apollo Pro II or Apollo Pro 133 과 같은)들도 마찬가지입니다. 잘 모르겠으면 [Y]를 답해도 안전합니다.

OHCI (Open Host Controller Interface) support OHCI에 기반한 IEEE 1394 제어기를 가지고 있다면 [Y]를 선택합니다. 현재의 드라이버는 Texas Instruments에서 만든 OHCI 칩셋으로만 시험되었습니다. 하지만 대부분의 다른 제조자들도 Texas Instruments의 칩을 사용합니다.

USB Audio support : USB 포트를 통해 연결되는 UAB 오디오 장치가 있다면 [Y]를 선택합니다. 잘 모르겠으면 [M].

USB Bluetooth support (EXPERIMENTAL) : 여러분의 컴퓨터 USB 포트에 USB Bluetooth 장비를 연결하려면 [Y]를 선택합니다.(또는 모듈로) Bluetooth는 이동가능한 소형 장치들이 (예를 들어, 이동전화, PDA, 노트북, MP3 등) 종류에 상관없이 서로 양방향 통신을 가능하게 해주는 차세대 근거리 무선통신 기술입니다. 현재는 1Mbps 속도이지만 앞으로 두 배로 올리면 무선 멀티미디어 전송에 가장 강력한 기술이 될 것입니다.

CONFIG_USB_STORAGE_DEBUG : Y를 선택하면 USB대형 저장장치 코드가 자세한 디버깅 메세지를 보여줍니다.

USB Modem (CDC ACM) support : 이 드라이버는 Communication Device Class Abstract Control Model 인터페이스를 지원하는 USB 모뎀과 ISDN 어뎁터를 지원합니다. USB 인터페이스 가운데 커뮤니케이션 클래스 인터페이스는 모든 통신 장치에 필요한 매니지먼트 인터페이스입니다. ACM을 통해 USB 장치는 표준 V.25ter(AT) 명령들을 이해합니다. V.25ter(V.250)은 음성신호를 이용한 데이터 통신 장비들의 표준규격입니다. USB 모뎀이 있으면 [Y]를 선택합니다.

USB Printer support : USB 포트에 연결해서 사용하는 프린터가 있다면 [Y]를 션택합니다.

USB Human Interface Device (HID) support : USB로 컴퓨터에 키보드, 마우스, 조이스틱, 그래픽 태블릿, UPS, 또는 다른 HID 장치를 연결하려면 [Y]를 선택합니다.

--- USB Imaging devices
< >   USB Kodak DC-2xx Camera support                        
< >   USB Mustek MDC800 Digital Camera support (EXPERIMENTAL) 
< >   USB Scanner support                                    
< >   Microtek X6USB scanner support (EXPERIMENTAL)          

DABUSB driver : USB 포트를 사용하는 디지털 오디오 방송 (DAB) 수신기를 지원합니다. 잘 모르겠으면 [N].

PLUSB driver : Prolific PL-2302 USB-to-USB 네트웍 드라이버입니다. 이 "USB 케이블"은 5Mbit/s의 대역폭으로 두개의 호스트를 Point-to-Point 네트워크로(양 쪽 모두 대등한 관계) 연결합니다. USB케이블을 연결한 후에 ifconfig plusb0 10.0.0.1 pointopoint 10.0.0.2 명령으로 인터페이스를 활성화합니다.(다른쪽 호스트에선 반대로)

USB ADMtek Pegasus-based ethernet device support : ADMtek사의 페가수스 칩셋을 장착한 USB 이더넷 장치를 지원합니다. (이 기능은 아직 실험적입니다.)

USS720 parport driver : 이 드라이버는 Lucent Technologies 사의 USS-720 칩을 사용하는 USB 병렬포트용 아답터 드라이버 입니다. 여러분이 USS-720 칩을 사용하는 USB 아답터에 병렬 케이블을 연결해서 프린터 이외의 다른 장치를 연결하신다면 [Y]를 선택합니다.

USB Diamond Rio500 support : 컴퓨터의 USB포트에 USB 리오500을 연결하려면 Y를 선택합니다.

34. KerneL hackinG

커널 해커를 위한 옵션입니다.

[Y] Magic sySRq key

Magic SySRq key : [Y]로 설정할 경우 시스템이 심각한 문제가(craSheS) 있어도 통제할 수 있습니다. 예를 들면 버퍼 캐시를 디스크로 옮기고, 시스템을 리부트하거나 상태 정보를 표시합니다. 이 기능은"<aLt>+<SysRQ>"를 누른 채 k, r, s 등 <command key>를 눌러 사용합니다. SysRQ 키가 없는 키보드는 PrtSc 키를 누르면 됩니다.

35. 커널 컴파일

커널 컴파일 환경설정이 모두 끝났다면 컴파일을 시작하기 전에 청소과정을 먼저 거쳐야 합니다.

35.1 청소

# cd /usr/src/linux
# make dep
# make clean

make dep : 새 커널 만들기를 시작하는 명령입니다. 컴파일을 위한 의존성 관계를 설정합니다.

make clean : 이전에 수행했던 컴파일과정에서 생성된 오브젝트 파일(*.[oas]), 커널, 임시파일(.tmp*), 설정값(configure) 등을 삭제합니다.

다음과 같이 사용하기도 합니다:

make dep;make clean

35.2 커널 컴파일 명령

아래 명령으로 압축된 커널 이미지를 만듭니다. I를 대문자로 써야합니다:

# make bzImage

커널을 만드는 명령은 몇 가지가 있는데 그 가운데 위에서 소개한 명령이 가장 많이 쓰입니다. 커널 컴파일이 성공하면 /usr/src/linux/arch/i386/boot 디렉토리에서 커널 이미지 "bzImage"를 볼 수 있습니다.

아래는 압축된 커널을 만들기 위해 이전에 사용하던 명령입니다:

# make zImage

위 명령으로 컴파일했을 때 커널이 제한된 크기를 넘으면 "SyStem is too big"이라는 에러 메시지를 남기고 컴파일이 실패합니다. 잘 쓰이지 않는 기능은 모듈로 설정하고, 필요 없는 기능은 제거하여 커널 규모를 줄이고 다시 컴파일합니다. 새로운 방법은 make bzImage를 이용하는 것입니다.

zImage는 1/2MB보다 큰 커널을 지원하지 않지만 bzImage(big zImage)는 1MB보다 위에 직접 커널을 로드하기 위해 기능이 확장되어 커널 크기를 대략 2MB까지 허용합니다.

make zdisk

명령은 커널 이미지를 플로피 디스크에 만듭니다. 플로피 디스크로 새 커널을 테스트할 때 사용합니다. 커널 이미지를 만들고 lilo 까지 수행하는 "make zlilo" 명령도 있지만 몇 가지 문제점이 알려져 있어 권장할 방법은 아닙니다.

35.3 커널 이미지

커널 컴파일이 성공했다면 /usr/src/linux/arch/i386/boot/디렉토리 아래 bzImage를 찾을 수 있습니다.

35.4 모듈 컴파일

모듈 컴파일을 시작하기 전에 이전 버전에서 설치한 모듈을 (커널 버전이 달라지지 않았다면) 이름을 바꾸어 두는 것이 좋습니다. 커널 버전이 다르다면 잠시 그냥 두었다가, 새 커널과 모듈이 제대로 동작하는 것을 확인하고 지웁니다.

# cd /usr/src/linux
# make modules
# make modules_install
# depmod -a 2.4.2

make modules : 커널 환경설정에서 모듈로 설정한 기능들을 컴파일합니다.

make modules_install : 컴파일 된 모듈을 /lib/modules 아래 설치합니다.

depmod : 모듈 사이의 의존성을 검사하여 /lib/modules 디렉토리 아래 modules.dep 파일을 만듭니다.

35.5 커널 컴파일에 걸린 시간 알아보기

time 명령을 사용하면 작업에 소요된 시간을 측정할 수 있습니다. 예를 들어 의존성 설정부터 모듈 설치작업까지 모두 얼마나 시간이 걸리는지 알아보려면 다음 명령을 사용합니다:

# time -v sh -c 'make dep ; make clean install modules modules_install'

time -v : 자세한 정보를 출력합니다.

sh -c 'string..' : 명령을 뒤따르는 문자열들에서 읽어들입니다.

36. 새 커널 설치

새로 만들어진 커널 이미지를 /boot 디렉토리로 옮기고 lilo 명령을 수행하여 부트로더에게 알려야 합니다. 커널을 교체하기 전에 반드시 테스트를 거칩니다.

36.1 부트 이미지 설치

새 이미지를 /boot 디렉토리로 옮깁니다. 이 과정에서 현재 커널을 덮어쓰지 않도록 주의합니다.

# cp /usr/src/linux/arch/i386/boot/bzImage /boot/bzImage-2.4.2

36.2 /etc/lilo.conf

/etc/lilo.conf 파일에 이미지를 추가합니다. 이과정은 커널이미지를 완전히 교체하기 전에 새 커널이 정상적으로 동작하는지 시험하기 위해 반드시 필요합니다. 커널 테스트는 부트 디스크를 사용하는 등 다른 방법들도 있지만 이 방법이 잠재된 여러 가지 문제에 대처하기에 가장 좋다고 생각됩니다.

boot=/dev/hda
... (omitted)
message=/boot/boot.msg

image=/boot/vmlinuz
        label=linux
        root=/dev/hdb1

image=/boot/bzImage-2.4.2
        label=new
        root=/dev/hdb1

other=/dev/hda1
... (omitted)

여러분이 덧붙여야 하는 블록은 아래와 비슷한 모습일 것입니다. new(label=new에서)에는 여러분이 원하는 다른 이름을 써 넣어도 좋습니다:

image=/boot/bzImage-2.4.2
    label=new
    root=/dev/hdb1

boot=/dev/hda : 부트로더가 설치된 디바이스를 지정합니다.

message=/boot/boot.msg : 부트 프롬프트에 앞서 화면에 지정한 파일에 들어있는 메시지를 표시합니다. 일반적으로 아래 예처럼 간단한 인사말과 부트 메뉴 목록을 보여줍니다. 물론 <tab> 키를 눌러 부트 메뉴를 확인할 수도 있습니다.

weLcome to el..

"L" meanS Lihaa who iS progreSSive guy!
"S" meanS Sook who iS very LoveLy and ..

thiS box offers foLLowing menus;

        new for LateSt kerneL
        linux for Safe kerneL
        dog for m$ windogs and Some workS

image=/boot/bzImage-2.4.2 : 레이블 Linux인 커널 이미지 vmLinuz에 관련된 행을 삭제하지 않고 image=...으로 시작하는 "new" 메뉴를 추가합니다.

36.3 lilo 테이블 적용

lilo.conf 파일을 저장하고 새 설정으로 업데이트하기 위해 반드시 lilo 명령을 수행합니다:

# lilo

이제 새 부트 메뉴 "new"(혹은 여러분이 정한 다른 이름)로 부팅에 실패하더라도 이전 커널이 링크된 linux 메뉴로 안전하게 다시 부트할 수 있을 것입니다.

36.4 커널 이미지 새로 링크하기

새 커널이 정상적으로 부트되었다면 링크를 새 커널로 바꿉니다. 그러나 새 커늘 이미지가 개발버전이라면 vmLinuz가 안정버전의 커널 이미지를 링크하도록 계속 두는 것이 안전합니다.

<p>
# cd /boot
# rm -f vmlinuz
# ln -s bzImage-2.4.2 vmlinuz

37. 문제 해결

열심히 커널 옵션들을 설정하고 컴파일까지 마쳤는데 새로운 커널이 여러분을 배신할 때가 있습니다. 부트는커녕 LILO 프롬프트도 볼 수 없는 상황이라면 어떻게 할까요.

37.1 새 커널로도 이전 커널로도 부트할 수 없다면?

리눅스 CD 로 설치 할 때처럼 CD 로 부트하면 "LILO Boot:" 라는 프롬프트가 나옵니다. 이때 다음과 같이 합니다. LILO Boot: linux(or vmlinuz) root=/dev/(루트 파티션) rw initrd= 와 같이 하시면 설치 모드가 아닌 리눅스가 깔린 루트 파티션으로 패스 워드 없이 로그인 됩니다.

37.2 나는 CD-ROM으로 부트할 수 없는데: LoadLin

CD-ROM으로 부트할 수 없다면, 도스로 부트해서 loadlin.exe를 사용할 수 있습니다. 도스가 설치되어 있지 않다면 주변에서 (아마) 흔하게 구할 수 있는 도스용 부트 디스켓으로 부트합니다.

도스 시스템에서 리눅스 커널을 로드하는 프로그램LoadLin.exe을 사용한다면 CD-ROM에 들어 있는 커널 이미지를 도스 파티션에 복사하고 배치파일을 만들어줍니다. 아래 예문은 hda1(그러니까 첫 번째 하드 드라이브)에 MS 윈도우즈나 도스가 설치되어 있을 때 사용할 수 있는 방법입니다. C:는 하드 드라이브, D:는 CD-ROM 드라이브라 가정합니다:

먼저 커널 이미지와 loadlin.exe등 필요한 파일들을 하드드라이브로 옮깁니다.

c:
cd \
mkdir usr
mkdir usr\linux
xcopy d:\dosutils\* c:\usr\linux /s

그 다음, 아래 명령으로 리눅스로 부트할 수 있는 배치 프로그램을 구성합니다. ^z는 키보드에서 <F6> 키를 누르면 나타납니다.

c:
cd \usr\linux
c:\usr\Linux>copy con Lnx_boot.bat
LoadLin boot\bzImage root=/dev/hdb1
^Z
c:\usr\Linux>Lnx_boot.bat

38. Notebook computer 사용자

노트북 컴퓨터 사용자는 최신 pcmcia 드라이버를 다운받아 리눅스 소스 디렉토리에 설치하고 디바이스 드라이버를 컴파일합니다. 모듈정보를 커널에서 읽어오려면 새 커널로 부트한 다음 "make config"명령을 수행합니다.

여러분이 다운로드한 PCMCIA 패키지가 /usr/local/src 디렉토리 아래에 있다고 가정합니다:

# cd /usr/src/linux
# tar xvzf /usr/local/src/pcmcia-cs-3.1.24.tar.gz
# cd pcmcia-cs-3.1.24
# make config
# make all;make install

39. 문서에 대해

부끄러운 이 문서가 (다른 리눅스 문서들처럼) 더 정확하고 유용한 정보를 담아 이 글을 읽은 리눅서가 더 많은 자유를 누리게 되길 바랍니다. 이 문서에 대해 질문과 질타, 조언, 그 밖의 모든 메일을 환영합니다.

  ____ __.  ____   ___._______. ________
  / _ \| |   / _ \ / __|_. __| | | |_  /
 |  __/| |__|  __/| /___.| | | |_| |/ /__|
 |_____|____|_____|_____||_| \_____/_____|
 
  mailto:el@kldp.org
  homo 3l3ctronicus 
  Hu 11ves o|/| tHE \/\/ir3. EL..

문서작업을 계속할 수 있도록 도와준 윤리하님 lihaa@hanmir.com, 김숙중님 fra1dca7@hanmir.com, withinu@netian.com, 그리고 양대경님 zssysop@hanmail.net 께 감사드립니다.

39.1 copyleft

Copyleft 1998-2001 by electuz (mailto : el@kldp.org.

이 문서는 상업적으로나 비상업적으로나 모두 열려 있습니다. 다만, 이 글을 옮겨 실을 때에 이 copyleft를 함께 알릴 수 있으면 좋겠습니다. 내용을 바꾸어도 좋은데, 제게 알려 주시면 이 문서에 적용하겠습니다. -

39.2 이전 문서와 달라진 것들

0.15.2, 7 Apr 2001

  • 오류들을 손보았습니다.
  • 시간 측정, /etc/sysctl.conf 부분을 추가했습니다.

0.15, 9 Mar 2001

  • 커널 2.4.2 옵션들이 추가되었습니다.
  • 접근성을 높였습니다.
  • 문제 해결 방법을 추가했습니다.
  • 오류들을 손보았습니다.
  • 여러분들의 도움으로 오역을 많이 수정했습니다.

0.12, 8 Jan 2000

  • 커널 2.2.12 옵션들을 풀어 썼습니다.




sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2003-09-16 00:26:26
Processing time 0.0226 sec