[시스템] linux kernel 2.6.x 에 대하여
개발커널 2.6.0-test 버전을 컴파일하기위한 기본적인 배경지식과 일반적 사양의 PC에서의 컴파일 옵션및 방법 그리고 커널 2.6 에서 무엇이 달라졌는지를 다룬다. (이 글을 쓰는 현재 가장 최신 개발 커널인 2.6.0-test8을 기준으로 이론적인면 보단 실제로 어떻게 해야하는지에 중점을 두었다.)
1 배경지식
1.1 커널이란?
1.2 커널은 어디서 구하나?
1.3 최신 커널 버전은 어떻게 알아보나?
1.4 커널 컴파일 방법
1.5 모듈 컴파일 방법
1.6 Initrd 이미지 만들기
1.7 Initrd 이미지 만들기
1.8 한줄에 끝내기
1.9 필요한 패키지
1.10 커널 2.6에서 달라진것과 새로운 것들
1.11 커널 옵션 설정
2 참고 문서들
1 배경지식 #
1.1 커널이란? #
커널이란 운영체제(Operating System)에서 가장 핵심적인 역할인 자원 (메모리, 프로세서등)을 관리하며 시스템이 원활히 돌아갈 수 있도록 제어해 준다. 현재 우리가 리눅스(OS)라고 하는것도 실제적으론 리눅스란 운영체제의 커널 이름을 말하는것인데 이것이 확장된 의미로 사용되어 현재의 ‘리눅스’란 OS를 지칭하게도 된것이다. 그러므로 Linux = kernel이란 등식이 성립한다.
1.2 커널은 어디서 구하나? #
우선적으로 안정 버전과 가장 최신 개발버전을 원한다면 http://kernel.pe.kr 로 접속하면 된다. 그 이외에는 다음 미러 사이트에서 구할수 있다.
우리나라 : ftp://ftp.kr.kernel.org/pub/linux/kernel/
미국 : ftp://ftp.us.kernel.org/pub/linux/kernel/
일본 : ftp://ftp.jp.kernel.org/pub/linux/kernel/
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를 추천한다.
make oldconfig 또는 make menucofig
make oldconfig를 하기위해선 다음과 같은 작업이 필요하다.
예전에 설정한 커널옵션이 kernel.config 란 이름으로 저장되어있다면 이 파일을 새 버전의 커널이 있는 /usr/src/linux 디렉토리에 .config란 이름으로 카피한다.
# cp kernel.config /usr/src/linux/.config
위와같이 한후 make oldconfig를 실행하면 예전 옵션을 그대로 적용시켜주며 혹시나 새로운 옵션이 있다면 화면에 보여주며 선택할 수 있도록 해준다.
make install
1.5 모듈 컴파일 방법 #
모듈이 생성되는 디렉토리는 ‘/lib/modules/2.6.0-test8’이고 만약 현재 커널의 모듈을 다시 생성하려고 한다면 현재 커널의 모듈 디렉토리를 지우고 다시 컴파일 하기 바란다.
make modules
make modules_install
<<<<<<<
1.6 Initrd 이미지 만들기 #
모듈을 만들고, 때에 다라서 initrd이미지도 만들어줄 필요가 있다. (가령 ext2/3 vfs같은 fs를 모듈로 제작했을때) 그럴때엔 mkinitrd 를 사용하자.
cd /lib/modules
mkinitrd 2.6.0-test8 -o /boot/initrd-2.6.0-test8 (혹은 원하는 이름으로)
=======
1.7 Initrd 이미지 만들기 #
모듈을 만들고, 때에 다라서 initrd이미지도 만들어줄 필요가 있다. (가령 ext2/3 vfs같은 fs를 모듈로 제작했을때) 그럴때엔 mkinitrd 를 사용하자.
cd /lib/modules
mkinitrd 2.6.0-test8 -o /boot/initrd-2.6.0-test8 (혹은 원하는 이름으로)
>>>>>>>
1.8 한줄에 끝내기 #
make 명령뒤에 한꺼번에 줄 수도 있다.
make oldconfig modules modules_install install
1.9 필요한 패키지 #
RedHat 기반 8.0 이상의 배포판이라면 module-init-tools만 설치하면 될것이다. (module-init-tools를 업데이트 하는데 modutils 버젼이 낮다면 같이 업데이트 해줘야 할 것이다. ftp.kernel.org에 있는 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.10 커널 2.6에서 달라진것과 새로운 것들 #
core
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
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*
여러가지 향상된 스케줄러
O(1) Scheduler, Preemptive Scheduler, Anticipatory Scheduler
32bit dev node
이전의 장치파일은 16bit로 구분되었지만 리눅스 2.6에서는 32bit로 확장되었다. (major: 12bit, minor: 20bit)
향상된 Thread 지원
새로운 driver model
Posix High Resolution Timer
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 설정을 할 수 있으며, 빌드 메세지를 숨길수 있도록 되었다.
CPU Hotplug
Software Suspend
윈도우의 하이버네이션기능과 같은 역할을 한다. 현재 시스템의 메모리 상태를 스왑영역에 보관해두었다가 다음 리눅스 커널이 부팅될 때 스왑영역을 읽어서 이전 상태로 되돌리는 기능이다.
hardware support
새로운 아키텍쳐 지원
?PPC64, X86-64, UML
Alsa
여러가지 고급 기능을 지원하는 새로운 Sound 장치 기반인 Alsa(Advanced Linux Sound Architecture)가 기본으로 커널에 포함되었다. 물론 기존의 OSS와 호환되는 Alsa OSS Emulation 모듈도 포함되어 있다.
CPU Frequency Scaling 지원
전원 절약을 위해 각종 CPU의 Frequency Scaling지원이 추가가 되었다.
DVB
디지털 방송장비를 위한 DVB(Digital Video Broadcast) 이 추가가 되었다. 이것을 이용하여 리눅스에서 디지털 TV를 시청할 수 있다.
Video4Linux
비디오및 오디오 캡쳐를 위한 ?Video4Linux가 재작성 되었다.
ACPI Support
시스템에 연결된 각종 장치의 상태를 BIOS와 연계해서 알 수 있는 ACPI 드라이버가 포함되었다.
Console & Input Devices
콘솔 계층및 입력장치 드라이버가 재작성되어 완전히 모듈화를 시킬 수 있다.
Serial ATA Support
고속 하드디스크 인터페이스인 Serial ATA 드라이버가 추가되었다.
Bluetooth Support
Filesystem
XFS Support
SGI의 XFS가 리눅스에 기본으로 포함되었다.
ACL Support
파일에 여러가지 속성을 줄 수 있는 acl이 포함되었다. ext2, ext3, jfs, xfs에서 지원한다.
Plugin을 지원하는 새로운 Quota 시스템
ntfs-ng 추가
새로운 ntfs드라이버인 ntfs-ng가 리눅스에 기본으로 포함되었다.
cifs Support
afs Support
sysfs
현재 각종 장치의 상태를 보여주는 가상 파일시스템인 sysfs (이전의 driverfs)가 추가되었다.
network
napi 지원
STCP 지원
Ethernet bridge tables support
?IPSec Support
Linux Virtual Server Support
security
LSM 추가
?CryptoAPI
SElinux
1.11 커널 옵션 설정 #
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
이 설정은 특정 커널의 파라미터와 변수들을 동적으로 변경시킬수 있도록 한다. 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
/dev/cpu/microcode – Intel IA32 CPU microcode support
/dev/cpu/*/msr – Model-specific register support
/dev/cpu/*/cpuid – CPU information support
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
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)
AC Adapter
Battery
Button
Fan
Processor
Thermal Zone
< > ASUS/Medion Laptop Extras
< > Toshiba Laptop Extras
[ ] Debug Statements
[*] Relaxed AML
ACPI는 전원관리와 하드웨어 설정을 OS와 유기적으로 하기위한 표준이다. acpi 기능을 쓰고 싶다면 이 옵션을 켜고 acpi daemon을 쓰도록 하자.
APM (Advanced Power Management) BIOS Support —>
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 기능을 쓰고 싶다면 이 옵션을 켜고 apmd를 설치하는 것이 좋다.
CPU Frequency scaling —>
[*] CPU Frequency scaling
/proc/cpufreq interface (deprecated)
Default CPUFreq governor (performance) —>
— ‘performance’ governor
‘powersave’ governor
‘userspace’ governor for userspace frequency scaling
[*] /proc/sys/cpu/ interface (2.4. / OLD)
CPU frequency table helpers
— CPUFreq processor drivers
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에서는 hotplug와 udev를 쓸 수 있다.
PCMCIA?/CardBus support
노트북에서 사용되는 PCMCIA?/CardBus장치를 쓰기 위한 옵션이다.
PCI Hotplug Support
핫플러그가 되는 PCI장치를 위한 옵션이다. 일반 PC에서는 필요없다.
Executable file formats —>
<*> Kernel support for ELF binaries
Kernel support for a.out ECOFF binaries
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 —>
Hotplug firmware loading support
모듈이 커널에 포함되지 않은 핫플러그 펌웨어를 읽을 수 있도록 한다.
Memory Technology Devices (MTD) —>
< > Memory Technology Device (MTD) support
소형기기에서 쓰이는 여러가지 저장장치를 지원한다.
Parallel port support —>
Parallel port support
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)
Loopback device support
Cryptoloop Support
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
Include IDE/ATAPI CDROM support
< > Include IDE/ATAPI TAPE support (EXPERIMENTAL)
< > Include IDE/ATAPI FLOPPY support
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 —>
SCSI device support
[*] legacy /proc/scsi/ support
— SCSI support type (disk, tape, CD-ROM)
SCSI disk support
< > SCSI tape support
< > SCSI OnStream SC-x0 tape support
SCSI CDROM support
[*] Enable vendor-specific extensions (for SCSI CDROM)
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)
RAID support
Linear (append) mode
RAID-0 (striping) mode
RAID-1 (mirroring) mode
RAID-4/RAID-5 mode
Multipath I/O support
Device mapper support
[*] ioctl interface version 4
Software RAID및 LVM옵션이다. 여러개의 하드디스크를 하나처럼 쓰려고 할 때 쓰인다. Device mapper는 LVM의 새로운 이름이다. 이 기능들을 쓰려면 raidtools와 lvm2 tools를 설치하여야 한다. 이외에 커널 2.6에 포함되지 않았지만 evms로 여러가지 기능을 쓸 수 있다.
Fusion MPT device support —>
< > Fusion MPT (base + ScsiHost) drivers
IEEE 1394 (FireWire) support (EXPERIMENTAL) —>
IEEE 1394 (FireWire) support (EXPERIMENTAL)
— Subsystem Options
[ ] Excessive debugging output
[*] OUI Database built-in
— Device Drivers
< > Texas Instruments PCILynx support
OHCI-1394 support
— Protocol Drivers
OHCI-1394 Video support
SBP-2 support (Harddisks etc.)
[ ] Enable Phys DMA support for SBP2 (Debug)
Ethernet over 1394
OHCI-DV I/O support
Raw IEEE1394 I/O support
IEC61883-1 Plug support
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 —>
I2O support
I2O PCI support
I2O Block OSM
I2O SCSI OSM
I2O /proc support
Networking support —>
[*] Networking support
Networking options —>
[*] Network device support
ARCnet devices —>
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
PPP (point-to-point protocol) support
[ ] PPP multilink support (EXPERIMENTAL)
[ ] PPP filtering
PPP support for async serial ports
PPP support for sync tty ports
PPP Deflate compression
PPP BSD-Compress compression
PPP over Ethernet (EXPERIMENTAL)
PPP over ATM
< > 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 —>
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
Netlink device emulation
<*> Unix domain sockets
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)
IP: AH transformation
IP: ESP transformation
IP: IPComp transformation
IP: Virtual Server Configuration —>
The IPv6 protocol (EXPERIMENTAL)
[*] IPv6: Privacy Extensions (RFC 3041) support
IPv6: AH transformation
IPv6: ESP transformation
IPv6: IPComp transformation
IPv6: IPv6-in-IPv6 tunnel
< > DECnet Support
802.1d Ethernet Bridging
[*] Network packet filtering (replaces ipchains) —>
IPsec user configuration interface
SCTP Configuration (EXPERIMENTAL) —>
Asynchronous Transfer Mode (ATM) (EXPERIMENTAL)
Classical IP over ATM (EXPERIMENTAL)
[ ] Do NOT send ICMP if no neighbour (EXPERIMENTAL)
LAN Emulation (LANE) support (EXPERIMENTAL)
Multi-Protocol Over ATM (MPOA) support (EXPERIMENTAL)
< > RFC1483/2684 Bridged protocols
802.1Q VLAN Support
< > ANSI/IEEE 802.2 LLC type 2 Support
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
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
Joystick interface
Touchscreen interface
(240) Horizontal screen resolution
(320) Vertical screen resolution
Event interface
< > Event debugging
— Input I/O drivers
Gameport support
Classic ISA and PnP gameport support
< > PDPI Lightning 4 gamecard support
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
Serial port line discipline
< > ct82c710 Aux port controller
< > Parallel port keyboard adapter
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
PS/2 mouse
[ ] Synaptics TouchPad
Serial mouse
[*] Joysticks
Classic PC analog joysticks and gamepads
< > Assasin 3D and MadCatz Panther devices
< > Logitech ADI digital joysticks and gamepads
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
Microsoft SideWinder digital joysticks and gamepads
< > ThrustMaster DirectConnect joysticks and gamepads
I-Force devices
[*] I-Force USB joysticks and wheels
[ ] I-Force Serial joysticks and wheels
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
Multisystem, Sega Genesis, Saturn joysticks and gamepads
Multisystem, NES, SNES, N64, PSX joysticks and gamepads
Multisystem joysticks via TurboGraFX device
Gameport data dumper
[*] Touchscreens
Gunze AHL-51S touchscreen
[*] Misc
PC Speaker support
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)
Parallel printer support
[ ] Support for console on line printer
Support for user-space parallel port device drivers
< > Texas Instruments parallel link cable support
I2C support —>
Mice —>
< > QIC-02 tape support
IPMI —>
Watchdog Cards —>
Intel/AMD/VIA HW 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
< > Sony Vaio Programmable I/O Control Device support (EXPERIMENTAL)
Ftape, the floppy tape device driver —>
/dev/agpgart (AGP Support)
< > ALI chipset support
< > ATI chipset support
< > AMD Irongate, 761, and 762 chipset support
< > AMD Opteron/Athlon64 on-CPU GART support
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
Matrox g200/g400
< > SiS video cards
< > ACP Modem (Mwave) support
RAW driver (/dev/raw/rawN)
(256) Maximum number of RAW devices to support (1-8192)
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 —>
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 —>
Sound card support
Advanced Linux Sound Architecture —>
Open Sound System —>
USB support —>
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
EHCI HCD (USB 2.0) support
< > OHCI HCD support
UHCI HCD (most Intel and VIA) support
— USB Device Class drivers
USB Audio support
— USB Bluetooth TTY can only be used with disabled Bluetooth subs│ │
USB MIDI support
USB Modem (CDC ACM) support
USB Printer support
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)
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 —>
Aiptek 6000U/8000U tablet support
Wacom Intuos/Graphire tablet support
KB Gear JamStudio tablet support
Griffin PowerMate and Contour Jog support
X-Box gamepad support
— USB Imaging devices
USB Mustek MDC800 Digital Camera support (EXPERIMENTAL)
USB Scanner support
Microtek X6USB scanner support
HP53xx USB scanner support (EXPERIMENTAL)
— USB Multimedia devices
DABUSB driver
USB 3com HomeConnect (aka vicam) support (EXPERIMENTAL)
D-Link USB FM radio support (EXPERIMENTAL)
USB IBM (Xirlink) C-it Camera support
USB Konica Webcam support
USB OV511 Camera support
USB Philips Cameras
USB SE401 Camera support
USB STV680 (Pencam) Camera support
— USB Network adaptors
USB CATC NetMate-based Ethernet device support (EXPERIMENTAL)
USB KLSI KL5USB101-based ethernet device support
USB Pegasus/Pegasus-II based ethernet device support
USB RTL8150 based ethernet device support (EXPERIMENTAL)
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
USS720 parport driver
USB Serial Converter support —>
— USB Miscellaneous drivers
EMI 2|6 USB Audio interface support
Texas Instruments Graph Link USB (aka SilverLink) cable support
USB Auerswald ISDN support (EXPERIMENTAL)
USB Diamond Rio500 support (EXPERIMENTAL)
Tieman Voyager USB Braille display support (EXPERIMENTAL)
USB LCD driver support
Alcatel Speedtouch USB support
USB testing driver (DEVELOPMENT)
Support for USB Gadgets —>
File systems —>
<*> Second extended fs support
[*] Ext2 extended attributes
[*] Ext2 POSIX Access Control Lists
[*] Ext2 Security Labels
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
JFS filesystem support
[*] JFS POSIX Access Control Lists
[ ] JFS debugging
[*] JFS statistics
XFS filesystem support
[ ] Realtime support (EXPERIMENTAL)
[*] Quota support
[*] ACL support
< > Minix fs support
< > ROM file system support
[*] Quota support
Old quota format support
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 —>
ISO 9660 CDROM file system support
[*] Microsoft Joliet CDROM extensions
[*] Transparent decompression extension
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지원이다. 이러한 파일시스템을 만들려면 zisofs를 이용하면 된다.
UDF file system support
DVD Media에서 쓰이는 UDF 파일시스템 지원 옵션이다.
DOS/FAT/NT Filesystems —>
DOS FAT fs support
MSDOS fs support
VFAT (Windows-95) fs support
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에서는 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를 지원하지 않는다. 곧 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)
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
UFS file system support (read only)
[*] UFS file system write support (DANGEROUS)
Network File Systems NFS file system support
[*] Provide NFSv3 client support
[ ] Provide NFSv4 client support (EXPERIMENTAL)
[*] Allow direct I/O on NFS files (EXPERIMENTAL)
NFS server support
[*] Provide NFSv3 server support
[ ] Provide NFSv4 server support (EXPERIMENTAL)
[*] Provide NFS server over TCP support (EXPERIMENTAL)
Provide RPCSEC_GSS authentication (EXPERIMENTAL)
Kerberos V mechanism for RPCSEC_GSS (EXPERIMENTAL)
SMB file system support (to mount Windows shares etc.)
[*] Use a default NLS
(cp949) Default Remote NLS Option
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
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)
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)
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)
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
Default Linux Capabilities
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
Null algorithms
MD4 digest algorithm
MD5 digest algorithm
SHA1 digest algorithm
SHA256 digest algorithm
SHA384 and SHA512 digest algorithms
DES and Triple DES EDE cipher algorithms
Blowfish cipher algorithm
Twofish cipher algorithm
Serpent cipher algorithm
AES cipher algorithms
CAST5 (CAST-128) cipher algorithm
CAST6 (CAST-256) cipher algorithm
Deflate compression algorithm
Testing module
Library routines —>
CRC32 function