장 2. Ä¿³Î ¿É¼Ç/ȯ°æ¼³Á¤

µåµð¾î ¿©·¯ºÐ ¾Õ¿¡ Ä¿³ÎÀÌ ÁøÂ¥ ¸ð½ÀÀ» µå·¯³À´Ï´Ù. ¶æ¸ð¸¦ ¸»µé°ú ½ñ¾ÆÁö´Â Áú¹®ÀÌ ´çȤ½º·´°ÚÁö¸¸ ³î¶óÁö ¸¶¼¼¿ä. Ä¿³Îµµ Àΰ£ÀÇ ÀÏ, °ð ¿©·¯ºÐ ¼Õ¾È¿¡ Ä¿³ÎÀÌ ÀâÈ÷°Ô µÉ °ÍÀÔ´Ï´Ù.

2.1. ÄÄÆÄÀÏ È¯°æ ¼³Á¤ ¸í·É

ÀÌ ¹®¼­´Â IBM PC ½ºÅ¸ÀÏÀÇ ½Ã½ºÅÛÀ» °¡Áø »ç¿ëÀÚ¸¦ ±âÁØÀ¸·Î ¾²¿©Á³½À´Ï´Ù. ¾ËÆÄ ½Ã½ºÅÛÀ̳ª ¼± ¸Ó½ÅÀ» °¡Áö°í ÀÖ´Ù¸é ÇÑ±Û ¸®´ª½º ¹®¼­ ÇÁ·ÎÁ§Æ® ÆÀÀÇ È¨ÆäÀÌÁö¸¦ ã¾Æ°¡ º¾´Ï´Ù.

http://KLDP.org

2.1.1. ¹Ì¸® ¾Ë°í ÀÖÀ¸¸é ÁÁÀº °Íµé

ÄÄÆÄÀÏ È¯°æ ¼³Á¤À» À§ÇØ Çϵå¿þ¾î ±¸¼º Á¤º¸¸¦ ¹Ì¸® ±â·ÏÇØµÎ¸é ¸Å¿ì À¯¿ëÇÕ´Ï´Ù. »ç¿îµå Ä«µå, ³×Æ®¿öÅ© µð¹ÙÀ̽º µîÀÇ IRQ, I/O port, DMA addreSS, ±×¸®°í ºñµð¿À Ä«µå µî ÀåÄ¡ÀÇ Æ¯¼ºÀ» ¾Ë°í ÀÖ¾î¾ß ÇÕ´Ï´Ù.

¿©·¯ºÐÀÇ ½Ã½ºÅÛ¿¡ ¾î¶² ÀåÄ¡¿Í Ĩ¼ÂÀÌ µé¾îÀÖ´ÂÁö ¾Ë¾Æº¸·Á¸é /proc/pci, /proc/sound, /proc/scsi/scsi µî ÆÄÀÏÀ» ¿­¾îº¾´Ï´Ù. ȤÀº lspci µî ¸í·ÉÀ¸·Îµµ È®ÀÎÇغ¼ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½Àº ÀÌ ±ÛÀ» ¾²°íÀÖ´Â ¸®´ª½º ¹Ú½º¿¡ µé¾î ÀÖ´Â ÀåÄ¡¸¦ lspci ¸í·ÉÀ¸·Î È®ÀÎÇÑ ¸ñ·ÏÀÔ´Ï´Ù. PCI ¹ö½º¸¦ Áö¿øÇϴ Ĩ¼Â°ú ÀåÄ¡ ¸î °¡Áö¸¦ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù:

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

2.1.2. ȯ°æ¼³Á¤ ÀÎÅÍÆäÀ̽º

ȯ°æ ¼³Á¤À» À§ÇÑ ÀÎÅÍÆäÀ̽º´Â make config, make menuconfig, make xconfig ¼¼ °¡Áö°¡ ÀÖ½À´Ï´Ù (ÀÌÀü ¼³Á¤ Á¤º¸´Â ±×´ë·Î µÐ ä »õ·Î¿î ¿É¼Çµé¿¡ ´ëÇؼ­¸¸ ¹°¾îº¸´Â make oldconfigµµ ÀÖ½À´Ï´Ù).

make´Â makefile¿¡ ¼­¼úµÈ ±ÔÄ¢À» ÀÌ¿ëÇÏ¿© ¼Ò½ºÄÚµå ÆÄÀϵéÀ» °ü¸®ÇÕ´Ï´Ù. »ç¿ëÀڷκÎÅÍ º¹ÀâÇÑ ¸í·ÉÀ» ÀԷ¹޴ ´ë½Å °³¹ßÀÚ°¡ ÁöÁ¤ÇÑ ÀýÂ÷¿¡ µû¶ó ÃÖ±Ù º¯°æÀ» Àû¿ëÇÏ¿© ¼Ò½ºÄڵ带 ¿ÀºêÁ§Æ® ÆÄÀÏ·Î ÄÄÆÄÀÏÇÏ°í ¶óÀ̺귯¸® ÆÄÀÏ°ú ¸µÅ©ÇÏ¿© ½ÇÇà °¡´ÉÇÑ ÆÄÀÏ·Î ÄÄÆÄÀÏ ÇÏ´Â µî °úÁ¤µéÀ» ÀÚµ¿À¸·Î ó¸®ÇÕ´Ï´Ù.

2.1.2.1. make config ¶Ç´Â make oldconfig

Çà ´ÜÀ§·Î ȯ°æ ¼³Á¤À» ÇÏ´Â make config´Â bash³ª csh¿¡¼­ ½ÇÇàµË´Ï´Ù. ¼¼ºÎÀûÀÎ ¼³Á¤À» ÇÒ ¼ö ÀÖÁö¸¸ °¡Àå ºÒÆíÇÑ ÀÎÅÍÆäÀ̽º·Î Àß ¾²ÀÌÁö ¾Ê½À´Ï´Ù. ±×·¯³ª make oldconfig´Â ²Ï ¾µ¸¸ÇÕ´Ï´Ù.

