Re: ALSA problem - TV tuner no sound
Michael Bonert wrote:
> I recently upgraded kernels (2.6.18-4-k7 -> 2.6.11-1-k7) and sound systems (OSS -> ALSA).
>
> Sound, aside from the TV tuner, works fine.
>
> My TV tuner worked like a snap under OSS and made use of the following drivers:
> bttv
> bt878
>
> I've discovered that 'bttv' is need for 'xawtv' to load. It appears
> to be essential for the video.
> bt878, as far as I can tell, is the OSS driver.
>
>
> I thought replacing 'bt878' with 'snd_bt87x' would be the fix -- NOPE.
>
> I thought things might work with the compatibility package, i.e.
> "apt-get install alsa-oss" & "apt-get install oss-compat" -- NOPE.
>
>
> I ran into this problem about 2 years ago (see: http://linux.derkeiler.com/Mailing-Lists/Debian/2005-01/4381.html )
> -- gave-up and went back to OSS. Seems the problem-- still isn't
> resolved cleanly.
>
>
> I blacklisted 'bt878' as described here:
> https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.15/+bug/29789
>
> # vi /etc/modprobe.d/blacklist
> -----------------------------
> # added by MB - 2 Jul 2007
> # https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.15/+bug/29789
> blacklist bt878
> -----------------------------
>
> # vi /etc/discover.conf
> -----------------------------
> # the following was added by MB -- to avoid that the OSS driver loads
> # see: http://www.linuxmafia.com/faq/Debian/alsa.html
> skip bt878
> -----------------------------
> The two things above avoided that 'bt878' loads on boot-up... but gots me no further ahead on the TV tuner sound.
>
>
> Software:
> ---------
> ALSA version:
> $ more /proc/asound/version
> Advanced Linux Sound Architecture Driver Version 1.0.12rc1 (Thu Jun 22 13:55:50 2006 UTC).
>
> Kernel:
> $ more /proc/version
> Linux version 2.6.18-4-k7 (Debian 2.6.18.dfsg.1-12) (waldi@debian.org)
> (gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)) #
> 1 SMP Mon Mar 26 17:57:15 UTC 2007
> ---------
>
>
> I read about a problem with artsd (KDE), bttv and ALSA. Turning off the KDE sound system didn't change things.
>
>
> Looking at the modules...
> $ more /proc/asound/modules
> 0 snd_emu10k1
> 1 snd_mpu401
>
> ---------
> I haven't figured-out what 'snd_mpu401' is...
>
>
> I did try:
> # modprobe -r snd_mpu401 snd_mpu401_uart
> This didn't make a change I noticed (other sound still worked).
>
>
> It bothers me that I only find my sound card:
> # cat /proc/asound/cards
> 0 [Live ]: EMU10K1 - SBLive 5.1 [SB0060]
> SBLive 5.1 [SB0060] (rev.7, serial:0x80611102) at 0xd400, irq 217
> 1 [UART ]: MPU-401 UART - MPU-401 UART
> MPU-401 UART at 0x330, irq 10
> ---------
> I'm not sure what 'MPU-401' is. (My sound card uses: 'snd_emu10k1'.)
>
>
> 'lspci' finds the sound hardware:
> $ lspci
> <snippage>
> 01:07.0 Multimedia video controller: Brooktree Corporation Bt878 Video Capture (rev 02)
> 01:07.1 Multimedia controller: Brooktree Corporation Bt878 Audio Capture (rev 02)
> 01:0a.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 07)
> 01:0a.1 Input device controller: Creative Labs SB Live! Game Port (rev 07)
> <snippage>
> ---------
>
>
> My impression is that the problem lies at the level of the kernel-- after
> looking at the boot log with 'dmesg':
>
> If I block loading of 'bt878' with blacklisting in "/etc/modprobe.d/blacklist" and "/etc/discover.conf" dmesg looks like:
>
> $ dmesg |grep bt
> bttv: driver version 0.9.16 loaded
> bttv: using 8 buffers with 2080k (520 pages) each for capture
> bttv: Bt8xx card found (0).
> bttv0: Bt878 (rev 2) at 0000:01:07.0, irq: 209, latency: 32, mmio: 0xe4000000
> bttv0: detected: ATI TV Wonder [card=63], PCI subsystem ID is 1002:0001
> bttv0: using: ATI TV-Wonder [card=63,autodetected]
> bttv0: gpio: en=00000000, out=00000000 in=00ffffff [init]
> bttv0: using tuner=19
> bttv0: i2c: checking for MSP34xx @ 0x80... found
> msp3400 2-0040: MSP3430G-A4 found @ 0x80 (bt878 #0 [sw])
> bttv0: i2c: checking for TDA9875 @ 0xb0... not found
> bttv0: i2c: checking for TDA7432 @ 0x8a... not found
> bttv0: i2c: checking for TDA9887 @ 0x86... not found
> tuner 2-0060: chip found @ 0xc0 (bt878 #0 [sw])
> bttv0: registered device video0
> bttv0: registered device vbi0
> bttv0: PLL: 28636363 => 35468950 .. ok
> bttv0: PLL can sleep, using XTAL (28636363).
> bttv0: PLL: 28636363 => 35468950 .. ok
> bttv0: unloading
> bttv: driver version 0.9.16 loaded
> bttv: using 8 buffers with 2080k (520 pages) each for capture
> bttv: Bt8xx card found (0).
> bttv0: Bt878 (rev 2) at 0000:01:07.0, irq: 209, latency: 32, mmio: 0xe4000000
> bttv0: detected: ATI TV Wonder [card=63], PCI subsystem ID is 1002:0001
> bttv0: using: ATI TV-Wonder [card=63,autodetected]
> bttv0: gpio: en=00000000, out=00000000 in=00ffffff [init]
> msp3400 2-0040: MSP3430G-A4 found @ 0x80 (bt878 #0 [sw])
> tuner 2-0060: chip found @ 0xc0 (bt878 #0 [sw])
> bttv0: using tuner=19
> bttv0: i2c: checking for MSP34xx @ 0x80... found
> bttv0: i2c: checking for TDA9875 @ 0xb0... not found
> bttv0: i2c: checking for TDA7432 @ 0x8a... not found
> bttv0: i2c: checking for TDA9887 @ 0x86... not found
> bttv0: registered device video0
> bttv0: registered device vbi0
> bttv0: PLL: 28636363 => 35468950 . ok
> bt878: AUDIO driver version 0.0.0 loaded
> bt878: Bt878 AUDIO function found (0).
> bt878_probe: card id=[0x11002], Unknown card.
> bt878: probe of 0000:01:07.1 failed with error -22
> bttv0: PLL can sleep, using XTAL (28636363).
> btaudio: driver version 0.7 loaded [digital+analog]
> btaudio: Bt878 (rev 2) at 01:07.1, irq: 209, latency: 32, mmio: 0xe4001000
> btaudio: using card config "default"
> btaudio: registered device dsp1 [digital]
> btaudio: registered device dsp2 [analog]
> btaudio: registered device mixer2
> bttv0: unloading
> btaudio: driver version 0.7 loaded [digital+analog]
> btaudio: Bt878 (rev 2) at 01:07.1, irq: 209, latency: 32, mmio: 0xe4001000
> btaudio: using card config "default"
> btaudio: registered device dsp1 [digital]
> btaudio: registered device dsp2 [analog]
> btaudio: registered device mixer2
> bttv: driver version 0.9.16 loaded
> bttv: using 8 buffers with 2080k (520 pages) each for capture
> bttv: Bt8xx card found (0).
> bttv0: Bt878 (rev 2) at 0000:01:07.0, irq: 209, latency: 32, mmio: 0xe4000000
> bttv0: detected: ATI TV Wonder [card=63], PCI subsystem ID is 1002:0001
> bttv0: using: ATI TV-Wonder [card=63,autodetected]
> bttv0: gpio: en=00000000, out=00000000 in=00ffffff [init]
> msp3400 2-0040: MSP3430G-A4 found @ 0x80 (bt878 #0 [sw])
> tuner 2-0060: chip found @ 0xc0 (bt878 #0 [sw])
> bttv0: using tuner=19
> bttv0: i2c: checking for MSP34xx @ 0x80... found
> bttv0: i2c: checking for TDA9875 @ 0xb0... not found
> bttv0: i2c: checking for TDA7432 @ 0x8a... not found
> bttv0: i2c: checking for TDA9887 @ 0x86... not found
> bttv0: registered device video0
> bttv0: registered device vbi0
> bttv0: PLL: 28636363 => 35468950 .. ok
> bt878: AUDIO driver version 0.0.0 loaded
> bttv0: PLL can sleep, using XTAL (28636363).
> -------------------
>
> Without modifications to "/etc/modprobe.d/blacklist" and "/etc/discover.conf":
>
> $ dmesg |grep bt
> bttv: driver version 0.9.16 loaded
> bttv: using 8 buffers with 2080k (520 pages) each for capture
> bttv: Bt8xx card found (0).
> bttv0: Bt878 (rev 2) at 0000:01:07.0, irq: 209, latency: 32, mmio: 0xe4000000
> bttv0: detected: ATI TV Wonder [card=63], PCI subsystem ID is 1002:0001
> bttv0: using: ATI TV-Wonder [card=63,autodetected]
> bttv0: gpio: en=00000000, out=00000000 in=00ffffff [init]
> bttv0: using tuner=19
> bttv0: i2c: checking for MSP34xx @ 0x80... found
> msp3400 2-0040: MSP3430G-A4 found @ 0x80 (bt878 #0 [sw])
> bttv0: i2c: checking for TDA9875 @ 0xb0... not found
> bttv0: i2c: checking for TDA7432 @ 0x8a... not found
> bttv0: i2c: checking for TDA9887 @ 0x86... not found
> tuner 2-0060: chip found @ 0xc0 (bt878 #0 [sw])
> bttv0: registered device video0
> bttv0: registered device vbi0
> bttv0: PLL: 28636363 => 35468950 .. ok
> bt878: AUDIO driver version 0.0.0 loaded
> bt878: Bt878 AUDIO function found (0).
> bt878_probe: card id=[0x11002], Unknown card.
> bt878: probe of 0000:01:07.1 failed with error -22
> bttv0: PLL can sleep, using XTAL (28636363).
> -------------------
>
> I have the feeling that the kernel doesn't play nice with the bt878 driver.
> ( bt878: probe of 0000:01:07.1 failed with error -22 )
>
> The 'BTTV HOWTO' ( http://tldp.org/HOWTO/html_single/BTTV/ )
> looked good. I gave it a read... but it didn't help me further.
>
>
> The questions I have are:
> 1. Is there anything specific one has to do to enable the 'alsa-oss' package?
> 2. Is there an easy way to downgrade to OSS?
> 3. What role does the driver 'btaudio' have?
> 4. How can I further trouble shoot the problem?
>
> Thanks,
> Michael
>
>
> Hardware:
> ========================================
> Athlon 2200 XP
> ASUS A7N8X (Motherboard)
> 512 MB RAM
>
> TVCard: ATI-TV Wonder
> Sound: Creative Labs Sound Blaster Live!
>
> Software:
> ========================================
> Debian GNU/Linux -- testing
> Kernel -- Linux version 2.6.18-4-k7 (Debian 2.6.18.dfsg.1-12) (waldi@debian.org) (gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)) #1 SMP Mon Mar 26 17:57:15 UTC 2007
> KDE -- 3.5.7
>
A similar problem was resolved in the recent thread "Some ALSA apps stopped
working" [1]. As far as I know, OSS apps (eg XMMS, which is configured for OSS
by default) should work under ALSA, but they require the /dev/dsp device. You do
not need the alsa-oss package for this.
I suggest that you check that /dev/dsp exists:
# file /dev/dsp
/dev/dsp: ERROR: cannot open `/dev/dsp' (No such file or directory)
If you get an error, re-create it and check again:
# modprobe snd_pcm_oss
# file /dev/dsp
/dev/dsp: character special (14/3)
Check that your OSS app now works.
[1] http://lists.debian.org/debian-user/2007/06/msg02712.html
--
Chris.
Reply to: