· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
커널 2.6 Intro


차영호 ganadist at chollian dot net

(based on [http]커널 2.4 Intro)

v0.0.1, 2003년 10월 19일

개발커널 2.6.0-test 버전을 컴파일하기위한 기본적인 배경지식과 일반적 사양의 PC에서의 컴파일 옵션및 방법 그리고 커널 2.6 에서 무엇이 달라졌는지를 다룬다. (이 글을 쓰는 현재 가장 최신 개발 커널인 2.6.0-test8을 기준으로 이론적인면 보단 실제로 어떻게 해야하는지에 중점을 두었다.)


1. 배경지식


1.1. 커널이란?

커널이란 운영체제(Operating System)에서 가장 핵심적인 역할인 자원 (메모리, 프로세서등)을 관리하며 시스템이 원활히 돌아갈 수 있도록 제어해 준다. 현재 우리가 리눅스(OS)라고 하는것도 실제적으론 리눅스란 운영체제의 커널 이름을 말하는것인데 이것이 확장된 의미로 사용되어 현재의 '리눅스'란 OS를 지칭하게도 된것이다. 그러므로 Linux = kernel이란 등식이 성립한다.

1.2. 커널은 어디서 구하나?

우선적으로 안정 버전과 가장 최신 개발버전을 원한다면 http://kernel.pe.kr 로 접속하면 된다. 그 이외에는 다음 미러 사이트에서 구할수 있다.

1.3. 최신 커널 버전은 어떻게 알아보나?

SHELL에서 finger @finger.kernel.org 명령으로 최신 커널버전을 알 수 있다. 이 문서를 작성하는 현재 최신버전은 다음과 같다.
ganadist@ganadist ganadist $ finger @ftp.kernel.org
[zeus-pub.kernel.org]
The latest stable version of the Linux kernel is:           2.4.22
The latest prepatch for the stable Linux kernel tree is:    2.4.23-pre7
The latest snapshot for the stable Linux kernel tree is:    2.4.22-bk36
The latest beta version of the Linux kernel is:             2.6.0-test8
The latest 2.2 version of the Linux kernel is:              2.2.25
The latest 2.0 version of the Linux kernel is:              2.0.39
The latest prepatch for the 2.0 Linux kernel tree is:       2.0.40-rc6
The latest -ac patch to the stable Linux kernels is:        2.4.22-ac4
The latest -ac patch to the beta Linux kernels is:          2.6.0-test1-ac3
커널은 stable version(안정버전)과 beta version(개발버전)으로 나누는데 이 두 버전의 차이는 minor number가 짝수이냐 홀수이냐로 구분한다. (minor number란 커널 2.4.22이 있다면 가운데 수인 4가 minor number이고 제일 앞의 2는 major number 이다. 마찬가지로 2.5.57에선 major는 2이고 minor는 5이다.) 그렇다면 2.6.0-test 버전들은 minor number가 짝수인데 왜 개발버전이라고 하나? 그 이유는 2.5.x의 패치버전들이 이제 거의 2.6 안정버전에 가까워졌다는 의미로Linus가 2.6.0-test라 이름 붙인것이다.

1.4. 커널 컴파일 방법

여러 가지 방법들이 있지만 저장된 커널옵션설정 파일이 있다면 oldconfig를 저장된 파일이 없다면 menuconfig를 추천한다.

  1. make oldconfig 또는 make menucofig

    make oldconfig를 하기위해선 다음과 같은 작업이 필요하다.
    예전에 설정한 커널옵션이 kernel.config 란 이름으로 저장되어있다면 이 파일을 새 버전의 커널이 있는 /usr/src/linux 디렉토리에 .config란 이름으로 카피한다.
# cp kernel.config /usr/src/linux/.config
위와같이 한후 make oldconfig를 실행하면 예전 옵션을 그대로 적용시켜주며 혹시나 새로운 옵션이 있다면 화면에 보여주며 선택할 수 있도록 해준다.
  1. make install

1.5. 모듈 컴파일 방법


모듈이 생성되는 디렉토리는 '/lib/modules/2.6.0-test8'이고 만약 현재 커널의 모듈을 다시 생성하려고 한다면 현재 커널의 모듈 디렉토리를 지우고 다시 컴파일 하기 바란다.

  1. make modules
  2. make modules_install

1.6. Initrd 이미지 만들기


모듈을 만들고, 때에 다라서 initrd이미지도 만들어줄 필요가 있다. (가령 ext2/3 vfs같은 fs를 모듈로 제작했을때) 그럴때엔 mkinitrd 를 사용하자.
  1. cd /lib/modules
  2. mkinitrd 2.6.0-test8 -o /boot/initrd-2.6.0-test8 (혹은 원하는 이름으로)

1.7. 한줄에 끝내기

make 명령뒤에 한꺼번에 줄 수도 있다.
  1. make oldconfig modules modules_install install

1.8. 필요한 패키지


RedHat 기반 8.0 이상의 배포판이라면 module-init-tools만 설치하면 될것이다. (module-init-tools를 업데이트 하는데 modutils 버젼이 낮다면 같이 업데이트 해줘야 할 것이다. ftp.kernel.org에 있는 [http]Rusty Russel씨의 디렉토리 에서 module-init-tools가 포함된 modutils를 구할 수 있다.) 2.6.0-test 커널을 사용하기위해서 다음 사항을 확인하라.

패키지 명 버전 확인방법
Gnu C 2.95.3 # gcc --version
Gnu make 3.78 # make --version
binutils 2.12 # ld -v
util-linux 2.10o # fdformat -v
module-init-tools 0.9.10 # depmod -V
e2fsprogs 1.29 # /sbin/tune2fs
jfsutils 1.1.3 # fsck.jfs -V
reiserfsprogs 3.6.3 # reiserfsck -V 2>&1 |grep reiserfsprogs
xfsprogs 2.1.0 # xfs_db -V
pcmcia-cs 3.1.21 # cardmgr -V
quota-tools 3.09 # quota -V
PPP 2.4.0 # pppd --version
isdn4k-utils 3.1pre1 # isdnctrl 2>&1|grep version
nfs-utils 1.0.5 # showmount --version
procps 3.1.13 # ps --version
oprofile 0.5.3 # oprofiled --version

