'''½Ã½ºÅÛ ºÎÆ®·Î´õ ¼³Á¤Çϱâ''' ¹öÀü: LFS-7.2 ÀÛ¼º: ±è¼®¹ü([chaoxifer]) [[TableOfContents]] = ÀϹÝÀûÀÎ ³×Æ®¿öÅ© ¼³Á¤ = À̹ø Àý¿¡¼­´Â ³×Æ®¿öÅ© Ä«µå°¡ ¼³Á¤µÇµµ·Ï ÇÒ °ÍÀÔ´Ï´Ù. ¸¸¾à ³×Æ®¿öÅ© Ä«µå¸¦ »ç¿ëÇÏÁö ¾ÊÀ» °ÍÀ̶ó¸é °ü·ÃµÈ ¼³Á¤ÆÄÀÏÀ» ¸¸µé ÇÊ¿ä°¡ ¾ø½À´Ï´Ù. ÀÌ·± °æ¿ì¿¡ ¿©·¯ºÐÀº LFS-Bootscripts-20120901¿¡¼­ ºÎÆ® ½ºÅ©¸³Æ®¸¦ ¼³Ä¡ÇÑ ÈÄ ¸ðµç run-level µð·ºÅ丮(/etc/rc.d/rc*.d)¿¡ ÀÖ´Â network symlink¸¦ Áö¿ì½Ê½Ã¿À. == ³×Æ®¿öÅ© ÀÎÅÍÆäÀ̽º¸¦ À§ÇÑ À̸§ ¸¸µé±â == ¸¸¾à ´Ü ÇÑ°³ÀÇ ³×Æ®¿öÅ© ÀÎÅÍÆäÀ̽º¸¸ ½Ã½ºÅÛ¿¡¼­ ¼³Á¤µÇ¾î¾ß ÇÑ´Ù¸é Àý´ë·Î À߸øµÉ ÀÏÀÌ ¾ø½À´Ï´Ù. ¸¹Àº °æ¿ì¿¡(¹«¼±°ú À¯¼±À» »ç¿ëÇÏ´Â ³ëÆ®ºÏÀÇ °æ¿ì) À̹ø Àý¿¡¼­ ¹Ýµå½Ã ³×Æ®¿öÅ© ¼³Á¤À» ÇØÁÖ¾î¾ß ÇÕ´Ï´Ù. Udev¿Í ¸ðµâÈ­µÈ µå¶óÀ̹öµé·Î ³×Æ®¿öÅ©¿¡ ¼ýÀÚ¸¦ ¸Å±â´Â °ÍÀº ±âº»°ª¿¡ ÀÇÇÑ °ÍÀ̱⠶§¹®¿¡ Áö¼ÓÀûÀÎ °ÍÀÌ ¾Æ´Õ´Ï´Ù. ¿Ö³ÄÇÏ¸é µå¶óÀ̹ö´Â ÆòÇàÇÏ°Ô ·ÎµåµÇ±â ¶§¹®Àε¥ ÀÌ ¶§ ·Îµå ¼ø¼­´Â ·£´ýÀ¸·Î ÁöÁ¤µË´Ï´Ù. ¿¹¸¦ µé¾î ÄÄÇ»ÅÍ°¡ Intel°ú Realtek¿¡¼­ ¸¸µé¾îÁø µÎ°³ÀÇ ³×Æ®¿öÅ© Ä«µå¸¦ °¡Áö°í Àִ٠Ĩ½Ã´Ù. ÀÌ ¶§ ³×Æ®¿öÅ© Ä«µå´Â IntelÀÌ eth0, Realteck Ä«µå°¡ eth1À¸·Î µÇ¾ú½À´Ï´Ù. ÇÏÁö¸¸ ÀçºÎÆÃÇÒ °æ¿ì¿¡, ÀÌ ¼ø¼­°¡ ¹Ù²ð¼öµµ ÀÖ½À´Ï´Ù. À̸¦ ÇÇÇϱâ À§Çؼ­ Udev¸¦ ÀÌ¿ëÇؼ­ ¾à°£ÀÇ ±ÔÄ¢À» Á¤ÇÏ¿© ½ºÅ©¸³Æ®·Î ¸¸µé¾îÁÖ¸é MAC ¾îµå·¹½º ±â¹ÝÀÇ ³×Æ®¿öÅ© Ä«µå¿¡ µû¶ó ÀÏÁ¤ÇÑ À̸§À» ÁöÁ¤ÇØÁÙ ¼ö ÀÖ½À´Ï´Ù. ±ÔÄ¢Àº Áö³­ Àå¿¡¼­ udev¸¦ ¼³Ä¡ÇÒ ¶§ ¹Ì¸® ¸¸µé¾îÁý´Ï´Ù. /etc/udev/rules.d/70-persistent-net.rules ÆÄÀÏÀ» »ìÆ캸½Ê½Ã¿À. ³×Æ®¿öÅ© Àåºñ°¡ ¾î¶»°Ô À̸§ÀÌ Á¤ÇØÁö´ÂÁö ¾Ë ¼ö ÀÖÀ» °Ì´Ï´Ù. {{{ cat /etc/udev/rules.d/70-persistent-net.rules }}} '''Note''' MAC ¾îµå·¹½º¸¦ ³×Æ®¿öÅ© Ä«µå¿¡ ÁöÁ¤Çߴٰųª Xen°ú °°Àº °¡»ó ȯ°æ¿¡¼­´Â network ±ÔÄ¢ÀÌ ¸¸µé¾îÁöÁö ¾Ê¾ÒÀ» ¼öµµ ÀÖ½À´Ï´Ù. ¿Ö³ÄÇϸé ÁÖ¼ÒµéÀÌ ÀÏÁ¤ÇÏ°Ô ³ª¿ÀÁö ¾Ê±â ¶§¹®ÀÔ´Ï´Ù. ÀÌ·¯ÇÑ °æ¿ì¿¡´Â ´ÙÀ½ ÀýÀ» »ìÆ캸½Ã±â ¹Ù¶ø´Ï´Ù. ÆÄÀÏÀº °¢ NIC¿¡ ´ëÇÑ µÎ°³ÀÇ ¶óÀÎÀ¸·ÎµÈ ÄÚ¸àÆ® ºÎºÐÀ¸·Î ½ÃÀ۵˴ϴÙ. °¢ NIC¿¡ ´ëÇÑ Ã¹¹ø° ¶óÀÎÀº ¸¸¾à µå¶óÀ̹ö°¡ °Ë»öµÇ¾ú´Ù¸é ÇØ´ç Çϵå¿þ¾îÀÇ ID(e.g. PCI vendor, device IDs)¿¡ ´ëÇÑ ±â¼úÁ¤º¸°¡ º¸ÀÏ °ÍÀÔ´Ï´Ù. ÇÏÁö¸¸ hardware ID³ª µå¶óÀ̹ö°¡ ÀÎÅÍÆäÀ̽ºÀÇ À̸§À» °áÁ¤Çϴµ¥ »ç¿ëµÇÁö ¾Ê´Â´Ù¸é »ç¿ëÇÒ ¼ö ÀÖ´Â Á¤º¸´Â ¿ÀÁ÷ ·¹ÆÛ·±½º »ÓÀÔ´Ï´Ù. µÎ¹ø° ¶óÀÎÀº Udev ±ÔÄ¢À¸·Î NIC¿Í ºÎÇյǾî ÇØ´ç Ä«µå¿¡ À̸§À» ºÎ¿©ÇÕ´Ï´Ù. ¸ðµç Udev ±ÔÄ¢µéÀº ¸î°³ÀÇ key¸¦ °¡Áö°í Àִµ¥ ÀÌ key´Â ÄÞ¸¶¿Í ºó °ø°£À¸·Î ±¸º°µË´Ï´Ù. ±ÔÄ¢¿¡ »ç¿ëµÇ´Â °¢ key¿Í ¼³¸íÀº ´ÙÀ½°ú °°½À´Ï´Ù: * SUBSYSTEM=="net": ÀÌ°ÍÀº Udev°¡ network card°¡ ¾Æ´Ñ ÀåÄ¡´Â ¹«½ÃÇÏ°Ô ¸¸µì´Ï´Ù. * ACTION=="add": Udev°¡ »õ·Î Ãß°¡µÈ ÀåÄ¡¶ó´Â À̺¥Æ®°¡ ¹ß»ýÇÏÁö ¾ÊÀº ÀåÄ¡´Â ¹«½ÃÇϵµ·Ï ¸¸µì´Ï´Ù.("remove"¿Í "change"¶ÇÇÑ À̹øÆ®°¡ ÀϾ°í ±ÔÄ¢À» ¼¼¿ï ¼ö ÀÖÁö¸¸ network card¿¡´Â Àû¿ë½Ãų ¼ö ¾ø½À´Ï´Ù.) * DRIVERS=="?*": ÀÌ°ÍÀº ÀÌ¹Ì Á¸ÀçÇÏ´Â VLANÀ̳ª bridge sub-interfaceµéÀ» ¹«½ÃÇϵµ·Ï ¸¸µì´Ï´Ù. * ATTR{address}: keyÀÇ °ªÀ¸·Î NICÀÇ ¸Æ ¾îµå·¹½º¸¦ °¡¸®Åµ´Ï´Ù. * ATTR{type}=="1": µÎ °³ ÀÌ»óÀÇ °¡»ó ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇϴ ƯÁ¤ ¹«¼± µå¶óÀ̹ö¿¡ ´ëÇؼ­ ÁÖ ÀÎÅÍÆäÀ̽º¸¸ »ç¿ëÇϵµ·Ï ÇÕ´Ï´Ù. * KERNEL=="eth*": ÀÌ Å°´Â Udev ±ÔÄ¢ÀÌ ¿©·¯°³ÀÇ ³×Æ®¿öÅ© ÀÎÅÍÆäÀ̽º¸¦ ¸¸µé¾î ³¾ ¶§ À̵éÀ» basenameÀ¸·Î °¡·Á³»±â Èûµç °æ¿ì µû·Îµû·Î ±¸º°Çϱâ À§ÇØ »ç¿ëµË´Ï´Ù. ÀÌ°ÍÀº ÀϹÝÀûÀ¸·Î LFS »ç¿ëÀÚ¿¡°Ô´Â ÇÊ¿äÇÏÁö´Â ¾ÊÁö¸¸ ³ª»Ü °Ç ¾ø½À´Ï´Ù. * NAME: Udev°¡ ÀÎÅÍÆäÀ̽º¿¡ Àû¿ë½ÃÅ°´Â À̸§°ªÀ» ³ªÅ¸³À´Ï´Ù. == ³×Æ®¿öÅ© ÀÎÅÍÆäÀ̽º ¼³Á¤ ÆÄÀÏ ¸¸µé±â == ³×Æ®¿öÅ© ÀÎÅÍÆäÀ̽º´Â /etc/sysconfig/¿¡ ÀÖ´Â ½ºÅ©¸³Æ®¿¡ ÀÇÇØ ÄÑÁö°Å³ª ²¨Áý´Ï´Ù. ÀÌ µð·ºÅ丮´Â ¹Ýµå½Ã ifconfig.xyz(xyz´Â eth0¿Í °°Àº ÀåÄ¡À̸§ÀÔ´Ï´Ù)¿Í °°ÀÌ °¢ ÀÎÅÍÆäÀ̽º¿¡ ´ëÇØ ¼³Á¤ÇÑ ÆÄÀÏÀ» °¡Áö°í ÀÖ¾î¾ß ÇÕ´Ï´Ù. ÆÄÀÏ ¾È¿¡´Â IP ÁÖ¼Ò³ª ¼­ºê³Ý ¸¶½ºÅ© °°Àº ÀÎÅÍÆäÀ̽º¿¡ ´ëÇÑ ¾îÆ®¸®ºäÆ®¸¦ Æ÷ÇÔÇÏ°í ÀÖ½À´Ï´Ù. ´ÙÀ½°ú °°ÀÌ eth0 ÀåÄ¡¿¡ ´ëÇÑ °£´ÜÇÑ ÆÄÀÏÀ» ¸¸µé¾îÁÝ´Ï´Ù. {{{ cd /etc/sysconfig/ cat > ifconfig.eth0 << "EOF" ONBOOT=yes IFACE=eth0 SERVICE=ipv4-static IP=192.168.1.1 GATEWAY=192.168.1.2 PREFIX=24 BROADCAST=192.168.1.255 EOF }}} À§ÀÇ º¯¼öµéÀÇ °ªÀº ÀûÀýÇÑ ¼³Á¤À» À§ÇØ ¹Ýµå½Ã ¹Ù²î¾î¾ß ÇÕ´Ï´Ù. ¸¸¾à ONBOOT º¯¼ö°ªÀÌ "yes"·Î ¼³Á¤µÇ¾î ÀÖ´Ù¸é ³×Æ®¿öÅ© ½ºÅ©¸³Æ®´Â Network Interface Card(NIC)ÀÇ »óŸ¦ ½Ã½ºÅÛÀÌ ºÎÆÃµÉ ¶§ ų °ÍÀÔ´Ï´Ù. ¸¸¾à ÀÎÅÍÆäÀ̽º¸¦ Á÷Á¢ ½ÃÀÛÇϰųª ²ô°í ½Í´Ù¸é '''ifup'''°ú '''ifdown''' ¸í·É¾î·Î ÇÒ ¼ö ÀÖ½À´Ï´Ù. IFACE º¯¼ö´Â ÀÎÅÍÆäÀ̽ºÀÇ À̸§À» Á¤ÇÕ´Ï´Ù.(¿¹: eth0) ÀÌ°ÍÀº ¸ðµç ³×Æ®¿öÅ© Àåºñ¿¡ ´ëÇØ ¼³Á¤ÇØ ÁÖ¾î¾ß ÇÕ´Ï´Ù. SERVICE º¯¼ö´Â ¿¬°á½Ã ¾ò¾î¿À´Â IP ÁÖ¼Ò¸¦ ¼³Á¤ÇÕ´Ï´Ù. LFS-Bootscripts ÆÐÅ°Áö´Â ¸ðµâÈ­µÈ IP ÇÒ´ç Çü½ÄÀ̸ç /lib/services/ µð·ºÅ丮 ¾È¿¡ Ãß°¡ÀûÀÎ ÆÄÀϵéÀ» ¸¸µé¾î¼­ IP ÇÒ´ç ¸Þ¼­µå¸¦ ´Ù¸¥ »ç¿ëÀÚ¿¡°Ôµµ Çã¿ëÇÕ´Ï´Ù. ÀÌ°ÍÀº °øÅëÀûÀ¸·Î Dynamic Host Configuration Protocol(DHCP)¿¡¼­ »ç¿ëµÇ¸ç ÀÌ°ÍÀº BLFS Ã¥¿¡ ´ã°Ü ÀÖ½À´Ï´Ù. GATEWAY º¯¼ö´Â ±âº» °ÔÀÌÆ®¿þÀÌ IP ÁÖ¼Ò¸¦ Æ÷ÇÔÇÏ°í ÀÖ¾î¾ß ÇÕ´Ï´Ù. ¸¸¾à ±×·¸Áö ¾Ê´Ù¸é ÀüüÀûÀ¸·Î º¯¼öµéÀ» comment outÇÏ¿© »ç¿ëÇÏÁö ¸»¾Æ¾ß ÇÕ´Ï´Ù. PREFIX º¯¼ö´Â ¼­ºê³ÝÀ¸·Î »ç¿ëÇÒ ºñÆ®ÀÇ ¼ýÀÚ¸¦ ´ã°í ÀÖ½À´Ï´Ù. °¢ IP ÁÖ¼ÒÀÇ ¹ÙÀÌÆ®´Â 8ºñÆ®ÀÔ´Ï´Ù. ¸¸¾à ¼­ºê³Ý ³Ý¸¶½ºÅ©°¡ 255.255.255.0À̶ó¸é 3°³ÀÇ ¹ÙÀÌÆ®(24bits)¸¦ »ç¿ëÇÏ°í ÀÖ´Â °ÍÀÔ´Ï´Ù. ¸¸¾à ³Ý¸¶½ºÅ©°¡ 255.255.255.240À̶ó¸é óÀ½ 28ºñÆ®¸¦ »ç¿ëÇÏ°í ÀÖ´Â °ÍÀÌ°ÚÁÒ. 24bitº¸´Ù ´õ ±ä Prefix´Â °øÅëÀûÀ¸·Î DSL°ú cable-based Internet Service Providers(ISPs)¿¡ ÀÇÇØ »ç¿ëµË´Ï´Ù. ÀÌ·¯ÇÑ ¿¹¿¡¼­´Â PREFIX=24·Î ¼³Á¤ÇÏ°í ³Ý¸¶½ºÅ©´Â 255.255.255.0ÀÌ µË´Ï´Ù. ¿©·¯ºÐµéÀÇ Æ¯Á¤ ¼­ºê³Ý¿¡ ¸Â°Ô ¼³Á¤ÇϽʽÿÀ. ¸¸¾à »ý·«ÇÏ°Ô µÇ¸é ±âº»°ªÀº 24ÀÔ´Ï´Ù. == /etc/resolv.conf ÆÄÀÏ ¸¸µé±â == ¸¸¾à ½Ã½ºÅÛÀÌ ÀÎÅͳݿ¡ ¿¬°áÇÏ·Á°í ÇÑ´Ù¸é ÀÎÅÍ³Ý µµ¸ÞÀÎ À̸§À» IP ÁÖ¼Ò·Î ¹Ù²ãÁÖ´Â DNS(Domain Name Service) ¼­ºñ½º°¡ ÇÊ¿äÇÕ´Ï´Ù. ISP³ª ³×Æ®¿öÅ© °ü¸®ÀÚ°¡ »ç¿ë°¡´ÉÇϵµ·Ï /etc/resolv.confÆÄÀϾȿ¡ DNS ¼­¹öÀÇ IP ÁÖ¼Ò¸¦ ÀúÀåÇÕ´Ï´Ù. {{{ cat > /etc/resolv.conf << "EOF" # Begin /etc/resolv.conf domain nameserver nameserver # End /etc/resolv.conf EOF }}} µµ¸ÞÀÎ »óÅ´ »ý·«µÇ°Å³ª °Ë»öÇÏ´Â »óÅ·ΠµÑ ¼ö ÀÖ½À´Ï´Ù. ´õ ÀÚ¼¼ÇÑ °ÍÀº resolv.confÀÇ ¸ÇÆäÀÌÁö¸¦ Âü°íÇϼ¼¿ä. ·Î µÈ ºÎºÐÀ» ÀÌ·¯ºÐ¿¡°Ô ÀûÇÕÇÑ DNSÀÇ IP ÁÖ¼Ò·Î ¹Ù²ß´Ï´Ù. ¸¸¾à DNS ¼­¹ö·Î Çϳª¸¸ »ç¿ëÇÏ±æ ¿øÇÑ´Ù¸é µÎ¹ø° ³×ÀÓ¼­¹ö¸¦ »èÁ¦ÇÏ¸é µË´Ï´Ù. = /etc/hosts ÆÄÀÏ ¼³Á¤Çϱâ = ¸¸¾à ³×Æ®¿öÅ© Ä«µå°¡ ¼³Á¤ÀÌ ¿Ï·áµÇ¾ú´Ù¸é IP ÁÖ¼Ò¿Í fully-qualified domain name(FQDN), /etc/host ÆÄÀÏ ¾È¿¡ °¡´ÉÇÑ aliases¸¦ °áÁ¤ÇØ¾ß ÇÕ´Ï´Ù. {{{ IP_address myhost.example.org aliases }}} ºñ·Ï ÄÄÇ»ÅÍ°¡ IP¸¦ ÇÒ´ç¹Þ¾Æ¼­ ÀÎÅͳÝÀ» Á¢¼ÓÇÒ ¼ö ÀÖ´Ù°í Çصµ private network IP ÁÖ¼ÒÀÇ ¹üÀ§¸¦ È®½ÇÇÏ°Ô ¼³Á¤ÇØ ÁֽʽÿÀ: {{{ Private Network Address Range Normal Prefix 10.0.0.1 - 10.255.255.254 8 172.x.0.1 - 172.x.255.254 16 192.168.y.1 - 192.168.y.254 24 }}} x´Â 16-31»çÀÌÀÇ ¼ýÀÚ°¡ µÉ °Ì´Ï´Ù. y´Â 0-255»çÀÌÀÇ ¼ýÀÚ°¡ µÉ°ÍÀÔ´Ï´Ù. À¯È¿ÇÑ »ç¼³ IP ÁÖ¼Ò·Î 192.168.1.1ÀÌ °¡´ÉÇÕ´Ï´Ù. FQDNÀ¸·Î´Â lfs.example.orgµîÀÌ À¯È¿ÇÑ IPÀÔ´Ï´Ù. ³×Æ®¿öÅ© Ä«µå¸¦ »ç¿ëÇÏÁö ¾Ê´Â´Ù°í Çصµ FQDNÀº ÇÊ¿äÇÕ´Ï´Ù. ÀÌ°ÍÀº ƯÁ¤ ÇÁ·Î±×·¥µéÀÌ Á¤»óÀûÀ¸·Î ÀÛµ¿Çϱâ À§ÇØ ÇÊ¿äÇÑ °ÍµéÀÔ´Ï´Ù. /etc/hosts ÆÄÀÏÀ» ¸¸µé¾î ÁÝ´Ï´Ù. {{{ cat > /etc/hosts << "EOF" # Begin /etc/hosts (network card version) 127.0.0.1 localhost <192.168.1.1> [alias1] [alias2 ...] # End /etc/hosts (network card version) EOF }}} <192.168.1.1>°ú °ªÀº Ưº°ÇÑ »ç¿ë°ú ¿ä±¸µéÀ» À§ÇØ º¯°æµÇ¾î¾ß ÇÕ´Ï´Ù.(¸¸¾à ³×Æ®¿öÅ©³ª ½Ã½ºÅÛ °ü¸®ÀÚ¿¡ ÀÇÇØ IP ÁÖ¼Ò°¡ µÇ¾ú´Ù¸é ½Ã½ºÅÛÀº ±âÁ¸ ³×Æ®¿öÅ©¿¡ ¿¬°áµÇ·Á°í ÇÒ °ÍÀÔ´Ï´Ù. alias name(s) ¿É¼ÇÀº »ý·«µÉ ¼ö ÀÖ½À´Ï´Ù. ³×Æ®¿öÅ© Ä«µå¸¦ ¼³Á¤ÇÏÁö ¾Ê´Â´Ù¸é ´ÙÀ½°ú °°ÀÌ /etc/hostsÆÄÀÏÀ» ¸¸µå½Ê½Ã¿À: {{{ cat > /etc/hosts << "EOF" # Begin /etc/hosts (no network card version) 127.0.0.1 localhost # End /etc/hosts (no network card version) EOF }}} = LFS ½Ã½ºÅÛ¿¡¼­ ÀåÄ¡¿Í ¸ðµâ Çڵ鸵Çϱâ = ÀÌÀü Àå¿¡¼­ ¿ì¸®´Â Udev ÆÐÅ°Áö¸¦ ¼³Ä¡Çß½À´Ï´Ù. ÀÌ°ÍÀÇ ÀÛµ¿ ¿ø¸®¿¡ ´ëÇØ ÀÚ¼¼È÷ ¾Ë±â Àü¿¡ ±×µ¿¾È ¾î¶»°Ô ÀåÄ¡µéÀ» Çڵ鸮ÇØ¿Ô´ÂÁö¿¡ ´ëÇØ °£´ÜÇÏ°Ô ¼³¸íÇÏ°Ú½À´Ï´Ù. ¸®´ª½º ½Ã½ºÅÛÀº static device creation À̶ó´Â ¹æ¹ýÀ» »ç¿ëÇß¾ú½À´Ï´Ù. ÀÌ ¹æ¹ýÀº /dev/ (¶§¶§·Î ¹®ÀÚ±×´ë·Î õ°³Á¤µµÀÇ ³ëµå°¡ ÀÖ¾ú½À´Ï´Ù) µð·ºÅ丮 ¾È¿¡ ¾öû³ª°Ô ¸¹Àº µð¹ÙÀ̽º ³ëµå¸¦ °¡Áö°í ÀÖ¾ú½À´Ï´Ù. ÇØ´ç ³ëµå¿¡ ¸Â´Â Çϵå¿þ¾î°¡ ½ÇÁ¦·Î Á¸ÀçÇÏÁöµµ ¾Ê´Âµ¥µµ ¸»ÀÌÁÒ. ÀÌ°ÍÀº ÀüÇüÀûÀ¸·Î '''MAKEDEV''' ¶ó´Â ½ºÅ©¸³Æ®¿¡ ÀÇÇØ ÀÌ·ç¾îÁ³À¸¸ç ÀÌ ½ºÅ©¸³Æ®´Â ¸ðµç °¡´ÉÇÑ ÀåÄ¡ÀÇ ¼ýÀÚµéÀ» '''mknod''' ÇÁ·Î±×·¥À¸·Î ÀüÇÏ´Â ºÎºÐÀ» °¡Áö°í ÀÖ¾ú½À´Ï´Ù. Udev ¹æ¹ýÀ» ÀÌ¿ëÇϹǷνá, Ä¿³Î¿¡ ÀÇÇØ Å½»öµÈ µð¹ÙÀ̽º¿¡ ´ëÇÑ ³ëµåµé¸¸ ¸¸µé¾îÁö°Ô µÆ½À´Ï´Ù. ÀÌ·¯ÇÑ µð¹ÙÀ̽º ³ëµåµéÀº ½Ã½ºÅÛÀÌ ºÎÆÃµÉ ¶§¸¶´Ù ¸¸µé¾îÁö°í ''devtmps''¶ó´Â ÆÄÀϽýºÅÛ¿¡ ÀúÀåµË´Ï´Ù. µð¹ÙÀ̽º ³ëµåµéÀº ¸¹Àº ¿ë·®À» Â÷ÁöÇÏÁö ¾Ê¾Æ¼­ ¹«½ÃÇصµ µÉ Á¤µµÀÔ´Ï´Ù. == º¯È­µÈ °úÁ¤ == 2000³â 2¿ù, ''devfs''¶ó´Â »õ·Î¿î ÆÄÀϽýºÅÛÀÌ 2.3.46 Ä¿³Î¿¡¼­ ÃâÇöÇÏ¿© 2.4 stable Ä¿³Î ½Ã¸®ÁîºÎÅÍ »ç¿ë °¡´ÉÇÏ°Ô µÇ¾ú½À´Ï´Ù. Ä¿³Î ¼Ò½º·Î ³ª¿ÔÁö¸¸ µð¹ÙÀ̽º¸¦ µ¿ÀûÀ¸·Î ¸¸µå´Â ¹æ¹ýÀº ÇÙ½É Ä¿³Î °³¹ßÀڵ鿡°Ô´Â Á¤¸»·Î Å« Çõ¸í°úµµ °°Àº °ÍÀ̾ú½À´Ï´Ù. ''devfs''¸¦ Àû¿ëÇÏ¿© Á¢±ÙÇÏ´Â ¹æ¹ýÀÇ ÁÖ¿ä ¹®Á¦´Â ¾î¶»°Ô ÀåÄ¡¸¦ °¨ÁöÇÏ°í »ý¼ºÇÏ°í À̸§À» ÁöÀ» °ÍÀΰ¡¿¡ ´ëÇÑ °ÍÀ̾ú½À´Ï´Ù. µð¹ÙÀ̽ºÀÇ À̸§À» Áþ´Â ¹®Á¦´Â ¾Æ¸¶µµ Áß¿äÇÑ ¹®Á¦¿´À» °ÍÀÔ´Ï´Ù. ±×´ç½Ã¿¡ ÀϹÝÀûÀ¸·Î ÀåÄ¡ÀÇ À̸§À» ¼³Á¤ÇÑ´Ù°í Çϸé ÀÌ°ÍÀº ½Ã½ºÅÛ °ü¸®ÀÚ°¡ ÇÒ ¼ö ÀÖ´Â ÀÏÀ̾ú°í ´Ù¸¥ °³¹ßÀÚ´Â °¨È÷ »ý°¢Áöµµ ¸øÇÏ´Â ÀÏÀ̾ú½À´Ï´Ù. ''devfs''ÆÄÀÏ ½Ã½ºÅÛÀº Ä¿³ÎÀÇ µðÀÚÀο¡ ³»ÀçµÈ °ÍÀ̾ú±â ¶§¹®¿¡ »ó´çÇÑ Ä¿³ÎÀÇ ¼öÁ¤ ¾øÀÌ´Â ¹Ù²ð ¼ö ¾ø´Â °ÍÀ̾ú½À´Ï´Ù. ÀÌ °ÍÀº ´õÀÌ»ó »ç¿ëµÇÁö´Â ¾Ê°ÔµÆÁö¸¸ ¿À·£ ±â°£µ¿¾È °ü¸®ÀÇ ¼ÒȦ·Î ³²¾ÆÀÖ¾ú½À´Ï´Ù. devfs´Â 2006³â 6¿ù¿¡ ºñ·Î¼Ò »èÁ¦µÇ¾ú½À´Ï´Ù. ºÒ¾ÈÁ¤Çß´ø 2.5 Ä¿³Î Æ®¸®¿¡¼­ ¸¶Ä§³» »õ·Î¿î °¡»ó ÆÄÀÏ ½Ã½ºÅÛÀÎ sysfs¿Í ÇÔ²² 2.6 ½Ã¸®ÁîÀÇ ¾ÈÁ¤µÈ Ä¿³Î ¹öÀüÀÌ ¸±¸®Áî µÇ¾ú½À´Ï´Ù. ''sysfs''ÀÇ ÀÛ¾÷Àº ½Ã½ºÅÛÀÇ Çϵå¿þ¾î ¼³Á¤À» userspace ÇÁ·Î¼¼½ºµé¿¡°Ô Á¦°øÇÏ´Â °ÍÀ̾ú½À´Ï´Ù. ÀÌ·¸°Ô À¯Àú°ø°£¿¡¼­ º¼ ¼ö ÀÖ°Ô µÊÀ¸·Î½á ''devfs''º¸´Ù Çö½ÇÀûÀ¸·Î ÇÒ ¼ö ÀÖ´Â °ÍµéÀÌ ¸¹¾ÆÁ³½À´Ï´Ù. == Udev ±¸Çö == === Sysfs === ''sysfs''ÆÄÀϽýºÅÛ¿¡ °üÇؼ­´Â ¾Õ¼­ °£´ÜÇÏ°Ô ¼³¸íÇß½À´Ï´Ù. ¾Æ¸¶ ¾î¶»°Ô ''sysfs''°¡ ÇöÀç ½Ã½ºÅÛ¿¡ ¾î¶² µð¹ÙÀ̽º°¡ ÀÖ´ÂÁö, ±×°ÍµéÀ» À§ÇØ ¾î¶² µð¹ÙÀ̽º ³Ñ¹ö¸¦ »ç¿ëÇؾßÇÏ´ÂÁö ¾Æ´Â °Í¿¡ ´ëÇØ ±Ã±ÝÇϽŠºÐµéÀÌ °è½Ç °Ì´Ï´Ù. Ä¿³Î¿¡ ÀÇÇØ µð¹ÙÀ̽º°¡ Ž»öµÇ¸é ''sysfs''ÀÇ ¿ÀºêÁ§Æ®·Î Ä¿³Î¿¡ Á÷Á¢ µî·ÏµÇ¾î ÄÄÆÄÀϵ˴ϴÙ. µå¶óÀ̹ö°¡ ¸ðµâ·Î½á ÄÄÆÄÀÏµÇ¸é ¸ðµâÀÌ ·ÎµåµÇ¾úÀ»¶§ Ä¿³Î¿¡ µî·ÏµË´Ï´Ù. ''sysfs'' ÆÄÀϽýºÅÛÀÌ /sys ¿¡ ¸¶¿îÆ® µÉ¶§ ''sysfs''·Î µî·ÏµÈ buit-inµÈ µå¶óÀ̹öµéÀÇ µ¥ÀÌÅÍ´Â userspace ÇÁ·Î¼¼½º¿¡¼­ ÀÌ¿ë°¡´ÉÇϸç '''udevd'''°¡ ÇÁ·Î¼¼½ÌÇϴµ¥ ÀÌ¿ëµÉ ¼ö ÀÖ½À´Ï´Ù. === Udev Bootscripts === '''/etc/rc.d/init.d/udev''' initscript´Â ¸®´ª½º°¡ ºÎÆÃµÉ ¶§ µð¹ÙÀ̽º ³ëµå¸¦ ¸¸µå´Â °ÍÀ» ´Ù·ì´Ï´Ù. script´Â uevent handler·Î '''/sbin/hotplug'''°¡ ¼³Á¤µÇ´Â °ÍÀ» ÇØÁ¦ÇÕ´Ï´Ù. Ä¿³ÎÀÌ ´õÀÌ»ó Ãß°¡ÀûÀÎ binary¸¦ ºÎ¸¦ ÇÊ¿ä°¡ ¾ø±â ¶§¹®ÀÔ´Ï´Ù. ´ë½Å¿¡ '''udevd'''°¡ kernelÀÌ ÀÏÀ¸Å°´Â uevents¸¦ netlink ¼ÒÄÏÀ» ÅëÇÏ¿© °¨ÁöÇÕ´Ï´Ù. ´ÙÀ½¿¡´Â bootscript°¡ ¾î¶°ÇÑ ³ëµåÀÌ°Ç °£¿¡ /lib/udev/devices¿¡ ÀÖ´Â Á¤Àû µð¹ÙÀ̽º ³ëµå¸¦ /dev ¾ÈÀ¸·Î º¹»çÇÕ´Ï´Ù. ÀÌ°ÍÀº µð¹ÙÀ̽º, µð·ºÅ丮, ½É¸µÅ©µéÀÌ ½Ã½ºÅÛÀÌ ºÎÆõǴ ´Ü°è¿¡¼­ µ¿ÀûÀ¸·Î ÀåÄ¡¸¦ Çڵ鸵ÇÏ´Â ÇÁ·Î¼¼½º¿¡ ÀÇÇØ ¿ä±¸µÇ°Å³ª '''udevd'''¿¡ ÀÇÇØ ¿ä±¸µÇ±â ¶§¹®¿¡ ²À ÇÊ¿äÇÕ´Ï´Ù. Á¤Àû µð¹ÙÀ̽º ³ëµå¸¦ /lib/udev/devices ¾È¿¡ »ý¼ºÇÏ´Â °ÍÀº ¶ÇÇÑ ÀåÄ¡µéÀ» °ü¸®Çϱ⿡ ÆíÇÕ´Ï´Ù. ÀÌ ÈÄ bootscript´Â Udev µ¥¸ó('''udevd''')µ¥¸óÀ» ½Ç¤Ô¤¾¤Ë¤·½ÃÄÑ uevents¸¦ ¹Þ¾Æ ó¸®ÇÒ ¼ö ÀÖ°Ô²û ¸¸À¾´Ï´Ù. ¸¶Áö¸·À¸·Î bootscript´Â Ä¿³ÎÀÌ '''udevd'''°¡ ÀåÄ¡·ÎºÎÅÍ ¿À´Â À̺¥Æ®¸¦ ó¸®ÇÒ ¶§±îÁö °­Á¦·Î ±â´Ù¸®°Ô ÇÕ´Ï´Ù. '''/etc/rc.d/init.d/udev_retry''' initscript´Â ¾ÆÁ÷ '''mountfs''' ½ºÅ©¸³Æ®°¡ ½ÇÇàµÉ ¶§±îÁö ÆÄÀϽýºÅÛÀ» ¸¶¿îÆ®ÇÏÁö ¸øÇÑ ¼­ºê½Ã½ºÅÛ(/usrÀ̳ª /var¿¡¼­ ¹ß»ýµÊ)¿¡¼­ ¹ß»ýÇÏ´Â À̺¥Æ®¸¦ ´Ù½Ã ½ÇÇàÇÏ´Â °ÍÀ» ´Ù·ì´Ï´Ù. ÀÌ ½ºÅ©¸³Æ®´Â '''mountfs'''½ºÅ©¸³Æ® ÀÌÈÄ¿¡ ½ÇÇàµÇ¸ç ÀÌ·¯ÇÑ ±ÔÄ¢Àº µÎ¹ø¿¡ ¼º°øÇÒ °Ì´Ï´Ù. /etc/sysconfig/udev_retry ÆÄÀÏ·Î ¼³Á¤µÇ¸ç ÀÌ ÆÄÀÏ¿¡ ÀÖ´Â ÄÚ¸àÆ®¸¦ Á¦¿ÜÇÑ ¸ðµç°ÍµéÀÌ ¼­ºê½Ã½ºÅÛÀÇ À̸§°ú retry timeÀ» ¼³Á¤ÇÕ´Ï´Ù. === µð¹ÙÀ̽º ³ëµå »ý¼º === ÃÖ±Ù udev ¹öÀü¿¡¼­´Â '''udevd'''´Â ´õÀÌ»ó /dev ¾È¿¡ µð¹ÙÀ̽º ÆÄÀÏÀ» »ý¼ºÇÏÁö ¾Ê½À´Ï´Ù. ´ë½Å¿¡ Ä¿³Î¿¡ ÀÖ´Â ''devtmpfs''¶ó´Â ÆÄÀϽýºÅÛ¿¡ ÀÇÇØ Çڵ鸵µË´Ï´Ù. µð¹ÙÀ̽º ³ëµå·Î µî·ÏµÇ°íÀÚ ÇÏ´Â ¸ðµç µå¶óÀ̹ö´Â ''devtmpfs''¸¦ Åë°úÇÏ°Ô µË´Ï´Ù. ''devtmpfs'' ÀνºÅϽº°¡ /dev¿¡ ¸¶¿îÆ®µÇ¸é µð¹ÙÀ̽º ³ëµå´Â ¼öÁ¤µÈ À̸§, ±ÇÇÑ, ¼ÒÀ¯±ÇÀ¸·Î ÃʱâÈ­µÇ¾î ¸¸µé¾îÁú °Ì´Ï´Ù. ¾ó¸¶ ÈÄ¿¡ Ä¿³ÎÀÌ '''udevd'''·Î uevent¸¦ º¸³¾ °ÍÀÔ´Ï´Ù. /etc/udev/rules.d, /lib/udev/rules.d, /run/udev/rules.d ¾È¿¡ ÀÖ´Â ÆÄÀÏ¿¡ ÀÇÇØ Á¤ÀÇµÈ ±ÔÄ¢¿¡ ±âÃÊÇÏ¿© '''udevd'''´Â Ãß°¡ÀûÀÎ device ³ëµå¿¡ ´ëÇÑ ½Éº¼¸¯ ¸µÅ©¸¦ »ý¼ºÇÏ°í ±ÇÇÑ, ¼ÒÀ¯±Ç, ±×·ì µîÀ» º¯°æÇϰųª ºñ¾îÀÖ´Â '''udevd''' µ¥ÀÌÅͺ£À̽º ¿£Æ®¸®¸¦ ¼öÁ¤ÇÒ °ÍÀÔ´Ï´Ù. ÀÌ·¯ÇÑ ¼¼°³ÀÇ µð·ºÅ丮¿¡ ÀÖ´Â ±ÔÄ¢¶ÇÇÑ LFS-Bootscripts ÆÐÅ°Áö¿¡µµ ºñ½ÁÇϱâ ÀÖ½À´Ï´Ù. ¶Ç ÀÌ ¼¼°³ÀÇ µð·ºÅ丮°¡ ÇÔ²² ÇÕÃÄÁ® ÀÖ½À´Ï´Ù. ¸¸¾à '''udevd'''°¡ µð¹ÙÀ̽º¿¡ ´ëÇÑ ±ÔÄ¢À» ãÁö ¸øÇÑ´Ù¸é ''devtmpfs''°¡ ÃʱâÈ­Çß´ø ±×´ë·Î ³²°ÜÁú °ÍÀÔ´Ï´Ù. === ¸ðµâ ·Îµù === µð¹ÙÀ̽º µå¶óÀ̹ö´Â aliasµÈ ä ¸ðµâ·Î ÄÄÆÄÀÏ ¤Ô¤§¤Ê¤¶¼ö ÀÖ½À´Ï´Ù. alias´Â '''moidinfo'''ÇÁ·Î±×·¥ÀÇ Ãâ·ÂÀ¸·Î È®ÀÎÇÒ ¼ö ÀÖ°í ¸ðµâ¿¡ ÀÇÇØ Áö¿øµÇ´Â ÀåÄ¡´Â ¹ö½º·Î ¸íÈ®È÷ ½Äº°°¡´ÉÇÕ´Ï´Ù. ¿¹¸¦ µé¾î¼­ ''snd-fm801'' µå¶óÀ̹ö´Â PCI ÀåÄ¡·Î vendor ID 0x1319¿Í device ID 0x0801·Î Áö¿øµÇ°í "pci:v00001319d00000801sv*sd*bc04sc01i*"·Î alias µÈ »óÅÂÀÔ´Ï´Ù. ´ëºÎºÐÀÇ ÀåÄ¡¿¡¼­ bus µå¶óÀ̹ö´Â ''sysfs''¸¦ ÅëÇØ µð¹ÙÀ̽º¸¦ Á¶ÀÛÇÒ ¼ö ÀÖµµ·Ï µå¶óÀ̹öÀÇ alias¸¦ Á¦°øÇÕ´Ï´Ù. ¿¹·Î /sys/bus/pci/devices/0000:00:0d.0/modalias ÆÄÀÏÀº ¹®ÀÚ¿­ "pci:v00001319d00000801sv00001319sd00001319bc04sc01i00"¸¦ °®°í ÀÖ½À´Ï´Ù. Udev¿¡ ÀÇÇØ Á¦°øµÈ ±âº»ÀûÀÎ ±ÔÄ¢Àº '''udevd'''°¡ MODALIAS uevent ȯ°æ º¯¼öÀÇ ³»¿ëÀ¸·Î '''/sbin/modprobe'''¸¦ ºÎ¸£µµ·Ï ¸¸µì´Ï´Ù. ¶§¹®¿¡ ¸ðµç aliasµÈ ¸ðµâµéÀ» ¹®ÀÚ¿­°ú ¸ÅĪ½ÃÄѼ­ ·ÎµùÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¿¹Á¦¿¡¼­ ''snd-fm801''Àº ¿øÇÏÁö ¾Ê´õ¶óµµ ''forte'' µå¶óÀ̹ö¸¦ ·ÎµåÇÒ °ÍÀÔ´Ï´Ù. ´ÙÀ½ ºÎºÐ¿¡ ÀÌ·¯ÇÑ °æ¿ì¿¡ ´ëÇÑ ÇØ°á¹æ¹ýÀ» Âü°íÇϽʽÿÀ. Ä¿³Î ½º½º·Î ³×Æ®¿öÅ© ÇÁ·ÎÅäÄÝ¿¡ ´ëÇÑ ¸ðµâÀ» ·ÎµåÇÒ ¼ö ÀÖ°í ÆÄÀϽýºÅÛ°ú NLS ¶ÇÇÑ ÇÊ¿äÇÏ´Ù¸é ·ÎµåÇÒ ¼ö ÀÖ½À´Ï´Ù. === Á¦°Å°¡´ÉÇÑ ÀåÄ¡ µ¿ÀûÀ¸·Î Çڵ鸵Çϱâ === ¿©·¯ºÐÀÌ USB MP3 Ç÷¹À̾Àº µð¹ÙÀ̽º¸¦ ²È¾Ò´Ù¸é Ä¿³ÎÀº ¿¬°áÀ» °¨ÁöÇÏ°í uevent¸¦ ¹ß»ý½Ãŵ´Ï´Ù. ¿©±â¼­ »ý°Ü³­ uevent´Â '''udevd'''¿¡ ÀÇÇØ À§¿¡¼­ ¾ð±ÞÇÑ °Íó·³ Çڵ鸵µË´Ï´Ù. === ¸ðµâ ·Îµù°ú µð¹ÙÀ̽º »ý¼ºÀÇ ¹®Á¦ === ÀÚµ¿ÀûÀ¸·Î µð¹ÙÀ̽º ³ëµå¸¦ »ý¼ºÇÏ·Á°í ÇÒ ¶§ ¹ß»ýµÉ ¼ö ÀÖ´Â ¸î°¡Áö ¹®Á¦µéÀÌ ÀÖ½À´Ï´Ù. ==== Ä¿³Î ¸ðµâÀº ÀÚµ¿À¸·Î ·ÎµåµÇÁö ¾Ê´Â´Ù ==== Udev´Â aliasµÇ¾îÀִ ƯÁ¤ ¹ö½º³ª ''sysfs''¿¡ Çʼö alias·Î µî·ÏµÇ¾î ÀÖ´Â ¸ðµâÀÏ °æ¿ì¿¡¸¸ ÀÚµ¿ÀûÀ¸·Î ·ÎµåÇÕ´Ï´Ù. ´Ù¸¥ °æ¿ì¿¡´Â ´Ù¸¥ ¹æ¹ýÀ» ÅëÇؼ­ ¸ðµâÀ» ·ÎµåÇØ¾ß ÇÕ´Ï´Ù. Linux-3.5.2¿¡¼­ Udev´Â INPUT, IDE, PCI, USB, SCSI, SERIO, FireWire µð¹ÙÀ̽ºµéÀ» À§ÇØ ÀûÀýÇÏ°Ô ¸¸µé¾îÁø µå¶óÀ̹ö¸¦ ·ÎµåÇÑ´Ù°í ¾Ë·ÁÁ® ÀÖ½À´Ï´Ù. ¿©·¯ºÐÀÌ ¿ä±¸ÇÏ´Â µð¹ÙÀ̽º µå¶óÀ̹ö°¡ Udev¿¡¼­ Áö¿øµÇ´ÂÁö È®ÀÎÇÏ·Á¸é ÇØ´ç ¸ðµâ À̸§°ú ÇÔ²² '''modinfo'''¸¦ ½ÇÇàÇϽʽÿÀ. /sys/bus ¾Æ·¡¿¡ ÀÖ´Â µð¹ÙÀ̽º µð·ºÅ丮·Î °¡¼­ ¾î¶² modaliasÆÄÀÏÀÌ ÀÖ´ÂÁö È®ÀÎÇغ¸½Ê½Ã¿À. ¸¸¾à modalias ÆÄÀÏÀÌ ''sysfs''¾È¿¡ Á¸ÀçÇÑ´Ù¸é ±× µå¶óÀ̹ö´Â ÇØ´ç ÀåÄ¡¸¦ Áö¿øÇÏ°í ÀåÄ¡¿Í Á÷Á¢ÀûÀ¸·Î Åë½ÅÇÑ´Ù´Â ¶æÀÌÁö¸¸ ¸¸¾à alias¸¦ °¡Áö°í ÀÖÁö ¾Ê´Ù¸é µå¶óÀ̹ö¿¡ ¹ö±×°¡ ÀÖ´Â °ÍÀÔ´Ï´Ù. ÀÌ·¯ÇÑ ¹ö±×µéÀº ³ªÁß¿¡ ÆÐÄ¡µÉ °ÍÀÔ´Ï´Ù. ¸¸¾à °ü·ÃµÈ /sys/bus µð·ºÅ丮¿¡ modalias ÆÄÀÏÀÌ ¾ø´Ù¸é ÀÌ°ÍÀº Ä¿³Î °³¹ßÀÚ°¡ modalias¸¦ ¾ÆÁ÷ Ãß°¡ÇÏÁö ¾Ê¾Ò´Ù´Â ÀǹÌÀÔ´Ï´Ù. Linux-3.5.2¿¡¼­´Â ISA ¹ö½ºµéÀÌ ÀÌ °æ¿ì¿¡ ÇØ´çÇÕ´Ï´Ù. Ä¿³Î ¹öÀüÀÌ »õ·Î ¾÷µ¥ÀÌÆ® µÇ¸é ÃßÈÄ¿¡ ÆÐÄ¡µÉ °ÍÀÔ´Ï´Ù. Udev´Â ''snd-pcm-oss''°°Àº "wrapper" µå¶óÀ̹ö³ª ''loop''°°Àº Çϵå¿þ¾î°¡ ¾Æ´Ñ µå¶óÀ̹ö´Â ·ÎµåÇÏ·Á ÇÏÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù. ==== Ä¿³Î ¸ðµâÀº ÀÚµ¿À¸·Î ·ÎµåµÇÁö ¾Ê´Âµ¥ udevµµ À̸¦ ·ÎµåÇÏ·Á°í ÇÏÁö ¾Ê´Â °æ¿ì ==== ¸¸¾à "wrapper" ¸ðµâÀÌ ´Ù¸¥ ¸ðµâ¿¡ ÀÇÇØ Á¦°øµÇ´Â ±â´ÉÀ» Çâ»ó½Ãų¼ö ÀÖ´Ù¸é (¿¹¸¦ µé¾î snd-pcm-oss´Â OSS ¾îÇø®ÄÉÀ̼ǿ¡¼­ »ç¿îµå Ä«µå¸¦ °¡´ÉÇÏ°Ô ¸¸µé¾î snd-pcmÀÇ ±â´ÉÀ» Çâ»ó½Ãų ¼ö ÀÖ½À´Ï´Ù) '''modprobe'''¸¦ ¼³Á¤ÇÏ¿© Udev°¡ wrapped ¸ðµâÀ» ·ÎµåÇÑ ÈÄ wrapper ¸ðµâÀ» ·ÎµåÇÒ ¼ö ÀÖ°Ô²û ÇÒ ¼ö ÀÖ½À´Ï´Ù. À̸¦ À§Çؼ­´Â "softdep"¶óÀÎÀ» /etc/modprobe.d/.conf ÆÄÀÏ¿¡ Ãß°¡ÇÏ¸é µË´Ï´Ù. {{{ softdep snd-pcm post: snd-pcm-oss }}} "softdep" ¸í·É¾î°¡ pre: ȤÀº ÀÇÁ¸¼º¿¡ µû¶ó pre:¿Í post:¸¦ ÇÔ²² ¼¯¾î¼­ »ç¿ëÇÒ ¼ö ÀÖ´Ù´Â °É ¸í½ÉÇϽʽÿÀ. ÀÚ¼¼ÇÑ °Ç modprobe.d(5) ¸Þ´º¾ó ÆäÀÌÁö¸¦ È®ÀÎÇϼ¼¿ä. ¸¸¾à Áú¹®¿¡¼­ÀÇ ¸ðµâÀÌ wrapper°¡ ¾Æ´ÏÁö¸¸ À¯¿ëÇÑ °ÍÀ̶ó¸é '''modules''' bootscript¸¦ ¼³Á¤ÇÏ¿© ½Ã½ºÅÛÀÌ ºÎÆÃµÉ ¶§ ·ÎµåÇÒ ¼ö ÀÖ½À´Ï´Ù. À̸¦ À§Çؼ­´Â /etc/sysconfig/modules ÆÄÀÏ¿¡ µû·Î ¸ðµâ À̸§À» Ãß°¡ÇϽʽÿÀ. ==== Udev°¡ ¿øÇÏÁö ¾Ê´Â ¸ðµâÀ» ·ÎµåÇÏ´Â °æ¿ì ==== ¸ðµâÀº ºôµåÇÏÁö ¾Ê°Å³ª /etc/modprobe.d/blacklist.conf ÆÄÀÏ¿¡ ''forte'' ¸ðµâÀ» Ãß°¡ÇØÁ־ ¿øÇÏÁö ¾Ê´Â ¸ðµâÀ» ·ÎµåÇÏÁö ¾Êµµ·Ï ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. {{{ blacklist forte }}} ºí·¢¸®½ºÆ®¿¡ µî·ÏµÈ ¸ðµâÀº ¼öµ¿ÀûÀ¸·Î '''modprobe''' ¸í·É¾î¸¦ ÅëÇØ ·ÎµåµÉ ¼ö ÀÖ½À´Ï´Ù. ==== Udev°¡ µð¹ÙÀ̽º¸¦ ¿Ã¹Ù¸£Áö ¾Ê°¡ »ý¼ºÇϰųª À߸øµÈ symlink¸¦ ¸¸µå´Â °æ¿ì ==== ÀϹÝÀûÀ¸·Î Udev ±ÔÄ¢À» À߸ø ¼³Á¤ÇÑ °æ¿ì¿¡ ¹®Á¦°¡ ¹ß»ýÇÕ´Ï´Ù. ¿¹¸¦ µé¾î À߸øµÈ ±ÔÄ¢Àº SCSI µð½ºÅ©¿Í µ¿½Ã¿¡ Á¦Á¶È¸»ç¿¡ µû¶ó SCSI generic deviceµµ ¸ÅÄ¡½Ãŵ´Ï´Ù. ÀÌ °æ¿ì¿¡´Â ´õ ¼¼ºÎÀûÀ¸·Î Å°°ªÀ» »ç¿ëÇÏ¿© ¿Ã¹Ù¸¥ ±ÔÄ¢À» Àû¿ëÇØ¾ß ÇÏ¸ç ¿©±â¿¡ '''udevadm info''' ¸í·É¾î¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ==== Udev°¡ ºÒ¿ÏÀüÇÏ°Ô ÀÛµ¿µÇ´Â °æ¿ì ==== ÀÌ°ÍÀº ¾Æ¸¶µµ ÀÌÀü ¹®Á¦¿Í´Â ´Ù¸¥ Çö»óÀÏ °Ì´Ï´Ù. ¸¸¾à ¾Æ´Ï¶ó¸é, ¿©·¯ºÐÀÇ ±ÔÄ¢ÀÌ ''sysfs'' ¾îÆ®¸®ºäÆ®¸¦ »ç¿ëÇÏ°í Àִٰųª ³ªÁß¿¡´Â ¼öÁ¤µÇ°ÚÁö¸¸ Ä¿³Î ŸÀÌ¹Ö ¹®Á¦¶§¹®ÀÔ´Ï´Ù. ÀÌÁ¦ ¿©·¯ºÐÀº /etc/udev/rules.d/10-wait_for_sysfs.rules ÆÄÀÏ¿¡ µ¡ºÙ¿©¼­ ''sysfs'' ¾îÆ®¸®ºäÆ®¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù(¸¸¾à ÆÄÀÏÀÌ ¾ø´Ù¸é ÀÌ ÆÄÀÏÀ» ¸¸µå½Ê½Ã¿À) ==== Udev°¡ ÀåÄ¡¸¦ ¸¸µéÁö ¾Ê´Â °æ¿ì ==== Á¦¸ñ¿¡¼­ ¿¹»óÇÒ ¼ö ÀÖµíÀÌ µå¶óÀ̹ö°¡ Ä¿³Î¿¡ Á¤ÀûÀ¸·Î ºôµåµÇ¾ú°Å³ª ÀÌ¹Ì ¸ðµâ·Î½á ·ÎµåµÈ°æ¿ì, ±×¸®°í Udev°¡ µð¹ÙÀ̽º¿¡ ´ëÇØ À߸øµÈ À̸§À» ¼³Á¤ÇÏ´Â °æ¿ì¸¦ È®ÀÎÇÑ °æ¿ìÀÔ´Ï´Ù. Udev´Â Ä¿³Î µå¶óÀ̹ö¿¡¼­ ''sysfs''¸¦ ÅëÇØ ¾Æ¹«·± Á¤º¸µµ ÀüÇØÁÖÁö ¾Ê´Â´Ù¸é µð¹ÙÀ̽º ³ëµå¸¦ »ý¼ºÇϱâ À§ÇØ ÇÊ¿äÇÑ Á¤º¸¿¡ ´ëÇØ °¡Áö°í ÀÖ´Â °ÍÀÌ ¾Æ¹«°Íµµ ¾ø°Ô µË´Ï´Ù. ÀÌ·¯ÇÑ Çö»óµéÀÇ °øÅëÀûÀÎ Á¡Àº Ä¿³Î Æ®¸® ¹ÛÀÇ Á¦ 3ÀÇ µå¶óÀ̹ö°¡ ÀÖ´Ù´Â Á¡ÀÔ´Ï´Ù. /lib/udev/devices¾È¿¡ Á¤Àû³ëµå¸¦ ¸¸µå½Ê½Ã¿À. ±×·¯¸é '''udev''' bootscript¿¡¼­ µð¹ÙÀ̽º ³ëµå°¡ /dev µð·ºÅ丮·Î º¹»çµÉ °Ì´Ï´Ù. ==== µð¹ÙÀ̽º ³×ÀÓÀÌ ÀçºÎÆÃÈÄ¿¡ ·£´ýÀ¸·Î ¹Ù²î´Â °æ¿ì ==== ÀÌ°ÍÀº UdevÀÇ ¼³°è¶§¹®¿¡ ÀϾ´Â °ÍÀε¥, uevent¿Í ¸ðµâÀ» ·£´ýÀÇ ¼ø¼­¿¡ µû¶ó º´·ÄÀûÀ¸·Î Çڵ鸵Çϱ⠶§¹®ÀÔ´Ï´Ù. ÀÌ°ÍÀº Àý´ë °íÃÄÁú ¼ö°¡ ¾ø½À´Ï´Ù. ¸¸¾à ¿©·¯ºÐÀÌ Ä¿³Î µð¹ÙÀ̽º À̸§¿¡ ÀÇÁ¸ÇÏÁö ¾Ê´Â´Ù¸é Àý´ë·Î ¾ÈÁ¤ÀûÀ¸·Î µÉ ¼ö ¾ø½À´Ï´Ù. ´ë½Å µð¹ÙÀ̽ºÀÇ ¾îÆ®¸®ºäÆ®¸¦ ÀÌ¿ëÇؼ­ ÀûÀýÇÑ ±ÔÄ¢À» ¼¼¿ö¼­ symlink¸¦ ¸¸µå´Â ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì¿¡ »ç¿ëµÇ´Â ¾îÆ®¸®ºäÆ®·Î´Â serial number³ª ´Ù¾çÇÑ *_id À¯Æ¿¸®Æ¼µéÀÇ Ãâ·Â°á°ú¸¦ ÀÌ¿ëÇÏ´Â ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù. = µð¹ÙÀ̽º¸¦ À§ÇÑ Custom Symlink ¸¸µé±â = == CD-ROM symlinks == ¿©·¯ºÐÀÌ ³ªÁß¿¡ ¼³Ä¡ÇÒ °Íµé Áß ¼ÒÇÁÆ®¿þ¾îµé Áß ¾î¶²°ÍµéÀº(¿¹¸¦ µé¾î ´Ù¾çÇÑ ¹Ìµð¾î Ç÷¹À̾îµé) /dev/cdrom°ú /dev/dvd symlink°¡ Á¸ÀçÇÏ°í ÀÖ°í À̵éÀÌ °¢°¢ CD-ROM°ú DVD-ROMÀåÄ¡¸¦ °¡¸®Å°°í ÀÖ´Ù°í °¡Á¤ÇÏ°í ÀÖÀ» °ÍÀÔ´Ï´Ù. ¶ÇÇÑ /etc/fstab¿¡ ÇØ´ç ÀåÄ¡¿¡ ´ëÇÑ symlink¸¦ °£´ÜÇÏ°Ô Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. Udev´Â °¢ ÀåÄ¡µé¿¡ ÀÇÁ¸ÇÏ´Â ÀÌ·¯ÇÑ symlinkµéÀ» »ý¼ºÇϱâ À§ÇØ ¿©·¯°¡Áö ±ÔÄ¢ ÆÄÀϵéÀ» ¸¸µé¾î³»´Â ½ºÅ©¸³Æ®¸¦ ´ã°í ÀÖ½À´Ï´Ù. ¿©±â¼­ ¿©·¯ºÐµéÀÌ ½ºÅ©¸³Æ®¸¦ »ç¿ëÇÏ°íÀÚ ÇÒ ¶§ ¼±ÅÃÇؾßÇÏ´Â µÎ°¡Áö ¸ðµå°¡ ÀÖ½À´Ï´Ù. ù¹ø°·Î ½ºÅ©¸³Æ®´Â "by-path" ¸ðµå·Î ½ÇÇàµÉ ¼ö ÀÖ½À´Ï´Ù. ÀÌ°ÍÀº º¸Åë USB³ª FireWire ÀåÄ¡µé¿¡¼­ »ç¿ëµÇ´Âµ¥ CD³ª DVD ÀåÄ¡·ÎÀÇ ¹°¸®ÀûÀÎ °æ·Î¿¡ ÀÇÁ¸ÇÏ¿© ±ÔÄ¢À» »ý¼ºÇÕ´Ï´Ù. µÎ¹ø°´Â "by-id" ¸ðµåÀÔ´Ï´Ù. ÀÌ°ÍÀº º¸Åë IDE³ª SCSI ÀåÄ¡µéÀ» À§ÇÑ °ÍÀε¥ ÀϹÝÀûÀ¸·Î °æ·Î´Â UdevÀÇ '''path_id''' ½ºÅ©¸³Æ®¿¡ ÀÇÇØ °áÁ¤µÇ°í ½Äº° ¹®ÀÚ¿­Àº ÀåÄ¡¿¡ µû¶ó '''ata_id'''³ª '''scsi_id'''¶ó´Â ÇÁ·Î±×·¥ÀÌ Çϵå¿þ¾î¸¦ Àо »ç¿ëµË´Ï´Ù. °¢ Á¢±Ù¹æ¹ý¸¶´Ù ÀåÁ¡ÀÌ ÀÖ½À´Ï´Ù. ¶§¹®¿¡ °¢ ÀåÄ¡µéÀÇ Á¾·ù¿¡ µû¶ó ÀûÀýÇÏ°Ô ¼±ÅÃÇÏ¿© »ç¿ëÇϽñ⠹ٶø´Ï´Ù. ¸¸¾à ¿©·¯ºÐÀÌ ÀåÄ¡°¡ »ðÀ﵃ ¹°¸®ÀûÀÎ °æ·Î¸¦ ¹Ì¸® ¿¹»óÇÒ ¼ö ÀÖ´Ù¸é(ÀåÄ¡°¡ »ðÀ﵃ Æ÷Æ®³ª ½½·ÔÀÇ À§Ä¡ µûÀ§¸¦ ¹Ì¸® ¿¹»óÇÑ´Ù´Â ¶æ) "by-id" ¸ðµå¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. ¿©·¯ºÐÀÌ ¼­·Î ´Ù¸¥ IDE Æ÷Æ®¿Í ȤÀº ¼­·Î ´Ù¸¥ USB ÄÁ³ØÅÍ·Î µå¶óÀ̺긦 ¿Å±â·Á°í ÇÏ´Â °æ¿ì°¡ ¿©±â¿¡ ÇØ´çµË´Ï´Ù. ¹Ý¸é¿¡ ¿©·¯ºÐÀÌ ÀåÄ¡ÀÇ ½Äº°ÀÚ°¡ º¯È­µÉ °ÍÀ» ¿¹»óÇÒ ¼ö ÀÖ´Â °æ¿ì, ¿¹¸¦µé¾î ¶È°°Àº ±âÁ¾ÀÇ ´Ù¸¥ ÀåÄ¡·Î ±âÁ¸ÀÇ °°Àº Æ÷Æ® ȤÀº ½½·Ô¿¡ ±âÁ¸ ÀåÄ¡¸¦ ´ëüÇÏ·Á°í ÇÏ´Â °æ¿ì ¿©·¯ºÐÀº "by-path" ¸ðµå¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. ¸¸¾à ¿©·¯ºÐÀÇ µå¶óÀ̺꿡¼­ ÀÌ µÎ°¡Áö Á¾·ùÀÇ °æ¿ì°¡ ¸ðµÎ ÀϾ´Ù¸é ÀÚÁÖ ÀϾ´Â °æ¿ì¿¡ ±âÃÊÇÏ¿© ¸ðµå¸¦ ¼±ÅÃÇϽʽÿÀ. '''Áß¿äÇÑ Á¡''' ¿ÜºÎ ÀåÄ¡µé(USB, CD µîµî)Àº Àý´ë·Î by-path¸¦ »ç¿ëÇؼ­´Â ¾ÈµË´Ï´Ù. ¿Ö³ÄÇÏ¸é ¿ÜºÎ Æ÷Æ®·Î »õ·Î¿î ÀåÄ¡µéÀÌ »ðÀ﵃ ¼ö Àֱ⠶§¹®¿¡ Ç×»ó ¹°¸®ÀûÀÎ °æ·Î°¡ º¯°æµË´Ï´Ù. ¸ðµç ¿ÜºÎÀûÀ¸·Î ¿¬°áµÈ ÀåÄ¡µé¿¡ ´ëÇÑ ÀÌ·¯ÇÑ ¹®Á¦´Â CD³ª DVD¿¡ Á¦ÇÑµÈ °ÍÀÌ ¾Æ´Ï¶ó Udev ±ÔÄ¢À» ¹°¸®ÀûÀÎ °æ·Î·Î ÆÇ´ÜÇÏ°Ô²û ¼³Á¤ÇÑ °æ¿ì¿¡ ¸ðµç ¿ÜºÎ ÀåÄ¡µéÀÇ °æ¿ì¿¡¼­ ¹ß»ýÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸¸¾à ¿©·¯ºÐÀÌ Udev ½ºÅ©¸³Æ®°¡ »ç¿ëÇÒ °ªµéÀ» È®ÀÎÇÏ°í ½Í´Ù¸é /sys µð·ºÅ丮¿¡¼­ CD-ROM ÀåÄ¡¿¡ ¸Â´Â µð·ºÅ丮¿¡¼­(ÀÌ °æ¿ì¿¡´Â /sys/block/hdd) ´ÙÀ½°ú °°ÀÌ ½ÇÇàÇÏ¸é µË´Ï´Ù. {{{ udevadm test /sys/block/hdd }}} Ãâ·ÂµÈ °á°ú¿¡¼­ *_id ¶ó´Â ºÎºÐµéÀ» Àß º¸½Ê½Ã¿À. ¸¸¾à ºñ¾îÀÖÁö ¾Ê´Ù¸é ¹Ù·Î À̺κеéÀÌ "by-id" ¸ðµå·Î ID_SERIAL °ªÀÌ »ç¿ëµÈ °Ì´Ï´Ù, ´Ù¸¥ °æ¿ì¶ó¸é ¾Æ¸¶ ID_MODELÀ̳ª ID_REVISIONÀÇ Á¶ÇÕÀ» »ç¿ëÇßÀ» °Ì´Ï´Ù. "by-path" ¸ðµå°¡ »ç¿ëµÇ¾ú´Ù¸é ID_PATH °ªÀÌ »ç¿ëµÇ¾ú°ÚÁÒ. ¸¸¾à¿¡ ±âº»À¸·Î »ç¿ëµÇ°í ÀÖ´Â ¸ðµå°¡ ¿©·¯ºÐÀÇ È¯°æ¿¡ ÀûÇÕÇÏÁö ¾Ê´Ù°í »ý°¢µÇ¸é /lib/udev/rules.d/75-cd-aliases-generator.rules ÆÄÀÏÀ» ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.(''mode'' ºÎºÐÀ» "by-id"³ª "by-path"·Î ¹Ù²ã¼­ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.) {{{ sed -i -e 's/"write_cd_rules"/"write_cd_rules mode"/' \ /lib/udev/rules.d/75-cd-aliases-generator.rules }}} ¿©±â¼­ ¾Ë¾ÆµÖ¾ß ÇÒ Á¡Àº ¿©·¯ºÐµéÀº È£½ºÆ®ÀÇ /dev/ µð·ºÅ丮¿¡¼­ LFS ½Ã½ºÅÛÀ¸·Î bind-mount¸¦ ÀÌÀü¿¡ ½ÇÇàÇ߱⠶§¹®¿¡ Udev ±ÔÄ¢ ÆÄÀÏ°ú symlink¸¦ µ¿½Ã¿¡ ¸¸µé ÇÊ¿ä±îÁö´Â ¾ø½À´Ï´Ù. ÇØ´ç ÀåÄ¡¿¡ ´ëÇÑ ±ÔÄ¢°ú symlinkµéÀº ¿©·¯ºÐÀÌ LFS ½Ã½ºÅÛÀ» óÀ½ ºÎÆÃÇÒ ¶§ ¸¸µé¾îÁú °Ì´Ï´Ù. ÇÏÁö¸¸ ¸¸¾à ¿©·¯ºÐÀÌ CD-ROM ÀåÄ¡·Î µÎ °³ ÀÌ»ó °¡Áö°í ÀÖ´Ù¸é °¢°¢ÀÇ symlink´Â ¼ø¼­°¡ ·£´ýÀ̱⠶§¹®¿¡ - ºÎÆö§¸¶´Ù °¡¸®Å°´Â ÀåÄ¡°¡ ¹Ù²ð ¼ö ÀÖ½À´Ï´Ù. À̸¦ ¾ÈÁ¤µÇ°Ô ÇÏ·Á¸é /etc/udev/rules.d/70-persistent-cd.rules ÆÄÀÏÀ» ºÎÆÃÈÄ¿¡ ¼öÁ¤ÇÏ¿© ¿©·¯ºÐÀÌ ¿øÇÏ´Â ´ë·Î ÀÛµ¿ÇÏ°Ô²û ¸¸µé ¼ö ÀÖ½À´Ï´Ù. == Áߺ¹µÈ ÀåÄ¡ ´Ù·ç±â == À§¿¡¼­ ¾ð±ÞÇß´ø °Íó·³ /dev µð·ºÅ丮¿¡ ³ªÅ¸³ª´Â µð¹ÙÀ̽ºµéÀÇ ¼ø¼­´Â ·£´ýÀÔ´Ï´Ù. ¿¹¸¦ µé¾î, USB web camera¿Í TV tunerÀÇ °æ¿ì¿¡ ¾î¶² ¶§´Â /dev/video0 -> camera , /dev/video1 -> tuner·Î µÇ°í ¾î¶² ¶§´Â ÀÌ µÑÀÌ ¼­·Î ¹Ù²î´Â °æ¿ìµµ ÀÖ½À´Ï´Ù. »ç¿îµå Ä«µå¿Í ³×Æ®¿öÅ© Ä«µå¸¦ Á¦¿ÜÇÑ ¸ðµç Çϵå¿þ¾îÀÇ Á¾·ù´Â udev ±ÔÄ¢À» ÀÌ¿ëÇؼ­ ÀÓÀÇÀÇ symlink¸¦ ¸¸µé¾î À¯¿¬ÇÏ°Ô ´Ù·ê ¼ö ÀÖ½À´Ï´Ù. ³×Æ®À§Å© Ä«µåÀÇ °æ¿ì¿¡´Â À§¿¡¼­ ÀϹÝÀûÀÎ ³×Æ®¿öÅ© ¼³Á¤À̶ó´Â ÆÄÆ®·Î µû·Î ´Ù·ç¾ú½À´Ï´Ù. »ç¿îµå Ä«µå¿¡ ´ëÇؼ­´Â '''BLFS'''¸¦ Âü°íÇϽʽÿÀ. ÀÌ·¯ÇÑ ¹®Á¦°¡ ÀÖ´Â ÀåÄ¡µé¿¡ ´ëÇؼ­ °¢°¢¿¡ ÇØ´çµÇ´Â µð·ºÅ丮µéÀÌ /sys/class³ª /sys/block ¿¡ ÀÖ´ÂÁö ã¾Æº¸½Ê½Ã¿À. ºñµð¿À ÀåÄ¡µéÀº ¾Æ¸¶ /sys/class/video4linux/videoX¿¡ ÀÖÀ» °ÍÀÔ´Ï´Ù. °¢°¢ÀÇ ÀåÄ¡µéÀ» ½Äº°ÇÒ ¼ö ÀÖ´Â ¾îÆ®¸®ºäÆ®¸¦ ã°íÀÚ ÇÑ´Ù¸é ´ÙÀ½°ú °°ÀÌ ½ÇÇàÇϽʽÿÀ. {{{ udevadm info -a -p /sys/class/video4linux/video0 }}} ±×¸®°í ³ª¼­ ´ÙÀ½°ú °°ÀÌ udev rules¸¦ ÀÌ¿ëÇØ symlink¸¦ ¸¸µé¾îÁÝ´Ï´Ù {{{ cat > /etc/udev/rules.d/83-duplicate_devs.rules << "EOF" # Persistent symlinks for webcam and tuner KERNEL=="video*", ATTRS{idProduct}=="1910", ATTRS{idVendor}=="0d81", \ SYMLINK+="webcam" KERNEL=="video*", ATTRS{device}=="0x036f", ATTRS{vendor}=="0x109e", \ SYMLINK+="tvtuner" EOF }}} ¿©ÀüÇÏ /dev/video0 °ú /dev/video1Àº ·£´ýÀ¸·Î °¢ ÀåÄ¡¿¡ Àû¿ëµÇÁö¸¸ À§¿¡¼­Ã³·³ ƯÁ¤ ¾îÆ®¸®ºäÆ®¸¦ »ç¿ëÇÏ¿© ±ÔÄ¢À» ¸¸µé¾îÁÖ¸é /dev/tvtuner°ú /dev/webcamÀ̶ó´Â symlink¸¦ ¸¸µé¾î¼­ À̸¦ ¸¶¿îÆ®Çϴµ¥ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. = LFS-Bootscripts-20120901 = ºôµå ½Ã°£: <= 0.1 SBU ÇÊ¿ä °ø°£: 260 KB ÆÐÅ°Áö¸¦ ¼³Ä¡ÇÕ´Ï´Ù {{{ make install }}} ¼³Ä¡µÇ´Â ½ºÅ©¸³Æ®µé: * checkfs, cleanfs, console, functions, halt, ifdown, ifup, localnet, modules, mountfs, mountkernfs, network, rc, reboot, sendsignals, setclock, static, swap, sysctl, sysklogd, template, udev, and udev_retry ¼³Ä¡µÇ´Â µð·ºÅ丮: * /etc/rc.d, /etc/init.d (symbolic link), /etc/sysconfig, /lib/services, /lib/lsb (symbolic link) = ºÎÆ®½ºÅ©¸³Æ®ÀÇ ÀÛµ¿ ¿ø¸® = Linux´Â ''run-levels''ÀÇ °³³ä¿¡ ±âÃÊÇÑ SysVinitÀ̶ó´Â µ¶Æ¯ÇÑ Æ¯Â¡À» °®°í ÀÖ½À´Ï´Ù. ÀÌ°ÍÀº ´Ù¸¥ ½Ã½ºÅÛµé°ú »ó´çÈ÷ ´Ù¸¦ ¼ö À־ ƯÁ¤ ¸®´ª½º ¹èÆ÷ÆÇ¿¡¼­ ÀÛµ¿µÈ´Ù°í Çؼ­ LFS¿¡¼­µµ Àß ÀÛµ¿µÈ´Ù°í ¸»ÇÒ ¼ö°¡ ¾ø½À´Ï´Ù. LFS´Â ÀϹÝÀûÀΠǥÁØ¿¡ ÃÖ´ëÇÑ µû¸£·Á ÇÏÁö¸¸ LFS ¸¸ÀÇ ¹æ½ÄÀ» °®°í ÀÖ½À´Ï´Ù. SysVinit(ÀÌÁ¦ºÎÅÍ °£´ÜÇÏ°Ô "init"À̶ó°í ¾ð±ÞÇÏ°Ú½À´Ï´Ù) ´Â run-level ÀÌ·ÐÀ» »ç¿ëÇÕ´Ï´Ù. ¿©±â¿¡´Â 0ºÎÅÍ 6±îÁöÀÇ run-levelÀÌ ÀÖ½À´Ï´Ù.(¿©±â¿¡ ÀÚ¼¼È÷ ¾Ë°í ½ÍÀ¸½Å ºÐÀº init(8)À» Âü°íÇϽʽÿÀ.) ÄÄÇ»ÅÍ°¡ ºÎÆÃµÇ¸é ¿©±â¿¡ °¢ run-level¿¡ ÇØ´çÇÏ´Â ÀûÀýÇÑ ÇൿµéÀ» ¼öÇàÇÕ´Ï´Ù. ±âº» run-levelÀº 3ÀÔ´Ï´Ù. ´ÙÀ½Àº °¢ ·¹º§¿¡ ´ëÇØ °£´ÜÇÏ°Ô ¼³¸íÇÑ °ÍÀÔ´Ï´Ù. 1: halt the computer(ÄÄÇ»Å͸¦ Á¾·á) 2: single-user mode(1°³ÀÇ »ç¿ëÀÚ ¸ðµå) 3: multi-user mode without networking(³×Æ®¿öÅ·À» Áö¿øÇÏÁö ¾Ê´Â ¸ÖƼ »ç¿ëÀÚ ¸ðµå) 4: multi-user mode with networking(³×Æ®¿öÅ·À» Áö¿øÇÏ´Â ¸ÖƼ »ç¿ëÀÚ ¸ðµå) 5: reserved for customization, otherwise does the same as 3(»ç¿ëÀÚ°¡ ½ÇÇàµÇµµ·Ï ¿¹¾àÇسõÀº °Íµé, ´Ù¸¥°ÍÀº level-3 °ú µ¿ÀÏÇÔ) 6: same as 4, it is usually used for GUI login(like X's '''xdm''' or KDE's '''kdm'''(level-4¿Í µ¿ÀÏÇÏÁö¸¸ GUI ·Î±×ÀÎÀ» »ç¿ëÇÔ) 7.: reboot the computer(ÄÄÇ»ÅÍ ÀçºÎÆÃ) == Sysvinit ¼³Á¤Çϱâ == Ä¿³ÎÀÌ ÃʱâÈ­µÇ´Â µ¿¾È °¡Àå ¸ÕÀú ½ÇÇàµÇ´Â °ÍÀº ±âº»ÀûÀ¸·Î '''init''' ÇÁ·Î±×·¥ÀÔ´Ï´Ù. ÀÌ ÇÁ·Î±×·¥Àº /etc/inittabÀ̶ó´Â ÃʱâÈ­ ÆÄÀÏÀ» ÀнÀ´Ï´Ù. {{{ cat > /etc/inittab << "EOF" # Begin /etc/inittab id:3:initdefault: si::sysinit:/etc/rc.d/init.d/rc S l0:0:wait:/etc/rc.d/init.d/rc 0 l1:S1:wait:/etc/rc.d/init.d/rc 1 l2:2:wait:/etc/rc.d/init.d/rc 2 l3:3:wait:/etc/rc.d/init.d/rc 3 l4:4:wait:/etc/rc.d/init.d/rc 4 l5:5:wait:/etc/rc.d/init.d/rc 5 l6:6:wait:/etc/rc.d/init.d/rc 6 ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now su:S016:once:/sbin/sulogin 1:2345:respawn:/sbin/agetty --noclear tty1 9600 2:2345:respawn:/sbin/agetty tty2 9600 3:2345:respawn:/sbin/agetty tty3 9600 4:2345:respawn:/sbin/agetty tty4 9600 5:2345:respawn:/sbin/agetty tty5 9600 6:2345:respawn:/sbin/agetty tty6 9600 # End /etc/inittab EOF }}} ÃʱâÈ­ ÆÄÀÏ¿¡ ´ëÇÑ ¼³¸íÀº inittab ¸ÇÆäÀÌÁö¿¡ ÀÖ½À´Ï´Ù. LFS ¿¡¼­´Â key command´Â '''rc'''ÀÔ´Ï´Ù. À§¿¡¼­ º¸¸é ¾Ë ¼ö ÀÖµíÀÌ '''rc'''¸¦ ÀÌ¿ëÇÏ¿© /etc/rc.d/rcsysinit.d µð·ºÅ丮¿¡ ÀÖ´Â S ¸¦ ½ÇÇà½Ãŵ´Ï´Ù.(si::sysinit:/etc/rc.d/init.d/rc S ºÎºÐ) µÚµû¶ó¼­ /etc/rc.d/rc?.d µð·ºÅ丮¿¡ ÀÖ´Â S¿Í ÇÔ²² ½ºÅ©¸³Æ®¸¦ ½ÇÇà½Ãŵ´Ï´Ù. ¿©±â¼­ »ç¿ëµÈ ¹°À½Æ÷´Â initdefault °ª¿¡ ÀÇÇØ °áÁ¤µÈ °ªÀ» ¸»ÇÕ´Ï´Ù. ÆíÀÇ¿¡ µû¶ó '''rc''' ½ºÅ©¸³Æ®ᅟ´Â /lib/lsb/init-functions ¿£¿¡ ÀÖ´Â ÇÔ¼ö ¶óÀ̺귯¸®¸¦ ÀоîµéÀÔ´Ï´Ù. ÀÌ ¶óÀ̺귯¸®´Â ¶ÇÇÑ /etc/sysconfig/rc.site¶ó´Â ºÎ°¡ÀûÀÎ ¼³Á¤ ÆÄÀÏÀ» ÀнÀ´Ï´Ù. ´ÙÀ½ Àý¿¡¼­ ¼³¸íÇÏ°ÚÁö¸¸ ¸ðµç ½Ã½ºÅÛ ¼³Á¤ ÆÄÀÏÀÇ ÆĶó¹ÌÅ͵éÀº ÀÌ ÇϳªÀÇ ÆÄÀÏ¿¡ ´ë½Å Ãß°¡µÉ ¼ö ÀÖ½À´Ï´Ù. µð¹ö±ëÀÇ ÆíÀǸ¦ À§ÇØ ÇÔ¼ö ½ºÅ©¸³Æ®µéÀÇ ¸ðµç Ãâ·ÂÀº /run/var/bootlog¿¡ ÀúÀåÇÕ´Ï´Ù. ÇÏÁö¸¸ /run µð·ºÅ丮°¡ tmpfsÀ̱⠶§¹®¿¡ ÀÌ ÆÄÀÏÀº boot ¶§¸¶´Ù ¹Ù²ò´Ï´Ù. Á» ´õ ¿µ±¸ÀûÀÎ(?) ºÎÆ®¶§¸¶´Ù °è¼ÓÇؼ­ Ãß°¡µÇ´Â ·Î±×ÆÄÀÏ¿¡¼­ ·Î±×¸¦ È®ÀÎÇÏ°í ½Í´Ù¸é /var/log/boot.log ÆÄÀÏÀÇ ³¡ºÎºÐÀ» »ìÆ캸½Ê½Ã¿À. == Run Level ¹Ù²Ù±â == run-levelÀº '''init '''À¸·Î ¹Ù²Ü¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î ÄÄÇ»Å͸¦ ÀçºÎÆÃÇϱâ À§ÇØ '''init 6'''À» »ç¿ëÀÚ°¡ '''reboot''' ¸í·É¾î ´ë½Å »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. °°Àº ¿ø¸®·Î '''init 0'''À» ÇÏ°Ô µÇ¸é '''halt''' ¸í·É¾î ´ë½Å »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. /etc/rc.d ¹Ø¿¡´Â rc?.d(?¿¡´Â run-levelÀÌ µé¾î°¨)¿Í rcsysinit.d°°Àº µð·ºÅ丮¿Í ¸ðµç symbolic ¸µÅ©µéÀÌ µé¾îÀÖ½À´Ï´Ù. ¾î¶²°ÍÀº K·Î ½ÃÀÛÇÏ´Â °Íµµ ÀÖ°í ´Ù¸¥ ¾î¶²°ÍÀº S·Î ½ÃÀ۵Ǵ °Í, ȤÀº ÀÌ µÑÀ» ¸ðµÎ °¡Áö°í ÀÖ´Â °ÍµéÀÌ ÀÖ½À´Ï´Ù. K´Â ¼­ºñ½º¸¦ Kill- ¸ØÃß´Â °ÍÀ» ¶æÇÏ°í S´Â ½ÃÀÛÇ϶ó´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. ½ºÅ©¸³Æ®°¡ ½ÇÇàµÇ´Â ¼ø¼­¸¦ À§ÇØ 00ºÎÅÍ 99±îÁöÀÇ ¼ýÀÚ¸¦ »ç¿ëÇÕ´Ï´Ù. '''init'''ÀÌ ´Ù¸¥ run-level·Î ½ºÀ§Ä¡ÇÏ¸é °¢ run-level¿¡ ¸Â´Â ¼­ºñ½ºµéÀÌ ½ÃÀ۵ǰųª ¸ØÃä´Ï´Ù. ÁøÂ¥ ½ºÅ©¸³Æ®´Â /etc/rc.d/init.d ¾È¿¡ ÀÖ½À´Ï´Ù. À̰͵éÀÌ ½ÇÁ¦ ¿ªÇÒÀÌ°í symlinkµéÀÌ À̰͵éÀ» Æ÷ÀÎÆÃÇÏ°í ÀÖ½À´Ï´Ù. K ¸µÅ©¿Í S ¸µÅ©¶ÇÇÑ /etc/rc.d/init.d¿¡¼­ÀÇ °°Àº ½ºÅ©¸³Æ®¸¦ °¡¸®Å°°í ÀÖ½À´Ï´Ù. ÀÌ°ÍÀº ½ºÅ©¸³Æ®¿¡ ''start, stop, restart, reload, status'' °°Àº ´Ù¸¥ ÆÄŸ¹ÌÅ͵éÀÌ Àü´ÞµÉ ¼ö Àֱ⠶§¹®ÀÔ´Ï´Ù. ¸¸¾à K ¸µÅ©¸¦ ¸¸³ª¸é ½ºÅ©¸³Æ®´Â ''stop'' argument°¡ ½ÇÇàµÉ °ÍÀÌ°í S ¸µÅ©¸¦ ¸¸³ª¸é ''start'' argument·Î ½ÇÇàµÉ °Ì´Ï´Ù. ¿©±â ¼³¸í¿¡¼­ ºü¶ß¸° °ÍÀÌ ÇÑ°¡Áö ÀÖ½À´Ï´Ù. rc0.d¿Í rc6.d µð·ºÅ丮 ¾È¿¡¼­ S·Î ½ÃÀÛÇÏ´Â ¸µÅ©´Â ¾Æ¹«°Íµµ ½ÇÇàÇÏÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù. ¿Ö³ÄÇϸé S·Î ½ÃÀÛÇÏ¿´±â ¶§¹®¿¡ ''stop'' ÆĶó¹ÌÅÍ°¡ ÀüÇØÁö±â ¶§¹®ÀÔ´Ï´Ù. ±×¸®°í run-level¶ÇÇÑ ÀçºÎÆõǰųª ½Ã½ºÅÛÀ» Á¾·áÇÏ·Á´Â °ÍÀ̱⠶§¹®¿¡ ½ÇÇàµÇ´Â °ÍÀº ¾Æ¹«°Íµµ ¾øÀÌ ÀüºÎ ÁߴܵǷÁÇÒ °ÍÀÔ´Ï´Ù. '''start''' ¼­ºñ½º¸¦ ½ÇÇàÇÕ´Ï´Ù. '''stop''' ¼­ºñ½º¸¦ ¸ØÃä´Ï´Ù. '''restart''' ¼­ºñ½º¸¦ ¸ØÃß¾ú´Ù°¡ ´Ù½Ã ½ÇÇàÇÕ´Ï´Ù. '''reload''' ¼­ºñ½ºÀÇ ¼³Á¤ÆÄÀÏÀÌ ¾÷µ¥ÀÌÆ®µÈ °æ¿ì À̸¦ À§ÇØ ´Ù½Ã Àç½ÃÀÛÇÒ ÇÊ¿ä ¾øÀÌ ¼³Á¤ÆÄÀϸ¸ ´Ù½Ã ºÒ·¯¿Ã ¼ö ÀÖ½À´Ï´Ù. '''status''' ¼­ºñ½º°¡ ½ÇÇàÁßÀÏ °æ¿ì ÇØ´ç ÇÁ·Î¼¼½ºID¸¦ Ãâ·ÂÇÕ´Ï´Ù. = ½Ã½ºÅÛ È£½ºÆ®À̸§ ¼³Á¤Çϱâ = '''localnet'''½ºÅ©¸³Æ®ÀÇ ÀÛ¾÷ Áß Çϳª·Î½á ½Ã½ºÅÛÀÇ È£½ºÆ®À̸§À» ¼³Á¤ÇÕ´Ï´Ù. ÀÌ°ÍÀº /etc/sysconfig/network ÆÄÀÏÀ» ¼öÁ¤ÇÏ¿© ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. /etc/sysconfig/network ÆÄÀÏÀ» ¸¸µé¾î ´ÙÀ½°ú °°ÀÌ È£½ºÆ®À̸§À» ¸¸µé¾îÁÝ´Ï´Ù: {{{ echo "HOSTNAME=" > /etc/sysconfig/network }}} ´ë½Å¿¡ ÀûÀýÇÑ È£½ºÆ®À̸§À» »ç¿ëÇϽʽÿÀ. ´ë½Å Fully Qualified Domain Name(FQDN)Àº ¿©±â¿¡ »ç¿ëÇÏÁö ¸¶½Ê½Ã¿À. FQDNÀº /etc/hosts ÆÄÀÏ¿¡ ÀÔ·ÂÇÒ °ÍÀÔ´Ï´Ù. FQDNÀ̶õ? ¿¹¸¦À»¾î ktword°¡ È£½ºÆ® À̸§ÀÌ°í kt.co.krÀÌ µµ¸ÞÀÎ À̸§À̶ó¸é FQDNÀº ktword.kt.co.krÀÌ µË´Ï´Ù. * Âü°í: [http://www.ktword.co.kr/abbr_view.php?m_temp1=2194&m_search= http://www.ktword.co.kr/abbr_view.php?m_temp1=2194&m_search=] = setclock ½ºÅ©¸³Æ® ¼³Á¤Çϱâ = '''setclock'''½ºÅ©¸³Æ®´Â Çϵå¿þ¾î Ŭ·°À¸·ÎºÎÅÍ ½Ã°£À» ÀнÀ´Ï´Ù. ¶ÇÇÑ ÀÌ°ÍÀº BIOS ¶Ç´Â CMOS(Complementary Metal Oxide Semiconductor) Ŭ·°À̶ó°íµµ ¾Ë·ÁÁ® ÀÖ½À´Ï´Ù. ¸¸¾à Çϵå¿þ¾î ½Ã°è°¡ UTC¸¦ ¼³Á¤ÀÌ µÇ¾î ÀÖ´Ù¸é ½ºÅ©¸³Æ®´Â Çϵå¿þ¾î Ŭ·°ÀÇ ½Ã°£À» /etc/localtime ÆÄÀÏÀ» ÀÌ¿ëÇØ Áö¿ª ½Ã°£À¸·Î ¹Ù²ß´Ï´Ù. ÇØ´ç Áö¿ª(timezone)Àº »ç¿ëÀÚ°¡ Á¤ÀÇÇÕ´Ï´Ù. ¸¸¾à ½Ã½ºÅÛ¿¡¼­ ÀÌ·¯ÇÑ ÆÄÀϵéÀÌ ¾Æ¹«·± °Íµµ º¸ÀÌÁö ¾Ê´Â´Ù¸é ¼öµ¿À¸·Î ¼³Á¤ÇØÁÖ¾î¾ß ÇÕ´Ï´Ù. '''setclock'''Àº udev¸¦ ÅëÇؼ­ ½ÇÇàµÇ´Âµ¥ Ä¿³ÎÀÌ ºÎÆ®½Ã¿¡ Çϵå¿þ¾î¸¦ °¨ÁöÇÒ ¶§ ½ÇÇàµË´Ï´Ù. ÀÌ°ÍÀº stop ÆĶó¹ÌÅÍ·Î ½Ã½ºÅÛÀÇ ½Ã°£À» CMOS clock¿¡ ÀúÀåÇϱâ À§ÇØ ¼öµ¿À¸·Î ½ÇÇàµÉ ¼ö ÀÖ½À´Ï´Ù. ¸¸¾à ¿©·¯ºÐÀÇ Çϵå¿þ¾î clockÀÌ UTC·Î ¼³Á¤µÇ¾îÀÖ´ÂÁö ±â¾ïÇÏÁö ¸øÇÏ°Ú´Ù¸é '''hwclock --localtime --show''' ¸í·É¾î¸¦ ÅëÇؼ­ ¾Ë ¼ö ÀÖ½À´Ï´Ù. ÀÌ°ÍÀº Çϵå¿þ¾î clock¿¡ µû¸¥ ÇöÀçÀÇ ½Ã°£À» ³ªÅ¸³À´Ï´Ù. ¸¸¾à ÀÌ ½Ã°£ÀÌ ¿©·¯ºÐÀÌ º¸´Â°Í°ú ÀÏÄ¡ÇÑ´Ù¸é Çϵå¿þ¾î clockÀº local timeÀ¸·Î ¼³Á¤µÈ °ÍÀÔ´Ï´Ù. ¸¸¾à local timeÀÌ ¾Æ´Ï¶ó¸é UTC ·Î ¹Ù²Ù½Ê½Ã¿À. ÀÌ¿¡ ÀûÀýÇÏ°Ô timezoneÀ» ¼³Á¤ÇÏ¿© '''hwclock'''À¸·Î Ãâ·ÂµÇ´Â °á°ú¹°À» ¿Ã¹Ù¸£°Ô ¹Ù²Ü¼ö ÀÖ½À´Ï´Ù. /etc/sysconfig/clockÀ» ´ÙÀ½°ú °°ÀÌ ¸¸µé¾îÁÝ´Ï´Ù. {{{ cat > /etc/sysconfig/clock << "EOF" # Begin /etc/sysconfig/clock UTC=1 # Set this to any options you might need to give to hwclock, # such as machine hardware clock type for Alphas. CLOCKPARAMS= # End /etc/sysconfig/clock EOF }}} ¿©±â¿¡ ´ëÇÑ µµ¿ò¸»À» º¸°í ½Í´Ù¸é ´ÙÀ½ ¸µÅ©¸¦ Âü°íÇϼ¼¿ä: [http://www.linuxfromscratch.org/hints/downloads/files/time.txt http://www.linuxfromscratch.org/hints/downloads/files/time.txt] = ¸®´ª½º ÄÜ¼Ö ¼³Á¤Çϱâ = À̹ø Àý¿¡¼­´Â ¾î¶»°Ô '''console''' bootscript¿¡¼­ Å°º¸µå ¸ÊÀ̳ª ÄÜ¼Ö ÆùÆ®, Ä¿³Î ·Î±× ·¹º§À» ¼³Á¤ÇÏ´ÂÁö¿¡ ´ëÇؼ­ ¾Ë¾Æº¸°Ú½À´Ï´Ù. ¸¸¾à ASCII ¹®ÀÚ¸¦ »ç¿ëÇÏÁö ¾Ê´Â °æ¿ì°¡ ¾Æ´Ï°Å³ª U.S Å°º¸µå¸¦ »ç¿ëÇÏ´Â °æ¿ì´Â ÀÌ ÀýÀÇ ¸¹Àº ºÎºÐ¿¡¼­ ±×³É ³Ñ¾î°¥ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ¿©±â¼­ ´Ù·ê ¼³Á¤ÆÄÀÏ ¾øÀÌ´Â '''console''' bootscript´Â ¾Æ¹«°Íµµ ½ÇÇàÇÏÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù. '''console''' ½ºÅ©¸³Æ®´Â /etc/sys/config/console ÆÄÀϷκÎÅÍ ¼³Á¤ Á¤º¸µéÀ» ÀоîµéÀÔ´Ï´Ù. ¾î¶² keymap°ú È­¸é¿¡ ÆùÆ®¸¦ »ç¿ëÇÒ°ÇÁö¿¡ ´ëÇØ °áÁ¤ÇÕ´Ï´Ù. ÀÌ ºÎºÐ¿¡¼­ ¾ð¾î¿¡ µû¸¥ ¼³Á¤ ¹æ¹ýÀº ´ÙÀ½ ¸µÅ©¸¦ Âü°íÇϽʽÿÀ: [http://www.tldp.org/HOWTO/HOWTO-INDEX/other-lang.html http://www.tldp.org/HOWTO/HOWTO-INDEX/other-lang.html] ¸¸ÀÏ ¿©ÀüÈ÷ À̵é Á¤º¸°¡ ºÒÈ®½ÇÇÏ´Ù¸é /lib/kbd µð·ºÅ丮¿¡¼­ À¯È¿ÇÑ keymapµé°ú ÆùÆ®µéÀ» È®ÀÎÇϽʽÿÀ. /etc/sysconfig/console ÆÄÀÏÀº ¹Ýµå½Ã VARIABLE="value"¶ó´Â Çü½ÄÀ¸·Î ´ÙÀ½ ¼³¸íÇÏ´Â °ÍµéÀÌ Æ÷ÇԵǾî ÀÖ¾î¾ß ÇÕ´Ï´Ù: * '''LOGLEVEL''' ÀÌ º¯¼ö´Â dmesg¿¡ ÀÇÇØ ÄַܼΠº¸³»Áö´Â Ä¿³Î ¸Þ¼¼ÁöÀÇ ·Î±× ·¹º§À» ¼³Á¤ÇÕ´Ï´Ù. "1"ºÎÅÍ "8"±îÁö °¡´ÉÇÏ°í ±âº»°ªÀº "7"ÀÔ´Ï´Ù. * '''KEYMAP''' ÀÌ º¯¼ö´Â '''loadkeys''' ÇÁ·Î±×·¥À» À§ÇÑ argument·Î "es"°°ÀÌ keymapÀÇ À̸§ÀÔ´Ï´Ù. ¸¸¾à º¯¼ö°¡ ¼³Á¤µÇ¾îÀÖÁö ¾Ê´Ù¸é bootscript´Â '''loadkeys'''ÇÁ·Î±×·¥À» ½ÇÇàÇÏÁö ¾Ê°í ±âº» Ä¿³Î Å°¸ÊÀ» »ç¿ëÇÒ °Ì´Ï´Ù. * '''KEYMAP_CORRECTIONS''' ÀÌ º¯¼ö´Â ¾ÆÁÖ µå¹°°Ô »ç¿ëµÇÁö¸¸ '''loadkeys''' ÇÁ·Î±×·¥¿¡¼­ second callÀ» À§ÇØ »ç¿ëµÇ´Â argumentÀÔ´Ï´Ù. ¸¸¾à ÁöÁ¤ÇÑ keymapÀÌ ¿ÏÀüÇÏÁö ¸øÇϰųª ÇØ´ç keymap¿¡ ´ëÇØ ¾à°£¾¿ÀÇ ¼öÁ¤À» Çϱâ À§ÇØ ¼³Á¤µÇ´Â °ªÀÔ´Ï´Ù. * '''FONT''' '''setfont''' ÇÁ·Î±×·¥À» À§ÇÑ argumentÀÔ´Ï´Ù. º¸Åë "-m"°ú ÇÔ²² ÆùÆ® À̸§°ú ¾îÇø®ÄÉÀ̼ǿ¡¼­ ºÒ·¯¿Ã character mapÀ» Æ÷ÇÔÇÕ´Ï´Ù. ¿¹¸¦µé¾î "lat1-16" ÆùÆ®´Â "8859-1" ¾îÇø®ÄÉÀÌ¼Ç character map(ÀÌ°Ç ¹Ì±¹ÀÏ °æ¿ì¿¡ ÇØ´çÇÏ´Â ÆùÆ® ¼³Á¤ÀÇ ¿¹ÀÔ´Ï´Ù)°ú ÇÔ²² »ç¿ëµÇ¾î "lat1-16 -m 8859-1" °ú °°ÀÌ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. UTF-8ÀÎ °æ¿ì´Â Ä¿³ÎÀÌ 8ºñƮ¥¸® key code¸¦ À§ÇØ ¾îÇø®ÄÉÀÌ¼Ç character mapÀ» »ç¿ëÇϱ⠶§¹®¿¡ µû·Î -m ÆĶó¹ÌÅ͸¦ »ç¿ëÇÏ¿© keymapÀ» »ç¿ëÇÒ ÇÊ¿ä ¾øÀÌ utf-8À̶ó°í¸¸ ÇØÁ־ µË´Ï´Ù. * '''UNICODE''' '1'·Î ¼³Á¤Çϸé "yes" ȤÀº "true"°ªÀÌ µË´Ï´Ù. * '''LEGACY_CHARSET''' ¸¹Àº Å°º¸µå ·¹À̾ƿô¿¡¼­ Unicode Å°¸ÊÀ» À§ÇÑ °ÍÀÌ ¾ø½À´Ï´Ù. ¶§¹®¿¡ ÀÌ °ªÀ» ¼³Á¤ÇÏ°Ô µÇ¸é '''console''' bootscript´Â UTF-8·ÎÀÇ À¯È¿ÇÑ keymapÀ¸·Î º¯È¯À» ÇÏ·ÁÇÒ °ÍÀÔ´Ï´Ù. = sysklogd ½ºÅ©¸³Æ® ¼³Á¤Çϱâ = sysklogd ½ºÅ©¸³Æ®´Â '''syslogd''' ÇÁ·Î±×·¥À» -m 0 ¿É¼Ç°ú ÇÔ²² ºÒ·¯¿É´Ï´Ù. ÀÌ ¿É¼ÇÀº ÁÖ±âÀûÀ¸·Î 20ºÐ¸¶´Ù '''syslogd'''°¡ ·Î±×ÆÄÀÏ¿¡ timestampÇÏ´Â ±â´ÉÀ» ²ü´Ï´Ù. ¸¸¾à ÀÌ·¯ÇÑ ±â´ÉÀ» ²ô±â ½È´Ù¸é /etc/sysconfig/rc.siteÆÄÀÏÀ» ¼­Á¤ÇÏ¿© SYSKLOGD_PARMS º¯¼ö¸¦ ¿øÇÏ´Â °ªÀ¸·Î Á¤ÀÇÇϽʽÿÀ. ¿¹¸¦ µé¾î ¸ðµç ÆĶó¹ÌÅ͸¦ Áö¿ì¸é ÇØ´ç °ªÀº null°ªÀÌ µË´Ï´Ù. ´õ ¸¹Àº ¿É¼Ç¿¡ ´ëÇØ ¾Ë°í ½ÍÀ¸½Ã¸é '''man syslogd'''¸¦ Âü°íÇϽʽÿÀ. = rc.site ÆÄÀÏ = /etc/sysconfig/rc.siteÆÄÀÏÀº °¢ bootscript¸¦ ÀÚµ¿ÀûÀ¸·Î ¼³Á¤ÇÕ´Ï´Ù. ÀÌ°ÍÀº /etc/sysconfig/ µð·ºÅ丮 ¾È¿¡ ÀÖ´Â hostname, console, clockµé¿¡ ƯÁ¤ º¯¼ö¸¦ ´ë½Å ¼³Á¤ÇÕ´Ï´Ù. ¸¸¾à rc.site¿Í ÇØ´ç º¯¼öµé¿¡ ´ëÇÑ ÆÄÀÏÀÌ µû·Î ÀÖ´Â °æ¿ì¿¡´Â rc.siteº¸´Ù °¢ ÆÄÀϵéÀÇ ¼³Á¤ÀÌ ¿ì¼±±ÇÀ» °®°Ô µË´Ï´Ù. rc.site´Â ºÎÆ® ÇÁ·Î¼¼½º¿¡¼­ »ç¿ëµÉ ¼ö ÀÖ´Â ÆĶó¹ÌÅ͵éÀ» Æ÷ÇÔÇÏ°í ÀÖ½À´Ï´Ù. IPROMPT º¯¼ö´Â bootscript¸¦ ½ÇÇàÇϸ鼭 ¼±ÅÃÀÌ °¡´ÉÇÕ´Ï´Ù. ´Ù¸¥ ¿É¼ÇµéÀº ÆÄÀÏÀÇ commentÇü½ÄÀ¸·Î ¼³¸íµÇ¾î ÀÖ½À´Ï´Ù. ´ÙÀ½Àº default ¹öÀüÀÇ rc.siteÆÄÀÏÀÔ´Ï´Ù {{{ # rc.site # Optional parameters for boot scripts. # Distro Information # These values, if specified here, override the defaults #DISTRO="Linux From Scratch" # The distro name #DISTRO_CONTACT="lfs-dev@linuxfromscratch.org" # Bug report address #DISTRO_MINI="LFS" # Short name used in filenames for distro config # Define custom colors used in messages printed to the screen # Please consult `man console_codes` for more information # under the "ECMA-48 Set Graphics Rendition" section # # Warning: when switching from a 8bit to a 9bit font, # the linux console will reinterpret the bold (1;) to # the top 256 glyphs of the 9bit font. This does # not affect framebuffer consoles # These values, if specified here, override the defaults #BRACKET="\\033[1;34m" # Blue #FAILURE="\\033[1;31m" # Red #INFO="\\033[1;36m" # Cyan #NORMAL="\\033[0;39m" # Grey #SUCCESS="\\033[1;32m" # Green #WARNING="\\033[1;33m" # Yellow # Use a colored prefix # These values, if specified here, override the defaults #BMPREFIX=" " #SUCCESS_PREFIX="${SUCCESS} * ${NORMAL}" #FAILURE_PREFIX="${FAILURE}*****${NORMAL}" #WARNING_PREFIX="${WARNING} *** ${NORMAL}" # Interactive startup #IPROMPT="yes" # Whether to display the interactive boot prompt #itime="3" # The amount of time (in seconds) to display the prompt # The total length of the distro welcome string, without escape codes #wlen=$(echo "Welcome to ${DISTRO}" | wc -c ) #welcome_message="Welcome to ${INFO}${DISTRO}${NORMAL}" # The total length of the interactive string, without escape codes #ilen=$(echo "Press 'I' to enter interactive startup" | wc -c ) #i_message="Press '${FAILURE}I${NORMAL}' to enter interactive startup" # Set scripts to skip the file system check on reboot #FASTBOOT=yes # Skip reading from the console #HEADLESS=yes # Skip cleaning /tmp #SKIPTMPCLEAN=yes # For setclock #UTC=1 #CLOCKPARAMS= # For consolelog #LOGLEVEL=5 # For network #HOSTNAME=mylfs # Delay between TERM and KILL signals at shutdown #KILLDELAY=3 # Optional sysklogd parameters #SYSKLOGD_PARMS="-m 0" # Console parameters #UNICODE=1 #KEYMAP="de-latin1" #KEYMAP_CORRECTIONS="euro2" #FONT="lat0-16 -m 8859-15" #LEGACY_CHARSET= }}} = The Bash Shell Startup Files = '''/bin/bash''' ¼Ð ÇÁ·Î±×·¥Àº ½ÇÇàµÉ ¶§ ¼Ð ¾ÈÀÇ È¯°æÀ» ¸¸µå´Â µ¥ startup ÆÄÀϵéÀÇ Ä÷º¼ÇÀ» »ç¿ëÇÕ´Ï´Ù. °¢ ÆÄÀϵéÀº /etc ¾È¿¡ Àü¹ÝÀûÀÎ ¼³Á¤ÆÄÀÏÀÌ ÀÖ°í home µð·ºÅ丮¿¡ °°Àº ÆÄÀÏÀÌ ÀÖ´Â °æ¿ì /etc ¾ÈÀÇ Àü¹ÝÀûÀÎ ¼³Á¤À» Ȩ µð·ºÅ丮ÀÇ ¼³Á¤ÀÌ ´ë½ÅÇÕ´Ï´Ù. shell¿¡´Â login shell, non-login shell, non-interactive shellÀÌ Àִµ¥ login shell('''/bin/login''')ÀÌ /etc/passwd ÆÄÀÏÀ» Àо ¼º°øÀûÀ¸·Î ·Î±×ÀÎÀ» ÇÕ´Ï´Ù. non-login shellÀº Ä¿¸Çµå ¶óÀÎÀ» ½ÃÀÛÇϴ°ÍÀÌ°í non-interactive shellÀº »ç¿ëÀÚÀÇ ÀÔ·ÂÀ» ±â´Ù¸®Áö ¾Ê±â ¶§¹®¿¡ ½ºÅ©¸³Æ®¸¦ ÁøÇàÇϴµ¥ »ç¿ëµË´Ï´Ù. ¿©±â¿¡ ´õ ÀÚ¼¼ÇÑ ¼³¸íÀ» ¿øÇϽøé '''info bash'''¿¡¼­ ''Bash Startup Files and Interactive Shells'' ºÎºÐÀ» Âü°íÇϼ¼¿ä. /etc/profile°ú ~/.bash_profileÀº interactive login shellÀÌ ½ÇÇàµÇ¾úÀ»¶§ ºÒ·¯¿À´Â ÆÄÀÏÀÔ´Ï´Ù. /etc/profile ÆÄÀÏÀº ¸î¸îÀÇ È¯°æº¯¼öµéÀ» ºÒ·¯¿À±â À§ÇØ ¼³Á¤ÇÏ´Â °ÍÀÔ´Ï´Ù. ÇØ´ç º¯¼öµéÀ» ¿Ã¹Ù¸£°Ô ¼³Á¤Çϸé - * ¿©·¯ºÐÀÇ ¾ð¾î¿¡ ¸Â°Ô ÇÁ·Î±×·¥ÀÇ Ãâ·Â°á°ú¸¦ º¯È¯ÇÕ´Ï´Ù. * '''bash'''°¡ »ç¿ëÇÏ´Â ÀûÀýÇÑ ·ÎÄÉÀÏÀ» ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. * ³ª¶ó¸¦ ¾ËÆĺª¼øÀ¸·Î Á¤·ÄÇÒ ¼ö ÀÖ½À´Ï´Ù. * ±âº» paper size¸¦ ¼öÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. * ³¯Â¥, ½Ã°£, ÅëÈ­¿¡ »ç¿ëµÇ´Â Çü½ÄÀ» Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¾Æ·¡¿¡ ³ª¿À´Â À» ¿©·¯ºÐÀÌ ¿øÇÏ´Â ¾ð¾î(e.g. "ko")·Î ¹Ù²Ù½Ã°í ´Â "KR"°°Àº ÀûÀýÇÑ ³ª¶óº¯ ÄÚµå·Î ¹Ù²Ù½Ê½Ã¿À. Àº ¿©·¯ºÐÀÌ ¼±ÅÃÇÑ ·ÎÄÉÀÏ·Î ±âº» character mapÀ» ¹Ù²Ù´Â °ÍÀÔ´Ï´Ù.(euckr À̳ª utf.8À» »ç¿ëÇÏ½Ã¸é µË´Ï´Ù) Glibc¿¡ ÀÇÇØ Áö¿øµÇ´Â ·ÎÄÉÀÏ ¸ñ·ÏÀ» º¸·Á¸é ´ÙÀ½°ú °°ÀÌ ½ÇÇàÇϽʽÿÀ: {{{ locale -a }}} /etc/profile ÆÄÀÏ¿¡ ¿©·¯ºÐÀÌ ¼±È£ÇÏ´Â ·ÎÄÉÀÏ·Î ¼³Á¤ÇϽʽÿÀ: {{{ cat > /etc/profile << "EOF" # Begin /etc/profile export LANG=_.<@modifiers> # End /etc/profile EOF }}} = /etc/inputrc ÆÄÀÏ »ý¼ºÇϱâ = input rc ÆÄÀÏÀº ƯÁ¤ »óȲÀ» À§ÇØ Å°º¸µå ¸ÅÇÎÀ» Á¶Á¤ÇÏ´Â ÆÄÀÏÀÔ´Ï´Ù. ÀÌ ÆÄÀÏÀº Readline¿¡ ÀÇÇØ »ç¿ëµË´Ï´Ù. ´ëºÎºÐÀÇ »ç¶÷µéÀÌ Å°º¸µå ¸ÅÇÎ(´ÜÃàÅ°°°Àº °Í)À» ÇÊ¿ä·Î ÇÏÁö ¾Ê½À´Ï´Ù. ¸¸ÀÏ ¿©·¯ºÐÀÌ ±âº» ¸ÅÇÎÀ» ¹Ù²Ù°í ½Í°Å³ª »õ·Î¿î °ÍÀ» ¸¸µé°í ½Í´Ù¸é .inputrc ÆÄÀÏÀ» Ȩ µð·ºÅ丮¿¡ ¸¸µé¾î ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ Á¤º¸´Â '''info bash'''³ª '''info readline'''À» »ìÆ캸½Ã±â ¹Ù¶ø´Ï´Ù. ´ÙÀ½Àº ÀϹÝÀûÀÎ inputrc ÆÄÀÏÀÔ´Ï´Ù. ´ÙÀ½°ú °°ÀÌ »õ·Î¿î ÆÄÀÏÀ» Çϳª ¸¸µé¾îÁÝ´Ï´Ù. {{{ cat > /etc/inputrc << "EOF" # Begin /etc/inputrc # Modified by Chris Lynn # Allow the command prompt to wrap to the next line set horizontal-scroll-mode Off # Enable 8bit input set meta-flag On set input-meta On # Turns off 8th bit stripping set convert-meta Off # Keep the 8th bit for display set output-meta On # none, visible or audible set bell-style none # All of the following map the escape sequence of the value # contained in the 1st argument to the readline specific functions "\eOd": backward-word "\eOc": forward-word # for linux console "\e[1~": beginning-of-line "\e[4~": end-of-line "\e[5~": beginning-of-history "\e[6~": end-of-history "\e[3~": delete-char "\e[2~": quoted-insert # for xterm "\eOH": beginning-of-line "\eOF": end-of-line # for Konsole "\e[H": beginning-of-line "\e[F": end-of-line # End /etc/inputrc EOF }}}