DVD Playing HOWTO ¹ø¿ª:2000³â5¿ù28ÀÏ Nathan Rowlan, nkr@helo.org v0.1.7 19 May 2000 ÇѴɱÕ(nkhahn@yahoo.com) ¸®´ª½º¿¡¼­ DVD ¿µÈ­ ŸÀÌƲÀ» »ó¿µÇÏ´Â ¹æ¹ý¿¡ ´ëÇÑ ¼³¸íÀ» Æí¾ÈÇÏ°Ô µû¶óÇϱ⠹ٶõ´Ù. ______________________________________________________________________ ¸ñÂ÷ 1. ¼Ò°³AID CDATA ¼Ò°³(LABEL)LABEL 1.1 ¸ñÀû 1.2 ¹®¼­ ÃֽŠ¹öÁ¯µé 1.3 ÀúÀ۱ǰú µî·Ï»óÇ¥µé 1.4 °¨»çÀÇ ¸» 1.5 ¹ø¿ª ¹®¼­ 2. ¿ä±¸»çÇ×AID CDATA ¿ä±¸»çÇ×(LABEL)LABEL 3. ÆÄÀϵéAID CDATA ÆÄÀϵé(LABEL)LABEL 4. ¼³Ä¡AID CDATA ¼³Ä¡(LABEL)LABEL 4.1 Ä¿³Î 4.2 LiViD À¯Æ¿¸®Æ¼µé 5. Àç»ýÇϱâAID CDATA Àç»ýÇϱâ(LABEL)LABEL 6. ±× ¹Û¿¡AID CDATA ±× ¹Û¿¡(LABEL)LABEL 6.1 MTRR ¼³Á¤Çϱâ 7. ¹®Á¦Á¡µéAID CDATA ¹®Á¦Á¡µé(LABEL)LABEL 7.1 ½ÇÇà ¿À·ùµéAID CDATA ½ÇÇà ¿À·ùµé(LABEL)LABEL 7.1.1 Illegal Instruction Error 7.2 ÄÄÆÄÀÏ ¿À·ùµéAID CDATA ÄÄÆÄÀÏ ¿À·ùµé(LABEL)LABEL 7.2.1 `dvd_struct' undeclared... 7.2.2 can't determine absolute dir of '../../../../src/plugin/codec/mpeg2dec/.libs' 7.3 ¾ÈµÇ´Â ±â´ÉµéAID CDATA ¾ÈµÇ´Â ±â´Éµé(LABEL)LABEL 7.4 ±×¹ÛÀÇ ¿À·ùµéAID CDATA ±×¹ÛÀÇ ¿À·ùµé(LABEL)LABEL 8. ÇÒ ÀϵéAID CDATA ÇÒ Àϵé(LABEL)LABEL ______________________________________________________________________ 1. ¼Ò°³ 1.1. ¸ñÀû ÀÌ ¹®¼­ÀÇ ¸ñÀûÀº ¸®´ª½º¿¡¼­ DVD ¿µÈ­ ŸÀÌƲÀ» »ó¿µÇÏ´Â ¹æ¹ýÀ» ´Ü°èº°·Î ¼³¸íÇϱâ À§ÇÔÀÌ´Ù. ÃÖ´ëÇÑ ¸íÈ®ÇÏ°Ô ¼³¸íÇÏ·Á°í ÇßÁö¸¸, ¸î °¡Áö´Â È¥µ¿½º·´°Å³ª ¿À·ù°¡ ÀÖÀ» °ÍÀÌ´Ù. ÀÌ¿¡ ´ëÇØ ³ª¿¡°Ô ¾Ë·ÁÁÖ¸é ¼öÁ¤Çϵµ·Ï ÇÏ°Ú´Ù. ¾î¶² Áú¹®ÀÌ¶óµµ ÀÖÀ¸¸é, livid-dev ¸ÞÀϸµ ¸®½ºÆ®¿¡ °¡ÀÔÇÏ¿© livid-dev-subscribe@linuxvideo.org ·Î À̸ÞÀÏÀ» º¸³»±â ¹Ù¶õ´Ù. 1.2. ¹®¼­ ÃֽŠ¹öÁ¯µé ÀÌ ÇÏ¿ìÅõ ¹®¼­´Â html°ú tex¸¦ Æ÷ÇÔÇÏ¿© ´Ù¾çÇÑ ÇüÅ·ΠÁ¢ÇÒ ¼ö ÀÖ´Ù. ÃֽŠ¹öÁ¯ÀÇ ¹®¼­´Â ³ªÀÇ »çÀÌÆ®(http://helo.org/dvd/howto/ ) ¿¡¼­ ¾ðÁ¦µçÁö °¡Á®°¥ ¼ö ÀÖ´Ù. °¡±ÞÀûÀÌ¸é °¡Àå ÃֽŠ¹öÀüÀÇ ÇÏ¿ìÅõ ¹®¼­¸¦ °¡Á®°¡±â¸¦ °­·ÂÈ÷ ÃßõÇÑ´Ù. ¿Ö³ÄÇϸé ÀÌ ÇÏ¿ìÅõ ¹®¼­´Â ±²ÀåÈ÷ ÀÚÁÖ °»½ÅµÇ±â ¶§¹®ÀÌ´Ù. 1.3. ÀúÀ۱ǰú µî·Ï»óÇ¥µé ÀÌ ¼³¸í¼­´Â ÀüºÎ ¶Ç´Â ÀϺθ¦ ¹«·á·Î º¹Á¦ÇÒ ¼ö ÀÖ´Ù. ´Ù¸¸, ´ÙÀ½ »çÇ×À» ÁؼöÇÏ¿©¾ß ÇÑ´Ù. o »ó±âÀÇ ÀúÀÛ±Ç °íÁö¹®°ú ÀÌ Çã¶ô °íÁö¹®Àº ÀüºÎ ¶Ç´Â ºÎºÐ º¹Á¦ ¹®¼­¿¡ ¹Ýµå½Ã Æ÷ÇԵǾî ÀÖ¾î¾ß ÇÑ´Ù. o ¾î¶°ÇÑ ¹ø¿ª ¹× ¹ßÃé ÀÛ¾÷ÀÌ¶óµµ ÀúÀÚÀÇ ½ÂÀÎÀ» ¹Ýµå½Ã ¾ò¾î¾ß ¹èÆ÷ÇÒ ¼ö ÀÖ´Ù. o ÀÌ ¹®¼­¸¦ ºÎºÐÀûÀ¸·Î ¹èÆ÷ÇÒ °æ¿ì¿¡´Â ÀÌ ÇÏ¿ìÅõ ¹®¼­ ÀüºÎ¸¦ ¾ò´Â ¹æ¹ý°ú ¼³¸íÀ» ¹Ýµå½Ã Æ÷ÇÔÇÏ¿©¾ß ÇÑ´Ù. o ÀÌ ¹®¼­ÀÇ ¾ÆÁÖ ÀÛÀº ºÎºÐÀº ºñÆò ¶Ç´Â ±âŸ ÀÛ¾÷ÀÇ ¼³¸íÀ¸·Î ÀοëµÉ ¼ö ÀÖ´Ù. ÀûÀýÇÑ ÀοëÃâó°¡ Æ÷ÇԵǾî ÀÖÀ¸¸é, Çã¶ô °íÁö¹®Àº ¾ø¾îµµ µÈ´Ù. »ó±âÀÇ ±ÔÄ¢µéÀº ÇмúÀûÀÎ ¸ñÀûÀÏ °æ¿ì¿¡´Â ¿¹¿Ü°¡ Àû¿ëµÈ´Ù: ÀúÀÚ¿¡°Ô ÆíÁö½á¼­ ¹®ÀÇÇϱ⠹ٶõ´Ù. ÀÌ·¯ÇÑ ±ÔÁ¦µéÀº ¿ì¸®µéÀ» ÀúÀڷμ­ º¸È£ÇÏ·Á´Â °ÍÀÌÁö ¹è¿ì°íÀÚ ÇÏ´Â »ç¶÷ ¶Ç´Â °¡¸£Ä¡´Â »ç¶÷µéÀ» ±ÔÁ¦ÇÏ·Á´Â °ÍÀÌ ¾Æ´Ï´Ù. ÀÌ ¹®¼­¿¡ ÀÖ´Â ¸ðµç ¼Ò½º ÄÚµå( ÀÌ ¹®¼­°¡ ¾²¿©Áø SGML Á¦¿Ü)´Â GNU General Public License ÇÏ¿¡ À§Ä¡ÇÑ´Ù. GNU General Public License´Â the GNU archive ¿¡¼­ À͸í FTP·Î ¾òÀ» ¼ö ÀÖ´Ù. 1.4. °¨»çÀÇ ¸» OMS ÀúÀÚµé°ú ¸¹Àº ½Ã°£°ú ³ë·ÂÀ» ÇÁ·ÎÁ§Æ®¿¡ ¹ÙÃÄ¿Â LiviD °³¹ßÀڵ鿡°Ô °¨»çÀÇ ¸»À» ÀüÇÑ´Ù. ¶ÇÇÑ ÀÌ ÇÏ¿ìÅõ ¹®¼­¸¦ ´õ¿í ÁÁ°Ô ¸¸µéµµ·Ï ÀÇ°ßÀ» º¸³»ÁØ »ç¶÷µé¿¡°Ôµµ ¿ª½Ã °¨»çÀÇ ¸»À» ÀüÇÑ´Ù. ÀÌ ÇÏ¿ìÅõ ¹®¼­ ´ëºÎºÐÀÇ ±¸¼º ¹× Çü½ÄÀº Mark F. KomarinskiÀÇ HOWTO- HOWTO (http://www.linuxdoc.org/ ) ¸¦ ÂüÁ¶ÇÏ¿´´Ù. 1.5. ¹ø¿ª ¹®¼­ ³»°¡ Á¢¼öÇÑ ¸ðµç ¹ø¿ª¹®¼­´Â http://helo.org/dvd/howto/trans/ ¿¡ ÀúÀåÇØ ³õ¾Ò´Ù. Ȥ½Ã ÀÌ ÇÏ¿ìÅõ ¹®¼­¸¦ ´Ù¸¥ ¾ð¾î·Î ¹ø¿ªÇÏ°íÀÚ ÇÑ´Ù¸é, nkr@helo.org ·Î À̸ÞÀÏÀ» º¸³»Áֱ⠹ٶõ´Ù. 2. ¿ä±¸»çÇ× ÀÌ ÇÏ¿ìÅõ ¹®¼­´Â ¿©·¯ºÐÀÌ ´ÙÀ½°ú °°ÀÌ Áغñ°¡ µÇ¾îÀÖ´Ù°í ÀüÁ¦ÇÑ´Ù: o Linux > v2.2.0 o XFree86 3.3.X o Linux¿¡¼­ Áö¿øµÇ´Â DVD-ROM/RAM/RW µå¶óÀ̹ö o bash °ú ¿µ¾î(±¹¾î)¿¡ ´ëÇÑ ÀûÀýÇÑ Áö½Ä o ÇÙ°øÇÐ ¼®»çÇÐÀ§(??) 3. ÆÄÀÏµé ¿ì¼± ¹«¾ùº¸´Ùµµ MTRR(Memory Type Range Register)°ú DVD ioctlÀ» Áö¿øÇÏ´Â Ä¿³ÎÀ» ±¸ÇØ¾ß ÇÑ´Ù. MTRRÀº Ä¿³Î 2.2.11 ÀÌÈÄ ¹öÀü¿¡´Â Æ÷ÇÔ(³»°¡ Ʋ·È´Ù¸é ÁöÀûÇØ Áֱ⠹ٶ÷)µÇ¾î ÀÖÀ¸¹Ç·Î, DVD ioctlÀ» ¾ò±â À§Çؼ­´Â ¿©·¯ºÐÀÇ Ä¿³ÎÀ» ¾÷µ¥ÀÌÆ®ÇÒ ÇÊ¿ä°¡ ÀÖÀ»Áöµµ ¸ð¸¥´Ù. µÎ °¡Áö ¹æ¹ýÀÌ Àִµ¥, °³¹ß ¹öÀü Ä¿³Î(v2.3.x)À» ´Ù¿î·Îµå ¹Þ°Å³ª, ¾ÈÁ¤µÈ ¹èÆ÷ ¹öÀü(v2.2.x)À¸·Î ÆÐÄ¡ÇÏ´Â ¹æ¹ýÀÌ´Ù. ÆÐÄ¡ ÆÄÀÏÀº http://www.kernel.dk/ ¿¡¼­, Ä¿³Î ÆÄÀÏÀº ftp://ftp.kernel.org/ ÀÇ ¿©·¯ ¹Ì·¯ »çÀÌÆ®¿¡¼­ ±¸ÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½À¸·Î, LiViD À¯Æ¿¸®Æ¼ ÆÄÀϵéÀÌ ÇÊ¿äÇÏ´Ù. ´ÙÀ½°ú °°ÀÌ µÎ °¡Áö ¹æ¹ýÀÌ ÀÖ´Ù: o CVS¿¡¼­ LiViD À¯Æ¿¸®Æ¼ ÆÄÀϵéÀ» ±¸ÇÑ´Ù. ÀÌ·¸°ÔÇÏ¸é °³¹ßÀÚµéÀÌ ¾÷µ¥ÀÌÆ®ÇÒ ¶§¸¶´Ù ¹Ù·Î ¾÷µ¥ÀÌÆ® ÇÒ ¼ö ÀÖ´Â ÀåÁ¡ÀÌ ÀÖ´Ù(ÀÌ°ÍÀ» ÃßõÇÑ´Ù). ´ÙÀ½°ú °°ÀÌ ½©¸í·ÉÀ» »ç¿ëÇؼ­ À¯Æ¿¸®Æ¼ ÆÄÀϵéÀ» ±¸ÇÑ´Ù: # mkdir ~/livid # cd ~/livid # export CVSROOT=:pserver:anonymous@cvs.linuxvideo.org:/cvs/livid # cvs login (Logging in to anonymous@cvs.linuxvideo.org) CVS password: anonymousÀÇ Æнº¿öµå´Â ¾ø´Ù. ±×³É ¿£ÅÍÅ°¸¸ ´©¸¥´Ù. # cvs -z3 co -P nist ac3dec oms mpeg2dec ÇØ´ç µð·ºÅ丮·Î ÆÄÀϵéÀÌ ¸ðµÎ ´Ù¿î·Îµå µÉ°ÍÀÌ´Ù. o ¸¸ÀÏ ÀÌ CVS°¡ ¸¶À½¿¡ ¾Èµç´Ù¸é(±«Â¥±º!), ÃÖ½ÅÀÇ LiviD¸¦ ´Ù¿î·Îµå ¹ÞÀ¸¸é µÈ´Ù. ´Ü, ÇÊ¿ä·Î ÇÏ´Â ÆÄÀÏ ¿Ü¿¡ ´Ù¸¥ °Íµéµµ ¼¯¿©ÀÖ´Ù. ±×·¯³ª ÀÌÀ¯¾ß ¾î¶»µç CVS¸¦ »ç¿ëÇϱⰡ ±×·¸°Ô ½È´Ù¸é ´Ï ¸¾´ë·Î Çϼ¼¿ä. ´ÙÀ½ »çÀÌÆ®¿¡¼­ ãÀ» ¼ö ÀÖ´Ù: http://linuxvideo.org/developer/data/livid.tar.gz 4. ¼³Ä¡ 4.1. Ä¿³Î ¸¸ÀÏ ¿©·¯ºÐÀÌ °³¹ß ¹öÀü Ä¿³Î(2.3.x)À» °¡Áö°í ÀÖÀ¸¸é, ÀÌ¹Ì DVD Ioctl Áö¿øÀÌ °¡´ÉÇÑ °ÍÀ̹ǷÎ, MTRR Áö¿øÀÌ Ä¿³Î ±¸¼º ÆÄÀÏ¿¡ µé¾îÀÖÀ½À» È®ÀÎÇÏ¸é µÈ´Ù. ±×¸®°í ³ª¼­ ´Ã»ó ÇϵíÀÌ Ä¿³Î ÄÄÆÄÀÏ°ú ¼³Ä¡¸¦ ÇÏ¸é µÈ´Ù. ±âÁ¸ÀÇ Ä¿³ÎÀ» ÆÐÄ¡ÇÏ°í ½ÍÀ¸¸é, ´ÙÀ½ »çÀÌÆ®·Î °£´Ù. http://www.kernel.dk/ ±×¸®°í ±âÁ¸ Ä¿³Î¿¡ ¸Â´Â ÀûÀýÇÑ ÆÐÄ¡¸¦ ´Ù¿î·Îµå ÇÑ´Ù. ¸¸ÀÏ ¿©·¯ºÐÀÇ Ä¿³ÎÀ» ¼³Ä¡ÇÏ°í, ÆÐÄ¡ÇÏ´Â ¹æ¹ýÀ» ¸ð¸¥´Ù¸é ´ÙÀ½ÀÇ ÇÏ¿ìÅõ ¹®¼­¸¦ ¹Ýµå½Ã Àо±â ¹Ù¶õ´Ù: http://howto.tucows.com/LDP/HOWTO/Kernel-HOWTO.html 4.2. LiViD À¯Æ¿¸®Æ¼µé LiViD À¯Æ¿¸®Æ¼¸¦ ¼³Ä¡ÇÏ·Á¸é, ¿©·¯ºÐ ½Ã½ºÅÛÀÇ /etc/ld.so.conf ÆÄÀϾȿ¡ /usr/local/libµîÀÇ °æ·Î°¡ ±â·ÏµÇ¾îÀÖÀ½À» ¹Ýµå½Ã È®ÀÎÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ´ÙÀ½ÀÇ °úÁ¤À» µû¶óÇϸé, ¿©·¯ºÐÀÇ ½Ã½ºÅÛ¿¡ LiViD À¯Æ¿¸®Æ¼¸¦ ÄÄÆÄÀÏ ¹× ¼³Ä¡ÇÏ°Ô µÉ °ÍÀÌ´Ù. ¸¸ÀÏ ¹®Á¦°¡ ¹ß»ýÇϸé "¹®Á¦Á¡µé"À» ÂüÁ¶Çϱ⠹ٶõ´Ù. ac3dec: # cd ~/livid/ac3dec # ./configure # make # make install oms: # cd ~/livid/oms # ./autogen.sh # ./configure # make # make install mpeg2dec: # cd ~/livid/mpeg2dec # ./autogen.sh # make # make install ÀÌÁ¦ ÇʼöÀûÀÎ LiViD À¯Æ¿¸®Æ¼µéÀÌ ¼³Ä¡µÇ¾îÀÖÀ» °ÍÀÌ´Ù. oms´Â DVD µ¥ÀÌÅ͸¦ Àü¼ÛÇϱâÀ§ÇÑ ¸î°¡Áö Ưº°ÇÑ fifo ÆÄÀÌÇÁµéÀ» ÇÊ¿ä·Î ÇÑ´Ù. ÀÌ ÆÄÀÌÇÁµéÀº ´ÙÀ½ÀÇ ¸í·ÉÀ¸·Î ¸¸µé ¼ö ÀÖ´Ù(´Ü, ±âÁ¸¿¡ ¾øÀ» °æ¿ì¿¡¸¸): # mkfifo /tmp/video # mkfifo /tmp/audio ¸¶Áö¸·À¸·Î ÇÑ °¡Áö°¡ ´õ ³²¾ÆÀÖ´Ù. oms´Â /dev/dvd°¡ ¿©·¯ºÐÀÇ DVD µå¶óÀ̺갡 Á¸ÀçÇÏ´Â °÷(¿¹¸¦µé¸é, /dev/hdb1 ¶Ç´Â /dev/scd0)¿¡ ½Éº¼ ¸µÅ©µÇ¾î ÀÖÀ» °ÍÀ» ÇÊ¿ä·Î ÇÑ´Ù. ¸¸ÀÏ DVD µå¶óÀ̺갡 /dev/cdrom¿¡ µÇ¾îÀÖÀ¸¸é, ´ÙÀ½°ú °°ÀÌ ½Éº¼ ¸µÅ©¸¦ ¸¸µé¾î ÁØ´Ù: # ln -s /dev/cdrom /dev/dvd ÀϹÝÀûÀ¸·Î ½Éº¼ ¸µÅ©¸¦ ¶Ç ´Ù¸¥ ½Éº¼ ¸µÅ©·Î ¸¸µéÁö ¾Ê´Â °ÍÀÌ ÁÁ´Ù. ¿Ö³ÄÇϸé, ÀÌ·¸°Ô ÇÏ¸é ºÒÇÊ¿äÇÑ ÀÔÃâ·ÂÀ» ºÎ°úÇϱ⠶§¹®ÀÌ´Ù. /dev/cdromÀ» DVD µå¶óÀ̺갡 À§Ä¡ÇÑ Á¤È®ÇÑ µð¹ÙÀ̽º·Î ´ëÄ¡Çϵµ·Ï ÇÑ´Ù. 5. Àç»ýÇϱâ DVD¸¦ Àç»ýÇÏ·Á¸é 16ºñÆ® Ä÷¯ ¸ðµå¿¡¼­ X-Window°¡ ÇÊ¿äÇÏ´Ù. µå¶óÀ̺꿡 DVD ŸÀÌƲÀ» ³Ö°í ´ÙÀ½°ú °°ÀÌ ¸í·ÉÀ» ÁØ´Ù: # ac3dec /tmp/audio& mpeg2dec /tmp/video& oms ¸ðµÎ Á¦´ë·Î µ¿ÀÛÇÑ´Ù¸é, DVDDB¿¡¼­ µð½ºÅ© À̸§À» º¼ °ÍÀÎÁö¸¦ ¹°¾îº¸´Â ¹®ÀÚ¿­ÀÌ ³ªÅ¸³¯ °ÍÀÌ´Ù. '¿¹'¶ó°í ´äÇÏ´Â °ÍÀÌ ¾ÈÀüÇÏ´Ù. ±×¸®°í³ª¼­, oms ÆгÎÀÌ Æ˾÷È­¸éÀ¸·Î ³ªÅ¸³¯ °ÍÀÌ´Ù. Play¹öÆ°À» ´©¸£¸é ºñµð¿À À©µµ¿ì°¡ ³ªÅ¸³ª°í Àç»ýÀÌ ½ÃÀ۵ȴÙ. 6. ±× ¹Û¿¡ 6.1. MTRR ¼³Á¤Çϱâ ** Matrox ºñµð¿À Ä«µå¸¦ °®°í ÀÖ´Â »ç¶÷µéÀº º¼ °Í ** matroxfb¸¦ Ä¿³Î¿¡ ÄÄÆÄÀÏÇß´Ù¸é, ¾Æ¸¶µµ MTRRµéÀÌ ÀÌ¹Ì ¼³Ä¡µÇ¾îÀÖÀ» °ÍÀÌ´Ù. ±×·¸´Ù¸é ÀÌ ÀåÀ» °Ç³Ê¶Ù¾îµµ ¹«¹æÇÒ °ÍÀ¸·Î º»´Ù. MTRRÀ» ¼³Á¤ÇÔÀ¸·Î½á °æ¿ì¿¡ µû¶ó ºñµð¿À ¼º´ÉÀÌ »ó´çÈ÷ ÁÁ¾ÆÁú ¼ö ÀÖ´Ù. µû¶ó¼­ ¼³Á¤ Çϱ⸦ ±Ç°íÇÑ´Ù. ¸ÕÀú, ´ÙÀ½°ú °°ÀÌ ¸í·ÉÀ» Á༭ ¿©·¯ºÐÀÇ Ä¿³ÎÀÌ MTRR Áö¿øÀ» Æ÷ÇÔÇÏ°í ÀÖ´ÂÁö¸¦ È®ÀÎÇÒ ÇÊ¿ä°¡ ÀÖ´Ù: # ls /proc/mtrr ¸¸ÀÏ /proc/mtrr°ú °°Àº °ÍÀÌ ¾ø´Ù°í Çϸé, ¿©·¯ºÐÀÇ Ä¿³ÎÀ» MTRR Áö¿ø°ú ÇÔ²² ´Ù½Ã ÄÄÆÄÀÏ ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù(ÀÌ´Â Ä¿³Î ÄÄÆÄÀÏ menuconfig¾ÈÀÇ "Processor type and features"¿¡ ÀÖ´Ù). ÀÏ´Ü MTRRÀÌ Á¦´ë·Î µ¿ÀÛÇÏ°í ÀÖÀ½À» È®ÀÎÇßÀ¸¸é, ¿©·¯ºÐÀÇ ºñµð¿À Ä«µåÀÇ ±âº» ¸Þ¸ð¸® ÁÖ¼Ò¿Í ºñµð¿À ·¥ÀÇ Å©±â°¡ ¾ó¸¶Àΰ¡¸¦ ¾Ë°í ÀÖ¾î¾ß ÇÑ´Ù. À̸¦ ¾Ë¾Æº¸´Â °¡Àå ¼Õ½¬¿î ¹æ¹ýÀº X-Window°¡ ½ÇÇàÇÒ ¶§ ÅؽºÆ® È­¸éÀ¸·Î Ãâ·ÂÇÏ´Â Á¤º¸¸¦ º¸´Â °ÍÀÌ´Ù. ÀÌ ÅؽºÆ® È­¸é Ãâ·Â Á¤º¸´Â ´ëºÎºÐ ¸ð´ÏÅÍ È­¸éÀ§·Î ½ºÅ©·ÑµÇ¾î º¸ÀÌÁö ¾Ê°Ô µÇ°Å³ª ´Ù¸¥ tty·Î È­¸é ÀüȯÀÌ ÀϾ¸é¼­ »ç¶óÁ® ¹ö¸®±â ¶§¹®¿¡, ÀÌ X-Window Ãâ·ÂÁ¤º¸¸¦ ÆÄÀÏ(xoutput)·Î ¸®Å¸ÀÌ·º¼ÇÇؼ­ ÀúÀåÇÏ¸é µÈ´Ù. ´ÙÀ½°ú °°ÀÌ ¸í·ÉÀ» ÁØ´Ù: # startx 2> xoutput ¿ì¸®°¡ ÇÊ¿äÇÑ Á¤º¸¸¦ ´ã°í ÀÖ´Â ÇàÀº xouput ÆÄÀÏÀÇ Áß°£ Âë¿¡ ÀÖÀ» °ÍÀÌ´Ù. ´ÙÀ½°ú °°Àº ÇàÀ» ã¾Æ º»´Ù: (--) SVGA: PCI: NVidia Riva TNT2 rev 17, Memory @ 0xee000000, 0xe2000000 ÀÏ´Ü xouput ÆÄÀÏ¿¡¼­ ÇØ´ç À§Ä¡¸¦ ã¾ÒÀ¸¸é ÇàÀÇ ³¡ ºÎºÐ¿¡ ÀÖ´Â ¸Þ¸ð¸® ÁÖ¼Ò¸¦ Á¾ÀÌ¿¡ Àû¾îµÐ´Ù. ÀÌ ¿¹¿¡¼­´Â 0xe2000000 ÀÌ´Ù. ¿©·¯ºÐÀÇ Çϵå¿þ¾î »ç¾ç¿¡ µû¶ó º¹¼ö°³ÀÇ ¸Þ¸ð¸® ÁÖ¼Ò°¡ ÀÖÀ» ¼öµµ, ¶Ç´Â ¾øÀ» ¼öµµ ÀÖÀ¸´Ï±î, Á» ´Ù¸£°Ô ³ªÅ¸³ª´õ¶óµµ °ÆÁ¤ÇÏÁö ¾Ê¾Æµµ µÈ´Ù. ¸Þ¸ð¸® ÁÖ¼Ò¸¦ Àû¾úÀ¸¸é xoutput ÆÄÀÏÀº Áö¿öµµ µÈ´Ù. ´ÙÀ½À¸·Î »õ MTRR¸¦ ¸¸µéµµ·Ï ÇÑ´Ù. À̸¦ ¸¸µé·Á¸é ¿©·¯ºÐÀÇ ºñµð¿À Ä«µåÀÇ ºñµð¿À ·¥ÀÇ Å©±â¸¦ 16Áø¼ö°ªÀ¸·Î ¾Ë°í ÀÖ¾î¾ß ÇÑ´Ù. ´ÙÀ½À» ÂüÁ¶ÇÑ´Ù: 4MB -- 0x400000 8MB -- 0x800000 16MB -- 0x1000000 32MB -- 0x2000000 ´ÙÀ½°ú °°ÀÌ MTRR¸¦ Ãß°¡ÇÑ´Ù: # echo "base=0xe2000000 size=0x2000000 type=write-combining" >| /proc/mtrr ´Ü, À§ÀÇ "0xe2000000"¿Í "0x2000000" ºÎºÐÀ» ¿©·¯ºÐÀÇ ºñµð¿À Ä«µåÀÇ ±âº» ¸Þ¸ð¸® ÁÖ¼Ò¿Í ºñµð¿À ·¥ÀÇ Å©±âÀÇ °ªÀ¸·Î ¹Ù²ã¼­ Àû¾îÁØ´Ù. ÀÌÁ¦ MTRRÀÌ ¼³Á¤µÇ¾ú´Ù, ´ÙÀ½°ú °°ÀÌ È®ÀÎÇØ º»´Ù: # cat /proc/mtrr ±×·¯¸é ´ÙÀ½°ú ºñ½ÁÇÑ °á°ú¸¦ º¸°Ô µÉ °ÍÀÌ´Ù: reg00: base=0x00000000 ( 0MB), size= 128MB: write-back, count=1 reg01: base=0xe2000000 (3616MB), size= 32MB: write-combining, count=1 Çѹø ´õ, ¼ýÀÚ°ªµéÀÌ ¾Æ¸¶µµ ÀÌ°Í°ú ´Ù¸¦Áöµµ ¸ð¸¥´Ù. °ÆÁ¤ÇÏÁö ¾Ê¾Æµµ µÈ´Ù. 7. ¹®Á¦Á¡µé 7.1. ½ÇÇà ¿À·ùµé ´ÙÀ½Àº Áö±Ý±îÁö ¾Ë·ÁÁø ¸î °¡Áö ½ÇÇà ½Ã ¿À·ù(µé)ÀÌ´Ù. 7.1.1. Illegal Instruction Error ¸¸ÀÏ ºñ-ÀÎÅÚ °è¿­ÀÇ Ä¨(ƯÈ÷ K6) »ç¿ëÀÚ°¡ mpeg2video¸¦ ½ÇÇàÇÏ¿´À» ¶§ ÀÌ·¯ÇÑ ¿À·ù°¡ ¹ß»ýÇß´Ù¸é, nist/configure.in ÆÄÀÏÀÇ 129¹ø Çà°ú 130¹ø Çà ÁÖ¸ñÇÑ´Ù. ´ÙÀ½°ú °°À» °ÍÀÌ´Ù: CFLAGS="$CFLAGS -DHAVE_MMX -DLINUX -march=i686 -fschedule-insns2 -malign-doub CXXFLAGS="$CXXFLAGS -DHAVE_MMX -DLINUX -march=i686 -fschedule-insns2 -malign- ¾çÂÊ Çà¿¡ ÀÖ´Â "-march=i686"¸¦ "-march=i586"·Î ¸ðµÎ ´ëüÇÏ°í, ÀçÄÄÆÄÀÏ ¹× À缳ġ ÇÑ´Ù. 7.2. ÄÄÆÄÀÏ ¿À·ùµé ´ÙÀ½Àº ÀϹÝÀûÀÎ ÄÄÆÄÀÏ ½Ã ¿À·ùµéÀÌ´Ù. 7.2.1. `dvd_struct' undeclared... ÀÌ À¯Æ¿¸®Æ¼ ÆÄÀϵéÀ» ÄÄÆÄÀÏÇÒ ¶§, »ç¶÷µéÀÌ °¡Àå ºó¹øÇÏ°Ô °Þ°ÔµÇ´Â ¹®Á¦´Â oms°¡ Ä¿³Î Çì´õÆÄÀϵéÀ» ÀÌ»óÇÑ ´Ù¸¥ °÷¿¡¼­ ã±â ¶§¹®¿¡ ºñ·ÔµÈ´Ù. oms´Â ±âº»ÀûÀ¸·Î /usr/include/[linux|asm]¿¡ ÀÖ´Â Çì´õÆÄÀϵéÀ» »ç¿ëÇÏÁö¸¸, À̵é Çì´õÆÄÀϵéÀº ¾ÈÁ¤Ä¿³Î ¹öÁ¯¿¡¼­³ª º¼ ¼ö ÀÖ´Â °ÍÀÌ´Ù. µû¶ó¼­ ¿©·¯ºÐµéÀÌ Á¤»óÀûÀÎ ÇÁ·Î±×·¥À» °ËÆÄÀÏÇÒ ¶§, ¾ÈÁ¤¹öÁ¯ÀÇ ÇìÅÍÆÄÀϵéÀÌ »ç¿ëµÈ´Ù. oms´Â ºñ¾ÈÁ¤¹öÁ¯(¶Ç´Â ÆÐÄ¡¹öÁ¯)ÀÇ Ä¿³Î Æä´õÆÄÀϵéÀ» ÇÊ¿ä·ÎÇÑ´Ù. µû¶ó¼­ oms°¡ ÄÄÆÄÀÏÀ» ½ÃµµÇÒ ¶§, ¸¹Àº ¸ðµâµéÀÌ Á¤ÀǵǾîÀÖÁö ¸øÇÏ°í, °á±¹Àº ÄÄÆÄÀÏ ¿À·ù°¡ ³ª¿À°Ô µÇ´Â °ÍÀÌ´Ù. ÀÌ ¹®Á¦¸¦ ÇØ°áÇϱâÀ§ÇÑ °¡Àå ÁÁÀº ¹æ¹ýÀº omsÀÇ MakefileÀ» ¼öÁ¤ÇÏ¿© -I/usr/src/linux/include¸¦ CFLAGS¿Í CXXFLAGS¸¦ °¡¸®Å°°Ô ÇØÁØ´Ù.(ÀÌ Á¤º¸¸¦ ÁֽŠAdam Powell¿¡°Ô °¨»ç¸¦ µå¸°´Ù) ´ÙÀ½°ú °°ÀÌ ¸í·ÉÀ» Á༭ ÇØ°áÇÑ´Ù: # mkdir /usr/include/old # mv /usr/include/linux /usr/include/old/linux # mv /usr/include/asm /usr/include/old/asm # mv /usr/include/scsi /usr/include/old/scsi # ln -s /usr/src/linux/include/linux /usr/include/linux # ln -s /usr/src/linux/include/scsi /usr/include/scsi # ln -s /usr/src/linux/include/asm /usr/include/asm 7.2.2. can't determine absolute dir of '../../../../src/plu­ gin/codec/mpeg2dec/.libs' ¶Ç ´Ù¸¥ ÀϹÝÀûÀÎ ¿À·ù´Â oms/src/plugin/codec/mpeg2dec/.libs µð·ºÅ丮¿¡ ÀÖ´Ù. ¸î °¡Áö ÀÌÀ¯·Î ÀÎÇÏ¿© ÀÌ µð·ºÅ丮´Â Á¸ÀçÇÏÁö ¾Ê°Ô µÇ´Âµ¥, ÀÌ´Â ÄÄÆÄÀÏ¿¡ ÇÊ¿äÇÏ´Ù. À̸¦ ÇØ°áÇϱâ À§Çؼ­´Â ´ÜÁö ÀÌ µð·ºÅ丮¸¦ ¸¸µé¾îÁÖ¸é µÈ´Ù: # mkdir src/plugin/codec/mpeg2dec/.libs 7.3. ¾ÈµÇ´Â ±â´Éµé ¿ø·¡ ÀǵµµÈ ´ë·Î µÇ¾î¾ß Çϴµ¥, ÇöÀç ¾ÈµÇ´Â ±â´Éµé: o Á¦´ë·Î µ¿ÀÛÇÏ´Â Àå(chapter) °Ë»ö ¹öÆ°ÀÌ Çϳªµµ ¾øÀ½(Ãæµ¹). o Çѹø Á¤ÁöµÇ¸é, ´Ù½Ã ½ÃÀÛÇÏÁö ¸øÇÏ´Â °æÇâÀÌ ÀÖÀ½(Ãæµ¹). o ¿Àµð¿À/ºñµð¿À°¡ ¸Å Ãʸ¶´Ù °Ç³Ê¶Ù´Â Çö»ó µî. o mpeg2dec»ç¿ë ½Ã °¢ ÀåÀÇ ÁøÀԺκп¡¼­ ÇöÀúÇÑ °¨¼âÇö»ó(slowdown). o °¡²û ¾¿ ac3dec°¡ Á¦´ë·Î Á¾·áµÇÁö ¾Ê¾Æ¼­ "killall ac3dec"¸¦ »ç¿ëÇؾ߸¸ Á¾·áµÇ´Â Çö»ó. 7.4. ±×¹ÛÀÇ ¿À·ùµé ¸¸ÀÏ ¿©·¯ºÐµéÀÌ °æÇèÇÑ ¿À·ùµéÀÌ ÀÌ°÷ ¸ñ·Ï¿¡ ¾ø´Ù¸é, ÇöÀçÀÇ CVS Äڵ忡 ¹ö±×°¡ Á¸ÀçÇÑ´Ù°í ºÁ¾ß ÇÒ °ÍÀÌ´Ù. ÃÖ»óÀÇ ¹æ¹ýÀº ¸î ÀÏ°£ ±â´Ù·Áº¸°í, CVS·ÎºÎÅÍ ¾÷µ¥ÀÌÆ®ÇÏ´Â °ÍÀÌ´Ù. ¿©·¯ºÐÀÇ Áú¹®À» ¹ÞÀ» ¼ö ÀÖ´Â ¸ÞÀϸµ ¸®½ºÆ®°¡ ÁغñµÇ¾îÀÖ´Ù. livid-dev-subscribe@linuxvideo.org·Î ºó ¸ÞÀÏÀ» º¸³»¸é °¡ÀÔÇÒ ¼ö ÀÖ´Ù. 8. ÇÒ Àϵé o Matrox Ä«µå¸¦ ¼ÒÀ¯ÇÏ°í ÀÖ´Â »ç¶÷µé·ÎºÎÅÍ ¼º´ÉÀ» Çâ»ó½ÃŲ Á¤º¸¸¦ ¹Þ´Â °Í o Makefile ¿É¼Çµé (HAVE_MMX, HAVE_3Dnow µî) o mpeg2dec¿¡¼­ÀÇ -march=k6 o ¸î °¡Áö ½¬¿î MTRR Ãß°¡(framebuffer) o ´ëºÎºÐÀÇ µå¶óÀ̺꿡 Áö¿ªÄÚµå ¼³Á¤: www.linuxtv.org/dvd