[alsa-devel] SB X-Fi driver status update
Hi,
now I'm stabilizing the driver a bit. I hope it won't hang up any more (so often), and make you happy testing.
** DOWNLOAD **
The snd-sbxfi driver is included in my sound-unstable git tree, and alsa-driver-unstable snapshot tarball. git://git.kernel.org/pub/scm/linux/kernel/tiwai/sound-unstable-2.6.git ftp://ftp.kernel.org/pub/linux/kernel/people/tiwai/snapshot/alsa-driver-unstable-snapshot.tar.gz
The git commits can be browsed via http://git.kernel.org/?p=linux/kernel/git/tiwai/sound-unstable-2.6.git;a=sum...
The snapshot tarball includes HEAD and alsa-kernel/HEAD files. These contain alsa-driver and sound git commit logs. Check these files and compare with the above gitweb page whether you have the latest version.
** BUILD **
If you want to build the sbxfi driver on your 2.6.27 git tree, at best, do the following:
- pull sound-2.6.git tree devel branch % git pull \ git://git.kernel.org/pub/scm/linux/kernel/tiwai/sound-2.6.git devel - pull sound-unstable-2.6.git tree topic/sbxfi branch % git pull \ git://git.kernel.org/pub/scm/linux/kernel/tiwai/sound-unstable-2.6.git\ topic/sbxfi
In that way, you can update only the sound and keep the rest clean. (The master branches of sound and sound-unstable git trees are for the latest upsteram, i.e. 2.6.28-pre git tree.)
In other versions, it'd be better to use alsa-driver-unstable snapshot tarball to build external modules.
** UPDATED NOTES **
Below are some updates:
- As default, the driver works only as a constant sample rate, either 48000 or 96000 (default). The rate can be changed via the module option base_rate. For enabling the continuous rate support (it was on before), define XXX_CONT_RATE in sbxfi.c.
- The debug module option is 1 as default, i.e. showing some debug messages but not too often. You can set debug=0 to suppress, or debug=2 or 3 to see more. If you have problems (especially regarding with the sound quality problem), run with debug=2.
- Please check whether the default (base_rate=96000) works as is for different rates, formats, channels. Then try base_rate=48000.
- If you are brave, try recording, too :) It's no full-duplex, so you can't play and record at the same time. Define XXX_FULL_DUPLEX in sbxfi.c to enable the (possible) full-duplex.
- If playback works well, try to define XXX_USE_SG in sbxfi.c. This will make the driver using SG buffer instead of continuous pages.
- Also, test SBXFI_DMA_MASK being DMA_32BIT_MASK, especially if you have RAM more than 2GB.
- You can try dmix as well. E.g. simply run like % aplay -Dplug:dmix:0 foo.wav
thanks,
Takashi
Does that mean that you, without hardware (also, with enormous help of couple of guys here on the mailing list), basically got from absolutely nothing to somewhat working driver in less than a week?
Awesome. Really impressive.
On Thu, 16 Oct 2008 15:18:32 +0200 Takashi Iwai tiwai@suse.de wrote:
Hi,
now I'm stabilizing the driver a bit. I hope it won't hang up any more (so often), and make you happy testing.
speakers-test and aplay works perfect with both base_rates and any sample rate (tried only stereo samples), but mplayer become more glitchy - sound pauses for a bit every 5-10 seconds, dmesg included.
- As default, the driver works only as a constant sample rate, either 48000 or 96000 (default). The rate can be changed via the module option base_rate. For enabling the continuous rate support (it was on before), define XXX_CONT_RATE in sbxfi.c.
only tried speakers-test: 96khz works fine 48khz plays slow (frequency is lower than it should be) 44.1khz silent, speakers-test ends with error, dmesg included.
root@mayonaka:~# speaker-test -c 2 -r 44100 -t sine
speaker-test 1.0.15
Playback device is default Stream parameters are 44100Hz, S16_LE, 2 channels Sine wave rate is 440.0000Hz Rate set to 44100Hz (requested 44100Hz) Buffer size range from 32 to 16384 Period size range from 32 to 16384 Using max buffer size 16384 Periods = 4 was set period_size = 4096 was set buffer_size = 16384 0 - Front Left Write error: -5,Input/output error xrun_recovery failed: -5,Input/output error Transfer failed: Operation not permitted
- If playback works well, try to define XXX_USE_SG in sbxfi.c. This will make the driver using SG buffer instead of continuous pages.
works absolutely the same as without it.
- Also, test SBXFI_DMA_MASK being DMA_32BIT_MASK, especially if you have RAM more than 2GB.
i have 3GB RAM on my test box, everything worked fine with 32-bit mask, but i haven't done many tests...
- You can try dmix as well. E.g. simply run like % aplay -Dplug:dmix:0 foo.wav
works fine.
Alexey Bazhin пишет:
On Thu, 16 Oct 2008 15:18:32 +0200 Takashi Iwai tiwai@suse.de wrote:
Hi,
now I'm stabilizing the driver a bit. I hope it won't hang up any more (so often), and make you happy testing.
speakers-test and aplay works perfect with both base_rates and any sample rate (tried only stereo samples), but mplayer become more glitchy
- sound pauses for a bit every 5-10 seconds, dmesg included.
- As default, the driver works only as a constant sample rate, either 48000 or 96000 (default). The rate can be changed via the module option base_rate. For enabling the continuous rate support (it was on before), define XXX_CONT_RATE in sbxfi.c.
only tried speakers-test: 96khz works fine 48khz plays slow (frequency is lower than it should be) 44.1khz silent, speakers-test ends with error, dmesg included.
root@mayonaka:~# speaker-test -c 2 -r 44100 -t sine
speaker-test 1.0.15
Playback device is default Stream parameters are 44100Hz, S16_LE, 2 channels Sine wave rate is 440.0000Hz Rate set to 44100Hz (requested 44100Hz) Buffer size range from 32 to 16384 Period size range from 32 to 16384 Using max buffer size 16384 Periods = 4 was set period_size = 4096 was set buffer_size = 16384 0 - Front Left Write error: -5,Input/output error xrun_recovery failed: -5,Input/output error Transfer failed: Operation not permitted
- If playback works well, try to define XXX_USE_SG in sbxfi.c. This will make the driver using SG buffer instead of continuous pages.
works absolutely the same as without it.
- Also, test SBXFI_DMA_MASK being DMA_32BIT_MASK, especially if you have RAM more than 2GB.
i have 3GB RAM on my test box, everything worked fine with 32-bit mask, but i haven't done many tests...
- You can try dmix as well. E.g. simply run like % aplay -Dplug:dmix:0 foo.wav
works fine.
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
I tested several players with alsa (oss causes oops): xine works fine xmms ok mplayer constantly shows some error message I wasn't able to read (it's blinking) and sound pauses for ~0.2 second every ~27 seconds.
Alexey Bazhin пишет:
On Thu, 16 Oct 2008 15:18:32 +0200 Takashi Iwai tiwai@suse.de wrote:
Hi,
now I'm stabilizing the driver a bit. I hope it won't hang up any more (so often), and make you happy testing.
speakers-test and aplay works perfect with both base_rates and any sample rate (tried only stereo samples), but mplayer become more glitchy
- sound pauses for a bit every 5-10 seconds, dmesg included.
- As default, the driver works only as a constant sample rate, either 48000 or 96000 (default). The rate can be changed via the module option base_rate. For enabling the continuous rate support (it was on before), define XXX_CONT_RATE in sbxfi.c.
only tried speakers-test: 96khz works fine 48khz plays slow (frequency is lower than it should be) 44.1khz silent, speakers-test ends with error, dmesg included.
root@mayonaka:~# speaker-test -c 2 -r 44100 -t sine
speaker-test 1.0.15
Playback device is default Stream parameters are 44100Hz, S16_LE, 2 channels Sine wave rate is 440.0000Hz Rate set to 44100Hz (requested 44100Hz) Buffer size range from 32 to 16384 Period size range from 32 to 16384 Using max buffer size 16384 Periods = 4 was set period_size = 4096 was set buffer_size = 16384 0 - Front Left Write error: -5,Input/output error xrun_recovery failed: -5,Input/output error Transfer failed: Operation not permitted
- If playback works well, try to define XXX_USE_SG in sbxfi.c. This will make the driver using SG buffer instead of continuous pages.
works absolutely the same as without it.
- Also, test SBXFI_DMA_MASK being DMA_32BIT_MASK, especially if you have RAM more than 2GB.
i have 3GB RAM on my test box, everything worked fine with 32-bit mask, but i haven't done many tests...
- You can try dmix as well. E.g. simply run like % aplay -Dplug:dmix:0 foo.wav
works fine.
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
--I tested several players with alsa (oss causes oops): --xine works fine --xmms ok --mplayer constantly shows some error message I wasn't able to read --(it's --blinking) and sound pauses for ~0.2 second every ~27 seconds.
mplayer error message was about PCM not found. Just set mixer channel to master in mplayer alsa output settings to avoid it. This won't help solve the sound-pause problem however.
At Fri, 17 Oct 2008 11:34:46 +0400, The Source wrote:
Alexey Bazhin пишет:
On Thu, 16 Oct 2008 15:18:32 +0200 Takashi Iwai tiwai@suse.de wrote:
Hi,
now I'm stabilizing the driver a bit. I hope it won't hang up any more (so often), and make you happy testing.
speakers-test and aplay works perfect with both base_rates and any sample rate (tried only stereo samples), but mplayer become more glitchy
- sound pauses for a bit every 5-10 seconds, dmesg included.
- As default, the driver works only as a constant sample rate, either 48000 or 96000 (default). The rate can be changed via the module option base_rate. For enabling the continuous rate support (it was on before), define XXX_CONT_RATE in sbxfi.c.
only tried speakers-test: 96khz works fine 48khz plays slow (frequency is lower than it should be) 44.1khz silent, speakers-test ends with error, dmesg included.
root@mayonaka:~# speaker-test -c 2 -r 44100 -t sine
speaker-test 1.0.15
Playback device is default Stream parameters are 44100Hz, S16_LE, 2 channels Sine wave rate is 440.0000Hz Rate set to 44100Hz (requested 44100Hz) Buffer size range from 32 to 16384 Period size range from 32 to 16384 Using max buffer size 16384 Periods = 4 was set period_size = 4096 was set buffer_size = 16384 0 - Front Left Write error: -5,Input/output error xrun_recovery failed: -5,Input/output error Transfer failed: Operation not permitted
- If playback works well, try to define XXX_USE_SG in sbxfi.c. This will make the driver using SG buffer instead of continuous pages.
works absolutely the same as without it.
- Also, test SBXFI_DMA_MASK being DMA_32BIT_MASK, especially if you have RAM more than 2GB.
i have 3GB RAM on my test box, everything worked fine with 32-bit mask, but i haven't done many tests...
- You can try dmix as well. E.g. simply run like % aplay -Dplug:dmix:0 foo.wav
works fine.
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
--I tested several players with alsa (oss causes oops): --xine works fine --xmms ok --mplayer constantly shows some error message I wasn't able to read --(it's --blinking) and sound pauses for ~0.2 second every ~27 seconds.
mplayer error message was about PCM not found.
Could you elaborate?
Just set mixer channel to master in mplayer alsa output settings to avoid it.
If I understand correctly, you mean "PCM" mixer element is not found. OK, that's basically a problem of mplayer. But, in future, we can add "PCM" mixer volume as well.
This won't help solve the sound-pause problem however.
Not sure about this yet.
thanks,
Takashi
participants (4)
-
Alexey Bazhin
-
Takashi Iwai
-
The Source
-
Vedran Miletić