1.2. Ä¿³Î ¼Ò½º ¼³Ä¡Çϱâ

ÀÌ Àå¿¡¼­´Â Tar-Ball(tar·Î ¹­Àº ´ÙÀ½ gzipÀ¸·Î ¾ÐÃàÇÑ ÆÐÅ°Áö) ÇüÅÂÀÇ ¼Ò½º¸¦ ´Ù¿î¹Þ¾Æ ÀûÀýÇÑ °÷¿¡ Ç®¾î ³õ°í, ±âÃÊ È¯°æÀ» ±¸¼ºÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù.

1.2.1. »õ Ä¿³ÎÀ» À§ÇÑ ±âº» µµ±¸

»õ Ä¿³ÎÀ» ÄÄÆÄÀÏÇϱâ À§ÇØ ¾÷µ¥ÀÌÆ®°¡ ÇÊ¿äÇÑ ¶óÀ̺귯¸®³ª ÇÁ·Î±×·¥ÀÌ ÀÖ´ÂÁö È®ÀÎÇÏ¿© ÇÊ¿äÇÏ´Ù¸é »õ·Î ¼³Ä¡ÇÕ´Ï´Ù. ±×·¯³ª ¸ðµç µµ±¸µéÀÌ ¹Ýµå½Ã ÇÊ¿äÇÑ °ÍÀº ¾Æ´Õ´Ï´Ù. ¿¹¸¦ µé¾î pcmcia-cs´Â pcmciaÀåºñ°¡ ¾ø´Â ½Ã½ºÅÛ(·¦Å¾ÀÌ ¾Æ´Ñ ´ëºÎºÐ)¿¡¼­´Â ¼³Ä¡ÇÏÁö ¾Ê¾Æµµ µË´Ï´Ù.

¿©·¯ºÐÀÌ »õ Ä¿³Î ¼Ò½º¸¦ /usr/src¾Æ·¡ ¼³Ä¡ÇÏ°í linux¶ó´Â À̸§À¸·Î ¸µÅ©ÇØ µÎ¾ú´Ù¸é, °ü·ÃµÈ ¹®¼­´Â /usr/src/linux/Documentation/ChangesÀÔ´Ï´Ù.

¾Æ·¡´Â °¢ µµ±¸¸¶´Ù ÃÖ¼ÒÇÑÀÇ ¹öÀü(2.4.19 Ä¿³ÎÀ» À§ÇÑ)°ú È®ÀÎÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù. ¿¹¸¦ µé¾î Gnu CÀÇ ¹öÀüÀ» È®ÀÎÇÒ ¶§¿¡´Â "gcc --version"À̶ó´Â ¸í·ÉÀ» »ç¿ëÇÕ´Ï´Ù.

---------------+---------------+--------------------------------------
ÆÐÅ°Áö         |  ÃÖ¼Ò¹öÀü     |  È®ÀÎÇÏ´Â ¹æ¹ý 
---------------+---------------+--------------------------------------
Gnu C          |  2.95.3       |  # gcc --version 
Gnu make       |  3.77         |  # make --version 
binutils       |  2.9.1.0.25   |  # ld -v 
util-linux     |  2.10o        |  # fdformat --version 
modutils       |  2.4.2        |  # insmod -V 
jfsutils       |  1.0.12       |  # fsck.jfs -V
e2fsprogs      |  1.25         |  # tune2fs 
reiserfsprogs  |  3.x.1b       |  # reiserfsck 2>&1|grep reiserfsprogs 
pcmcia-cs      |  3.1.21       |  # cardmgr -V 
PPP            |  2.4.0        |  # pppd --version 
isdn4k-utils   |  3.1pre1      |  # isdnctrl 2>&1|grep version 
iptables       |  1.2.6a       |  # iptables -V
---------------+---------------+--------------------------------------

¾Æ·¡´Â µµ±¸µéÀ» ±¸ÇÏ´Â ÀÎÅÍ³Ý À§Ä¡ÀÔ´Ï´Ù. ÆÄÀÏ À̸§À̳ª ¹öÀü ¹øÈ£´Â Á¶±Ý¾¿ ´Þ¶óÁú ¼öµµ ÀÖ½À´Ï´Ù:

