본문 바로가기
3. 개발 관련/정리 :: issue 와 resovle

리눅스 커널 컴파일 2.4.18->2.4.20

by kyuho.choi 2009. 7. 9.
728x90
반응형
예전에 작업했던 내용인데 다시보니 너무 엉터리지만 수정하기 귀찮다 -ㅅ-;
---------------------------------------------------------------------------

커널 컴파일!!(2.4기준)


1. 컴파일 할 커널을 다운 받는다.
	
2. 파일의 압축을 푼다.
   # cd /usr/src/
bz 파일일 경우에는 bzip2 -d로 압축을 해제한 후
tar -xvf 로 파일의 압축을 해제한다.
3. 기존의 커널 링크를 삭제 한다.
   # cd /usr/src/
# rm -f linux

4. 새로운 파일을 링크시킨다.
   # ln -s linux-2.4.16 linux

5. /usr/src/linux/include에서 기존의 디렉토리 링크 중 일부를 삭제하고 커널소스를 
   설치한 경로로 다시 링크를 한다.

   # rm -rf asm linux scsi

# ln -s /usr/src/linux/include/asm-i386 asm
# ln -s /usr/src/linux/include/linux linux
# ln -s /usr/src/linux/include/scsi scsi

6. /usr/src/linux로 이동하여 직접적인 커널 컴파일을 시작!
   # make mrproper: 기존의 커널 설정을 제거한다.
   # make menuconfig: 커널 환경설정을 하는 것으로 config,xconfig,menuconfig등을 선택하여 설정 할 수 있다.

* menuconfig를 하기 전에 기본 커널 설정만으로 make dep을 우선 실행해본다.(에러 나는 경우도 있음.) 에러가 나지 않고 menuconfig를 한 뒤 make dep에서 에러가 난다면 menuconfig의 설정이 잘 못 되었음을 알 수 있다.

   # make dep: 커널 설정의 하드웨어/소프트웨어 적인 의존성을 검사하는 것으로 에러가 날 경우에는 menuconfig의 내용 수정

   # make clean: 정확한 기능은 모르겠으나 make mrproper과 비슷한 기능을 하는 것으로 보인다. 커널 환경설정을 한 후 사용하지 않는 옵션들을 제거하는 것이라 생각.
   # make bzImage: 굳이 bzImage라고만 해야 하는 것은 아니다. 커널 이미지를 압축해서 생성하는 명령. zimage도 있다.

   # make modules: 모듈을 컴파일 한다고 함

   # make modules_install: 컴파일 된 모듈을 올바른 위치로 지정/이동하는 것

   # depmod -a 커널버전: 커널 번전의 의존성을 검사.

7. boot의 링크 수정 등이 필요한가?!(System.map and vmlinuz...)
   링크를 수정하거나 따로 링크설정을 새로 하지 않아도 문제없이 돌아가는 것 같은 데 
   몇몇의 매뉴얼에는 링크설정을 해야 한다고 나옴.
   (/boot 커널 설정에 에러가 생겨 커널을 수정할 경우에는 기존의 init와 vmlinuz등을 삭제)

8. # mkinitrd /boot/initrd-[kernel version] [kernel version]
   부팅시에 초기화시켜서 읽어들이는 것을 의미?!
   /boot 아래에 initrd-[커널 버전]	파일 생성
   
-> initrd 

      설명 : 초기 램 디스크 부팅시에 한번만 마운트 되어 사용하는 디스크이다. 압축 파일의 형태와 비슷함. 하나의 파일 내에 부팅 시에 필요한 여러 개의 파일들을 포함 하고 있음. 램 디스크의 내부가 ext2파일 시스템으로 만들어지기 때문에 loopback장치를 menu config에서 로드시켜야함.

	     -> initrd를 사용하기 위한 조건.
             커널 2.5이후에는 initramfs를 사용하도록 형식이 바뀌었으나 큰 차이는 없다.

      과정 :# mkinitrd /boot/initrd-2.4.24.img 2.4.24

             boot아래에 만들어질 initrd의 이름을 지정하는 것으로 형식은 img파일로 하고 위에서의 initrd의 이름은 initrd-2.4.24.img 가 된다.
	     2.4.24 -> /lib/modules 아래에 2.4.24 커널 모듈이 들어가 있는 디렉토리의 명칭이다.
	     
	     위의 명령을 실행하면 /boot 디렉토리 안에 initrd-2.4.24.img가 생성된다.
	     

      이유 : 물리적인 하드디스크를 root filesystem으로 마운트 하기 전에 사용하는 것으로 보통 디스크 없이 부팅할 수 있는 시스템을 만들거나 부팅 cd를 만들 때 사용한다.  

9. /usr/src/linux/arch/i386/boot 디렉토리 아래에 bzImage가 생성되면 이를 /boot로 이동하여 vmlinuz-[커널 버전] 등으로 이해하기 쉽게 이름을 바꿔준다.

10. lilo편집

    # vi /etc/lilo.conf
    창을 열어 image를 추가하여 작성.
    기존의 형태와 유사하게 작성하고(root등) 
initrd설정과 image설정 등을 8.9에서 만든 것과 비교하여 확인.
label은 부팅 시에 알아보기 쉽도록 명명하는 것이 편리함.

11. lilo 명령

    lilo 명령을 사용하여 부트 로더가 제대로 뜨는 지 확인 한다.

<-  grub. 로 설정 다시 확인 ->

ex) # /etc/grub.conf

  default=0
  timeout=10
  splashimage=(hd1,2)/grub/splash.xpm.gz
  password --md5 $1$opeVt0$Y.br.18LyAasRsGdSKLYlp1
  title Red Hat Linux
	  password --md5 $1$0peVt0$Y.br.18LyAasRsGdSKLYlp1
	  root (hd1,2)
	  kernel /vmlinuz-2.4.18-14 ro root=LABEL=/
	  initrd /initrd-2.4.18-14.img
  title Windows XP
	  password --md5 $1$0peVt0$Y.br.18LyAasRsGdSKLYlp1
	  rootnoverify (hd0,0)
	  chainloader +1
  
  위는 grub설정의 한 예이다.

  

12. # vi /etc/grub.conf

  아래의 grub.conf 내용은 lilo로 부트로더가 설정 되어 있는 상태에서의 grub.conf의 내용을 옮겨 놓은 것이다.

default = 1 
timeout = 10
shade 0
border 000000
foreground ffffff
background 000000
splashimage=(hd1,0) /grub/splash.xpm.gz
title WOWLINUX (2.4.18-4) 
	root (hd1,0)
	kernel /vmlinuz-2.4.18.4 개 root = /dev/hdb3 vga = 788
	initrd /initrd-2.4.18.4.img

13. etc) grub : lilo 비교

  LILO는 대화형 명령어 인터페이스가 없지만 GRUB은 있다. 
  LILO는 네트워크로부터의 부팅을 지원하지 않지만 GRUB은 지원한다. 
  LILO는 MBR에 물리적으로 로딩하기 위해 OS의 위치에 따라 정보를 저장한다.
  LILO 설정 파일을 변경하면 LILO stage 1 부트 로더를 MBR로 다시 써야 한다. 
  GRUB과 비교해볼 때 이것은 매우 위험스런 옵션이다. 
  잘못 설정된 MBR이 시스템 부팅을 불가능하게 할 수도 있다. 
  GRUB을 사용하면 설정 파일이 잘못 설정되어도 기본적으로 GRUB 명령행 인터페이스로 맞춰진다. 

