If you are a skilled Linux user, the following explanations will help you using the NetStream2000 driver without the scripts, giving a better understanding of the situation. The driver is made of 1. kernel land modules --- must be handled as root. 2. user land library and client applications --- better handled as user. ------------------------------------------------------------------------ 1. Kernel land a. Special devices Must be created with mknod (e.g. ``mknod /dev/realmagic0 c 122 0'') and chmod a+rw For /dev/realmagic?: crw-rw-rw- 1 root root 122, 0 Oct 11 11:01 /dev/realmagic0 crw-rw-rw- 1 root root 122, 1 Oct 9 17:52 /dev/realmagic1 For /dev/dvdpc?: crw-rw-rw- 1 root root 123, 0 Oct 11 11:01 /dev/dvdpc0 crw-rw-rw- 1 root root 123, 1 Oct 10 16:33 /dev/dvdpc1 crw-rw-rw- 1 root root 123, 2 Oct 10 16:33 /dev/dvdpc2 crw-rw-rw- 1 root root 123, 3 Oct 10 16:33 /dev/dvdpc3 b. realmagic8400.o module insmod realmagic8400 registers all NetStream2000 present in the PCI bus. If insmod fails your board is either badly inserted, either broken. It *must* succeed or anything else will fail. c. dvdpacketcommand.o module Do you run a kernel allowing direct sending of packet commands? (check this by grep CDROM_SEND_PACKET cdrom.h: #define CDROM_SEND_PACKET 0x5393 /* send a packet to the drive */) Kernels >= 2.2.16, latest 2.3.x have this ioctl. For these kernels, the /dev/dvdpc? devices need not exist, dvdpacketcommand.o module are obsolete (cannot be compiled anyways). Kernels <= 2.2.15 do not have this ioctl. This module (read the source code) scans the IDE interface and exposes the cdrom_queue_packet_command function. Resp. hda, hdb, hdc, hdd are mapped on resp. /dev/dvdpc0, 1, 2, 3. d. About ATAPI errors The packet command used to ask the DVD drive its RPC scheme: a4 00 00 00 00 00 00 00 00 08 08 00 is not understood by most RPC1 drive and the kernel logs this as a bogus ATAPI command. RPC2 drives answer properly. 2. User land a. Finding dynamic libs Do not forget export LD_LIBRARY_PATH=./lib remotecontrol, playfile, link dynamically to libEM8400.so. calibration, miniplayer, link dynamically to libnovaclient.so and libsettings.so. Commands are sent to the process using the decoder (remotecontrol) using a message queue. This IPC changes with USE_REALMAGIC8400 to allow multiple devices to run at the same time. b. Choosing between devices via environment If you use a recent kernel allowing CDROM_SEND_PACKET you *must* set export USE_KERNEL_CDROM_SEND_PACKET=yes If this variable is unset default is to try accessing also /dev/dvdpc?. You can choose the decoder if you have more than one with: export USE_REALMAGIC8400=/dev/realmagic1 for instance. If this variable is unset default is /dev/realmagic0. You can choose the DVD drive to use if you have more than one with: export USE_DRIVE=/dev/hdb for instance. If this variable is unset default is /dev/hdc (secondary master). If kernel does not allow CDROM_SEND_PACKET, do *not* use link names such as /dev/cdrom, since the dvdpc number is deduced from the /dev/hd? name. If it does, you can also use SCSI drives (usually /dev/scd0). Do not forget chmod a+rw. For remotecontrol application, you can choose the remote control port with export REMOTECONTROLPORT=/dev/ttyS1 for instance. If this variable is unset default is /dev/ttyS0 (first serial port). The serial port must be chmod a+rw and will be set in raw mode during operation. Using environment you can easily get two or more NetStream2000 to play on the same PC; if you take care to autocalibrate separately each device you can get multiple DVDs to play in windows on the same VGA monitor. c. Configuration files [HOME must be set] $HOME/.realmagicrcx stores the customized parameters for /dev/realmagicx device. $HOME/.realmagicanalogoverlayrcx stores the analog overlay calibration parameters for /dev/realmagicx device. d. Crashes If for some reason remotecontrol crashes, a sleeping process may remain in the process table, preventing a new one to open(/dev/realmagic0). Check this with pidof remotecontrol if your system has this command. Kill it with killall remotecontrol. Often this won't be enough, you will have to use killall -KILL remotecontrol About analog overlay Analog overlay autocalibration is ok for 1024x768, 800x600 or 640x480. For higher resolutions autocalibration may be difficult or impossible; because of hardware bandwidth limitation, you will get a blurry or distorted overlay at resolutions over 1600x1200. Low resolutions like 800x600 or 640x480 allow an optimal quality of the overlayed image. Since the window content (the key color) is overwritten by an analogic signal, resolution of the monitor is not relevant then. During the autocalibration process the decoder should not be playing; we use for this purpose a ``dummy'' application that just calls MPEGDriverEntry and sleeps. You may use calibration or miniplayer on a playing DVD to change brightness/saturation/contrast/volume. Of course you may run or you will run into troubles if you use: * remote displays :-) * more than one monitor * more than one screen * virtual desktops * customized high-resolution or very high vsync modelines * a monitor resolution less than root window resolution (viewport) This should be handled ok, though, when moving the window. If you switch resolution with Alt-Ctrl-+/- miniplayer won't catch the change and the overlay will certainly be offscreen. Note: calibration application expects XF86VidModeGetModeLine, XF86VidModeGetViewPort/SetViewPort to run properly which was not the case on one of our test machines. (calls to XF86VidModeSetViewPort have been disabled). *** You may also read the ChangeLog file to get detailed information about NetStream2000 beta driver progress.