1.2.2. ±âº» µµ±¸ ¼³Ä¡Çϱâ

»õ Ä¿³Î°ú ¸ðµâ ¼³Á¤¿¡ ¾²ÀÌ´Â µµ±¸µéÀ» ÀÎÅͳÝÀ¸·ÎºÎÅÍ °¡Á®¿Ô´Ù¸é ¾ÐÃàÀ» Ç®°í ÄÄÆÄÀÏÇØ ³Ö½À´Ï´Ù. ¿¹¸¦ µé¾î /usr/local/src/utils/util-linux-2.10s.tar.gz¸¦ ¼³Ä¡ÇÑ´Ù¸é:

1. ¸ÕÀú Àû´çÇÑ À§Ä¡¿¡ ¾ÐÃàÀ» Ç®¾î³õ½À´Ï´Ù.

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

2. ¾Æ¸¶ util-linux-2.10s¶ó´Â À̸§À¸·Î »õ·Î¿î µð·ºÅ丮°¡ ¸¸µé¾îÁö°í ±× ¾È¿¡ ¼Ò½º ÆÄÀϵéÀÌ ³õÀÏ °ÍÀÔ´Ï´Ù.

# cd util-linux-2.10s

3. ½Ã½ºÅÛ Á¤º¸¸¦ ¼öÁýÇؼ­ ÄÄÆÄÀÏÀ» À§ÇÑ ±âÃÊȯ°æÀ» ±¸¼ºÇÕ´Ï´Ù.

# ./configure

4. 3¿¡¼­ »ý¼ºÇÑ Makefileµî ¼³Á¤ÆÄÀÏÀ» ÀÌ¿ëÇØ ÄÄÆÄÀÏÇÏ°í ¼³Ä¡ÇÕ´Ï´Ù.

# make;make install

1.2.3. Ä¿³Î ¼Ò½º Ç®±â

ÀϹÝÀûÀ¸·Î Ä¿³Î ¼Ò½º´Â /usr/src µð·ºÅ丮 ¾Æ·¡ ¼³Ä¡ÇÕ´Ï´Ù. /usr/src ¾Æ·¡¿¡´Â ½ÇÁ¦ Çì´õ, Ä¿³ÎÀÌ ¼³Ä¡µÈ µð·ºÅ丮¿Í ±× ¸µÅ©°¡ ÀÖ½À´Ï´Ù. ÀÌÀü Ä¿³ÎÀÌ µé¾îÀÖ´Â µð·ºÅ丮¿¡ ´ëÇÑ ¸µÅ©¸¦ »èÁ¦ÇÏ°í(¿ì¼±Àº ¸µÅ©¸¸ Áö¿ó´Ï´Ù) »õ Ä¿³Î ¼Ò½º°¡ ¼³Ä¡µÈ µð·ºÅ丮¸¦ linux¶ó´Â À̸§À¸·Î ´Ù½Ã ¸µÅ©ÇÕ´Ï´Ù. bzip2·Î ¾ÐÃàµÈ Ä¿³ÎÀº tar xvjf Ä¿³ÎÆÐÅ°Áö.tar.bz2 ¸í·ÉÀ» »ç¿ëÇÕ´Ï´Ù (ÀÌÀü ¹öÀü tar´Â xvIf ¿É¼ÇÀ» »ç¿ëÇÕ´Ï´Ù)

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

RPM(´Ù¸¥ ¸Ó½Å¿¡¼­ ¹Ì¸® ÄÄÆÄÀÏµÈ ¹ÙÀ̳ʸ® ÆÐÅ°Áö)À̳ª dpkg, ȤÀº Tar-Ball ÇüÅÂÀÇ ¹ÙÀ̳ʸ®¸¦ ¼³Ä¡ÇÏÁö ¾Ê°í, ¼Ò½ºÄڵ带 ÄÄÆÄÀÏÇØ¾ß ÇÑ´Ù¸é /usr/src/linux¾Æ·¡ ÄÚµåµéÀ» Âü°íÇÕ´Ï´Ù.