1.9. 커널 2.6에서 달라진것과 새로운 것들

  1. core
    1. [http]module-init-tools
      • 만약 module-init-tools를 설치하지 않으면 커널 모듈이 적재되지 않는다. 꼭 설치하도록 하자.
      • 이제 modprobe는 modules.conf대신 modprobe.conf를 참조하게 된다. modules.conf를 modprobe.conf로 변환시켜주는 generate-modprobe.conf 라는 도구가 module-init-tools에 포함되어 있다. 대부분의 배포판에서는 module-init-tools를 설치하면 자동으로 실행시켜 줄 것이다.
      • 모듈파일의 확장자가 .o에서 .ko로 바뀌었다.
      • modinfo 를 치면 모듈이 컴파일된 환경을 자세하게 보여준다.
        ganadist root # modinfo snd-emu10k1
        author:         Jaroslav Kysela <perex@suse.cz>
        description:    EMU10K1
        license:        GPL
        parm:           index:Index value for the EMU10K1 soundcard.
        parm:           id:ID string for the EMU10K1 soundcard.
        parm:           enable:Enable the EMU10K1 soundcard.
        parm:           extin:Available external inputs for FX8010. Zero=default.
        parm:           extout:Available external outputs for FX8010. Zero=default.
        parm:           seq_ports:Allocated sequencer ports for internal synthesizer.
        parm:           max_synth_voices:Maximum number of voices for WaveTable.
        parm:           max_buffer_size:Maximum sample buffer size in MB.
        parm:           enable_ir:Enable IR.
        vermagic:       2.6.0-test7 preempt PENTIUMIII gcc-3.3
        depends:        snd-pcm,snd-util-mem,snd-rawmidi,snd-page-alloc,snd,snd-hwdep,snd-ac97-codec,snd-seq-device
        alias:          pci:v00001102d00000002sv*sd*bc*sc*i*
        alias:          pci:v00001102d00000006sv*sd*bc*sc*i*
        alias:          pci:v00001102d00000004sv*sd*bc*sc*i*
        
      1. 여러가지 향상된 스케줄러
        O(1) Scheduler, Preemptive Scheduler, Anticipatory Scheduler
      2. 32bit dev node
        이전의 장치파일은 16bit로 구분되었지만 리눅스 2.6에서는 32bit로 확장되었다. (major: 12bit, minor: 20bit)
      3. 향상된 Thread 지원

    2. 새로운 driver model
    3. [http]Posix High Resolution Timer
    4. [http]kconfig
      먼저 make help를 해보면 도움말이 나온다. 도움말을 보면 이전과 많이 달라졌다는 것을 알 수 있을것이다.
      ganadist linux-2.6.0-test8 # make help
      Cleaning targets:
        clean           - remove most generated files but keep the config
        mrproper        - remove all generated files + config + various backup files
       
      Configuration targets:
        oldconfig       - Update current config utilising a line-oriented program
        menuconfig      - Update current config utilising a menu based program
        xconfig         - Update current config utilising a QT based front-end
        gconfig         - Update current config utilising a GTK based front-end
        defconfig       - New config with default answer to all options
        allmodconfig    - New config selecting modules when possible
        allyesconfig    - New config where all options are accepted with yes
        allnoconfig     - New minimal config
       
      Other generic targets:
        all             - Build all targets marked with [*]
      * vmlinux         - Build the bare kernel
      * modules         - Build all modules
        modules_install - Install all modules
        dir/            - Build all files in dir and below
        dir/file.[ois]  - Build specified target only
        rpm             - Build a kernel as an RPM package
        tags/TAGS       - Generate tags file for editors
       
      Documentation targets:
        Linux kernel internal documentation in different formats:
        sgmldocs (SGML), psdocs (Postscript), pdfdocs (PDF)
        htmldocs (HTML), mandocs (man pages, use installmandocs to install)
       
      Architecture specific targets (i386):
      * bzImage       - Compressed kernel image (arch/i386/boot/bzImage)
        install       - Install kernel using
                         (your) ~/bin/installkernel or
                         (distribution) /sbin/installkernel or
                         install to $(INSTALL_PATH) and run lilo
        bzdisk       - Create a boot floppy in /dev/fd0
        fdimage      - Create a boot floppy image
       
        make V=0|1 [targets] 0 => quiet build (default), 1 => verbose build
        make O=dir [targets] Locate all output files in "dir", including .config
        make C=1   [targets] Check all c source with checker tool
       
      Execute "make" or "make all" to build all targets marked with [*]
      For further info see the ./README file
      
      kconfig는 커널 설정및 빌드 도구의 이름이며 원래 설정도구는 Eric Raymond씨의 CML2가 들어갈 예정이었으나 개발이 중단되어버렸다. 이전의 make dep는 없어지고, make gconfig와 make xconfig가 추가되었다. 그리고 모든 기능을 커널에 몰아 넣는 allyesconfig, 모든 기능을 모듈로 만드는 allmodconfig, 모든기능을 빼버리는 allnoconfig 설정을 할 수 있으며, 빌드 메세지를 숨길수 있도록 되었다.
      1. [http]CPU Hotplug

    5. [http]Software Suspend
      윈도우의 하이버네이션기능과 같은 역할을 한다. 현재 시스템의 메모리 상태를 스왑영역에 보관해두었다가 다음 리눅스 커널이 부팅될 때 스왑영역을 읽어서 이전 상태로 되돌리는 기능이다.
  2. hardware support
    1. 새로운 아키텍쳐 지원 PPC64, X86-64, [http]UML
    2. [http]Alsa
      여러가지 고급 기능을 지원하는 새로운 Sound 장치 기반인 Alsa(Advanced Linux Sound Architecture)가 기본으로 커널에 포함되었다. 물론 기존의 OSS와 호환되는 Alsa OSS Emulation 모듈도 포함되어 있다.
    3. CPU Frequency Scaling 지원
      전원 절약을 위해 각종 CPU의 Frequency Scaling지원이 추가가 되었다.
    4. [http]DVB
      디지털 방송장비를 위한 DVB(Digital Video Broadcast) 이 추가가 되었다. 이것을 이용하여 리눅스에서 디지털 TV를 시청할 수 있다.
    5. [http]Video4Linux
      비디오및 오디오 캡쳐를 위한 Video4Linux가 재작성 되었다.
    6. [http]ACPI Support
      시스템에 연결된 각종 장치의 상태를 BIOS와 연계해서 알 수 있는 ACPI 드라이버가 포함되었다.
    7. [http]Console & Input Devices
      콘솔 계층및 입력장치 드라이버가 재작성되어 완전히 모듈화를 시킬 수 있다.
    8. Serial ATA Support
      고속 하드디스크 인터페이스인 Serial ATA 드라이버가 추가되었다.
    9. [http]Bluetooth Support
  3. Filesystem
    1. [http]XFS Support
      SGI의 XFS가 리눅스에 기본으로 포함되었다.
    2. ACL Support
      파일에 여러가지 속성을 줄 수 있는 acl이 포함되었다. ext2, ext3, jfs, xfs에서 지원한다.
    3. Plugin을 지원하는 새로운 Quota 시스템
    4. [http]ntfs-ng 추가
      새로운 ntfs드라이버인 ntfs-ng가 리눅스에 기본으로 포함되었다.
    5. cifs Support
    6. afs Support
    7. sysfs
      현재 각종 장치의 상태를 보여주는 가상 파일시스템인 sysfs (이전의 driverfs)가 추가되었다.
  4. network
    1. napi 지원
    2. STCP 지원
    3. Ethernet bridge tables support
    4. IPSec Support
    5. Linux Virtual Server Support
  5. security
    1. LSM 추가
    2. CryptoAPI
    3. [http]SElinux

1.10. 커널 옵션 설정



Code maturity level options --->

[*] Prompt for development and/or incomplete code/drivers
[ ] Select only drivers expected to compile cleanly 
[ ]Select only drivers that don't need compile-time external firmware
코드 성숙도에 대한 옵션이다. 여기를 선택하지 않으면 아직 불안정하다고 판단되는 기능을 선택할 수 없다.
General Setup --->
[*] Support for paging of anonymous memory
[*] System V IPC
[*] BSD Process Accounting
[*] Sysctl support
(14) Kernel log buffer size (16 => 64KB, 17 => 128KB)
[*] Kernel .config support
[*]   Enable access to .config through /proc/config.gz
[ ] Remove kernel features (for embedded systems)  --->
커널의 일반기능에 대한 설정이다.
  • Support for paging of anonymous memory
    Swap 기능이다. Desktop이나 Server시스템에서는 여간하면 켜주는 것이 좋을 것이다.
  • System V IPC
    이 설정은 IPC를 지원하게 한다. Shared Memory도 여기서 지원한다
  • BSD Process Accounting
    이 설정은 프로세스 정보를 파일에 저장한다.
  • Sysctl support
    이 설정은 특정 커널의 파라미터와 변수들을 동적으로 변경시킬수 있도록 한다. [http]Powertweak라는 도구를 쓰면 쉽게 바꿀 수 있다.
  • Kernel .config support
    이 설정은 현재 커널이 빌드될 때 사용된 설정을 /proc/config.gz에서 읽을 수 있도록 한다.
  • Remove kernel features (for embedded systems)
    소형기기에서 필요 없는 옵션들을 빼거나 모듈로 만들 수 있다. 모든 메뉴에서 적용된다.
Loadable module support --->

[*] Enable loadable module support
[*]   Module unloading
[ ]     Forced module unloading
[ ]   Module versioning support (EXPERIMENTAL)
[*] Automatic Kernel module loader
커널 모듈에 대한 설정이다. 모듈이란 커널에 포함되지 않고 커널이 운영되고 있는 상태에 모듈파일을 읽어들여서 커널의 기능을 더하는 것이다. 일반적으로 윈도우의 드라이버와 같다고 생각하면 된다.
  • Enable loadable module support
    이 설정은 커널의 모듈기능을 쓰게 한다.
  • Module unloading
    이 설정은 현재 커널에 적재된 모듈을 지울수 있도록 한다.
  • Forced module unloading
    이 설정은 현재 커널이 모듈에 포함된 기능을 쓰고 있더라도 강제로 모듈을 지울수 있도록 한다. 정상적인 시스템에서는 되도록이면 쓰지 않아야 하는 기능이다.
  • Module versioning support
    모듈의 기능(function)이름에 부가정보를 더하는 기능이다. 커널 2.6에서 이 기능을 쓰면 제대로 빌드 안되는 경우가 많다.
  • Automatic Kernel module loader
    /proc/sys/kernel/modprobe에 등록된 프로그램을 이용해 커널이 알아서 모듈을 적재하는 기능이다.
Processor type and features --->
Subarchitecture Type (PC-compatible)  --->
Processor family (Pentium-III/Celeron(Coppermine)/Pentium-III Xeon)
[*] Generic x86 support
[ ] HPET Timer Support
[ ] Symmetric multi-processing support
[*] Preemptible Kernel
[*] Local APIC support on uniprocessors
[*]   IO-APIC support on uniprocessors
[ ] Machine Check Exception
< > Toshiba Laptop suppor
< > Dell laptop support
<M> /dev/cpu/microcode - Intel IA32 CPU microcode support
<M> /dev/cpu/*/msr - Model-specific register support
<M> /dev/cpu/*/cpuid - CPU information support
<M> BIOS Enhanced Disk Drive calls determine boot disk (EXPERIMENTAL)
High Memory Support (off)  --->
[ ] Math emulation
[*] MTRR (Memory Type Range Register) support
  • Subarchitecture Type
    사용할 시스템에 대한 옵션이다. PC에서 쓸 것이기 때문에 PC호환으로 선택하면 된다.
  • Processor family
    사용할 시스템의 CPU를 설정한다.
  • HPET Timer Support
    기존의 8254 Timer대신 HPET Timer를 사용하게 한다.
  • Symmetric multi-processing support
    여러개의 CPU를 쓸 수 있도록 하는 옵션이다. Hyper Threading을 지원하는 Pentium 4 CPU가 있으면 마찬가지로 SMP를 사용하는 것이 좋다.
  • Preemptible Kernel
    Preemptible 스케줄러를 사용하는 옵션이다. 어플리케이션의 빠른 반응속도를 원하면 사용하도록 한다. 서버로 사용할 생각이면 꺼두는 것이 좋다.
  • Machine Check Exception
    현재 시스템에 이상이 생겼을 때 알려주는 기능을 한다.
  • Intel IA32 CPU microcode support
    [http]microcode_ctl로 P6이상의 CPU에서 지원하는 마이크로코드를 업데이트 할 수 있다. (Intel CPU Only)
  • Model-specific register support
    Model specific register에 접근할 수 있는 장치 파일을 만든다.
  • CPU information support
    지정한 CPU에 CPUID 명령을 수행할 수 있는 장치 파일을 만든다.
  • BIOS Enhanced Disk Drive calls determine boot disk
  • High Memory support
    대형 메모리 지원 옵션이다. 현재 시스템의 램 크기가 1G이상 혹은 64G이하면 알맞은 옵션을 설정하는 것이 좋을 것이다.
  • Math emulation
    수치연산 프로세서가 없는 CPU를 위한 옵션이다. 486이상의 PC에서는 필요없는 옵션이다.
  • MTRR (Memory Type Range Register) support
    P6이상의 프로세서에 있는 MTRR레지스터 지원이다. 이 옵션이 켜져있으면 비디오카드에서 많은 양의 데이터를 전송할 때 속도향상이 있다고 한다.
