Fly Video 98 IR remote control (in Linux)

Updated May, the 15th 2000


  • (29/04/1999) The software - see below.
  • (26/07/1999) Version 0.0.2 - new interface with bttv driver, lirc support.
  • (27/07/1999) Version 0.0.3 - port to the kernel (2.2.10) bttv driver, clean-up
  • (02/08/1999) Version 0.1 - Cleaned up kernel driver patches. Corrected lock-up in the bttv caused by wrong initialization order. First fully working setup (witch example configuration files). Get a lirc snapshot below - this is an only source of this code from now on. I'll not maintain any separate versions.
  • (05/05/2000) Patch for kernel 2.2.14 added. Test it!
  • (15/05/2000) Patch for kernel 2.2.15 added. Soft still version 0.1 (no bugs so far :).

    The story

    Recently I've bought myself a Fly Video 98 TV card. It works very well with last bttv driver and XawTV application. The only thing is - there is no support for remote control. I've tried to contact the vendor but the response  was:

    Dear Sir,
    Our product only support Windows 95/98/NT.
    Can't support Linux environment.
    Best Regards

    So I politely informed them that it is supported by the bttv driver and asked for some info about remote. No answer. Well, I said to myself, this should not be that hard. There is excellent documentation of Bt8xx chips put out by Rockwell/Brooktree. I have discovered without much trouble that signals from IR are decoded and send to the GPIO port of the Bt878 chip.

    The software

    The wait is over

    So, If you ware patient you will get some code :). Motivated by several messages from around the globe I've finished (?!) first pre-release of the driver. It is no longer a testing-only code it creates a character device (major 61, minor 0-4 - the minor depends on number of the card, the major will be probably changed to the one assigned to lirc drivers) with (non)/blocking reads from IR. The device spits out codes of pressed keys. When closed, the buffer is flushed. There is also a short testing program (readirctl.c). The whole is based and integrated with bttv driver (ver 0.6.3) and/or kernel bttv driver (developed and tested on 2.2.10). The code will compile only with 2.2.x kernel (I did not attempted to make it portable, yet). There is a small README and some example configuration files. Just unpack, check drivers/lirc_fly98/, run and make. The IR module is named lirc_fly98.c. I've tried to make modifications to the bttv as minimal as possible. Do not forget to create a device file (as root execute: mknod IRCtl c 61 0 ).  Please let me know how I did! I am not very experienced in kernel work. (You have been warned 8-) !

    I did not noticed any hang-ups or something. But no warranty.
    The code is GPL.


    Update 26/07/1999:
    Following some sugestions and code send to me by Unai Uribarri <> I've modified the driver quite a lot. I think that it can be promoted to beta state now. The interface to the bttv driver has changed to the cleaner one and I have ported it to the kernel bttv driver. The driver should support lirc library interface now and has a blocking read mode implemented as well as a support for multiple cards. For now it works in single character readout mode only! Do not try to read more characters/codes from the device at once - you will get just an error code. I would greatly appreciate any comments/corrections about the driver.

    Update 02/08/1999:
    The first working setup. With example configs. Get the lirc snapshot. I've removed older code. From now on only snapshots of lirc cvs will be posted here.

    Now some source:

  • Version 0.1 Snapshot (1999/08/02) of the lirc CVS tree containing first functional version.
  • Whatever is current today :) Snapshot (current 15/5/2000) of the lirc CVS tree containing recent changes of interface and drivers. (will be updated as needed).
  • Change Log
  • Patch for kernel 2.2.10
  • Patch for kernel 2.2.11
  • Patch for kernel 2.2.14
  • Patch for kernel 2.2.15

  • Page maintainer: Pawel T. Jochym <>