SourceFiles.org - Use the Source, Luke
Home | Register | News | Forums | Guide | MyLinks | Bookmark

Sponsored Links

Latest News
  General News
  Reviews
  Press Releases
  Software
  Hardware
  Security
  Tutorials
  Off Topic


Back to files
Loadable Videotext-Device-Driver V1.6 for Linux (C) 1994-96 Martin Buck

This videotext-driver makes it possible to use videotext-interfaces from different vendors without modifications to the decoder-program. It should be rather trivial to adapt it to other SAA 5243/SAA 5246-based cards. Interfaces using other chipsets can be supported too, since hardwarespecific deatils like register-layout etc. are hidden from user-programs.

Programs using this driver don't need to do any low-level I/O-operations, which is why they don't need any special privileges anymore. Also, there should be no trouble with incorrect timing, since this driver uses the udelay()-macro which offers microsecond-resolution and which is calibrated during system startup (the famous BogoMips-value).

At the moment, the following interfaces are supported: o c't-Videotext-card: This one was published in the german computer-magazine c't 11/91, p. 228 and c't 7/92, p. 176. Only the version with a SAA5246 is supported. The SAA5244 is completely useless. o serial c't-card: The interface published in c't 7/92 can also be connected to a serial port. You need the cable with Amiga-pinout:

    videotext-decoder             serial port
    (9-pin Sub-D)                 (25-pin / 9-pin Sub-D)
    SCL     (Pin 8) <-----------> RTS (Pin 4 / Pin 7)

SDA-out (Pin 7) <-----------> DCD (Pin 8 / Pin 1) SDA-in (Pin 9) <-----------> DTR (Pin 20 / Pin 4) GND (Pin 3) <-----------> GND (Pin 7 / Pin 5) o VTX2000/VD3000: These are internal cards made by Wiegand Datentechnik/ Videodat Medien GmbH, Germany. The VTX2000 is a videotext-only card, the VD3000 has an additional videodat-decoder (unsupported). The external version of the VTX2000 is supported, too. o PCVTXstandard/PCVTXcircular: 2 internal ISA-cards made by TechConsult, Munich. The PCVTXstandard uses a "normal" SAA5243, the PCVTXcircular uses a SAA5249 and 512kB Cache. The cache stores the most recently transmitted pages (FIFO). This eliminates delays when requesting single pages (mainly for stations not using TOP-Text); it won't help with multi-pages, though. o ELV PC-VT 7000: An external decoder with an ISA-bus-interface. It was published in ELV journal 2/90, p. 54, 3/90, p. 54 and 4/90, p. 16. o SATCOM: This is an external VTX-decoder connected to a serial port made by KDK Satcom, Germany.
o All interfaces connected to a parallel port using Gerald Sinzing's pinout and a SAA5243 or SAA5246 as decoder. Gerald tells you more about this interface in the docs for his DOS-program TOPTEXT 4.1 which you can find on my WWW-VideoteXt-page.
o An interface developped by myself which makes it possible to connect the videotext-chipset of a VCR to the parallel port of a PC.

Since I don't have any information on other videotext-interfaces, I can't support them at the moment. But if you have an unsupported interface, please tell me; otherwise I will probably never support it.

If you want to write your own videotext-decoder please refer to the file 'programing.txt' for further information about the routines the driver offers.

INSTALLATION

Due to the fact that this drivers consists of only one single source-file installation should be rather straightforward. Nevertheless you (obviously) need root-privileges to complete the installation.

First, you should uncomment the line defining your videotext-interface in the Makefile. You also have to enter the default I/O-base-address for you card. Checking if the default major-number is already in use and changing it if necessary (use 'cat /proc/devices' to get a list of currently installed drivers & major-numbers) would also be a good idea. Also, you can change the directories, permissions and groups of the files to install if you like.

Now you can compile the driver with 'make' and install it (after having logged in as root) with 'make install'. If you already have the modutils installed, you can load the driver with 'insmod <name>'; otherwise please install this package first. To load the driver always when booting the system, insert the command in one of the rc-files in /etc (for Slackware & friends, /etc/rc.d/rc.local is probably the right one).

If you use Linux 1.1.67 or above, you should get the new modutils-package so you can pass commandline arguments when loading the driver. Currently you can redefine the base_io-address with base_io=<address>, the major-number with major=<major-number> and set slow_if=1 if you get lots out timeouts.

If you have an old kernel (1.1.x or older) and get errors about request_region or release_region being undefined when loading the driver, you should uncomment the line containing 'NO_REQUEST_REGION' in the Makefile. If you get errors about other undefined symbols, your kernel doesn't export all the necessary symbols (starting from Linux 1.1.63, all necessary symbols are exported). To change this, you have to edit the file 'kernel/ksysms.c' in your Linux source-tree. Just enter the symbols insmod complained about here (omit the leading '_'; look at the other symbols defined there); you also might have to insert the line '#include <linux/delay.h>' somewhere at the beginning of the file. After booting the new kernel, insmod should succeed.

Beware: If you use the driver with an interface attached to a serial or parallel port, you may not access the corresponding port while you use the videotext-driver. If you use the port only for VideoteXt, it would be best do disable the other driver for this port completely. Unfortunately, Linux isn't able to disable the other driver temporarily, as soon as the videotext-driver is accessed.

BUGS

If you encounter any problems when using this driver, please send me an exact description of the bug and, if possible, how to repeat it. If the driver doesn't work at all with a particular interface, please uncomment the line 'DEBUG = -DDEBUG_VTX' in the Makefile and recompile the driver. Then you should load the driver with 'insmod vtx.o debug=2' and request a page with 'vtxget 100'. The log- and errormessages which should appear in your syslog then will (hopefully) tell me what's wrong.

If you get kernel-panics etc. please send me the complete register-dump:

        general protection: xxxx
        EIP:    0010:xxxxxxxx
        EFLAGS: xxxxxxxx
        eax: xxxxxxxx   ebx: xxxxxxxx   ecx: xxxxxxxx   edx: xxxxxxxx
        esi: xxxxxxxx   edi: xxxxxxxx   ebp: xxxxxxxx
        ds: xxxx  es: xxxx  fs: xxxx  gs: xxxx
        Pid: xx, process nr: xx
        xx xx xx xx xx xx xx xx xx xx

Additionally I need the start-address of the driver which is printed by insmod when loading the driver (module `vtx.drv' (1 pages @ 0x0100e000) created). ^^^^^^^^^^

Also, you should include the symbol-dump of the driver's object-file (create it with 'nm vtx.o'). If you use the new modutils (>1.1.67), the startaddress isn't printed by default. Instead use the '-m'-option with insmod and send me the symbol-table that will be printed.

If only one of these details is missing, your bug-report is worthless to me.

COPYRIGHT

You may distribute this driver freely under the terms of the GNU General Public License (file 'COPYING').

Now have fun with this driver,
Martin Buck

Internet: <martin-2.buck@student.uni-ulm.de> Snail-Mail: Martin Buck, Paukengasse 2, D-89077 Ulm, Germany


Sponsored Links

Discussion Groups
  Beginners
  Distributions
  Networking / Security
  Software
  PDAs

About | FAQ | Privacy | Awards | Contact
Comments to the webmaster are welcome.
Copyright 2006 Sourcefiles.org All rights reserved.