DXR3-HOWTO

This document, (which cannot be compared with any other "offical Linux HOWTO")
is meant to help folks who are disillusioned by HOWTO's and other rather vague
documents. Of course i mean to offend no one by that statement, if that is
the case please accept my humble appol's.

What is a DXR3 MPEG Decoder card, well if you dont know then this document
is not going to help you in the slightest fashion please leave now.

A full explanation of what the card is, can be found at the following URL
  • http://dxr3.sourceforge.net/
  • It contains a very good description of what it does and most of all HOWTO get it working. For those of us that need to read the detailed doc's more than twice, there here follows, "The dummies guide to getting it going ASAP".

    This document refers to the Creative Labs DXR3, details of the card can be
    found at the following URL.
    
  • http://creative.com/
  • Or use the sourceforge.net link above. The Hollywood + card is almost identical so in general this doc, concerns both cards, but beware there are some slight configuration differences. Also beware that the above site changes daily and IMHO is a labyrinth to find anything in.
    Futher more, to the point i use kernel 2.4.19 on a Slackware 8.1 system with XFree-4.2.0, NVIDIA Driver obtained at URL.
  • http://nvidia.com
  • On a P3 650Mhz CPU 388Megs of RAM. One needs the tar archive, em8300-0.12.0.tar.gz to be found at;
  • http://dxr3.sourceforge.net/
  • Above that one needs a program to play DVD's, three are. xine
  • http://xine.sf.net
  • mplayer
  • http://mplayerhq.hu
  • ogle
  • http://www.dtek.chalmers.se/groups/dvd/downloads.shtml
  • All my experiments were with mplayer for output to TV and ogle for output on the computer monitor, but xine is reported to be good as well.

    I always use /usr/local/src for unarchiving tar archives, you can of course
    use what you want. I also have my Linux Kernel sources in /usr/src/linux, it
    is of great importance with some tar archives as to where you have the kernel
    sources placed.
    


    Now lets say you have retrieved all archives needed and you placed them in /home/ftp/pub/dvd/ All commands used are shown inside of a pair of ' marks, thus showing at a glance what command i used, you ignore the ' when executing the command yourself of course. Follow the commands below. Login as root or use 'su -' to gain root priv's. 'cd /usr/local/src' 'tar xvzf /home/ftp/pub/dvd/em8300-0.12.0.tar.gz' 'cd em8300' RTFM (means Read The Flipping Manual's) ie; 'less INSTALL' 'less README' './configure' 'make' 'make install' Most people now think thats it, i did it, HOWEVER those who think that did NOT RTFM, you need now to compile the modules in ./em8300/modules 'cd modules' 'make' 'make install' Now you also need to make sure that the "device files" are created correctly. There is a small script included to create them, you can manually run the script or type; 'make devices' Afterwards 'ls -al' /dev/em* should show lrwxrwxrwx 1 root root 13 Sep 6 15:34 /dev/em8300 -> /dev/em8300-0 crw-rw-rw- 1 root root 121, 0 Jul 14 12:25 /dev/em8300-0 lrwxrwxrwx 1 root root 16 Sep 6 15:34 /dev/em8300_ma -> /dev/em8300_ma-0 crw-rw-rw- 1 root root 121, 2 Jul 14 12:25 /dev/em8300_ma-0 lrwxrwxrwx 1 root root 16 Sep 6 15:34 /dev/em8300_mv -> /dev/em8300_mv-0 crw-rw-rw- 1 root root 121, 1 Jul 14 12:25 /dev/em8300_mv-0 lrwxrwxrwx 1 root root 16 Sep 6 15:34 /dev/em8300_sp -> /dev/em8300_sp-0 crw-rw-rw- 1 root root 121, 3 Jul 14 12:25 /dev/em8300_sp-0 A small note here about the permissions of devices, in general you will use your DVD under your user account, one needs to change permissions of the files because root, is the only one allowed to use them by default, i prefer to use; 'chown pa3gcu /dev/em*' You can use 'chmod' as well, to be honest the real and proper way is to do it via /etc/group but i will not go into that, its up to you how you do it. Now we have compiled the whole archive and compiled the modules, created the devices, changed permissions of the devices, but we are not there yet. When you obtained your DXR3 card you received a CDrom with it and a very large book in many languages, now the book shows howto install the card in your computer and connect it, there are different ways to connect it, read the book carefully. On the CDrom there is a file called "ENC2DEV.VXD" to be found in /Drivers/WIN9X copy this file to /usr/local/src/em8300/scripts 'cd ../scripts' './microcode_extract.pl ENC2DEV.VXD .' You will now have 2 more files called, microcode0.bin microcode1.bin You need one or the other, i needed microcode1.bin to get best results. That does not mean your system needs microcode1.bin try them both and see what happens. You now have everything in place to use you card.


    
    Now i am presuming your DVDrom is recognised by the linux kernel and is in
    working order, you have placed a DVD in the device and now want to play it.
    I created a small script too load the driver, microcode and to autocalibrate
    it, it uses the provided modules scripts in ./em8300/modules and 
    ./em8300/scripts, they are;
    
    modules/ldm script for loding the modules.
    modules/rmm script for unloading them
    scripts/microcode_upload.pl
    /usr/local/bin/autocal (installed from em8300 'make install')
    
    You can review the scripts at the bottom of this document, just remember
    that the path's in them are different to what is mentioned here.
    So review them carefully if you intend to use them.
    
    The direct commands are;
    
    '/usr/local/src/em8300/modules/ldm'
    '/bin/echo "1024" > /proc/sys/dev/rtc/max-user-freq'
    '/usr/local/src/em8300/scripts/microcode_upload.pl /usr/local/src/em8300/scripts/microcode0.bin'
    '/usr/local/bin/autocal'
    
    You now have a configured and hopefully working dxr3 card.
    In a nutshell the following command will play your dvd with output to the TV
    screen.
    
    'mplayer -alang en -ao oss:/dev/em8300_ma-0 -vo dxr3 -vc mpegpes -dvd 1'
    
    Output to monitor;
    
    'xvattr -a XV_DOUBLE_BUFFER -v 0'
    'ogle -u cli /dev/dvd'
    


    My card gave best results when the modules were loaded with default values,
    see ./em8300/modules/README-modoptions about loading the modules with
    different values. There is also another source of information about what to
    do if you get funny colors when loading the modules, it is to be found at;
    
  • http://dxr3.sourceforge.net/
  • in that page click on Loading the Kernel Modules.


    
    THATS IT, now i think you will understand why folks have so much trouble
    getting this critter to work under linux.
    As a matter of fact mine refuses to work under Windows XP, not that it
    worries me of course ;-)
    

    The scripts.
    
    This one i call rc.dvd and its is placed into /etc/rc.d
    If you decide to use it then create /etc/rc.d/dxr3 and copy the
     microcodeX.bin files to it. It needs to be run under root priv's.
    
    #!/bin/sh
    
    DVDDIR="/usr/local/src/em8300/modules"
    LSMOD="`/sbin/lsmod | grep -w '^em8300' | wc -l`"
    
    case "$1" in
    
      start)
           # Load driver if it hasn't been loaded already:
            if [ $LSMOD -eq 0 ] ; then
               (cd $DVDDIR; ./ldm)
    	/bin/echo "1024" > /proc/sys/dev/rtc/max-user-freq 
    	/usr/local/share/em8300/microcode_upload.pl /etc/rc.d/dxr3/microcode1.bin
    	/usr/local/bin/autocal
               fi
    	;;
    
      stop)
    	if [ $LSMOD -eq 1 ] ; then
    	   (cd $DVDDIR; ./rmm)
    	   fi
    	;;
    
      *)
    	/bin/echo "USAGE| ./rc.dvd start | stop..."
    
    esac
    
    # EOF
    
    
    This one starts playing the dvd and can be placed anywhere, i have it in my
    home dir. It does not need root priv's.
    
    #!/bin/sh
    
    LSMOD="`/sbin/lsmod | grep -w '^em8300' | wc -l`"
    if [ $LSMOD -eq 0 ] ; then
      /bin/echo "You need to get root to run /etc/rc.d/rc.dvd start first..."
      exit
    fi
    
    case "$1" in
    
      ogle)
    	xvattr -a XV_DOUBLE_BUFFER -v 0
    	ogle -u cli /dev/dvd
    	;;
    
      mplayer)
    #	mplayer -forceidx -mc 10/10 -alang en -ao oss:/dev/em8300_ma-0 -vo dxr3 -vc mpegpes -dvd 1
    #	mplayer -alang en -mc 5/10 -ao oss:/dev/em8300_ma-0 -vo dxr3 -vc mpegpes -dvd 1
    	mplayer -alang en -mc 5/10 -ao oss:/dev/em8300_ma-0 -vo mpegpes -vc mpegpes -dvd 1
    	;;
    
      *)
    	/bin/echo "USAGE: startdvd ogle | mplayer"
    
    esac
    
    # EOF
    
    If you find spelling mistakes or you think i missed some or another
    important thing/command out, please write and tell me, there is a mail link
    in my index page, click below on home to go there.
    
    
  • home