2.1.2.2. make menuconfig

¾Æ·¡´Â ¸Þ´º½Ä ¼³Á¤È­¸éÀÇ ÇÑ ¿¹ÀÔ´Ï´Ù.

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

¸Þ´º¹æ½ÄÀÇ È­¸é¿¡¼­ ´ÜÃà ±Û¼è(³ë¶þ°Ô µµµå¶óÁø ±Û¾¾)¿Í ¹æÇâÅ°·Î ¸Þ´º »çÀ̸¦ ¿Å°Ü ´Ù´Ò ¼ö ÀÖ½À´Ï´Ù.

"---->" Ç¥½Ã°¡ ÀÖ´Â °÷¿¡¼­ ¿£ÅÍÅ°¸¦ ´©¸£¸é ÇÏÀ§ ¸Þ´º°¡ ¿­¸³´Ï´Ù.

<ESC>¸¦ µÎ¹ø ´©¸£°Å³ª <Exit>¸¦ ¼±ÅÃÇÏ¸é »óÀ§ ¸Þ´º·Î ¿Ã¶ó°©´Ï´Ù.

<h>¸¦ ´©¸£¸é µµ¿ò¸»À» º¼ ¼ö ÀÖ½À´Ï´Ù. <Tab> Å°¸¦ ´©¸£¸é ÄÁÆ®·Ñ »çÀ̸¦ ¿Å°Ü´Ù´Õ´Ï´Ù.

Áú¹®¿¡ ´ëÇØ Y´Â Ä¿³Î¿¡ Æ÷ÇÔ, NÀº Á¦¿Ü, MÀº ¸ðµâÀ» ¶æÇÕ´Ï´Ù. ¼³Á¤ »óÅ´ [ ] ¶Ç´Â < > ¾È¿¡*(¼±ÅÃ), M(¸ðµâ), ºóÄ­(Á¦¿Ü)·Î Ç¥½ÃµË´Ï´Ù. ¸ðµâ±â´É(M)Àº "< >"À¸·Î Ç¥½ÃµÈ Áú¹®¿¡¸¸ ¾µ ¼ö ÀÖ½À´Ï´Ù.

¼³Á¤ÀÌ ³¡³µ´Ù¸é ¸ÞÀÎ ¸Þ´º¿¡¼­ "Save Configration to an ALternate FiLe"À» ¼±ÅÃÇÏ¿© ¼³Á¤ ³»¿ëÀ» ÆÄÀÏ·Î ÀúÀåÇÕ´Ï´Ù. ÀúÀåµÈ ÆÄÀÏÀ» ÀоîµéÀÏ ¶§¿¡´Â "Load an ALternate Configration FiLe" ¸Þ´º¸¦ ¼±ÅÃÇÕ´Ï´Ù.

¸Þ´º¹æ½ÄÀÇ ÀÇÁ¸¼º

make menuconfig´Â ncurses(new-curses) Library¸¦ »ç¿ëÇÕ´Ï´Ù. ncurses´Â È­¸é ÀÔÃâ·Â¿¡ ¾²ÀÌ´Â ¶óÀ̺귯¸®ÀÔ´Ï´Ù. ncurses°¡ ¼³Ä¡µÇÁö ¾Ê¾Ò´Ù¸é make menuconfig ¸í·É »Ó¸¸ ¾Æ´Ï¶ó ¼³Á¤ ÇÁ·Î±×·¥ ´ëºÎºÐÀÌ ½ÇÇàµÇÁö ¾ÊÀ¸¹Ç·Î ¹Ýµå½Ã ¼³Ä¡ÇÕ´Ï´Ù.

¾Æ·¡´Â ·¹µåÇÞ °è¿­ ¹èÆ÷ÆÇ¿¡¼­ ncurses ¶óÀ̺귯¸®¸¦ ¼³Ä¡ÇÏ´Â ¸í·ÉÀÔ´Ï´Ù:

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

¾Æ·¡´Â µ¥ºñ¾È¿¡¼­ ncurses ¶óÀ̺귯¸®¸¦ ¼³Ä¡ÇÏ´Â ¸í·ÉÀÔ´Ï´Ù:

# apt-get install ncurses

2.1.2.3. make xconfig

X À©µµ¿¡¼­¸¸ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç ¸¶¿ì½º¸¦ ÀÌ¿ëÇÏ¿© ¼³Á¤ÇÕ´Ï´Ù. make xconfig¸¦ ¼öÇàÇϱâ À§Çؼ­´Â X À©µµ¿ì¿ÍTcL/Tk ÀÎÅÍÇÁ¸®ÅÍ/ÅøŶ ¶óÀ̺귯¸®°¡ ¹Ýµå½Ã ÇÊ¿äÇÕ´Ï´Ù.

ÁÖ È­¸éÀÇ "Store Configurationto FiLe"Ç׸ñ¿¡¼­ ¼³Á¤ ³»¿ëÀ» ÆÄÀÏ·Î ÀúÀåÇÒ ¼ö ÀÖ½À´Ï´Ù. ÄÄÆÄÀÏ È¯°æÀº /usr/src/linux/arch/i386/config.in¿¡ ÀúÀåµÇ¾î ÀÖ½À´Ï´Ù.

µðÆúÆ® ¼³Á¤À» Âü°íÇÏ°í ½Í´Ù¸é »çº»À» ¸¸µé¾î µÓ´Ï´Ù:

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