1.2.4. Ä¿³Î ÆÐÄ¡

ÆÐÄ¡ÆÄÀÏÀº diff À¯Æ¿¸®Æ¼¸¦ ÀÌ¿ëÇÏ¿© Ä¿³ÎÀÇ ÀϺκÐÀ» ¼öÁ¤ÇÕ´Ï´Ù. ±×·¯¹Ç·Î ÃֽŠĿ³Î Àüü¸¦ ³»·Á¹Þ¾Ò´Ù¸é ÆÐÄ¡ÇÒ ÇÊ¿ä ¾ø½À´Ï´Ù. ÆÐÄ¡ÇؾßÇÒ ¹öÀüÀÌ ³Ê¹« ¸¹´Ù¸é, Ä¿³Î ¼Ò½º Àüü¸¦ ´Ù½Ã ¹Þ´Â °ÍÀÌ À¯¸®ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

ÆÐÄ¡ÆÄÀÏÀº ºü¸£°Ô °»½ÅµÇ¸ç »õ·Î¿î ÆÐÄ¡ÆÄÀÏÀº ÀÌÀü ÆÐÄ¡¿¡ ´ëÇÑ Á¤º¸¸¦ Æ÷ÇÔÇÏÁö ¾ÊÀ¸¹Ç·Î ÆÐÄ¡·¹º§Àº ¼ø¼­´ë·Î ¸ðµÎ Àû¿ëÇؾ߸¸ ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î Ä¿³Î 2.4.16¿¡¼­ Ä¿³Î 2.4.19·Î ¾÷±×·¹À̵åÇϱâ À§Çؼ­´Â patch-2.4.17.gz, patch-2.4.19.gz ¸ðµÎ¸¦ ¼ø¼­´ë·Î Àû¿ëÇØ¾ß ÇÕ´Ï´Ù. ¾Æ·¡¿¡ ¿¹°¡ ÀÖ½À´Ï´Ù.

¿É¼Ç °¡¿îµ¥ p0´Â ÆÐÄ¡ÆÄÀÏ¿¡ µé¾îÀÖ´Â °æ·Î¿¡ ´ëÇÑ »ó´ëÀûÀÎ À§Ä¡¸¦ ¶æÇÕ´Ï´Ù. ¿¹¸¦ µé¾î ÆÐÄ¡ÆÄÀÏ ¾È¿¡ ÆÐÄ¡ÇÒ ´ë»óÀÌ µé¾î ÀÖ´Â µð·ºÅ丮¿Í ´ë»ó ÆÄÀÏÀ» "/u/howard/src/blurfl/blurfl.c"À̶ó°í ¼³Á¤Çß´Ù¸é -p0´Â "/u/howard/src/blurfl/blurfl.c", -p1Àº "u/howard/src/blurfl/blurfl.c", -p4´Â "blurfl/blurfl.c"°¡ µË´Ï´Ù.

# cd /usr/src
# ls

linux linux-2.4.16 patch-2.4.17.gz patch-2.4.19.gz

# gzip -cd patch-2.4.17.gz | patch -p0
# gzip -cd patch-2.4.19.gz | patch -p0

¸¹Àº ÆÐÄ¡ ÀÛ¾÷Àº ¼ÐÀÇ for ¸í·ÉÀ» ÀÌ¿ëÇØ ÀÚµ¿È­ÇÒ ¼ö ÀÖ½À´Ï´Ù:

# for LeveL in 17 18 19 ; do
> gzip -cd patch-2.2.${LeveL}.gz | patch -p0
> done
#

/usr/src/linux/scripts µð·ºÅ丮¿¡´Â ¿©·¯ ´Ü°èÀÇ ÆÐÄ¡ ÀÛ¾÷À» ÀÚµ¿À¸·Î ½ÇÇàÇÏ´Â ¼Ð ½ºÅ©¸³Æ® patch-kernelÀÌ ÀÖ½À´Ï´Ù. patch-kernelÀº /usr/src ¾Æ·¡¿¡ ÀÖ´Â Ä¿³Î ÆÐÄ¡ÆÄÀϵé°ú Ä¿³Î ¼Ò½ºÀÇ ¹öÀü°ú ºñ±³ÇÏ¿© ¼ø¼­¿¡ µû¶ó ÆÐÄ¡¸¦ Àû¿ëÇÕ´Ï´Ù.