Power management options (ACPI, APM)  --->
[*] Power Management support
[*]   Software Suspend (EXPERIMENTAL)
[*]   Suspend-to-Disk Support
()      Default resume partition
 ACPI (Advanced Configuration and Power Interface) Support  ---> 
 APM (Advanced Power Management) BIOS Support  --->
 CPU Frequency scaling  --->
전원관리 옵션이다.
  • Power management options
    리눅스 커널의 전원관리 subsystem을 사용하는 옵션이다.
  • Software Suspend
  • Suspend-to-Disk Support
    둘다 시스템의 메모리를 하드디스크에 저장시켰다가 다음 부팅때 읽어들어서 이전 상태로 되돌리는 기능이다. 같은 코드기반이지만 구분되어 관리하고 있다.
ACPI (Advanced Configuration and Power Interface) Support --->
[*] ACPI Support
[ ]   Sleep States (EXPERIMENTAL)
<M>   AC Adapter
<M>   Battery
<M>   Button
<M>   Fan
<M>   Processor
<M>     Thermal Zone
< >   ASUS/Medion Laptop Extras
< >   Toshiba Laptop Extras
[ ]   Debug Statements
[*]   Relaxed AML
ACPI는 전원관리와 하드웨어 설정을 OS와 유기적으로 하기위한 표준이다. acpi 기능을 쓰고 싶다면 이 옵션을 켜고 [http]acpi daemon을 쓰도록 하자.
APM (Advanced Power Management) BIOS Support  --->
<M> 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
APM은 BIOS에서 전원관리를 하기위한 표준이다. apm 기능을 쓰고 싶다면 이 옵션을 켜고 [http]apmd를 설치하는 것이 좋다.
CPU Frequency scaling  --->
[*] CPU Frequency scaling
<M>   /proc/cpufreq interface (deprecated)
      Default CPUFreq governor (performance)  --->
---   'performance' governor
<M>   'powersave' governor
<M>   'userspace' governor for userspace frequency scaling
[*]     /proc/sys/cpu/ interface (2.4. / OLD)
<M>   CPU frequency table helpers
---   CPUFreq processor drivers
<M> ACPI Processor P-States driver
[*]   /proc/acpi/processor/../performance interface (deprecated)
< > AMD Mobile K6-2/K6-3 PowerNow!
< > AMD Mobile Athlon/Duron PowerNow!
< > AMD Opteron/Athlon64 PowerNow!
< > Cyrix MediaGX/NatSemi Geode Suspend Modulation
< > Intel Enhanced SpeedStep
< > Intel Speedstep on ICH-M chipsets (ioport interface)
< > Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)
< > Intel Pentium 4 clock modulation
< > Transmeta LongRun
< > VIA Cyrix III Longhaul
CPU Frequency scaling은 각종 모바일 및 임베디드 CPU의 소비전력을 절약하기 위한 기능을 쓸 수 있게 해준다. 해당 기능이 있는 CPU를 가지고 있다면 켜둔다.
Bus options (PCI, PCMCIA, EISA, MCA, ISA) --->
[*] PCI support
 PCI access mode (Any) --->
[*]   Legacy /proc/pci interface
[*]   PCI device name database
[ ] ISA support
[ ] MCA support
< > NatSemi SCx200 support
[*] Support for hot-pluggable devices
 PCMCIA/CardBus support  --->
 PCI Hotplug Support  --->
