# BeOS driver for USBVision (Nogatech) TV tuners

## Introduction

This driver is designed to support USBVision (Nogatech) TV Tuners. Tested with:

Name | Vendor ID | Product ID
Hauppauge WinTV FM | 0x0573 | 0x4d31

NOTE that | I have one small request for you - if you tried this driver and it works - PLEASE e-mail me the information about your USB TV Tuner and results of your experiments. This information is very interesting for me and helps in improvement this driver! Thank you for co-operation!
NOTE that | If you definetily have the some kind of USB TV Tuner but this driver didn't help you - see section "Unknown devices" below for instructions.

NOTE that | If your computer has the OHCI-compatible USB hardware you are out of luck. This hardware is not supported by non-Dan0-like versions. See the BeOS.USB.patches vor details and solutions.

What's new:

Version: | History:
0.1.0-dev-0 | very first "development" release.

## 1. Installation

- Run install.sh
- If all is OK ... //TODO:
- If something goes wrong ... //TODO:

## 2. Uninstallation

- Run uninstall.sh

## 3. Problems solving

- If this driver crash your system - reboot and press "Space" during load. In boot menu select "Disable user add-ons" and continue boot. Uninstall driver and reboot again into normal mode. Write me a e-mail about this problem.

## 4. "Unknown" devices

If you have something, that looks like USB TV tuner and tried it with this driver but have no success - download usb device info tool and use it to get required information.

- Unplug all USB devices and hubs from your PC.
- Go into Terminal and run the following command: ls -alR /dev/bus/usb You should see something like this:

      $ ls -alR /dev/bus/usb/
      /dev/bus/usb:
      total 0
      drw-r--r--   1 walther  users           0 May 31 23:16 .
      drw-r--r--   1 walther  users           0 Jun  1  2003 ..
      drw-r--r--   1 walther  users           0 May 31 23:16 0
      drw-r--r--   1 walther  users           0 May 31 23:16 1
      crw-r--r--   1 walther  users      0,   0 May 31 23:16 unload

      /dev/bus/usb/0:
      total 0
      drw-r--r--   1 walther  users           0 May 31 23:16 .
      drw-r--r--   1 walther  users           0 May 31 23:16 ..
      crw-r--r--   1 walther  users      0,   0 May 31 23:16 hub

      /dev/bus/usb/1:
      total 0
      drw-r--r--   1 walther  users           0 May 31 23:16 .
      drw-r--r--   1 walther  users           0 May 31 23:16 ..
      crw-r--r--   1 walther  users      0,   0 May 31 23:16 hub

- Note this information.
- Now plug your USB TV tuner into PC and run ls -alR /dev/bus/usb/ again. You'll get something slightly different:

      $ ls -alR /dev/bus/usb/
      /dev/bus/usb:
      total 0
      drw-r--r--   1 walther  users           0 May 31 23:16 .
      drw-r--r--   1 walther  users           0 Jun  1  2003 ..
      drw-r--r--   1 walther  users           0 May 31 23:16 0
      drw-r--r--   1 walther  users           0 May 31 23:16 1
      crw-r--r--   1 walther  users      0,   0 May 31 23:16 unload

      /dev/bus/usb/0:
      total 0
      drw-r--r--   1 walther  users           0 May 31 23:16 .
      drw-r--r--   1 walther  users           0 May 31 23:16 ..
      crw-r--r--   1 walther  users      0,   0 May 31 23:17 1
      crw-r--r--   1 walther  users      0,   0 May 31 23:16 hub

      /dev/bus/usb/1:
      total 0
      drw-r--r--   1 walther  users           0 May 31 23:16 .
      drw-r--r--   1 walther  users           0 May 31 23:16 ..
      crw-r--r--   1 walther  users      0,   0 May 31 23:16 hub

  $
- Compare this results with previous one and look for file, that appeared. This file is your USB TV tuner.
- Unpack downloaded usb_dev_info command and run it with full path to file appeared in the second listing. For my sample I should run: usb_dev_info /dev/bus/usb/0/1 I'll get the following:

      $ usb_dev_info /dev/bus/usb/0/1
      [Device]
      Class .................. 0
      Subclass ............... 0
      Protocol ............... 0
      Vendor ID .............. 0x0573
      Product ID ............. 0x4d31
      Version ................ 0x0100
      Manufacturer String .... "NT"
      Product String ......... ""
      Serial Number .......... ""
        [Configuration 0]
          [Interface 0]
          Class .............. 0
          Subclass ........... 0
          Protocol ........... 0
            [Endpoint 0]
            MaxPacketSize .... 8
            Interval ......... 1
            Direction ........ Input
            [Endpoint 1]
            MaxPacketSize .... 0
            Interval ......... 1
            Type ............. Isochronous
            Direction ........ Output
        [Configuration 1]
          [Interface 0]
          Class .............. 0
          Subclass ........... 0
          Protocol ........... 0
            [Endpoint 0]
            MaxPacketSize .... 8
            Interval ......... 1
            Direction ........ Input
            [Endpoint 1]
            MaxPacketSize .... 0
            Interval ......... 1
            Type ............. Isochronous
            Direction ........ Output
            [Endpoint 2]
            MaxPacketSize .... 0
            Interval ......... 1
            Type ............. Isochronous
            Direction ........ Input
        [Configuration 2]
          [Interface 0]
          Class .............. 0
          Subclass ........... 0
          Protocol ........... 0
            [Endpoint 0]
            MaxPacketSize .... 8
            Interval ......... 1
            Direction ........ Input
            [Endpoint 1]
            MaxPacketSize .... 0
            Interval ......... 1
            Type ............. Isochronous
            Direction ........ Output
            [Endpoint 2]
            MaxPacketSize .... 64
            Interval ......... 1
            Type ............. Bulk
            Direction ........ Output
        [Configuration 3]
          [Interface 0]
          Class .............. 0
          Subclass ........... 0
          Protocol ........... 0
            [Endpoint 0]
            MaxPacketSize .... 8
            Interval ......... 1
            Direction ........ Input
            [Endpoint 1]
            MaxPacketSize .... 0
            Interval ......... 1
            Type ............. Isochronous
            Direction ........ Output
            [Endpoint 2]
            MaxPacketSize .... 0
            Interval ......... 1
            Type ............. Isochronous
            Direction ........ Input
            [Endpoint 3]
            MaxPacketSize .... 64
            Interval ......... 1
            Type ............. Bulk
            Direction ........ Output

- Send this information to me with some additional words about your device.

## What is "BeOS.USB.patches"?

All know that "classical" BeOS R5 don't works on OHCI USB hardware. But some time ago on one well-known BeOS file-sharing network appeared patches for plain R5. Those patches allows to work with OHCI hardware under this system version. Looks like it is some part of Dan0 or other "leaked" versions. There are 3 patches in BeOS.USB.patches.zip:

1. beos-usb-patch,

2. beos-usb.modem-patch,

3. beos-usb.modem-patch.sm.

You need the first one to make your OHCI hardware working under R5. Install it and proceed with this driver. Good luck!

Siarzuk Zharski

http://www.zharik.host.sk/