# cd /usr/src
# ls
linux linux-2.4.16 patch-2.4.17.gz patch-2.4.19.gz
# ./linux/scripts/patch-kernel

ÆÐÄ¡°¡ ¼º°øÇß´Ù¸é ÆÐÄ¡ ´ë»óÀÌ µÈ ÆÄÀÏÀÇ ¿øº»Àº À̸§³¡¿¡ .orig¸¦ ºÙ¿© ¹é¾÷µË´Ï´Ù. ÆÐÄ¡ °úÁ¤¿¡¼­ ¹®Á¦°¡ »ý°Ü ½ÇÆÐÇß´Ù¸é ½ÇÆÐÇÑ ÆÄÀÏ À̸§ µÚ¿¡ .rej¸¦ ºÙÀÎ ÆÄÀÏÀ» ¸¸µì´Ï´Ù. ½ÇÆÐÇß´Ù¸é *.rejÆÄÀÏÀ» »ìÆ캸°í ¹Ù¸¥ ¹æ¹ýÀ¸·Î ÆÐÄ¡ ÀÛ¾÷À» ´Ù½Ã ¼öÇàÇÕ´Ï´Ù.

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

*.rej ÆÄÀÏÀ» ãÀ» ¼ö ¾ø°í ÆÐÄ¡°¡ ¼º°øÇß´Ù¸é *.origÆÄÀÏÀ» »èÁ¦ÇÕ´Ï´Ù.

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

ÆÐÄ¡µÈ Ä¿³Î ¼Ò½º µð·ºÅ丮 À̸§À» ÆÐÄ¡·¹º§ ¹øÈ£·Î ¹Ù²Ù°í ¸µÅ©¸¦ ´Ù½Ã ¼³Á¤ÇÕ´Ï´Ù.

# cd /usr/src
# rm -f linux
# ln -s linux-2.4.13 linux

1.2.5. ÇÑ±Û ÆÐÄ¡

ÃÖ±Ù ¹öÀü Ä¿³Î¿¡¼­´Â ÇÑ±Û ÄÚµåÆäÀÌÁö¿Í LocaleÀÌ µé¾î ÀÖ¾î µû·Î ÆÐÄ¡ÇÏÁö ¾Ê¾Æµµ Çѱ۷ΠµÈ ÆÄÀÏ À̸§ µîÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

1.2.6. make mrproper

ÀÌÀü¿¡ ¼³Á¤ÇÑ Á¤º¸¸¦ Áö¿ì°Å³ª »õ·Î¿î Ä¿³Î ¼Ò½º¸¦ °¡Á®´Ù ÄÄÆÄÀÏ ÇÒ ¶§¿¡´Â ÀÌ ¸í·ÉÀ» ¸ÕÀú »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. make mrproper ¸í·ÉÀº ÀÌÀü Ä¿³ÎÀ» ÄÄÆÄÀÏÇÒ ¶§ ¸¸µé¾îÁø ¿ÀºêÁ§Æ® ÆÄÀÏ(*.o)°ú ÀÇÁ¸¼º ¼³Á¤, ÄÄÆÄÀÏ È¯°æ ¼³Á¤°ª, ¹öÀü Á¤º¸ µî »õ·Î ½ÃÀÛÇÏ´Â ÄÄÆÄÀÏ¿¡ ¿µÇâÀ» ÁÖ´Â ÀÌÀü Á¤º¸µéÀ» »èÁ¦ÇÕ´Ï´Ù.

ÀÌÀü¿¡ ¼³Á¤µÈ ÄÄÆÄÀÏȯ°æÀ» Àç»ç¿ëÇÑ´Ù¸é ÀÌ °úÁ¤À» °Ç³Ê¶Ý´Ï´Ù.

# cd /usr/src/linux
# make mrproper