Kernels at least as recent as 2.2.16 or 2.4 series should already have DVD ioctl support, so you just need to make sure you have MTRR support enabled in the kernel configuration, and then compile and install it as you normally would.
If you want to patch your exisiting older kernel, start by going to http://www.kernel.dk/ and downloading the correct patch for your kernel.
If don't know how to install or patch your kernel, you should go read the Kernel HOWTO at http://howto.tucows.com/LDP/HOWTO/Kernel-HOWTO.html
To install the LiViD utilities, you need to make sure you have /usr/local/lib somewhere in /etc/ld.so.conf.
DVD playback only requires OMS to be built. It builds ac3 and mpeg2 codecs by itself. However, feel free to play with the standalone codecs if you wish. The following commands should compile and install the LiViD utilities on your system. If you have problems, please see the "Problems" section.
ac3dec: (optional) # cd ~/livid/ac3dec # ./autogen.sh # make # make install mpeg2dec: (optional) # cd ~/livid/mpeg2dec # ./autogen.sh # make # make install oms: # cd ~/livid/oms # ./autogen.sh # ./configure # make # make install
There are some extra options that can be used. They are placed as arguments to the ./configure script. OMS has --enable-devel which will enable some development and experimental features in the code. Standard autoconf parameters such as --prefix can be used if you wish to install somehwere other than /usr/local. For instance to install in a subdir of the source dir you could do:
# ./configure --prefix=`pwd`/inst
Run ./configure --help to get a complete listing of options. If you install X in an odd location (for instance you have XFree86 3.3.x and 4.x installed at the same time) you may need the --x-includes and --x-libraries options.
Now the necessary LiViD utilities should be installed. The next section is not required, but if you use the "pipes" plugin, you will need to make some special fifo pipes for the DVD data to travel over. These can be made with the following commands (if they don't already exist):
# mkfifo /tmp/video # mkfifo /tmp/audio
Another method of controlling the data available in the oms_devel version is to use raw I/O, which is available in the latest linux kernels. If you don't have these, data will be read from the standard device. Using raw I/O is recommended, but not necessary. If they do not exist, create two devices as follows:
# mknod /dev/rawctl c 162 0 # mknod /dev/raw1 c 162 1
One last thing to do. OMS needs /dev/dvd to be a symlink to where your DVD drive resides, such as /dev/hdb1 or /dev/scd0. If it is at /dev/cdrom, you would create the link by typing:
# ln -s /dev/cdrom /dev/dvd
It is generally a good idea not to make a symlink to a symlink, because it adds unnecessary I/O. Replace /dev/cdrom with the correct device that your dvd drive is on.