  DVD Playing HOWTO :2000528

  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/
  <http://helo.org/dvd/howto/>)     ִ.
  ̸  ֽ  Ͽ  ⸦  õѴ.
  ֳϸ  Ͽ    ŵǱ ̴.

  1.3.  ۱ǰ ϻǥ

     Ǵ Ϻθ    ִ. ٸ,  
  ؼϿ Ѵ.
  o   ۱      Ǵ κ  
     ݵ ԵǾ ־ Ѵ.

  o      ۾̶   ݵ  
      ִ.

  o    κ  쿡  Ͽ  θ 
       ݵ Ͽ Ѵ.

  o      κ  Ǵ Ÿ ۾  ο 
     ִ.  οó ԵǾ ,    ȴ.

   Ģ м  쿡 ܰ ȴ: ڿ
  Ἥ ϱ ٶ. ̷  츮 ڷμ ȣϷ
    ϴ  Ǵ ġ  Ϸ 
  ƴϴ.   ִ  ҽ ڵ(    SGML )
  GNU General Public License Ͽ ġѴ. GNU General Public License
  the GNU archive <ftp://ftp.gnu.org/GNU/COPYING>  ͸ FTP 
   ִ.

  1.4.   

  OMS ڵ  ð  Ʈ Ŀ LiviD ڵ鿡
    Ѵ.   Ͽ    鵵 ǰ
   鿡Ե    Ѵ.

   Ͽ  κ    Mark F. Komarinski HOWTO-
  HOWTO (http://www.linuxdoc.org/ <http://www.linuxdoc.org/>) 
  Ͽ.

  1.5.   

      http://helo.org/dvd/howto/trans/
  <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/
  <http://www.kernel.dk/>, Ŀ  ftp://ftp.kernel.org/
  <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

