5182
Comment: Drop Lenny procedure (unsupported release).
|
5205
cs46xx DSP blob was moved out of tree at Linux v4.0-rc2 (now part of alsa-firmware); amend links to use v3.2 tag for Debian Wheezy, use HTTPS, update supported devices, fix anchor in footnote.
|
Deletions are marked like this. | Additions are marked like this. |
Line 2: | Line 2: |
~-[[DebianWiki/EditorGuide#translation|Translation(s)]]: English - [[it/snd-cs46xx|Italiano]]-~ | ~-[[DebianWiki/EditorGuide#translation|Translation(s)]]: [[fr/snd-cs46xx|Français]] - [[it/snd-cs46xx|Italiano]]-~ |
Line 4: | Line 4: |
Line 8: | Line 9: |
<<TableOfContents(2)>> | <<TableOfContents(3)>> |
Line 16: | Line 17: |
Device firmware is unable to be distributed by the Debian project, as the snd-cs46xx driver has no license.<<FootNote([[http://bugzilla.kernel.org/show_bug.cgi?id=10750|CS46xx sound driver carries no license]] - Kernel Bug Tracker Bug 10750)>> A free redistribution license has been requested from Cirrus Logic.<<FootNote([[KernelFirmwareLicensing#cs46xx_image.h_.28sound.2BAC8-pci.2BAC8-cs46xx.29|cs46xx_image.h (sound/pci/cs46xx)]] - [[KernelFirmwareLicensing]])>> | Device firmware is unable to be distributed by the Debian project, as the snd-cs46xx driver has no license.<<FootNote([[http://bugzilla.kernel.org/show_bug.cgi?id=10750|CS46xx sound driver carries no license]] - Kernel Bug Tracker Bug 10750)>> A free redistribution license has been requested from Cirrus Logic.<<FootNote([[KernelFirmwareLicensing#cs46xx_image.h_.28sound.2Fpci.2Fcs46xx.29|cs46xx_image.h (sound/pci/cs46xx)]] - [[KernelFirmwareLicensing]])>> |
Line 19: | Line 20: |
=== Debian 7 "Wheezy" === | |
Line 27: | Line 29: |
1. Download [[https://github.com/torvalds/linux/blob/master/sound/pci/cs46xx/cs46xx_image.h|cs46xx_image.h]] from Linus' kernel tree: {{{ $ wget https://raw.github.com/torvalds/linux/master/sound/pci/cs46xx/cs46xx_image.h |
1. Download [[https://github.com/torvalds/linux/blob/v3.2/sound/pci/cs46xx/cs46xx_image.h|cs46xx_image.h]] from Linus' kernel tree: {{{ $ wget https://raw.github.com/torvalds/linux/v3.2/sound/pci/cs46xx/cs46xx_image.h |
Line 30: | Line 32: |
1. Download [[attachment:write_images.c|source code]] for a [[http://bugs.debian.org/464197#34|program to write out firmware]] from {{{cs46xx_image.h}}}: {{{ $ wget 'http://wiki.debian.org/snd-cs46xx?action=AttachFile&do=get&target=write_images.c' -O write_images.c |
1. Download [[attachment:write_images.c|source code]] for a [[https://bugs.debian.org/464197#34|program to write out firmware]] from {{{cs46xx_image.h}}}: {{{ $ wget 'https://wiki.debian.org/snd-cs46xx?action=AttachFile&do=get&target=write_images.c' -O write_images.c |
Line 33: | Line 35: |
1. Download a [[http://bugs.debian.org/464197#181|patch]] against {{{cs46xx_image.h}}}: {{{ $ wget 'http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=181;att=0;bug=464197' -O cs46xx_image.diff |
1. Download a [[https://bugs.debian.org/464197#181|patch]] against {{{cs46xx_image.h}}}: {{{ $ wget 'https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=181;att=0;bug=464197' -O cs46xx_image.diff |
Line 47: | Line 49: |
# mkdir -p /usr/local/lib/firmware/cs46xx # cp cs46xx/cs46xx-old.fw /usr/local/lib/firmware/cs46xx |
# mkdir /lib/firmware/cs46xx # cp cs46xx/cs46xx-old.fw /lib/firmware/cs46xx |
Line 86: | Line 88: |
The following list is based on the ''alias'' fields of {{{modinfo snd-cs46xx}}} in Debian 2.6.32 (2.6.32-41) kernel images. | The following list is based on the ''alias'' fields of {{{modinfo snd-cs46xx}}} in Debian 3.2.0 (3.2.65-1+deb7u2) kernel images. |
Translation(s): Français - Italiano
Cirrus Logic Sound Fusion CS4280, CS461x, CS462x, CS463x devices
This page describes how to enable support for sound devices based on CS46xx chipsets on Debian systems.
Contents
snd-cs46xx is a Linux kernel module supporting Cirrus Logic's Sound Fusion CS46xx audio controllers. It is an ALSA driver included in the Linux kernel.
At linux-2.6 2.6.23-1, the binary-only firmware in this driver was removed (see the package changelog), due to discovered firmware licensing issues. The driver was disabled at this time. Firmware was also removed from the alsa-source package to resolve bug 483918.
At linux-2.6 2.6.31-1~experimental.1, the snd-cs46xx driver was re-enabled and patched to use firmware from userspace (resolving Debian bug 464197).
Device firmware is unable to be distributed by the Debian project, as the snd-cs46xx driver has no license.1 A free redistribution license has been requested from Cirrus Logic.2
Installation
Debian 7 "Wheezy"
You are required to supply one firmware file for device use.
Install the alsa-base, alsa-utils and build-essential packages:
$ su # aptitude update && aptitude install alsa-base alsa-utils build-essential # exit
Download cs46xx_image.h from Linus' kernel tree:
$ wget https://raw.github.com/torvalds/linux/v3.2/sound/pci/cs46xx/cs46xx_image.h
Download source code for a program to write out firmware from cs46xx_image.h:
$ wget 'https://wiki.debian.org/snd-cs46xx?action=AttachFile&do=get&target=write_images.c' -O write_images.c
Download a patch against cs46xx_image.h:
$ wget 'https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=181;att=0;bug=464197' -O cs46xx_image.diff
Apply the patch:
$ patch -i cs46xx_image.diff
Compile the write_images program:
$ gcc -o write_images write_images.c
Execute the program to write out firmware:
$ ./write_images
Install the firmware:
$ su # mkdir /lib/firmware/cs46xx # cp cs46xx/cs46xx-old.fw /lib/firmware/cs46xx
Reload the snd-cs46xx module:
# modprobe -r snd-cs46xx ; modprobe snd-cs46xx
If not already performed, add your user account to the audio group, then log out and log back into your system:
# adduser yourusername audio # exit $ exit
Run alsamixer(1) to unmute channels and raise the volume levels.
Test the sound device, for example:
$ aplay /usr/share/sounds/alsa/Noise.wav $ speaker-test -t sine -f 440 -c 2 $ speaker-test -t wav -c 2
Troubleshooting
Examine the kernel ring buffer (dmesg(1)) to verify firmware is being loaded.
If output similar to the following is shown:
[16576.681738] Sound Fusion CS46xx 0000:00:06.0: found PCI INT A -> IRQ 11 [16576.681774] Sound Fusion CS46xx 0000:00:06.0: sharing IRQ 11 with 0000:00:02.0 [16576.681827] Sound Fusion CS46xx 0000:00:06.0: sharing IRQ 11 with 0000:01:00.0 [16577.224760] Sound Fusion CS46xx 0000:00:06.0: firmware: requesting cs46xx/cs46xx-old.fw [16577.403887] cs46xx: firmware hunk out of range [16577.406087] image download error [16577.412213] Sound Fusion CS46xx: probe of 0000:00:06.0 failed with error
The firmware is not in the correct format.
Ensure the patch for cs46xx_image.h is applied prior to compiling write_images.c.
Ensure write_images is executed on a system where unsigned long is little-endian 32-bit.
Supported Devices
The page HowToIdentifyADevice/PCI explains how to identify a PCI device.
The following list is based on the alias fields of modinfo snd-cs46xx in Debian 3.2.0 (3.2.65-1+deb7u2) kernel images.
PCI: 1013:6001 Cirrus Logic CS 4610/11 [CrystalClear SoundFusion Audio Accelerator] PCI: 1013:6003 Cirrus Logic CS 4614/22/24/30 [CrystalClear SoundFusion Audio Accelerator] PCI: 1013:6004 Cirrus Logic CS 4614/22/24 [CrystalClear SoundFusion Audio Accelerator]
See Also
CategoryHardware | CategorySound
CS46xx sound driver carries no license - Kernel Bug Tracker Bug 10750 (1)
cs46xx_image.h (sound/pci/cs46xx) - KernelFirmwareLicensing (2)