14. 재부팅및 커널 확인.

    재부팅하여 새로운 커널 버전이 생성되었는지 확인하고, 새로운 커널 버전으로 
    부팅시에 부팅시에 에러 유/무를 확인하고 버전이 맞나도 확인.
    부팅시에 에러가 있을 경우에는 6.의 make menuconfig에서 부터 다시 실행하면 된다.

15. make menuconfig 설정

      1) Code maturity Level options

      코드 성숙도(成熟度)에 관한 설정이다.
      [*] Prompt for development and/or incomplete code/drivers

      Y를 선택하면 개발중인 새로운 기능과 드라이버를 포함할 것인지 조금 더 많은 질문을 한다.  시험적인 기능은 뒷부분에 “(EXPERIMENTAL)”이란 꼬리표가 붙는다.
      이 옵션을 켜 두었을 때 시스템 특성에 따라 에러가 발생하기도 한다.  컴파일 과정이나 부트 중에 생긴 문제의 원인을 정확하게 알 수 없다면 이 옵션에 [N]를 설정해 본다.  이 기능을 선택하지 않아도 안정버전의 모든 기능을 사용할 수 있다.

      2) Processor type and features

      (Pentium/K6/TSC) Processor famiLy
      [ ] Math emulation
      [ ] MTRR (Memory Type Range Register) Support
      [*] Symmetric multi-processing Support
      Math emulation : 수치연산 보조프로세서(co-processor 또는 부동소수점 연산기)가 없는 386, 486Sx 
      시스템에서 코프로세서를 에뮬레이션하는 기능이다.
      MTRR (Memory Type Range Resister) Support : 인텔 Pentium II나 Pentium Pro 
      시스템의 PCI나 AGP 버스 비디오 카드에 유용하다.  이 기능은 이미지를 2.5배이상 빨리 쓸 수 있도록 한다.  
      MTRR이 없더라도 이 기능을 켜두는 것은 안전하다.
      Symmetric multi-processing Support : 이 곳에 ‘Y’를 답하고 프로세서 패밀리 아래 ‘586’ 또는 ‘Pentium’을 선택하면 486 아키텍쳐에서는 동작하지 않을 것이다.  마찬가지로 ‘PPro’ 아키텍쳐는 모든 Pentium 기반의 보드에서 동작하지 않을 것이다.  SMP를 사용하기 위해서는 “Enhanced Real Time Colck Support” 또한 [Y]를 선택한다.  “Advanced Power Management” 코드는 disable 시켜야 한다. 

      See aLSo: Documentation/SMP.txt, Documentation/Smp.txt, 
                     Documentation/IO-APIC.txt,
      FAQ: http://WWW.irisa.fr/prive/mentres/smp-faq
      (PPro/6x86MX) Processor family : 
      ( ) 386
      ( ) 486
      ( ) 586/K5/5x86/6x86
      ( ) Pentium/K6/TSC
      ( ) PPro/6x86MX
      (*) pentium 4
      (*) Machine check Exception
      그럴 일은 없겠지만 자신의 CPU가 어떤 것인지 모른다면 386을 선택해도 잘 동작한다. 물론 정확한 설정이 더 좋다. 커널은 CPU 각각의 특성과 버그에 최적화될 것이다.

      3) Loadable module Support

      리눅스의 멋진 모듈기능에 대한 설정이다.
      [*] Enalble Loadable module Support
      [ ] Set version information on all Symbols for modules
      [*] Kernel module Loader

      Enalble Loadable module Support : version 1.2 이후부터 리눅스는 모듈기능을 이용해 커널에 포함되지 않은 기능을 필요할 때에만 동적으로 메모리에 적재하여 사용한다.  작업이 끝나면 메모리에서 다시 제거하므로 메모리를 효율적으로 사용할 수 있고, 커널 크기가 감소한다.  모듈은 스스로가 컴파일 되어 독자적인 기능을 가지므로 모듈로 설정한     기능에 변화가 있더라도 전체 커널을 손댈 필요가 없어진다.  파일시스템, 장치 드라이버, 바이너리 포맷 등 많은 기능이 모듈을 지원한다. Set version information on all Symbols for modules : 다른 버전의 커널에서 만들어진 모듈이나 커널과 함께 배포되지 않는 특별한 모듈을 사용할 수 있도록 하는 기능이다. 일반적으로 [N]를 선택한다.

      Kernel module Loader : kerneld 데몬이 대체된 기능이다.  모듈로 만들어진 기능을 필요할 때 적재하고 제거하는 작업들을 modprobe를 이용해 커널이 자동으로 관리한다.  모듈 컴파일은 .5.3을 참고한다.

      4) General SetuP

      [*] Networking Support
      [*] PCI Support
      (Any) PCI access mode
      [*] PCI device name database
      [*] ISA bus support
      [ ] PCI bridge optimization (experimentaL)
      [*] support for hot-pluggable devices
      [ ] MCA support
      [ ] SGI Visual Workstaion Support
      [*] System V IPC
      [ ] BSD Process Accounting
      [*] Sysctl Support
      <*> Kernel Support for a.out binaries
      <*> Kernel Support for ELF binaries
      <*> Kernel Support for MISC binaries
      < > Kernel Support for JAVA binaries (obsolete)
      < > Parallel port Support
      < > PC-Style hardware
      [ ] Support foreign hardware
      [ ] Advanced Power Management BIOS Support
      Networking Support : 반드시 선택한다.  네트워크에 연결되어 있지 않더라도 루프백기능에서 필요하며, 전화선을 통해 인터넷에 접속하는 SLIP, PPP diaL-up 네트워킹에서도 필요하다.  커널을 업그레이드할 때 네트워킹 툴 업데이트를 고려해야 한다.

      PCI bios Support : 대부분 486 시스템, Pentium 이상 기종의 마더보드는 PCI 버스를 지원하는 바이오스를 사용한다.  ISA, EISA, MCA가 아니라면 [Y]를 선택한다.

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

      PCI quirkS : BIOS가 깨어져 PCI 장치 설정에 문제가 있다면 [Y]를 선택한다.  BIOS가 잘 동작한다면 [N]을 선택한다.
      PCI bridge optimization (experimental) : CPU와 PCI, 또는 PCI와 ISA 사이에      브리지가 있어 서로 다른 버스사이에서 데이터를 전송할 수 있도록 논리적인 기능을 한다.  바이오스에 문제가 있고 PCI 버스를 사용한다면 이 기능을 선택해 장치 엑세스 속도를 향상시킬 수 있다.

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

      MCA : Micro Channel Architecture는 IBM PS/2 머신에서 찾아볼 수 있는데 국내에서는 잘 쓰이지 않는다.  Documentation/mca.txt를 참고한다.

      SGI Visual Workstaion Support : SGI 320이나 540 워크스테이션에서 리눅스를 사용한다면 [Y]를 답한다. 다른 PC 보드에서는 동작하지 않을 것이다.  Documentation/sgi-vws.txt를 참고한다.

      System V IPC(Inter Process Communication) : 프로세스 사이에서 동기화와 정보교환을 위한 라이브러리 함수와 시스템 콜 모음이다. [Y]를 선택한다.  메모리에 적재되어 실행중인 풀그림이 프로세스이며 풀그림의 영혼이라 불린다.

      BSD Process Accounting : 프로세스가 존재할 때는 언제나 커널에 의해 프로세스 정보가 파일에 추가될 것이다. 프로세스 정보는 생성시간, 소유권, 커맨드 이름, 메모리 점유, 터미널 제어 등이 포함된다.

      Sysctl Support : sysctl 인터페이스는 커널컴파일 재질이나 시스템 재부팅 없이 실행중인 커널 매개변수를 동적으로 변경하는 방법을 제공한다. 주 인터페이스는 시스템 콜로 이루어져 있지만 /proc 파일시스템이 설치되어 있다면 편집 가능한 sysctl 요소 트리는 /proc/sys 디렉토리 아래 생성될 것이다.  커널 크기가 8KB 늘어난다. 그러나           인스톨/복구 디스크를 위한 커널이나 메모리가 매우 적은 시스템이 아니라면 [Y]를 선택하는 것이 좋다.

      Kernel Support for a.out binaries : a.out(assembler.output)은 ELF 이전에       쓰이던 바이너리로 점차 사라져 가는 포맷이다.  정말 필요하다면 모듈로 설정한다[M].      Kernel Support for ELF binaries : ELF는 리눅스 바이너리 포맷의 표준이므로 반드시 [Y]를 선택한다.  리눅스 커널과 많이 쓰이는 모든 풀그림들이 ELF 포맷으로 컴파일 된다.  ELF는 a.out에 비해 진보된 기능들을 포함한다. 특히 a.out 포맷은 ELF의 공유 라이브러리의 동적 지원 기능이 없다. Kernel Support for MISC binaries : Java, Emacs-Lisp, DOS 실행파일 등을 커널 바이너리 클래스에 등록했다면 쉘 프롬프트에서 파일 이름을 쓰는 것만으로 간단히 풀그림을 시작할 수 있다.  [Y]라고 답했다면 “KerneL Support for JAVA binaries”, “kernel Support for Linux/Intel ELF bianries” 기능은 필요 없다.  Documentation/binfmt_misc.txt를 참고한다. 모르겠으면 [Y]를 선택한다.
      Kernel Support for JAVA binaries : Java(TM)은 SUN에서 개발된 객체지향 풀그림 언어이다. JDK를 설치하려는 자바 개발자가 아니라면 Java bytecode 바이너리는 모듈이나 [N]를 선택한다.  대부분 유저는 Java 바이너리를 실행할 기회가 거의 없을 것이다.

      Parallel port Support : 패러랠 포트로 프린터나 Zip 드라이브, PLIP 등을 사용하려면 반드시 필요하다. 다음에 나올 설정에서 패러랠 포트와 관련된 옵션에 영향을 준다. 패러랠 포트 하나를 몇 개의 장치가 공유할 수 있다. Documentation/parport.txt

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

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

      [ ] Ignore USER SUSPEND 
      [ ] Enable PM at boot time
      [ ] Make CPU Idle calls when idle 
      [ ] Enable conSole blanking using APM
      [ ] Power off on Shutdown
      [ ] Ignore multiple Suspend
      [ ] Ignore muLtipLe Suspend/resume cycles
      [ ] RTC Stores time in GMT
      [ ] ALLow interrupts during APM BIOS calls

      5) PLug and Play Support

      [*] Plug and Play Support
      <*> ISA plug and play support
      PnP 기능을 사용하려면 설정한다.

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

      < > Normal PC floppy disk 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
      < >  Include IDE/ATAIP CDROM Support
      < >  Include IDE/ATAPI TAPE Support
      < >  Include IDE/ATAPI FLOPPY Support
      < >  SCSI emulation Support
      [ ]  CMD640 chipset bugfix/Support
      [ ]  CMD640 enhanced Support
      [ ]  RZ1000 chipset bugfix/Support
      [ ] Generic PCI IDE chipset Support
      [ ]  Generic PCI bus-master DMA Support
      [ ]  Boot off-board chipsets first Support
      [ ]  USe DMA by default when available
      [ ]  OPTi 82C621 chipset enhanced Support
           (EXPERIMENTAL)

       (ommited)
      [ ]  CMD646 chipset Support (EXPERIMENTAL)
      [ ]  Other IDE chipset Support
      --- Additional Block Devices
      <M> Loopback device Support
      < > Network block device Support
      [ ] Multiple devices driver Support
      < > Linear (append) mode
      < > RAID-0 (striping) mode
      < > RAID-1 (mirroring) mode
      < > RAID-4/RAID-5 mode
      < > RAM disk Support
      [ ] Initial RAM disk (initrd) Support
      < > XT harddisk Support
      < > Parallel port IDE device Support
      NormaL PC floppy disk Support : IBM PC나 그 호환 기종에서 사용하는 플로피 디스크 드라이브가 있다면 Y나 M을 선택한다.  PC(personal computer)는 IBM PC와 IBM PC 호환기종의 마이크로 컴퓨터를 일반적으로 지칭하는데 쓰이지만 IBM의 상품 이름 가운데 하나이다.

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

      USe old disk-only driver on primary interface : [N] 매우 오래된 시스템에만 설정한다.

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

      Include IDE/ATAIP CDROM Support : ATAPI는 SCSI 프로토콜을 흉내낸 IDE CDROM과 TAPE 드라이버의 새로운 프로토콜이다.  스커지가 아닌 2배속 이상의 대부분 CDROM은 ATAPI 인터페이스를 사용한다. “ISO 9660 CDROM filesystem Support”는 반드시 [Y|M]으로 답해야 한다.

      Include IDE/ATAPI TAPE Support : 테이프 백업 장치 설정이다.

      Include IDE/ATAPI FLOPPY Support : LS-120, IDE/ATAPI Iomega ZIP 드라이브를 지원한다.  이 곳에 [Y|M]를 답하면 플로피 드라이브는 “hdb”나 “hdc”등 이름을 가진 IDE 장치로 인식된다. 패러랠 Zip 드라이브는 SCSI Low-Level drivers에서 설정한다.

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

      CMD640 chipset bugfix/Support : 많은 486과 Pentium 마더보드에 사용된다.  Y를 답하면 커널이 몇 가지 문제점을 바로잡는다.  이 드라이버는 PCI 시스템에서 자동으로 동작하지만 베사 로컬버스(VLB)를 사용한다면 커널 부트 매개변수로 “ide0=cmd640_vlb”를 넣어야 한다.

      Support removable IDE interfaces (PCMCIA) : 노트북 컴퓨터 사용자를 위한 설정이다.
      Generic PCI IDE chipset Support : Intel 82371 PIIX (Triton I/II) DMA 
      Support, Other IDE chipset Support 등 PCI 칩셋을 위한 옵션은 메인보드 메뉴얼을 잘 살펴보고 설정한다.  일반적으로 기본설정을 그냥 두어도 잘 동작한다.

      Loopback device Support : 옵션의 루프백 디바이스는 파일을 블록 디바이스처럼 사용하는 기능이다.  파일 속에 파일시스템을 만들고, 마운트하여 사용할 수 있다.  특별한 파일시스템의 실험, CDROM을 굽기 전에 또는 플로피디스크로 옮길 이미지 테스트, 그리고 암호화 등에 유용하다.

      Network block device Support : 네트워크로 연결된 서버 또는 루프백 서버의 파일시스템을 마운트하여 블록 디바이스(/dev/nd0,...)처럼 사용하는 기능이다. 클라이언트와 서버는 TCP/IP로 통신한다. NFS나 Coda를 사용한다면 함께 지원할 수 없으므로 [N]를 선택한다.

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

      RAM disk Support, Initial RAM disk (initrd) Support : 램을 블록 디바이스처럼   사용하는 기능이다.  Linux를 인스톨하는 동안 램에 루트 파일시스템을 생성하기 위해 사용되기도 한다.  대부분 사용자는 램 디스크 기능이 필요 없을 것이다.  /usr/src/linux/Documentation/ramdisk.txt를 읽어본다.

      Initial RAM disk (initrd) Support : 일반적으로 ‘real’ 루트 파일시스템을 마운트할 필요가 있는 모듈을 로드하기 위해 사용한다.  Documentation/initrd.txt

      XT harddisk Support : XT라는 매우 오래된 시스템을 본 일 있는가?[N]

      Parallel port IDE device Support : 패러랠 포트에 연결하는 블록 장치가 있다면 종류와 프로토콜을 설정한다.

      7) Networking options

      네트워크 설정은 조금 까다롭다.  시스템을 정확히 이해하고 바른 설정을 해야 한다.
      <*> Packet Socket
      [ ] Kernel/User netlink Socket
      [ ] Routing messages
      <*> Netlink device emulation
      [ ] Network packet filtering(replaces in chains)
      [ ] Network firewalls
      [ ] Network aliasing
      [ ] Socket Filtering
      <*> Unix domain Sockets
      [*] TCP/IP networking
      [*] IP: multicasting
      [ ] IP: advanced router
      [ ] IP: kernel Level autoconfiguration
      [ ] IP: optimize as router not host
      < > IP: tunneling
      < > IP: GRE tunnels over IP
      [ ] IP: aliasing Support
      [ ] IP: TCP Syncookes Support (not enabled per deault)
      --- (it is Safe to Leave these untouched)
      < > IP: Reverse ARP
      [ ] IP: ALLow Large windows (not recommended if <16Mb of memory)
      ---
      < > The IPX protocol
      [ ] IPX: Full in
      ternal IPX network
      < > IPX: SPX networking (EXPERIMENTAL)
      < > Appletalk DDP
      < > CCITT X.25 Packer Layer (EXPERIMENTAL)
      < > LAPB Data Link Driver (EXPERIMENTAL)
      [ ] Bridging (EXPERIMENTAL)
      [ ] 802.2 LLC (EXPERIMENTAL)
      < > Acorn Econet/AUN protocols (EXPERIMENTAL)
      < > WAN router
      [ ] Fast Switching (read help!)
      [ ] Forwarding between high Speed interfaces
      [ ] CPU is too Slow to handle full bandwidth

      Qos and/or fair sueing --->

      Packet Socket : tcpdump처럼 매개 프로토콜 없이 직접 네트워크 장치와 통신하는 어플리케이션에서 사용된다.

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

      Routing messages : 네트워크 관련 라우팅 정보를 /dev/route에서 읽을 수 있게 하는 기능이다. 이 기능을 버리면 모든 설정 정보를 직접 써야 한다.

      Netlink device emulation : [N] (이 기능은 곧 삭제될 것이다.)

      Network firewalls : 리눅스 박스를 통한 네트워크 방화벽 구축을 위한 몇 가지 설정이다. 네트워크에 연결된 시스템에만 필요하다. ipfwadm 유틸리티가 필요하다. masquerading, forwarding/gatewaying 설정과 함께 매스커레이딩 서비스를 제공할 계획이라면 반드시 설정한다.

      [ ] IP: firewalling
      [ ] IP: firewall packet netlink device
      [ ] IP: always defragment (required for masquerading)
      [ ] IP: transparent proxy Support
      [ ] IP: masquerading
      --- Protocol-Specific masquerading Support
      [ ] IP: ICMP masquerading
      --- Protocol-Specific masquerading Support
      [ ] IP: masquerading Special modules Support
      < > IP: ipautofw masq Support (EXPERIMENTAL)
      < > IP: ipportfw masq Support (EXPERIMENTAL)
      < > IP: ipmarkfw masquerade Support (EXPERIMENTAL)
      IP: always defragment (required for masquerading) : 들어오는 모든 패킷 조각을 항상 다시 조합한다. 특히 IP: masquerading, IP: transparent proxy, IP: firewalling      기능을 사용하려면 반드시 필요하다.  일반적인 라우터나 호스트는 절대 [Y]를 선택하면 안된다.

      IP: transparent proxy Support : 리눅스 방화벽을 원격지 호스트처럼 동작하도록 가장하는 기능이다.

      IP: masquerading : 매스커레이딩은 IP(real IP)를 가진 하나의 호스트에 이더넷이나 모뎀으로 연결된 다른 컴퓨터들이 공식적으로 할당된 IP가 없더라도 인터넷에 연결되도록 하는 기능이다.  가상 호스트 서비스를 위해 반드시 필요하다. 
      매스커레이딩은 매우 효과적인 네트워크 보안방법이기도 하다.

      IP: ICMP masquerading : ping 등 ICMP 패킷을 지원한다.
      IP: masquerading Special modules Support : 아래에 나오는 포트 포워딩 등 기능을 지원한다.
      IP: ipautofw masq Support (EXPERIMENTAL) : (아직)자신의 프로토콜 helper가 없는 프로토콜의 매스커레이딩을 허락한다.  아직 개발중이며 ipmasqadm 도구가 필요하다.
      IP: ipportfw masq Support (EXPERIMENTAL) : 포트 포워딩은 제공한 포트를 통해서 패킷이 방화벽 안쪽으로 전송되도록 한다.  웹서버는 매스커레이딩 호스트를 통해 인터넷에 접속되며 외부의 클라이언트에게는 방화벽 자체가 웹 서비스를 제공하는 것처럼 보인다.  이 기능은 아직 개발중이며 ipmasqadm 도구가 필요하다.
      IP: ipmarkfw masquerade Support (EXPERIMENTAL) : 포트 포워딩과 유사한 기능을 제공한다. 다른 점은 패킷에 “firewalling mark”를 사용한다는 것이다.

      Network aliasing : 네트워크 드라이버가 여러 개의 주소를 가질 수 있도록 하는 설정이다.  아파치 웹 서버를 이용한 웹 호스팅 서비스 등에 쓰인다. 

      Socket Filtering : 리눅스 소켓필터는 버클리 패킷필터에서 파생되었다. Unix 시스템은 소켓을 통해 프로세스 사이 통신이 이루어진다.

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

      TCP/IP networking : 네트워크 표준 프로토콜이다.  반드시 [Y]를 선택한다.  
      IP: forwording/gatewaying : 패킷을 중계하는 기능이다.  매스커레이딩을 위해서는 반드시 켠다. 
      IP: multicasting : 메시지를 미리 정한 여러 목적지에 보내는 기능이다. 이와 다르게 broadcast는 패킷을 모든 장치가 수신한다.  멀티캐스팅은 부서별 공지, 뉴스 푸시등에 사용되기도 한다. 

      [ ] IP: multicast routing
      [ ] IP: PIM-SM version 1 Support
      [ ] IP: PIM-SM version 2 Support
      IP: advanced router : 리눅스 박스를 주로 라우터로 사용할 계획이라면 설정한다.  라우터는 패킷 경로를 제어하는 것으로 게이트웨이라 불리기도 한다.

      [ ] IP: policy routing
      [ ] IP: fast network address translation
      [ ] IP: equal coast multipath
      [ ] use TOS value as routing key
      [ ] verbose route monitoring
      [ ] Large routing tables
      IP: kernel Level autoconfiguration : 클라이언트 시스템이 부팅할 때 BOOTP 서버로부터 네트워크 설정 정보를 가져오는 기능이다.

      [ ] BOOTP Support
      [ ] RARP Support
      IP: optimize as router not host : 리눅스 박스를 단지 라우터로 동작하도록 설정하는 기능이다. 매스커레이딩에 필요하다.

      IP: tunneling : 한 프로토콜 안에 다른 프로토콜의 자료를 캡슐화하여 서로 다른 프로토콜 사이에서 전송하는 기능이다.  IP 주소 변경 없이 네트워크 사이를 옮겨 다니는 Mobile IP등 기능과 관련된 옵션이다. 

      IP: GRE tunnels over IP : GRE(generic routing encapsulation)는 멀티캐스트,    IPv6를 지원한다.  Cisco 라우터에 연결될 때 유용하다.
      IP: aliasing Support : 하나의 물리적 네트워크 인터페이스에 IP 주소를 여러개 줄 수 있다.  멀티 호스팅, 가상 도메인, 또는 가상 호스팅(mirtual hosting)이라 부르는 서비스를 제공하려면 필요한 기능이다.  가상 호스팅은 리눅스 박스 하나로 다양한 서비스를 제공할 수 있어 웹이나 ftp 서버로 사용하는 시스템을 최대한 활용할 수 있다는 장점도 있다.

      IP: TCP Syncookes Support (not enabled per deault) : TCP/IP의 약점을 이용해 서버에 접속을 할 수 없도록 하는 SYN attack(이 약점을 이용해 TCP/IP hijack등 공격을 한다)을 막아준다.  

      IP: accounting : 리눅스 박스를 라우터나 방화벽으로 사용할 때 설정한다.
      IP: Reverse ARP 
      IP: Allow Large windows (not recommended if <16Mb of memory) 
      위 둘은 손대지 않는 것이 안전하다고 경고하고 있다.
      The IPX protocol : Novell 네트워크에 연결할 때 설정한다. 
      IPX: Full internal IPX network , IPX: SPX networking (EXPERIMENTAL) : 
      노벨 네트워킹과 관련된 기능이다.

      Appletalk DDP : Apple 컴퓨터를 위한 네트워크 프로토콜이다.  리눅스 박스를 이 네트워크에 연결하기 위해서는 netatalk 패키지가 필요하다.

      CCITT X.25 Packer Layer (EXPERIMENTAL) : X.25 패킷 레이어는 정부, 은행 등 기관에서 WAN을 구성하기 위해 사용하는 표준 네트워크 프로토콜이다.  PLP와 LAPB 두 개의 프로토콜로 구성된다.

      LAPB Data Link Driver (EXPERIMENTAL) : Link Access Prodedure, 
      Balanced는 X.25 프로토콜의 하위 레블 구성요소이다.  리눅스에서는 이더넷 커넥션에 대한 LAPB만을 지원한다.

      Bridging (EXPERIMENTAL) : 리눅스 박스를 이더넷 브리지로 사용한다. 일반적으로 브리지보다 효율적인 기능을 가진 라우터가 더 많이 쓰인다.

      802.2 LLC (VERY EXPERIMENTAL) : 802.2 Logical Link Layer 프로토콜을 일반적인 이더넷 카드를 사용하여 X.25 네트워크에 연결하기 위해 사용한다.

      Acorn Econet/AUN protocols (EXPERIMENTAL) : Econet은 Arcon 컴퓨터에서 파일, 프린터 서버에 액세스하기 위해 사용되는 아주 오래되고 느린 네트워킹 프로토콜이다.

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

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

      Forwarding between high Speed interfaces : tulip 등 이 기능을 지원하는 NIC(network interface card)끼리 매우 빠른 속도로 동작하도록 한다.

      CPU is too Slow to handle full bandwidth : CPU가 네트워크 전대역폭(full-bandwidth)을 다루기에 충분히 빠르지 않다고 생각되면 설정한다.

      8) Qos and /or fair queueing

      [ ] Qos and/or fair queueing
      패킷 스케쥴러에 따라 패킷을 제어하는 기능이다.  네트워크 장치가 실시간 장치일 때 특히 이 기능이 중요하다.  확실하지 않으면 [N]을 설정한다.  

      9) SCSI Support

      <*> SCSI Support
      --- SCSI Support type (disk, tape, CD-ROM)
      <*> SCSI disk Support
      < > SCSI tape Support
      < > SCSI CD-ROM Support
      < > SCSI generic Support
      ---  Some SCSI devides (e.g. CD jukebox) Support multiple LUNS)
      [ ] Probe all LUNS on each SCSI device
      [ ] Verbose SCSI error reporting (kernel Size +=12K)
      [ ] SCSI logging facility
      SCSI Low-Level drivers --->
      SCSI Support, SCSI disk Support : 스커지 디스크가 부팅 디스크라면 모듈로 설정하지 않는다. SCSI tape, SCSI CD-ROM은 모듈로 선택해도 좋다.

      SCSI generic Support : CD-Writer, 스캐너, 신디사이저 등 장치에 쓰인다.

      10) SCSI Low-Level drivers

      저수준의 특정 스카시 드라이버에 대한 설정이다.
      < > 7000FASST SCSI Support
      < > ACARD SCSI Support
      < > Adaptec AHA152X/2825 Support
      < > Adaptec `AHA1542 Support
      < > Adaptec AHA1740 Support
      < > Adaptec AIC7xxx Support
      < > AM53/79C974 PCI SCSI Support
      < > BuSlogic SCSI Support
      <*> SCM53C8XX SCSI support
      < > IOMEGA Parallel port (ppa - older drives)
      < > IOMEGA Parallel port (imm - newer drives)
      [ ] ppa/imm option - Use Slow (but safe) EPP-16
      [ ] ppa/imm option - Assume Slow parport xontrol regiSter

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

      IOMEGA Parallel port (ppa - older drives) : 오래된 Iomega 패러랠 포트 Zip     드라이브(100MB)를 지원한다.  Zip 드라이브가 새로운 버전이라면 [N]를 선택하고 아래 IOMEGA parallel port (imm - newer drives)에서 [Y]를 선택한다. 스커지 드라이브는 “SCSI disk support” 기능에서 지원하므로 이 옵션은 [N]를 설정한다. 이 기능을 커널에 포함해도 프린터 등 다른 작업을 안전하게 사용할 수 있다. 필요하다면 모듈로 설정할 수도 있다.

      IOMEGA Parallel port (imm - newer drives) : 새로운 버전의 Iomega 패러랠 포트 Zip 드라이브(100MB)를 지원한다. 오래된 버전 Zip드라이브라면 [N]를 선택한다. “IOMEGA Parallel port (ppa - older drives)”를 참고한다.

      11) Network device Support

      다양한 네트워크 디바이스에 대한 설정이다.
      [*] Network device Support
      < > ARCnet Support
      <M> Dummy net driver Support
      < > EQL (Serial Line Load balancing) Support
      [*] Ethernet (10 of 100Mbit)
      [ ] 3COM cards
      < > 3c501 Support
      < > 3c503 Support
      < > 3c505 Support
      < > 3c509/3c579 Support
      < > 3c515 ISA Fast Etherlink
      < > 3c590/3c900 Series (592/595/597) “Vortex/Boomeriang” Support
      < > AMD LANCE and PCnet (AT1500 and NE2100) Support
      [ ] Western Digital/SMC cards
      [ ] Racal-Interlan (Micom) NI cards
      [ ] Other ISA cards
      [*] EISA, VLB, PCI and on board controllers
      < > AMD PCnet32 (VLB and PCI) Support
      < > Apricot Support
      < > CS89x0 Support
      < > Generic DECchip & DIGITAL EtherWORKS PCI/EISA
      < > DECchip Tulip & DIGITAL EtherWORKS PCI Support
      < > Digi IntL. RIghtswitch SE-X
      <*> Ether Express Pro/100 Support
      < > PCI NE2000 Support
      < > T1 ThunderLAN Support
      < > VIA Rhine Support
      [ ] Pocket and Portable adaptors
      [ ] FDDI driver Support
      < > Frame relay DLCI Support
      < > Apple/Farallon LocalTalk PS Support
      < > COPS Localtalk PS Support
      < > PPP (point-to-point) Support
      --- CCP compressors for PPP are only built as modules.
      < > PLIP (parallel port) Support
      < > SLIP (Serial Line) Support
      [*] CSLIP compressed headers
      [ ] keepalive and Linefill
      [ ] Six bit SLIP encapsulation
      [ ] Wireless LAN (non-hamradio)
      [ ] Token Ring driver Support
      < > Comtrol Hostess SV-11 Support
      < > COSA/SRP Sync Serial boards Support
      < > Red Creek Hardware VPN (EXPERIMENTAL)
      <M> RealTek RTL-8139 PCI fast ethernet Adapter support
      [ ] WAN drivers
      Network device Support : 이더넷 디바이스와 PPP, SLIP, PLIP 등 네트워크 장치들을 지원한다.

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

      Dummy net driver Support : Dummy net driver는 패킷을 버리는 쓰레기통(bit-bucket)이다.  PPP나 SLIP을 사용한다면 [Y|M]를 답한다.  커널 크기는 늘어나지 않는다.

      EQL (SeriaL Line Load balancing) Support : 여러 개의 PPP, SLIP 연결을 향상된 속도를 가진 하나의 연결로 사용하는 기능이다.  연결된 쪽 끝에서도 이 기능을 지원해야 사용할 수 있다.

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

      PLIP (parallel port) Support : 패러랠 포트와 크로스 케이블을 이용해 두 리눅스 박스를 연결한다. TCP/IP를 이용한다.  PLIP에는 “null printer”(또는 “fx”) 케이블을 통해 4bitS 씩 전송하는 mode0와, 특별한 PLIP 케이블을 이용해 8bitS를 전송하는 mode1이 있다.

      PPP (point-to-point) Support : PPP는 SLIP보다 향상된 기능을 가진 시리얼 라인(전화선 등) 네트워킹 프로토콜이다.  “Set version information on all Symbols for modules”에 [Y]를 답했다면 모듈로만 컴파일할 수 있다.

      SLIP (Serial Line) Support : PPP 이전에 많이 사용하던 시리얼 라인 네트워크 프로토콜이다.

      Wireless LAN (non-hamradio) : radio와 무선 랜을 지원한다.
      Token Ring driver Support : IBM에서 개발한 token 방식의 랜이다. IBM 메인프레임에서 주로 사용한다.

      12) Amateur Radio Support

      [ ] Amateur Radio Support
      Amateur radio를 이용해 무선 네트워킹을 하는 기술이다. AX.25-HOWTO에 커널설정과 기술 구현에 대한 자세한 정보가 있다. HAM-HOWTO, NET-3-HOWTO를 참고한다.

      13) IrDA Subsystem Supporst

      < > IrDA Subsystem Support
      < > IrLAN protocol
      < >  IrLAN client Support
      < >  IrLAN Server Support
      < > IrOBEX protocol
      < > IrCOMM protocol
      < > IrLPT protocol
      [ ] IrDA protocol options
      [ ] Cashe Last LSAP
      [ ]  Fast RRS
      [ ]  Recycle RRS
      [ ] Debug information
      [ ] IrLAP compression
      Infrared-ort devide drivers --->
      IrDA Subsystem Support : Infrared Data Association(TM)은 적외선을 이용한 근거리 무선통신 시스템, 프린터, 시리얼 장치 등의 표준 프로토콜을 지원한다.

      14) Infrared-port device drivers

      < > IrTTY (uses Serial driver)
      [ ]  Serial dongle Support
      < >  ESI jeteye PC dongle
      < >  ACTISYS IR-220L and IR220L+dongle
      < >  Tekram Irmate 210B dongle
      < > NSC PC87108
      < > Winbond W83977AF (IR)
      < > Sharp UIRCC

      15) ISDN Subsystem

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

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

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

      X.25 PLP on top of ISDN (EXPERIMENTAL) : 
      Documentation/isdn/README.x25를 참고한다.
      ICN 2B and 4B Support : 2B는 표준 버전으로 두 채널을 가진 한 라인을 말하고 4B는 두 라인을 지원한다. Documentation/isdn/README.icn

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

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

      16) Old CD-ROM drivers (not SCSI, not IDE)

      [ ] Support non SCSI/IDE/ATAPI CDROM drivers
      요즘은 거의 볼 수 없는 오래된 CD-ROM들의 비표준 인터페이스를 지원하는 드라이버들이다. 

      17) Character devices

      [*] Virtual terminal
      [*] Support for console on virtual terminal
      <*> Standard/generic (dumb) Serial Support
      [ ] Support for console on Serial port
      [ ] Extended dumb Serial driver options
      [ ] Support more than 4 Serial ports
      [ ] Support for Sharing Serial interrupts
      [ ] Autodetect IRQ on Standard ports (unsafe)
      [ ] Support Special multiport boards
      [ ] Support the Bell Techmologies HUB6 card
      [ ] Non-Standard Serial port Support
      [*] Unix98 PTY Support
      (256) Maximum number of Unix98 PTYS in use (0-2048)
      <M> Parallel printer Support
      [ ]  Support IEEE1284 Status readback
      [*] Mouse Support (not serial mice)
      Mice --->
      [ ] QIC-02 tape Support
      [ ] Watchdog 
      Timer Support
      < > /dev/nvram Support
      [ ] Enhanced Real Time Clock Support
      Video For Linux --->
      Joystick Support --->
      < > Double talk PC internal Speech card Support
      Ftape, the floppy tape device driver --->
      Virtual terminal : 하나의 물리적인 터미널 위에 여러 개의 가상 터미널을 실행하는 리눅스의 멋진 기능이다. 가상 터미널은 여러 개의 X 세션을 띄울 수도 있다.  가상 터미널 사이를 옮겨 다닐 때에는 <alt>키와 기능키를 조합하여 사용한다.  잘 모르겠으면 [Y]를 선택한다.

      Support for console on virtual terminal : 시스템 콘솔은 모든 커널 메시지와 경고 메시지를 수취하고, 단독 사용자 모드에서 로그인을 허용하는 장치이다.  [Y]를 답하면 가상 콘솔을 “console=tty3”와 같은 명령을 사용하여 시스템 콘솔로 사용할 수 있다.  일반적으로 이 기능을 사용한다.

      Standard/generic (dumb) Serial Support : 모뎀과 시리얼 마우스 시리얼 디바이스을 사용하는 기능이다.

      Non-Standard Serial port Support : 표준 시리얼 포트 밖의 멀티포트 제품군을 지원한다.

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

      Support IEEE1284 Status readback : 프린터가 IEEE 1284 규격을 따른다면 상태 표시를 지원한다.

      Mouse Support (not Serial mice) :  PS/2 mouse (aka “auxiliary 
      device”)등 시리얼 마우스를 제외한 장치를 사용하기 위한 기능이다.  
      QIC-02 tape Support : 스커지 방식이 아닌 tape 드라이브가 있다면 설정한다.
      Advanced Power Management BIOS Support : BIOS가 지원한다면 전원을 절약하고 데이터를 보호하는 여러 가지 기능을 이용할 수 있다.  /dev/apm은 배터리 상태 정보를 제공해 노트북 사용자에게 매우 유용하다. ACER 486/DX4/75는 지원하지 않는다.

      Watchdog Timer Support : 시스템이 Lock-Up 상태로 서비스를 제공할 수 없는 상태가 이어지면 리부트하는 등 서비스를 다시 시작할 수 있도록 하는 기능이다.  네트워크 서버처럼 재부팅을 하더라도 가능한 빨리 온라인 상태를 복구해야 할 때 유용하다. 하드웨어/소프트웨어 Watchdog을 지원한다.

      /dev/nvram Support : PC에서 CMOS(BIOS), Atari에서 Non-Volatile RAM이라 부르는 비휘발성 메모리 가운데 50bytes를 읽거나 쓸 수 있도록 한다.  하드디스크에 두기는 위험한 데이터나 전원이 꺼져도 잃어버리면 안되는 매우 중요한 데이터를 저장하는데 쓰인다.

      Enhanced Real Time Clock Support : 소프트웨어가 컴퓨터 실시간 시계를 사용할 수 있도록 하는 기능이다.(Documentation/rtc.txt)  멀티 프로세서 머신을 가지고 있고 SMP 기능을 사용한다면 반드시 [Y]를 답한다.  그리고 주기적인 data Sampling 등 이 기능을 유용하게 쓸 장치가 있다면 설정한다.

      Double talk PC internal Speech card Support : RC 시스템에서 제작한 음성합성장치(Speech Synthesizer)인 “DoubleTalk” 드라이버이다.

      18) Mice

      [*] Mouse Support (not serial mice)
      < > ATIXL busmouse Support
      < > Logitech busmouse Support
      < > Microsoft busmouse Support
      [*] PS/2 mouse (aka “auxiliary device”) Support

      PS/2 포트에는 라이트 펜, 태블릿, 키패드 등 입력 장치도 사용할 수 있다. 트랙볼이나 터치 패드 등 노트북용 장치들은 PS/2 프로토콜을 사용한다. PS/2 버스마우스를 “Microsoft Busmouse”라고 말하는 제조업체도 있다. 핀의 수를 세어보면 구분할 수 있다.  PS/2는 6핀, MS 버스마우스는 9핀이다.

      19) Video for Linux

      < > Video For Linux
      audio/video 캡쳐, 오버레이 보드와 FM radio 카드를 지원한다.  

      20) Joystick Support

      < > Joystick Support
      CLassic PC analog joysticks and gamepads, Microsoft Sidewinder, Sega, 
      Logitech 등 다양한 조이스틱을 지원한다.

      21) Ftape, the floppy tape devicde driver

      < > Ftape (QIC-80/Traban) Support
      스커지 방식이 아닌 tape 드라이브가 있다면 특정 장치 드라이버를 설정한다.

      22) FiLesystem

      리눅스에서 접근할 수 있는 다양한 파일시스템에 대한 설정이다.
      [*] Quota Support
      < > Kernel automounter Support
      < > Kernel automounter version 4 Support(also supports v3)
      < > ADFS filesystem support (read only) 
          (EXPERIMENTAL)
      < > Amiga FFS filesystem Support
      < > Apple Macintosh filesystem Support 
          (EXPERIMENTAL)
      < > DOS FAT fs Support
      < > MSDOS fs Support
      < >  umdos: Unix Like fs on top of Std MSDOS FAT fs
      < >  VFAT (Windows-95) fs Support
      <*> ISO9660 cdrom filesystem Support
      [ ] Microsoft Joliet CDROM extensions
      < > Minix fs Support
      <M> NTFS filesystem Support (read only)
      [ ]  NTFS read-write Support (DANGEROUS)
      [ ] OS/2 HPFS filesystem Support (read only)
      [*] /proc filesystem Support
      [*] /dev/pts filesystem for Unix98 PTYS
      < > QNX filesystem Support (EXPERIMENTAL)
      < > ROM filesystem Support
      <*> Second extended fs Support
      < > System V and Coherent filesystem Support
      < > UFS filesystem Support
      Network File Systems --->
      Partition Types --->
      Native Language Support --->

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

      Kernel automounter Support : automounter는 요청에 따라 원격 파일시스템을 자동으로 마운트하는 툴이다.  BSD의 amd와 다르게 매우 적은 사용자 공간을 차지하는 데몬이다.  이 기능을 사용한다면 “NFS filesystem Support”도 설정한다.

      DOS FAT fs Support :  FAT 기반의 MSDOS fs Support, VFAT (WindowS-95) fs Support 등 MS의 파일시스템을 마운트하여 사용하려면 설정한다. [Y]를 설정하면 커널 크기가 24KB 늘어난다. 이 기능은 스스로 파일 시스템을 지원하지 못하므로 “DOS FAT fs Support”와 “vfat fs Support” 기능을 함께 사용한다.  모듈로 설정하면 각각 fat.o, msdos.o, vfat.o로 컴파일된다.

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

      ISO9660 cdrom filesystem Support : ISO에서 제안한 시디롬을 위한 표준 파일시스템이다. 반드시 필요하다.

      Microsoft Joliet CDROM extensions : Microsoft에서 개발한 유니코드 형식의 긴 파일이름을 지원하는 확장 ISO 9660 CDROM 파일시스템이다.  MS 윈도용 풀그림들을 담고 있는 CD는 대부분 Joliet 형식으로 저장되어 있다.

      Minix fs Support : 매우 오래된 파일시스템이다. 지금도 커널을 공부할 때 사용하기도 한다. 일반 사용자라면 엑세스 할 일이 거의 없다. 커널 크기가 25KB 늘어난다.

      NTFS filesystem Support (read only) : Microsoft NT 파일시스템을 읽는 기능이다.

      OS/2 HPFS filesystem Support (read only) : OS/2 파일시스템을 읽기만 할 수 있다.

      /proc filesystem Support : 커널과 프로세스를 위한 가상의 파일시스템이다.  실제 디스크 공간을 점유하지는 않는다.  프로세스 등 시스템 정보를 제공하는 많은 풀그림이 사용하는 유용한 기능이다. cat 명령으로도 정보를 볼 수 있다.

        #cat /proc/cpuinfo

      /dev/pts filesystem for Unix98 PTYS : “Unix98 PTY Support” 기능과 함께 사용한다.  mount -t devpts 명령으로 /dev/pts에 마운트된 가상 파일시스템을 만들고 Unix98의 표준 다중채널 가상 터미널(pseudo terminal)로 사용하는 기능이다.

      QNX filesystem Support (EXPERIMENTAL) : QNX4 운영체제에서 사용되는 파일시스템이다.

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

      Second extended fs Support : 리눅스에서 현재 사용하는 표준 파일시스템이다.  FAT 시리즈는 비교도 할 수 없는 뛰어난 파일시스템이다. MS windows에서는 ext2nt나 explorer2fs를 이용해 ext2 파일 시스템을 엑세스할 수 있다.

      System V and Coherent filesystem Support : Xenix와 Cherent는 인텔 기종을 위한 상용 유닉스 시스템이다.  주위에 이 시스템이 없다면 [N]을 선택한다.

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

      Native Language Support : MS의 fat 파일시스템족(family)은 고유언어 문자셋(native language character sets)으로 파일이름을 다룰 수 있다. 이런 문자셋은 DOS 코드페이지에 저장되어 있어 MS DOS/Windows 파티션의 파일이름을 정확하게 읽으려면 필요하다.  한글 코드페이지 949를 사용하려면 패치를 수행해야 한다.

      23) Network File Systems

      < > Coda filesystem Support (advanced networks fs)
      <*> NFS filesystem Support
      <*> NFS Server Support
      < > Emulate SUN NFS Server
      < > SMB filesystem Support (to mount WFW Shares etc..)
      [ ] SMB Win95 bug work-around
      < > NCP filesystem Support (to mount NetWare volumes)
      [ ] Packet Signatures
      [ ]  Proprietary file Locking
      [ ]  Clear remove/delete inhibit when neede
      [ ] USe NFS namespace if available
      [ ] USe LONG (OS/2) namespace if available
      [ ] Allow mounting of volume Subdirectories
      Coda filesystem Support (advanced networks fs) : Coda는 NFS와 비슷한 진보된   네트워크 파일시스템이다.  Coda는 비접속 운영, 캐시, 보안과 인증 등 NFS보다 좋은 점에 몇 가지 있다.  이 질문에 [Y]를 답하면 Coda 클라이언트로 동작할 것이다.  서버와 클라이언트 모두가 지원해야 한다.

      NFS filesystem Support : 네트워크 파일시스템 클라이언트이다.  


      Root file System on NFS : “IP:kernel level autoconfiguration”과 함께 쓰여      네트워크 위의 다른 컴퓨터를 마운트하여 루트 파일시스템으로 사용한다.  하드디스크가 없는 터미널 등에서 사용한다.

      NFS Server Support : 리눅스 박스를 NFS 서버로 사용하는 기능이다. nfsd 데몬을 이용하여 서비스한다면 [N]를 선택한다. 아직 완벽하게 동작하지 않지만 커널 기반 서비스는 nfsd 데몬보다 빠르다.  nfs 패키지를 함께 사용한다.

      Emulate SUN NFS Server : 로컬 파일시스템을 마운트 포인트로 삼아 Sun 시스템의 NFS 서버처럼 사용하는 기능이다.

      SMB filesystem Support (to mount WFW Shares etc..) : 리눅스 박스에서 MS    windows 95/NT 네트워크 자원을 공유하는 기능이다.

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

      NCP filesystem Support (to mount Netware volumes) : NCP(netware core      protocol)은 IPX 를 이용한 랜 프로토콜이다.  노벨 네트웨어 클라이언트가 NCP를 통해 파일서버 볼륨을 마운트하여 사용한다.  Linux 박스가 서버로 동작한다면 필요 없다.

      Packet Signatures : NCP에 보안을 강화하기 위한 기능이다.  일반적으로 꺼둔다.

      Proprietary file Locking : 리모트 볼륨상의 레코드를 잠근다.

      Clear remove/delete inhibit when neede : 파일 플래그 조작을 허용한다.
      Use NFS namespace if available, Use LONG (OS/2) namespace if 

      available, Allow mounting of volume Subdirectories : 필요하다면 help를 참고하여 설정한다.

      24) Partition Types

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

      [ ] BSD disklabel (BSD partition tables) Support
      [ ] Macintosh partition map Support
      [ ] SMD disklabel (Sun partition tables) Support
      [ ] Solaris (x86) partition table Support
      [ ] Unixware Slices Support (EXPERIMENTAL)

      25) Console drivers

      [*] VGA text console
      [ ] Video mode Selection Support
      < > MDA text console (dual-headed) (EXPERIMENTAL)
      [ ] Support for frame buffer devices (EXPERIMENTAL)
      VGA text console : 일반 VGA 표준모드 콘솔을 지원한다.

      Video mode Selection Support : 커널을 시작할 때 “vga=” 옵션으로 비디오 모드를 선택하는 기능이다.  “man bootparm”명령으로 부트 매개변수를 알아본다.

      MDA text console (dual-headed) (EXPERIMENTAL) : 허큘리스 등 흑백 디스플레이 어뎁터를 가지고 있으면 설정한다.

      Support for frame buffer devices (EXPERIMENTAL) : 콘솔에서 그래픽 기능을 사용할 수 있도록 커널 자체가 지원하는 기능이다.  확실하지 않으면 [N]을 선택한다.

      26) Sound

      <*> Sound card Support
      < > Endoniq AudioPCI (ES1370)
      <*> Creative Ensoniq AudioPCI 97 (ES1371)
      < > S3 Sonicvibes
      < > Support for Turtle Beach Multisound Classic, Tahiti, Monterey
      < > Support for Turtle Beach Multisound Pinnacle, Fiji
      < > OSS Sound modules
      < > Proaudiospectrum 16 Support
      < > 100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) Support
      < > Generic OPL2/OPL3 FM Synthesizer Support
      < > Gravius Ultrasound Support
      < > MPU-401 Support (NOT for SB16)

      < > FM Synthesizer (YM3812/OPL-3) Support
      < > Loopback MIDI device Support
      < > 6850 UART Midi Support
      Additional Low Level Sound drivers --->
      Sound card Support : X 윈도우와 윈도우 매니저를 사용할 계획이라면 사운드 기능을 반드시 설정한다. 이 문서에서 다루지 않은 내용은 Sound-HOWTO, drivers/sonund/Readme.*를 읽어본다. 

      Old Configuration exists in /etc/soundconf. Use it? : 설정을 바꾸려고 하거나 새로운 커널로 업그레이드할 경우 “n” 라고 답변한 다음 설정 과정을 계속해야 할 것이다.

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

      100% Sound Blaster compatibles (SB16/32/64, ESS, Jazz16) Support : 
      Creative Labs이 제작한 오리지널 사운드 블래스터나 100% 하드웨어 호환되는 카드를 가지고 있다면 [Y]를 설정한다.  SB AWE 32나 SB AWE 64를 가지고 있다면 이 곳과 “Additional Low Level Sound drivers”와 “SB32/AWE” 아래 [Y]로 답한다.  Readme.cards를 읽어본다.

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

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

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

      6850 UART Midi Support : 거의 사용되지 않는다. [N]

      /dev/dsp and /dev/audio support : analog-digital, digital-analog 변환을 하는 매우 유용한 장치이다. 사운드 기능을 커널에 포함하면 선택한 사운드 카드의 몇 가지 설정 값을 넣어야 한다. 일반적으로 I/O address, IRQ, DMA 번호, 그리고 미디에 대한 설정을 한다.  사운드 카드에 첨부된 제조(판매)회사의 메뉴얼을 참고한다. 모듈로 설정하였다면 modprobe 매개변수로 IRQ 등 설정값을 입력한다. ‘sndconfig’유틸리티로 pnp 기능을 이용하여 자동/수동 설정할 수 있다.

      27) Additional Low Level Sound drivers

      [ ] Additional Low Level Sound drivers
      < > ACI mixer (microPCM12)
      < > AWE32 Synth
      < > Gallant Audio Cards (SC-6000 and Sc-6600 based)
      Additional Low Level Sound drivers : 
      drivers/sound/lowlevel/README.*를 읽어본다.
      28) Kernel hacking

      커널 해커를 위한 옵션이다.
      [Y] Magic sysrq key
      Magic Sysrq key : [Y]로 설정할 경우 시스템이 심각한 문제가(crashes) 있어도 통제할 수 있다. 예를 들면 버퍼 캐시를 디스크로 옮기고, 시스템을 리부트하거나 상태 정보를 표시한다.  이 기능은 ‘<alt>+<SysRQ>’를 누른 채 k, r, s 등 <command key>를 눌러 사용한다. SysRQ 키가 없는 키보드는 PrtSc 키를 누르면 된다.  Documentation/sysrq.txt를 참고한다.



728x90
반응형

댓글