Snd-bt87x (alsa bt878 driver)

From LinuxTVWiki
Revision as of 21:27, 19 May 2008 by Mpapet (talk | contribs)
Jump to navigation Jump to search

The rumor is that snd-bt87x is the ALSA driver that replaces the legacy btaudio.

When setting up the driver, find and delete any defaults that may be present that would make getting the sound to work a challenge. For example, in Debian, there is a mapping string in /etc/modprobe.d/aliases that maps bttv devices to -2 to get them "out of the way" of the default sound card.


Functional sound is still a lottery because of the wide variety of card designs using the bttv framegrabber and the unknown number of actively maintained drivers from kernel version to kernel version. Mythtv has good information on what is supported with their application. In theory, this wiki is supposed to have better information, but there are many gaps. That's your chance to create a page for your card.


Rough instructions to get snd-bt87x.

Before inserting the card, you need to make some kernel options load by default when the system boots. In Debian, that is accomplished by adding a text file to /etc/modprobe.d/. For example /etc/modprobe.d/bttv. This can vary depending on your distro. Just know where and how you need to add the kernel options.

Before inserting the card, enable all debug options for the bttv, snd-bt87x, and bt878. If you have already inserted the card, add the kernel option to your system. For example, Debian keeps them in text files in /etc/modprobe.d. You need to be sure your primary sound card is given an index=0 kernel option and the snd-bt87x is given an index value of 1 (or greater) and has the load_all option. ex. snd-bt87x index=1 id=bttv load_all appears in my /etc/modprobe.d/bttv file. The id= option is helpful to name your cards. Sound rate options may need to be set.

If your primary volume is not down low, then turn your audio waaaay down before shutting off your PC. It's possible for the sound capture to come on right away with TV capture volume on 11. (See Spinal Tap for the "It goes to 11" reference)

If your card has internal connectors to send audio to an open plug on your sound card, then plug them in and not the name of the connector. (usually Aux) If it does not, you will need a patch cord running from the back of the tv card to your sound card's capture port.

After booting, open a terminal and type "dmesg | grep bt" (no quotes) That will give you all of the output related to the tv card. Your kernel should have no problems finding the card and giving it device nodes. At minimum, /dev/video0 should be created. If dmesg does not at least detect the card, then chances are excellent the card does not have the necessary driver options to function at all under Linux.

Check to see what devices have been made available for alsa a couple of ways. In the console, arecord -l should show at least one capture interface. Depending on the amount of support, amixer -c 1 should give a list of some controls from the snd-bt87x device. The "-c 1" option is the index number set in the kernel options.

It is probably the case that capture will need to be enabled in alsamixer for the plug you connected your card's audio. In a terminal, type alsamixer and press F4. Move the cursor to the device that may be capturing the audio and press the space bar. If capture and output are working, then sound should come out quietly at first when you return to the main mixer gui and turn up the capture volume.

Play with the the master volume and capture volumes to get things right for you. Then remove the debug options you enabled at the beginning.