시스템에서 쓰이는 각종 Bus 지원 설정이다.
  • PCI support
    PCI Bus 지원옵션이다. 최근에 나오는 주변장치들은 대부분 PCI형식이므로 이 옵션을 꼭 넣자.
  • Legacy /proc/pci interface
    /proc/pci 파일로 현재 시스템에 장착된 PCI장치들을 살펴볼 수 있다. pciutils에서 사용되며 커널 2.6에서는 sysfs에서 관리를 할 수 있으므로 필요는 없지만 기존의 프로그램중에서 사용될 수 있으므로 옵션에 넣었다.
  • PCI device name database
    /proc/pci, /proc/ioports등에서 나오는 pci 기기정보를 숫자로된 id대신 장치 이름으로 보여주게 한다.
  • ISA support
  • MCA support
  • NatSemi SCx200 support
    최근의 일반적인 PC메서 사용되지 않는 Bus형식이다.
  • Support for hot-pluggable devices
    /proc/sys/kernel/hotplug에 프로그램을 등록해서 시스템이 구동되는 도중에 주변장치를 붙이고 뗄수 있는 기능을 사용하도록 한다. 등록되는 프로그램은 hotplug agent라고 부르며 현재 http://linux-hotplug.sourceforge.net에서 받을 수 있다. 커널 2.6에서는 [http]hotplug[http]udev를 쓸 수 있다.
  • PCMCIA/CardBus support
    노트북에서 사용되는 PCMCIA/CardBus장치를 쓰기 위한 옵션이다.
  • PCI Hotplug Support
    핫플러그가 되는 PCI장치를 위한 옵션이다. 일반 PC에서는 필요없다.
  • Executable file formats  --->
    <*> Kernel support for ELF binaries
    <M> Kernel support for a.out ECOFF binaries
    <M> Kernel support for MISC binaries
    
    실행파일 로더에 대한 옵션이다.
  • Kernel support for ELF binaries
    ELF 형식의 실행파일을 실행할 수 있도록 하는 옵션이다.
  • Kernel support for a.out ECOFF binaries
    a.out 형식의 실행파일을 실행할 수 있도록 하는 옵션이다.
  • Kernel support for MISC binaries
    그외 여러가지 형식의 실행파일을 실행할 수 있도록 한다. Java VM(java), DOSEMU(dos), Wine(windows), dotgnu, mono(ECMA CLI) 등과 같은 해당 실행파일을 해석할 수 있는 인터프리터와 실행파일의 헤더 혹은 확장자를 등록한 후 그 파일에 실행퍼미션을 주고 실행하면 해당 인터프리터가 파일을 읽어들인후 해석한다.
  • Device Drivers  ---> 
      Generic Driver Options  --->
      Memory Technology Devices (MTD)  --->
      Parallel port support  --->
      Plug and Play support  --->
      Block devices  --->
      ATA/ATAPI/MFM/RLL support  --->
      SCSI device support  --->
      Multi-device support (RAID and LVM)  --->
      Fusion MPT device support  --->
      IEEE 1394 (FireWire) support (EXPERIMENTAL)  --->
      I2O device support  --->
      Networking support  --->
      ISDN subsystem  --->
      Telephony Support  --->
      Input device support  --->
      Character devices  --->
      Multimedia devices  --->
      Graphics support  --->
      Sound  --->
      USB support  --->
    
    각종 주변장치 드라이버를 선택할 수 있다.
    Generic Driver Options  --->
    <M> Hotplug firmware loading support
    
    모듈이 커널에 포함되지 않은 핫플러그 펌웨어를 읽을 수 있도록 한다.
    Memory Technology Devices (MTD) --->
    < > Memory Technology Device (MTD) support
    
    소형기기에서 쓰이는 여러가지 저장장치를 지원한다.
    Parallel port support --->
    <M> Parallel port support
    <M>   PC-style hardware    
    < >     Multi-IO cards (parallel and serial)
    [*]     Use FIFO/DMA if available (EXPERIMENTAL)    
    [ ]     SuperIO chipset support (EXPERIMENTAL)
    [*] Support foreign hardware    
    [*] IEEE 1284 transfer modes
    
    병렬포트를 지원한다.
    Plug and Play support   ---> 
    [*] Plug and Play support
    [ ]   PnP Debug Messages      ---   Protocols
    [ ]   ISA Plug and Play support (EXPERIMENTAL)
    [*]   Plug and Play BIOS support (EXPERIMENTAL)
    
    Plug and Play장치를 지원한다.
    Block devices  ---> 
    < > Parallel port IDE device support
    < > Compaq SMART2 support
    < > Compaq Smart Array 5xxx support
    < > Mylex DAC960/DAC1100 PCI RAID Controller support
    < > Micro Memory MM5415 Battery Backed RAM support (EXPERIMENTAL)
    <M> Loopback device support
    <M>   Cryptoloop Support
    <M> Network block device support
    <*> RAM disk support
    (4096) Default RAM disk size
    [*] Initial RAM disk (initrd) support
    [*] Support for Large Block Devices
    
  • Loopback device support
    보통 파일을 블럭장치처럼 쓰려고 할 때 필요하다. losetup이나 mount의 loop옵션을 사용해서 쓸 수 있다.
  • Network block device support
    네트워크 블럭장치에 대한 옵션이다. 원격 호스트에 있는 블럭 장치에 연결할 때 쓰인다.
  • RAM disk support
    RAM을 블럭장치처럼 쓰려고 할 때 필요하다.
  • Initial RAM disk (initrd) support
    부트로더에서 로딩할 수 있는 램디스크 이미지 (주로 root 파일 시스템을 마운트하기 위해)를 쓰기위한 옵션이다.
  • Support for Large Block Devices
    2TB이상의 블럭장치를 쓰기위한 옵션이다.
  • ATA/ATAPI/MFM/RLL support  ---> 
    <*> ATA/ATAPI/MFM/RLL support
    <*>   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
    [*]       Auto-Geometry Resizing support
    <M>     Include IDE/ATAPI CDROM support
    < >     Include IDE/ATAPI TAPE support (EXPERIMENTAL)
    < >     Include IDE/ATAPI FLOPPY support
    <M>     SCSI emulation support
    [*]     IDE Taskfile Access
    [*]     IDE Taskfile IO (EXPERIMENTAL)
    ---     IDE chipset support/bugfixes
    [ ]     CMD640 chipset bugfix/support
    [*]     PNP EIDE support
    [*]     PCI IDE chipset support
    [*]       Sharing PCI IDE interrupts support
    [ ]       Boot off-board chipsets first support
    [*]       Generic PCI IDE Chipset Support
    < >       OPTi 82C621 chipset enhanced support (EXPERIMENTAL)
    < >       RZ1000 chipset bugfix/support
    [*]       Generic PCI bus-master DMA support
    [ ]         ATA tagged command queueing (EXPERIMENTAL)
    [ ]         Force enable legacy 2.0.X HOSTS to use DMA
    [*]         Use PCI DMA by default when available
    [ ]           Enable DMA only for disks
    [ ]         ATA Work(s) In Progress (EXPERIMENTAL)
    < >         AEC62XX chipset support
    < >         ALI M15x3 chipset support
    < >         AMD and nVidia IDE support
    < >         CMD64{3|6|8|9} chipset support
    < >         Compaq Triflex IDE support
    < >         CY82C693 chipset support
    < >         Cyrix CS5510/20 MediaGX chipset support (VERY EXPERIMENTAL)
    < >         Cyrix/National Semiconductor CS5530 MediaGX chipset support
    < >         HPT34X chipset support
    < >         HPT36X/37X chipset support
    < >         National SCx200 chipset support
    <*>         Intel PIIXn chipsets support
    < >         NS87415 chipset support
    < >         PROMISE PDC202{46|62|65|67} support
    < >         PROMISE PDC202{68|69|70|71|75|76|77} support
    < >         ServerWorks OSB4/CSB5/CSB6 chipsets support
    < >         Silicon Image chipset support
    < >         SiS5513 chipset support
    < >         SLC90E66 chipset support
    < >         Tekram TRM290 chipset support
    < >         VIA82CXXX chipset support
    [ ]     IGNORE word93 Validation BITS
    
    ATA/ATAPI (AT Attachment / Packet Interface)장치와 구식의 MFM/RLL 장치를 위한 옵션이다.
  • Use old disk-only driver on primary interface
    기본(첫번째)인터페이스에 대해 디스크만 제어할 수 있는 드라이버를 쓰는 옵션이다. 이 옵션을 사용하면 디스크 이외의 장치(플로피, 시디롬, 테이프 등등)으로 부팅을 못하도록 한다.
  • Include IDE/ATA-2 DISK support
    IDE/MFM/RLL 하드 디스크 지원 옵션이다.
  • Include IDE/ATAPI CDROM support
    IDE/ATAPI CDROM 지원 옵션이다.
  • Include IDE/ATAPI TAPE support
    IDE/ATAPI 테이프 장치 지원 옵션이다.
  • Include IDE/ATAPI FLOPPY support
    IDE/ATAPI 플로피 드라이브 지원 옵션이다. 노트북용 플로피를 쓴다면 포함해두는 것이 좋다.
  • SCSI emulation support
    IDE인터페이스 장치를 scsi인터페이스 처럼 사용할 수 있도록 한다. CD-R장치를 쓰려면 포함하는 것이 좋다.
  • IDE Taskfile Access
    ioctl로 Taskfile명령을 내릴수 있도록 하는 옵션이다.
  • IDE Taskfile IO
    Taskfile IO명령을 사용하는 옵션이다.
  • PCI IDE chipset support PCI IDE칩셋 지원이다. 아래에 있는 여러 칩셋들 중 자신에게 맞는 칩셋을 선택하도록하자.
  • Sharing PCI IDE interrupts support PCI IDE 인터럽트를 공유할 수 있도록 한다.
  • Boot off-board chipsets first support 메인보드에 내장되지 않은 IDE인터페이스에 연결된 장치로 부팅할 수 있도록 하는 옵션이다.
  • Generic PCI IDE Chipset Support PCI IDE 칩셋지원옵션이다. 이것만 설정을 해두어도 커널에서 IDE인터페이스는 인식이 가능하다. 하지만 hdparm옵션이 제대로 적용안되는 경우가 많다.
  • Generic PCI bus-master DMA support
    데이터를 전송할 때 CPU의 점유율을 낮추기 위해서 DMA설정을 할 수 있도록 한다.
  • Use PCI DMA by default when available
    기본값으로 DMA를 활성화한다.
  • Enable DMA only for disks
    일부 CDROM장치에서 DMA를 활성화하면 데이터 전송에 실패할 수 있다. 이 옵션을 켜면 디스크 장치만 DMA를 켜두도록 한다.
  • SCSI device support --->
    <M> SCSI device support
    [*]   legacy /proc/scsi/ support
    ---   SCSI support type (disk, tape, CD-ROM)
    <M>   SCSI disk support
    < >   SCSI tape support
    < >   SCSI OnStream SC-x0 tape support
    <M>   SCSI CDROM support
    [*]     Enable vendor-specific extensions (for SCSI CDROM)
    <M>   SCSI generic support
    ---   Some SCSI devices (e.g. CD jukebox) support multiple LUNs
    [*]   Probe all LUNs on each SCSI device
    [*]   Build with SCSI REPORT LUNS support
    [*]   Verbose SCSI error reporting (kernel size +=12K)
    [ ]   SCSI logging facility
    
    Multi-device support (RAID and LVM) --->
    [*] Multiple devices driver support (RAID and LVM)
    <M>   RAID support
    <M>     Linear (append) mode
    <M>     RAID-0 (striping) mode
    <M>     RAID-1 (mirroring) mode
    <M>     RAID-4/RAID-5 mode
    <M>     Multipath I/O support
    <M>   Device mapper support
    [*]     ioctl interface version 4
    
    Software RAID및 LVM옵션이다. 여러개의 하드디스크를 하나처럼 쓰려고 할 때 쓰인다. Device mapper는 LVM의 새로운 이름이다. 이 기능들을 쓰려면 [http]raidtools[http]lvm2 tools를 설치하여야 한다. 이외에 커널 2.6에 포함되지 않았지만 [http]evms로 여러가지 기능을 쓸 수 있다.
    Fusion MPT device support  ---> 
    < > Fusion MPT (base + ScsiHost) drivers
    
    IEEE 1394 (FireWire) support (EXPERIMENTAL)  --->
    <M> IEEE 1394 (FireWire) support (EXPERIMENTAL)
    ---   Subsystem Options
    [ ]   Excessive debugging output
    [*]   OUI Database built-in
    ---   Device Drivers
    < >   Texas Instruments PCILynx support
    <M>   OHCI-1394 support
    ---   Protocol Drivers
    <M>   OHCI-1394 Video support
    <M>   SBP-2 support (Harddisks etc.)
    [ ]     Enable Phys DMA support for SBP2 (Debug)
    <M>   Ethernet over 1394
    <M>   OHCI-DV I/O support
    <M>   Raw IEEE1394 I/O support
    <M>   IEC61883-1 Plug support
    <M>     IEC61883-6 (Audio transmission) support
    
    고속 전송을 지원하는 IEEE1394(iLink혹은 Firewire라고 불리기도 한다)를 지원하는 옵션이다.
  • Texas Instruments PCILynx support
  • OHCI-1394 support
    IEEE1394 호스트 드라이버이다. 대부분이 OHCI호환이므로 OHCI-1394를 선택하면 된다.
  • OHCI-1394 Video support
    IEEE1394로 비디오 장치를 쓰려고 할 때 쓰이는 옵션이다
  • SBP-2 support (Harddisks etc.)
    IEEE1394로 저장장치를 쓰려고 할 때 쓰이는 옵션이다. USB와 마찬가지로 scsi호스트를 에물레이션해준다.
  • Ethernet over 1394
    IEEE1394로 이더넷을 에물레이션 해준다. modprobe.conf에서 ethx장치와 alias걸어주면 작동하게 될 것이다.
  • OHCI-DV I/O support
    Digital Video스트림을 주고받도록 해준다.
  • Raw IEEE1394 support
    커널모드가 아닌 사용자 모드에서 IEEE1394로 데이터를 주고 받을 수 있도록 한다.
  • I2O device support  --->
    <M> I2O support
    <M>   I2O PCI support
    <M>   I2O Block OSM
    <M>   I2O SCSI OSM
    <M>   I2O /proc support
    
    Networking support  --->
    [*] Networking support
          Networking options  --->
    [*]   Network device support
            ARCnet devices  --->
    <M>     Dummy net driver support
    < >     Bonding driver support
    < >     EQL (serial line load balancing) support
    < >     Universal TUN/TAP device driver support
    < >     Ethertap network tap
    < >     General Instruments Surfboard 1000
            Ethernet (10 or 100Mbit)  --->
            Ethernet (1000 Mbit)  --->
            Ethernet (10000 Mbit)  --->
    [ ]     FDDI driver support
    [ ]     HIPPI driver support (EXPERIMENTAL)
    < >     PLIP (parallel port) support
    <M>     PPP (point-to-point protocol) support
    [ ]       PPP multilink support (EXPERIMENTAL)
    [ ]       PPP filtering
    <M>       PPP support for async serial ports
    <M>       PPP support for sync tty ports
    <M>       PPP Deflate compression
    <M>       PPP BSD-Compress compression
    <M>       PPP over Ethernet (EXPERIMENTAL)
    <M>       PPP over ATM
    < >     SLIP (serial line) support
            Wireless LAN (non-hamradio)  --->
            Token Ring devices  --->
    [ ]     Fibre Channel driver support
    < >     Red Creek Hardware VPN (EXPERIMENTAL)
    <M>     Traffic Shaper (EXPERIMENTAL)
            Wan interfaces  --->
            ATM drivers  --->
        Amateur Radio support  --->
        IrDA (infrared) support  --->
        Bluetooth support  --->
    
  • Dummy net driver support
    네트워크 인터페이스가 있는것 처럼 하는 드라이버다. slip이나 ppp를 쓰려면 옵션을 켜주어야 한다.
  • Bonding driver support
    여러개의 이더넷 장치를 하나의 이더넷 장치처럼 쓰도록 한다.
  • EQL (serial line load balancing) support
    두개의 시리얼 포트 연결을 하나의 연결처럼 쓰도록 하는 드라이버이다.
  • PLIP (parallel port) support
    패래럴 포트 연결을 지원하는 드라이버이다. 두 컴퓨터 사이의 네트워크 연결을 패래럴 포트로 연결하여 쓰려고 할 때 필요하다.
  • PPP (point-to-point protocol) support
    PPP연결이 필요로 할 때 쓰이는 드라이버이다.
  • SLIP (serial line) support
    시리얼 포트 연결을 지원하는 드라이버이다. 두 컴퓨터 사이의 네트워크 연결을 시리얼 포트로 연결하여 쓰려고 할 때 필요하다.
  • Wireless LAN (non-hamradio)
    무선랜 지원 옵션이다. 무선랜 장치를 쓰고 있다면 이 옵션에 들어가 사용하는 무선랜카드를 선택하면 된다.
  • Token Ring devices
    토큰링 장치를 위한 옵션이다.
  • Traffic Shaper (EXPERIMENTAL)
    네트워크의 출력 대역폭을 조절할 수 있는 모듈이다.
  • IrDA (infrared) support
    적외선 통신 장치를 이용할 때 쓰이는 옵션이다.
  • Bluetooth support
    Bluetooth 장치를 쓸 때 필요한 옵션이다.
  •  Networking options  --->
    <*> Packet socket
    [*]   Packet socket: mmapped IO
    <M> Netlink device emulation
    <*> Unix domain sockets
    <M> PF_KEY sockets [*]
     TCP/IP networking
    [*]   IP: multicasting
    [ ]   IP: advanced router
    [ ]   IP: kernel level autoconfiguration
    < >   IP: tunneling
    < >   IP: GRE tunnels over IP
    [ ] IP: multicast routing
    [ ] IP: ARP daemon support (EXPERIMENTAL)
    [*] IP: TCP Explicit Congestion Notification support
    [*] IP: TCP syncookie support (disabled per default)
    <M> IP: AH transformation
    <M> IP: ESP transformation
    <M> IP: IPComp transformation
        IP: Virtual Server Configuration  ---> 
    <M> The IPv6 protocol (EXPERIMENTAL)
    [*]   IPv6: Privacy Extensions (RFC 3041) support 
    <M>   IPv6: AH transformation
    <M>   IPv6: ESP transformation 
    <M>   IPv6: IPComp transformation
    <M>   IPv6: IPv6-in-IPv6 tunnel 
    < > DECnet Support
    <M> 802.1d Ethernet Bridging 
    [*] Network packet filtering (replaces ipchains)  --->
    <M> IPsec user configuration interface 
        SCTP Configuration (EXPERIMENTAL)  --->
    <M> Asynchronous Transfer Mode (ATM) (EXPERIMENTAL) 
    <M>   Classical IP over ATM (EXPERIMENTAL)
    [ ]     Do NOT send ICMP if no neighbour (EXPERIMENTAL) 
    <M>   LAN Emulation (LANE) support (EXPERIMENTAL)
    <M>     Multi-Protocol Over ATM (MPOA) support (EXPERIMENTAL) 
    < >   RFC1483/2684 Bridged protocols
    <M> 802.1Q VLAN Support 
    < > ANSI/IEEE 802.2 LLC type 2 Support
    <M> The IPX protocol 
    [*]   IPX: Full internal IPX network
    < > Appletalk protocol support 
    < > CCITT X.25 Packet Layer (EXPERIMENTAL)
    < > LAPB Data Link Driver (EXPERIMENTAL) 
    [ ] Frame Diverter (EXPERIMENTAL)
    < > Acorn Econet/AUN protocols (EXPERIMENTAL) 
    < > WAN router
    [ ] Fast switching (read help!) 
    [ ] Forwarding between high speed interfaces
        QoS and/or fair queueing  --->
        Network testing  --->
    
  • Packet socket
    커널에서 구현된 네트워크 프로토콜을 사용하지 않고 직접 네트워크 장치와 통신하는 프로그램을 쓸 때 필요하다. tcpdump 같은 프로그램을 쓰려면 포함시키자.
  • Packet socket: mmaped IO
    패킷 소켓을 쓸 때 빠른 입출력을 원한다면 커널에 포함시킨다.
  • Unix domain sockets
    유닉스 도메인 소켓을 지원한다. X windows나 syslog같은 프로그램을 쓴다면 포함시켜야 할 것이다.
  • TCP/IP networking
    커널의 TCP/IP를 지원한다.
  • IP: multicasting
    한번에 여러군데의 컴퓨터에 데이터를 전달하기 위한 옵션이다. 일반 사용자에게는 필요하지 않다.
  • IP: advanced router
    리눅스 컴퓨터를 라우터처럼 쓸 때 필요한 옵션이다.
  • IP: Kernel level autoconfiguration
    커널안에서 DHCP, 또는 BOOTP, RARP 같은 프로토콜을 이용해 네트워크 설정을 할 수 있도록 한다. nfs를 root filesystem으로 쓰려면 꼭 넣어야 한다.
  • IP: tunneling
    어떤 프로토콜로 감싼 데이터를 다른 프로토콜 위에 올리고 보낸 것을 해석할 수 있도록 하는 기능이다.
  • IP: GRE tunnels over IP
    터널링중 특히 IPv4혹은 IPv6로 보낸 데이터를 IPv4에 다시 올릴 때 쓰이는 기능이다.
  • IP: multicast routing
    멀티 캐스트 패킷을 라우팅할 때 쓰이는 옵션이다.
  • IP: TCP Explicit Congestion Notification support
    ECN은 라우터가 클라이언트들에게 패킷이 붐비는 것을 알려줘서 패킷을 잃어버리는 것을 줄이고 네트워크 성능을 올리는 역할을 한다. 하지만 많은 방화벽이 ECN을 제대로 지원하지 않기 때문에 방화벽 안에서는 별 효용성이 없다고 한다. sysctl로 켜거나 끌 수 있다.
  • IP: TCP syncookie support
    SYN flooding공격을 방지하기 위해 쓰이는 옵션이다. 하지만 서버에 과부하가 걸렸을 때 클라이언트에 대한 오류 정정 보고를 방해할 수 있다. sysctl로 켜거나 끌 수 있다.
  • IP: Virtual Server Configuration
    [http]IPVS가 리눅스 2.6에 정식으로 들어갔다. 이를 이용해 balancing server를 구축할 수 있다.
  • The IPv6 protocol
    차세대 인터넷 프로토콜인 IPv6에 대한 지원 설정이다.
  • Network packet filtering
    특정 조건에 맞는 네트워크 패킷을 걸러내거나 통과시킬 수 있도록 하는 옵션이다. 방화벽이나 NAT를 구축하려고 할 때 쓰인다.
  • QoS and/or fair queueing
    특정 조건에 맞는 네트워크 패킷의 전송속도를 조절할 수 있도록 하는 옵션이다.
  • ISDN subsystem --->
    [ ] ISDN support
    
    Telephony Support  --->
    < > Linux telephony support
    
    Input device
    --- Userland interfaces
    --- Mouse interface
    (1024) Horizontal screen resolution
    (768) Vertical screen resolution
    <M> Joystick interface
    <M> Touchscreen interface
    (240) Horizontal screen resolution
    (320) Vertical screen resolution
    <M> Event interface
    < > Event debugging
    --- Input I/O drivers
    <M> Gameport support
    <M> Classic ISA and PnP gameport support
    < > PDPI Lightning 4 gamecard support
    <M> SB Live and Audigy gameport support
    < > Aureal Vortex, Vortex 2 gameport support
    < > ForteMedia FM801 gameport support
    < > Crystal SoundFusion gameport support
    --- Serial i/o support
    <*> i8042 PC Keyboard controller
    <M> Serial port line discipline
    < > ct82c710 Aux port controller
    < > Parallel port keyboard adapter
    <M> PCI PS/2 keyboard and PS/2 mouse controller
    --- Input Device Drivers
    --- Keyboards
    < >   Sun Type 4 and Type 5 keyboard support
    < >   XT Keyboard support
    < >   Newton keyboard
    [*] Mice
    <M>   PS/2 mouse
    [ ]     Synaptics TouchPad
    <M>   Serial mouse
    [*] Joysticks
    <M>   Classic PC analog joysticks and gamepads
    < >   Assasin 3D and MadCatz Panther devices
    < >   Logitech ADI digital joysticks and gamepads
    <M>   Creative Labs Blaster Cobra gamepad
    < >   Genius Flight2000 Digital joysticks and gamepads
    < >   Gravis GrIP joysticks and gamepads
    < >   Gravis GrIP MultiPort
    < >   Guillemot joysticks and gamepads
    < >   InterAct digital joysticks and gamepads
    <M>   Microsoft SideWinder digital joysticks and gamepads
    < >   ThrustMaster DirectConnect joysticks and gamepads
    <M>   I-Force devices
    [*]     I-Force USB joysticks and wheels
    [ ]     I-Force Serial joysticks and wheels
    <M>   Logitech WingMan Warrior joystick
    < >   LogiCad3d Magellan/SpaceMouse 6dof controllers
    < >   SpaceTec SpaceOrb/Avenger 6dof controllers
    < >   SpaceTec SpaceBall 6dof controllers
    < >   Gravis Stinger gamepad
    < >   Twiddler as a joystick
    <M>   Multisystem, Sega Genesis, Saturn joysticks and gamepads
    <M>   Multisystem, NES, SNES, N64, PSX joysticks and gamepads
    <M>   Multisystem joysticks via TurboGraFX device
    <M>   Gameport data dumper
    [*] Touchscreens
    <M>   Gunze AHL-51S touchscreen
    [*] Misc
    <M>   PC Speaker support
    <M>   User level driver support
    
  • Input device
    커널 2.6의 Input Subsystem은 완전히 새로 쓰여졌다. 키보드 드라이버는 더이상 콘솔드라이퍼에 포함되지 않으며 완전히 분리되었다. 현재 시스템에 등록된 입력장치에 대한 정보를 보려면 /proc/bus/input 에 있는 파일들을 참조하면 된다.
  • Mouse interface
    리눅스의 마우스 인터페이스에 대한 옵션이다. 마우스 장치를 쓰려면 이 옵션과 아래의 장치 옵션을 켜주어야 한다. 모든 마우스는 기본적으로 /dev/input/mice 라는 장치로 접근이 가능하게 되고 각각의 마우스는 /dev/mouseX라는 장치로 접근이 가능하다.
  • Provide legacy /dev/psaux device
    이전의 리눅스 커널처럼 /dev/psaux 장치를 만들어 주도록 한다.
  • Joystick interface
    리눅스의 조이스틱 인터페이스에 대한 옵션이다. 조이스틱 장치를 쓰려면 이옵션과 함께 조이스틱 포트 옵션과 조이스틱 욥션을 켜주어야 한다. 조이스티은 /dev/input/jsX라는 장치로 접근이 가능하다.
  • Gameport support
    조이스틱 포트에 대한 옵션이다. 알맞은 게임 포트 옵션을 선택하면 된다. 일부 게임포트 드라이버는 사운드 카드 모듈에 들어있을 수 있다.
  • i8042 PC Keyboard controller
    일반 AT 컴퓨터에서 쓰이는 키보드 컨트롤러 모듈이다. 커널 2.6에서는 완전히 모듈화가 되어있어서 커널에서 빼버릴 수도 있다. 하지만 빼버리게 되면 가상 콘솔을 전혀 쓸수 없게된다.

  • Character devices --->
    [*] Virtual terminal
    [*]   Support for console on virtual terminal
    [ ] Non-standard serial port support
        Serial drivers  --->
    [*] Unix98 PTY support
    (256) Maximum number of Unix98 PTYs in use (0-2048)
    <M> Parallel printer support
    [ ]   Support for console on line printer
    <M> Support for user-space parallel port device drivers
    < > Texas Instruments parallel link cable support
        I2C support  --->
        Mice  --->
    < > QIC-02 tape support
        IPMI  --->
        Watchdog Cards  --->
    <M> Intel/AMD/VIA HW Random Number Generator support
    <M> /dev/nvram support
    <*> Enhanced Real Time Clock Support
    < > Double Talk PC internal speech card support
    < > Siemens R3964 line discipline
    < > Applicom intelligent fieldbus card support
    < > Sony Vaio Programmable I/O Control Device support (EXPERIMENTAL)
        Ftape, the floppy tape device driver  --->
    <M> /dev/agpgart (AGP Support)
    < >   ALI chipset support
    < >   ATI chipset support
    < >   AMD Irongate, 761, and 762 chipset support
    < >   AMD Opteron/Athlon64 on-CPU GART support
    <M>   Intel 440LX/BX/GX, I8xx and E7x05 chipset support
    < >   NVIDIA nForce/nForce2 chipset support
    < >   SiS chipset support
    < >   Serverworks LE/HE chipset support
    < >   VIA chipset support
    [*] Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
    < >   3dfx Banshee/Voodoo3+
    < >   3dlabs GMX 2000
    < >   ATI Rage 128
    < >   ATI Radeon
    < >   Intel I810
    < >   Intel 830M, 845G, 852GM, 855GM, 865G
    <M>   Matrox g200/g400
    < >   SiS video cards
    < > ACP Modem (Mwave) support
    <M> RAW driver (/dev/raw/rawN)
    (256) Maximum number of RAW devices to support (1-8192)
    <M> Hangcheck timer
    
  • Virtual terminal
    가상 터미널을 쓸 수 있도록 하는 옵션이다. 리눅스에서는 하나의 콘솔을 여러개의 터미널 처럼 쓸 수있다.
  • Non-standard serial port support
    비표준 시리얼 장치에 대한 지원이다.
  • Serial drivers
    표준 시리얼 장치에 대한 옵션이다. 모뎀이나 시리얼 마우스, 혹은 slip을 사용하려면 이 옵션을 켜야 한다.
  • Unix98 PTY support Pseudo Terminal 지원이다. 원격 터미널이나 xterm같은 데에서 사용된다.
  • Parallel printer support 패래럴 장치에 대한 지원이다. 프린터를 연결하거나 plip등을 사용하려면 이 옵션을 켜야한다.
  • I2C support I2C는 필립스에서 개발한 마이크로 컨트롤러용 저속 시리얼 버스 프로토콜이다. 컴퓨터에 있는 온도 센서, 혹은 비디오 캡쳐장치(TV카드)등을 사용하려면 이 옵션을 켜야 한다.
  • Intel/AMD/VIA HW Random Number Generator support 최근에 나오는 메인보드의 하드웨어 난수발생기를 지원하는 옵션이다.
  • Enhanced Real Time Clock Support 시스템의 내장 클럭을 쓸 수 있게 하는 옵션이다. SMP를 쓰려면 꼭 넣어야한다.
  • /dev/agpgart (AGP Support) AGP 포트 드라이버이다. 커널 2.6에서는 아래의 각 벤더별로 모듈이 분리되어 있다.
  • Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) 커널측의 DRM 드라이버이다. XFree86의 dri를 쓰려면 이 옵션을 켜야 한다.
  • RAW driver (/dev/raw/rawN) block장치를 char장치처럼 쓰게 해주는 raw장치를 만들어 준다.
    Multimedia devices --->
    <M> Video For Linux
          Video For Linux  --->
          Radio Adapters  --->
        Digital Video Broadcasting Devices  --->
    
  • Multimedia devices
    리눅스에서 각종 방송장비를 쓸 수 있도록 한다.
  • Video For Linux
    비디오 및 오디오 캡처 기기에 대한 커널측 API이다. 일반 아나로그 TV카드, 혹은 웹캠 같은 장비를 쓰려면 여기서 알맞은 칩셋을 선택하면 된다. 일부 FM통합카드도 지원된다.
  • Radio Adapters
    라디오 튜너 지원옵션이다.
  • Digital Video Broadcasting Devices
    디지털 TV 카드에 대한 커널측 API이다.
  • Graphics support --->
    [*] Support for frame buffer devices
    < >   CyberPro 2000/2010/5000 support (NEW)
    [ ]   IMS Twin Turbo display support (NEW)
    < >   VGA 16-color graphics support (NEW)
    [ ]   VESA VGA graphics support (NEW)
    < >   Hercules mono graphics support (NEW)
    < >   nVidia Riva support (NEW)
    < >   Intel 810/815 support (EXPERIMENTAL) (NEW)
    < >   Matrox acceleration
    < >   ATI Radeon display support (NEW)
    < >   ATI Rage128 display support (NEW)
    < >   ATI Mach64 display support (NEW)
    < >   SIS acceleration (NEW)
    < >   NeoMagic display support (NEW)
    < >   3Dfx Banshee/Voodoo3 display support (NEW)
    < >   3Dfx Voodoo Graphics (sst1) support (NEW)
    < >   Trident support (NEW)
    < > Virtual Frame Buffer support (ONLY FOR TESTING!) (NEW)
        Console display driver support  --->
        Logo configuration  --->
    
  • Graphics support
    컴퓨터의 그래픽 카드에 대한 옵션이다. 리눅스 커널에서 직접 그래픽 카드를 다루어야 할 때 필요한 옵션을 여기서 선택할 수 있다.
  • Support for frame buffer devices
    프레임 버퍼는 리눅스 커널에서 그래픽 카드에 직접 이미지를 뿌리는 작업을 할 때 쓰인다. 자신의 컴퓨터에 알맞는 옵션을 선택하면 된다.
  • Console display driver support
    콘솔 화면의 드라이버를 선택하는 옵션이다. VGA text console은 꼭 선택해주는 것이 좋다. 그렇지 않으면 모니터에 아무것도 나오지 않을 것이다. 프레임 버퍼장치를 콘솔로 쓰려면 Framebuffer Console support를 선택하면 된다.
  • Logo configuration
    프레임 버퍼 콘솔로 부팅할 때 쓰이는 부팅 로고를 설정할 수 있다.
  • Sound --->
    <M> Sound card support
        Advanced Linux Sound Architecture  --->
        Open Sound System  --->
    


    USB support  --->
    <M> Support for USB
    [ ]   USB verbose debug messages
    ---   Miscellaneous USB options
    [*]   USB device filesystem
    [*]   Enforce USB bandwidth allocation (EXPERIMENTAL)
    [*]   Dynamic USB minor allocation (EXPERIMENTAL)
    ---   USB Host Controller Drivers
    <M>   EHCI HCD (USB 2.0) support
    < >   OHCI HCD support
    <M>   UHCI HCD (most Intel and VIA) support
    ---   USB Device Class drivers
    <M>   USB Audio support
    ---   USB Bluetooth TTY can only be used with disabled Bluetooth subs│ │
    <M>   USB MIDI support
    <M>   USB Modem (CDC ACM) support
    <M>   USB Printer support
    <M>   USB Mass Storage support
    [ ]     USB Mass Storage verbose debug
    [*]     Datafab Compact Flash Reader support (EXPERIMENTAL)
    [*]     Freecom USB/ATAPI Bridge support
    [*]     ISD-200 USB/ATA Bridge support
    [*]     Microtech CompactFlash/SmartMedia support
    [*]     HP CD-Writer 82xx support (EXPERIMENTAL)
    [*]     SanDisk SDDR-09 (and other SmartMedia) support (EXPERIMENTAL)│ │
    [*]     SanDisk SDDR-55 SmartMedia support (EXPERIMENTAL)
    [*]     Lexar Jumpshot Compact Flash Reader (EXPERIMENTAL)
    ---   USB Human Interface Devices (HID)
    <M>   USB Human Interface Device (full HID) support
    [*] HID input layer support
    [*]   Force feedback support (EXPERIMENTAL)
    [*]     PID Devices (Microsoft Sidewinder Force Feedback 2)
    [*]     Logitech WingMan *3D support
    [*] /dev/hiddev raw HID device support
        USB HID Boot Protocol drivers  --->
    <M> Aiptek 6000U/8000U tablet support
    <M> Wacom Intuos/Graphire tablet support
    <M> KB Gear JamStudio tablet support
    <M> Griffin PowerMate and Contour Jog support
    <M> X-Box gamepad support
    --- USB Imaging devices
    <M> USB Mustek MDC800 Digital Camera support (EXPERIMENTAL)
    <M> USB Scanner support
    <M> Microtek X6USB scanner support
    <M> HP53xx USB scanner support (EXPERIMENTAL)
    --- USB Multimedia devices
    <M> DABUSB driver
    <M> USB 3com HomeConnect (aka vicam) support (EXPERIMENTAL)
    <M> D-Link USB FM radio support (EXPERIMENTAL)
    <M> USB IBM (Xirlink) C-it Camera support
    <M> USB Konica Webcam support
    <M> USB OV511 Camera support
    <M> USB Philips Cameras
    <M> USB SE401 Camera support
    <M> USB STV680 (Pencam) Camera support
    --- USB Network adaptors
    <M> USB CATC NetMate-based Ethernet device support (EXPERIMENTAL)
    <M> USB KLSI KL5USB101-based ethernet device support
    <M> USB Pegasus/Pegasus-II based ethernet device support
    <M> USB RTL8150 based ethernet device support (EXPERIMENTAL)
    <M> Multi-purpose USB Networking Framework
    ---   USB Host-to-Host Cables
    [*]   AnchorChips 2720 based cables (Xircom PGUNET, ...)
    [*]   eTEK based host-to-host cables (Advance, Belkin, ...)
    [*]   GeneSys GL620USB-A based cables
    [*]   NetChip 1080 based cables (Laplink, ...)
    [*]   Prolific PL-2301/2302 based cables
    ---   Intelligent USB Devices/Gadgets
    [*]   Embedded ARM Linux links (iPaq, ...)
    [*]   Epson 2888 based firmware (DEVELOPMENT)
    [*]   Sharp Zaurus (stock ROMs)
    [*]   CDC Ethernet support (smart devices such as cable modems)
    ---   USB Network Adapters
    [*]   ASIX AX88172 Based USB 2.0 Ethernet Devices
    --- USB port drivers
    <M> USS720 parport driver
        USB Serial Converter support  --->
    --- USB Miscellaneous drivers
    <M> EMI 2|6 USB Audio interface support
    <M> Texas Instruments Graph Link USB (aka SilverLink) cable support
    <M> USB Auerswald ISDN support (EXPERIMENTAL)
    <M> USB Diamond Rio500 support (EXPERIMENTAL)
    <M> Tieman Voyager USB Braille display support (EXPERIMENTAL)
    <M> USB LCD driver support
    <M> Alcatel Speedtouch USB support
    <M> USB testing driver (DEVELOPMENT)
    <M> Support for USB Gadgets  --->
    
    • USB Human Interface Device (full HID) support USB 포트용 키보드, 마우스, 조이스틱, 그래픽 태블릿, UPS 또는 기타 HID(Human Interface Device) 장치를 연결 지원
    File systems  --->
    <*> Second extended fs support
    [*]   Ext2 extended attributes
    [*]     Ext2 POSIX Access Control Lists
    [*]     Ext2 Security Labels
    <M> Ext3 journalling file system support
    [*]   Ext3 extended attributes
    [*]     Ext3 POSIX Access Control Lists
    [*]     Ext3 Security Labels
    [ ] JBD (ext3) debugging support
    <*> Reiserfs support
    [ ]   Enable reiserfs debug mode
    [*]   Stats in /proc/fs/reiserfs
    <M> JFS filesystem support
    [*]   JFS POSIX Access Control Lists
    [ ]   JFS debugging
    [*]   JFS statistics
    <M> XFS filesystem support
    [ ]   Realtime support (EXPERIMENTAL)
    [*]   Quota support
    [*]   ACL support
    < > Minix fs support
    < > ROM file system support
    [*] Quota support
    <M>   Old quota format support
    <M>   Quota format v2 support
    < > Kernel automounter support
    < > Kernel automounter version 4 support (also supports v3)
        CD-ROM/DVD Filesystems  --->
        DOS/FAT/NT Filesystems  --->
        Pseudo filesystems  --->
        Miscellaneous filesystems  --->
        Network File Systems  --->
    
  • Ext2/3 extended attributes
    Ext2/3파일시스템에서 파일에 속성을 기록할 수 있게하는 옵션이다. 레드햇8에서 잠시 소개가 된 기능이다. attr패키지에 포함된 lsattr, getfattr, setfattr 명령으로 각 파일에 대해 설정할 수 있다.
  • Ext2/3, JFS, XFS POSIX Access Control Lists
    각 파일시스템에서 파일에 사용자별, 그룹별로 권한을 기록할 수 있게하는 옵션이다. acl패키지에 포함된 chacl, getfacl, setfacl 명령으로 각 파일에 대해 설정할 수 있다.
  • Ext2/3 Security Labels
    Ext2파일시스템에서 SELinux같은 확장 모듈에서 쓰이는 확장권한을 지원한다고 한다.
  • Quota support
    사용자별 디스크 사용량을 제한할 수 있도록 한다. ext2, ext3, reiserfs에서만 사용 가능하다.
  • Old quota format support
    커널 2.4이전의 Quota형식을 지원하도록 한다.
  • Quota format v2 support
    32bit UID/GID를 지원하는 Quota형식을 지원하도록 한다.
  • XFS Quota support
    XFS에서 Quota기능을 쓰려면 독자적인 XFS Quota옵션을 켜주어야 쓸 수 있다.
  • CD-ROM/DVD Filesystems --->
    <M> ISO 9660 CDROM file system support
    [*]   Microsoft Joliet CDROM extensions
    [*]   Transparent decompression extension
    <M> UDF file system support
    
  • ISO 9660 CDROM file system support
    CD-ROM 또는 DVD Media에서 쓰이는 iso9660 파일시스템지원 옵션이다.
  • Microsoft Joliet CDROM extensions
    Microsoft가 만든 긴 파일이름과 유니코드를 지원하는 iso9660의 확장이다.
  • Transparent decompression extension
    리눅스에서만 쓸 수 있는 압축 isofs지원이다. 이러한 파일시스템을 만들려면 [http]zisofs를 이용하면 된다.
  • UDF file system support
    DVD Media에서 쓰이는 UDF 파일시스템 지원 옵션이다.
  • DOS/FAT/NT Filesystems  --->
    <M> DOS FAT fs support
    <M>   MSDOS fs support
    <M>   VFAT (Windows-95) fs support
    <M> NTFS file system support
    [ ]   NTFS debugging support
    [*]   NTFS write support
    
  • MSDOS fs support
    이전 8.3형식의 파일이름을 지원하는 fat지원 옵션이다.
  • VFAT (Windows-95) fs support
    VFAT 또는 FAT32 파일시스템을 지원하는 옵션이다.
  • NTFS file system support
    커널 2.6에서는 [http]NTFS-NG가 포함되었다. 이전 ntfs지원에서 지원 못하던 몇몇 속성을 사용할 수 있다.
  • Pseudo filesystems  --->
    [*] /proc file system support
    [ ] /dev file system support (OBSOLETE)
    [*] /dev/pts file system for Unix98 PTYs
    [*]   /dev/pts Extended Attributes
    [*]     /dev/pts Security Labels
    [*] Virtual memory file system support (former shm fs)
    [*] HugeTLB file system support
    
  • /proc file system support
    proc 가상 파일시스템을 사용할 수 있도록 한다.
  • /dev file system support
    device장치를 자동으로 관리해주는 devfs를 사용할 수 있도록 한다. 커널 2.4와는 달리 /dev/pts를 지원하지 않는다. 곧 [http]udev로 교체될 예정이다.
  • /dev/pts file system for Unix98 PTYs
    가상터미널 장치를 자동으로 관리해주는 pts파일 시스템이다.
  • Virtual memory file system support (former shm fs)
    동적으로 영역을 할당해주는 램파일시스템이다. /dev/shm 또는 /tmp에 주로 마운트하여 사용한다.
  • Miscellaneous filesystems  --->
    < > ADFS file system support (EXPERIMENTAL)
    < > Amiga FFS file system support (EXPERIMENTAL)
    < > Apple Macintosh file system support (EXPERIMENTAL)
    < > BeOS file systemv(BeFS) support (read only) (EXPERIMENTAL)
    < > BFS file system support (EXPERIMENTAL)
    < > EFS file system support (read only) (EXPERIMENTAL)
    <M> Compressed ROM file system support
    < > FreeVxFS file system support (VERITAS VxFS(TM) compatible)
    < > OS/2 HPFS file system support
    < > QNX4 file system support (read only)
    < > System V/Xenix/V7/Coherent file system support
    <M> UFS file system support (read only)
    [*]   UFS file system write support (DANGEROUS)
    
    Network File Systems  <M> NFS file system support
    [*]   Provide NFSv3 client support
    [ ]   Provide NFSv4 client support (EXPERIMENTAL)
    [*]   Allow direct I/O on NFS files (EXPERIMENTAL)
    <M> NFS server support
    [*]   Provide NFSv3 server support
    [ ]     Provide NFSv4 server support (EXPERIMENTAL)
    [*]   Provide NFS server over TCP support (EXPERIMENTAL)
    <M> Provide RPCSEC_GSS authentication (EXPERIMENTAL)
    <M>   Kerberos V mechanism for RPCSEC_GSS (EXPERIMENTAL)
    <M> SMB file system support (to mount Windows shares etc.)
    [*]   Use a default NLS
    (cp949) Default Remote NLS Option
    <M> CIFS support (advanced network filesystem for Samba, Window and other CIFS compliant servers)(EXPERIMENTAL)
    < > NCP file system support (to mount NetWare volumes)
    < > Coda file system support (advanced network fs)
    < > InterMezzo file system support (replicating fs) (EXPERIMENTAL)
    < > Andrew File System support (AFS) (Experimental)--->
    
    Partition Types  --->
    [*] Advanced partition selection
    [ ]   Acorn partition support
    [ ]   Alpha OSF partition support
    [ ]   Amiga partition table support
    [ ]   Atari partition table support
    [ ]   Macintosh partition map support
    [*]   PC BIOS (MSDOS partition tables) support
    [ ]     BSD disklabel (FreeBSD partition tables) support
    [ ]     Minix subpartition support
    [ ]     Solaris (x86) partition table support
    [ ]     Unixware slices support
    [ ]   Windows Logical Disk Manager (Dynamic Disk) support
    [ ]   NEC PC-9800 partition table support
    [ ]   SGI partition support
    [ ]   Ultrix partition table support
    [ ]   Sun partition tables support
    [ ]   EFI GUID Partition support
    
    Native Language Support  --->
    (cp949) Default NLS Option
    <M> Codepage 437 (United States, Canada)
    < > Codepage 737 (Greek)
    < > Codepage 775 (Baltic Rim)
    < > Codepage 850 (Europe)
    < > Codepage 852 (Central/Eastern Europe)
    < > Codepage 855 (Cyrillic)
    < > Codepage 857 (Turkish)
    < > Codepage 860 (Portuguese)
    < > Codepage 861 (Icelandic)
    < > Codepage 862 (Hebrew)
    < > Codepage 863 (Canadian French)
    < > Codepage 864 (Arabic)
    < > Codepage 865 (Norwegian, Danish)
    < > Codepage 866 (Cyrillic/Russian)
    < > Codepage 869 (Greek)
    < > Simplified Chinese charset (CP936, GB2312)
    < > Traditional Chinese charset (Big5)
    < > Japanese charsets (Shift-JIS, EUC-JP)
    <M> Korean charset (CP949, EUC-KR)
    < > Thai charset (CP874, TIS-620)
    < > Hebrew charsets (ISO-8859-8, CP1255)
    < > Windows CP1250 (Slavic/Central European Languages)
    < > Windows CP1251 (Bulgarian, Belarusian)
    <M> NLS ISO 8859-1  (Latin 1; Western European Languages)
    < > NLS ISO 8859-2  (Latin 2; Slavic/Central European Languages)
    < > NLS ISO 8859-3  (Latin 3; Esperanto, Galician, Maltese, Turkish)
    < > NLS ISO 8859-4  (Latin 4; old Baltic charset)
    < > NLS ISO 8859-5  (Cyrillic)
    < > NLS ISO 8859-6  (Arabic)
    < > NLS ISO 8859-7  (Modern Greek)
    < > NLS ISO 8859-9  (Latin 5; Turkish)
    < > NLS ISO 8859-13 (Latin 7; Baltic)
    < > NLS ISO 8859-14 (Latin 8; Celtic)
    < > NLS ISO 8859-15 (Latin 9; Western European Languages with Euro)
    < > NLS KOI8-R (Russian)
    < > NLS KOI8-U/RU (Ukrainian, Belarusian)
    <M> NLS UTF8
    
    Profiling support  --->
    [*] Profiling support (EXPERIMENTAL)
    < >   OProfile system profiling (EXPERIMENTAL)
    
    Kernel hacking  --->
    [*] Kernel debugging
    [ ]   Check for stack overflows
    [ ]   Debug memory allocations
    [ ]   Memory mapped I/O debugging
    [*]   Magic SysRq key
    [ ]   Spinlock debugging
    [ ]   Page alloc debugging
    [ ]   Compile the kernel with debug info
    [ ] Sleep-inside-spinlock checking
    [ ] Compile the kernel with frame pointers
    
    Security options  --->
    [*] Enable different security models
    [*]   Socket and Networking Security Hooks
    <M>   Default Linux Capabilities
    <M>   Root Plug Support
    [*]   NSA SELinux Support
    [ ]     NSA SELinux boot parameter (NEW)
    [ ]     NSA SELinux Development Support
    [ ]     NSA SELinux MLS policy (EXPERIMENTAL) (NEW)
    
    Cryptographic options  --->
    --- Cryptographic API
    ---   HMAC support
    <M>   Null algorithms
    <M>   MD4 digest algorithm
    <M>   MD5 digest algorithm
    <M>   SHA1 digest algorithm
    <M>   SHA256 digest algorithm
    <M>   SHA384 and SHA512 digest algorithms
    <M>   DES and Triple DES EDE cipher algorithms
    <M>   Blowfish cipher algorithm
    <M>   Twofish cipher algorithm
    <M>   Serpent cipher algorithm
    <M>   AES cipher algorithms
    <M>   CAST5 (CAST-128) cipher algorithm
    <M>   CAST6 (CAST-256) cipher algorithm
    <M>   Deflate compression algorithm
    <M>   Testing module
    
    Library routines  --->
    <M> CRC32 function
    



ID
Password
Join
To criticize the incompetent is easy; it is more difficult to criticize the competent.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2005-03-17 22:23:00
Processing time 0.0029 sec