This is based on my notes of all the commands I entered to put this
together, and my memory. Some details are beyond the scope of this document.
Some experience configuring and compiling the Linux kernel is required.
The RedHat documentation has more info. General knowledge of basic Linux/UNIX
commands, and how to edit text files will be helpful.
Start with a fresh workstation(?) install of RedHat 6.2.
Open a Terminal (command line prompt) window.
Make sure X Windows is running at least 15 bits color depth.
xwininfo -rootIf it isn't, exit X Windows and run Xconfigurator and set it up.
Install kernel source code if it is not already installed. Take a look at the kernel source directory.
cd /usr/src/linuxThere should be several files including Makefile, CREDITS, etc., and about a dozen subdirectories full of source code. If not, install the kernel source from the RedHat CD disk 1. Put it in the drive, and wait for the system to mount it.
ls
cd /mnt/cdrom/RedHat/RPMSNow we must compile the kernel. You have to compile the kernel before you can compile a driver. First we will edit the Makefile and change the version slightly so our rebuilt kernel and kernel modules don't get confused with the RedHat binaries. You don't want to mix-and-match kernel and module binary files!
rpm -ihv kernel-source-*
cd /usr/src/linuxGo to the line "EXTRAVERSION =" and delete the stuff to the right of the = sign. Save and exit. Now set up kernel compile parameters, also called the kernel "config".
emacs Makefile
make xconfigSet the processor type and features.
make dep; make clean; make bzImageThis will take a few minutes. Go get a Coke® or something.
cp arch/i386/boot/bzImage /boot/vmlinuz-2.2.14If your kernel version isn't 2.2.14, then use your kernel version number. Ditto where you see 2.2.14 elsewhere in this file. The System.map is just a list of the global symbols in the kernel, used for debugging and some kernel error messages. It is not critical to have it, but is saves you from getting a bunch of unprofessional-looking warning messages if you keep your System.map file correctly sync'd with the kernel.
cp System.map /boot/System.map-2.2.14
make modules; make modules_installNow some final setting up and we can boot our new kernel! Just have to point the boot loader (LILO) to our new kernel file, and set our new System.map.
cd /bootCreate a new image "block" by making a duplicate of the first "block". The new block should be first. Change the image= line to our new kernel: "image=/boot/vmlinuz-2.2.14". Change the label= line for the block that used to be the first block to "label=safe". If the new kernel doesn't work, then restart the machine and enter "safe" at the LILO boot: prompt, that will boot with the original RedHat kernel.
rm System.map
ln -s System.map-2.2.14 System.map
emacs /etc/lilo.conf
liloYou are up and running with the new kernel, right? Fantastic!
shutdown -r now
Now we must install the Winnov drivers. Then the Real software. No more reboots will be necessary. Get the new driver files. Get videodev20000113.tgz, wnv19991229.tgz and wnvaud19990923.tgz (or whatever are the latest). Videodev is available from
http://www.thedirks.org/v4l2/ or ftp://ftp.thedirks.org/pub/v4l2/kernel2.2/videodev. The Winnov files are available from http://www.thedirks.org/winnov/ or ftp://ftp.thedirks.org/pub/v4l2/kernel2.2/winnov.When you've got the files, then unpack them and compile modules. All Winnov driver files are modules.
cd /usr/src/linuxChange the line "obj-m :=" to "obj-m := wnvaud.o".
cp drivers/char/videodev.c drivers/char/videodev1.c
cp include/linux/videodev.h include/linux/videodev1.h
tar zxvf videodev20000113.tgz
cd drivers/char
tar zxvf wnv19991229.tgz
cd ../sound
tar zxvf wnvaud19990923.tgz
emacs Makefile
cd ../charChange the line "M_OBJS :=" to "M_OBJS := wnv.o wnvvid.o".
emacs Makefile
cd ../..That should have compiled with no errors. Now we need to edit the module configuration file so the kernel will know about our new modules and how to load them.
make modules; make modules_install
depmod -a
emacs /etc/conf.modulesAdd the following lines. This sets up four video capture devices.
alias char-major-81 videodevMake sure /dev/video0, /dev/video1, /dev/video2 and /dev/video3 exist. For me I only needed to add the last two.
alias char-major-81-0 wnvvid
alias char-major-81-1 wnvvid
alias char-major-81-2 wnvvid
alias char-major-81-3 wnvvid
options wnvvid unit_video=0,1,2,3
alias char-major-14 wnvaud
mknod /dev/video2 c 81 2You may have to do mknod's for additional audio devices too. The audio device files are /dev/dsp# and /dev/mixer#. I didn't do it yet.
mknod /dev/video3 c 81 3
Test the Winnov drivers. Get the file apps20000229.tgz, or whatever is latest. You can get it from
http://www.thedirks.org/v4l2/ or ftp://ftp.thedirks.org/pub/v4l2/apps/.cdIf the xcaptest doesn't work, try adding -b to the command line: ./xcaptest -b /dev/video0&. You should see video from Videum board 0.
mkdir apps
cd apps
tar zxvf apps20000229.tgz
make
./xcaptest /dev/video0&
./vidpanel /dev/video0&
Install RealProducer.
I noticed that /usr/local/bin is not in the PATH. This is where the
RealProducer exe file goes, so I thought it would be convenient to add
it to the PATH.
emacs /etc/profileAdd that PATH=... line to /etc/profile at an appropriate spot, and also type it on the command line. Get the RealProducer file from www.realnetworks.com. I put it in /usr/local/real.
PATH="$PATH:/usr/local/bin"
mkdir /usr/local/realTake all the default values. That's it. Run it with xrealproducer (for GUI version) or realproducer (for command line version).
cd /usr/local/real
tar zxvf rprod*
./install
xrealproducer&I got an error message about an undefined symbol. There is a patch on the Real Networks web site that I am told fixes this. I have not tried it. (Unfortunately I did not have time to get RealProducer working before I had to return the machine I was working on to Winnov.)
Now install RealServer. Only if you want to serve streams from
this machine to the public. Download RealServer and get license file. I
put them in /usr/local/real.
You install it by executing the .bin file.
chmod +x g2_7_0*Enter the complete path to your license file including the license file name.
./g2_7_0*
To start RealServer
/opt/RealServer/Bin/rmserver /opt/RealServer/rmserver.cfgTo stop RealServer
kill `cat /opt/RealServer/Logs/rmserver.pid`Put your RealServer pre-recorded content files in /opt/RealServer/Content directory. See http://63.198.58.131/streamtest.html for an example of a web page with RealVideo links. (I did get RealServer working, contrary to RealProducer.)
That's all I've got. Hope it helps.
Bill.