Using a WinTV in a Sun
When I originally wrote this, the described procedure was the only way to use a WinTV card under Solaris/SPARC. Today, if you want support for a WinTV card on Solaris/SPARC, there is a opensource driver available here. However, if you want to make your WinTV card work with a SunVideo-compatible driver, read on...
Ever want to have video capture abilities on your PCI-based Sun workstation, but couldn’t stomach the cost of supported solutions? Well, one of the supported cards just so happens to use the exact same chip as the popular low-cost WinTV cards. In fact, getting the driver from this supported card to work with the WinTV wasn’t all that difficult.
Note: This procedure was used for a bt878-based WinTV with the 64-bit kernel/driver on Solaris 8. However, it should be easy to adapt it to other configurations with a small amount of effort.
Step 1: Go to the ViewCast website and download the drivers for their Solaris-supported "Osprey 150" video capture board. (version r130 used here)
Step 2: Install the drivers on your system. This procedure should work flawlessly, and the driver will load just fine. However, the included software won’t yet function properly. We’ll fix that in the next step.
Step 3: Driver hacking time. Here’s a snapshot of what you need to do to "fix" the driver so it will work with your WinTV card:
# cd /kernel/drv/sparcv9 # adb -w o1c o1c_open+0x288,5?ai o1c_open+0x288: o1c_open+0x288: mov %i2, %o0 o1c_open+0x28c: tst %o0 o1c_open+0x290: be,a,pt %icc,o1c_open+0x298 o1c_open+0x294: mov 0x6, %l2 o1c_open+0x298: cmp %l2, 0x0 o1c_open+0x294?X o1c_open+0x294: a4102006 o1c_open+0x294?W a4102000 o1c_open+0x294?ai o1c_open+0x294: o1c_open+0x294: clr %l2 $q #
What we did there, was alter the open function for the driver so that it won’t fail if the card’s ID doesn’t match what it expects.
Step 4: Reboot the system.
Step 5: Enjoy! Also, don’t forget to configure SunVideo compatibility with "/opt/MMACo1c/bin/svc_install" so you can use the full range of video capture software on your system. Only two things to note… First of all, since the Osprey 150 is only a capture board, the tuner functionality of your WinTV won’t work. Just use something like a VCR to feed the video inputs of the card and the audio line-in of your system. Second, it seems that ViewCast doesn’t exploit the special overlay features of the bt878, so all video will pass through system memory and eat processing power. (the PC WinTV drivers have the card itself do DMA transfers directly to video memory, which avoid this problem)