Differences between revisions 2 and 3
Revision 2 as of 2014-01-07 16:08:16
Size: 5676
Editor: GeoffSimmons
Comment: Sync with English master.
Revision 3 as of 2015-11-23 22:26:33
Size: 7519
Comment: Sync with English master
Deletions are marked like this. Additions are marked like this.
Line 8: Line 8:
<<TableOfContents(2)>> <<TableOfContents(3)>>
Line 12: Line 12:
Avec la version 2.6.23-1 du noyau [[DebianPkg:src:linux-2.6|linux-2.6]], le firmware, disponible seulement sous forme binaire, de ce pilote a été retiré (voir [[http://packages.debian.org/changelogs/pool/main/l/linux-2.6/current/changelog#version2.6.23-1|la liste de modifications du paquet]]), du fait de la découverte de [[KernelFirmwareLicensing|problèmes de licence]]. Le pilote a alors été désactivé. Le firmware a été aussi retiré du paquet alsa-source pour résoudre le bogue DebianBug:483918. Avec la version 2.6.23-1 du noyau [[DebianPkg:src:linux-2.6|linux-2.6]], le microcode, disponible seulement sous forme binaire, de ce pilote a été retiré du fait de [[KernelFirmwareLicensing|problèmes de licence]]. Le pilote a alors été désactivé. Le microcode a été aussi retiré du paquet alsa-source pour résoudre le bogue DebianBug:483918.
Line 14: Line 14:
Avec la version 2.6.23-1~experimental.1 du noyau [[DebianPkg:src:linux2.6|linux-2.6]] le pilote snd-cs46xx a été réactivé et patché pour utiliser un firmware à partir de l'espace utilisateur (résolvant le bogue de Debian DebianBug:464197). Avec la version 2.6.23-1~experimental.1 du noyau [[DebianPkg:src:linux2.6|linux-2.6]], le pilote snd-cs46xx a été réactivé et patché pour utiliser un microcode à partir de l'espace utilisateur (résolvant le bogue de Debian DebianBug:464197).
Line 16: Line 16:
Le firmware du périphérique ne peut pas être distribué par le projet parce que le pilote snd-cs46xx n'a pas de licence.<<FootNote([[http://bugzilla.kernel.org/show_bug.cgi?id=10750|Le pilote audio CS46xx n'a pas de licence]] - Bogue 10750 du Kernel Bug Tracker)>> Une licence pour une diffusion libre a été demandé à Cirrus Logic.<<FootNote([[KernelFirmwareLicensing#cs46xx_image.h_.28sound.2BAC8-pci.2BAC8-cs46xx.29|cs46xx_image.h (sound/pci/cs46xx)]] - [[KernelFirmwareLicensing]])>> Avec le noyau Linux 3.14, le microcode, disponible seulement sous forme binaire, [[https://git.kernel.org/linus/ad233a5f0f33a894f48c7d968ec207f46cbcae03|a été rétiré de l'arborescence du noyau]], et le pilote modifié pour le charger de l'extérieur. Le microcode du périphérique fait partie des versions d'ALSA depuis la version 1.0.28.<<FootNote([[http://www.alsa-project.org/main/index.php/Changes_v1.0.27.2_v1.0.28#alsa-firmware|Projet ALSA : journal des modification entre les versions 1.0.27 et 1.0.28]])>>

Le microcode du périphérique ne peut pas être distribué par le projet parce que le pilote snd-cs46xx n'a pas de licence.<<FootNote([[http://bugzilla.kernel.org/show_bug.cgi?id=10750|Le pilote audio CS46xx n'a pas de licence]] - Bogue 10750 du Kernel Bug Tracker)>> Une licence pour une diffusion libre a été demandé à Cirrus Logic.<<FootNote([[KernelFirmwareLicensing#cs46xx_image.h_.28sound.2Fpci.2Fcs46xx.29|cs46xx_image.h (sound/pci/cs46xx)]] - [[KernelFirmwareLicensing]])>>
Line 19: Line 21:

<<Anchor(jessie)>>
=== Debian 8 « Jessie » ===

Plusieurs fichiers de microcode sont nécessaires pour utiliser ce périphérique et peuvent être récupérés dans le [[http://www.alsa-project.org|projet ALSA]].

 1. Installez le paquet DebianPkg:alsa-utils : {{{
$ su
# aptitude update && aptitude install alsa-utils
# exit
}}}
 1. Récupérez une archive d'alsa-firmware (≥ v1.0.28) à partir du serveur du projet ALSA, par exemple : {{{
$ wget ftp://ftp.alsa-project.org/pub/firmware/alsa-firmware-1.0.28.tar.bz2
}}}
 1. Extrayez l'archive, par exemple : {{{
$ tar xvf alsa-firmware-1.0.28.tar.bz2
}}}
 1. Installez le microcode sur votre machine, par exemple : {{{
$ cd alsa-firmware-1.0.28/cs46xx
$ su
# mkdir /lib/firmware/cs46xx
# cp ba1 cwc4630 cwcasync cwcbinhack cwcdma cwcsnoop /lib/firmware/cs46xx
}}}
 1. Rechargez le module snd-cs46xx : {{{
# modprobe -r snd-cs46xx ; modprobe snd-cs46xx
}}}
 1. Si ce n'est pas déjà fait, ajoutez votre compte utilisateur au groupe {{{audio}}}, déconnectez-vous puis reconnectez-vous au système : {{{
# adduser yourusername audio
# exit
$ exit
}}}
 1. Exécutez [[DebianMan:1/alsamixer|alsamixer(1)]] pour activer les canaux audio et montez le volume.
 1. Testez le périphérique audio, par exemple : {{{
$ aplay /usr/share/sounds/alsa/Noise.wav
$ speaker-test -t sine -f 440 -c 2
$ speaker-test -t wav -c 2
}}}

<<Anchor(wheezy)>>
=== Debian 7 « Wheezy » ===
Line 27: Line 69:
 1. Téléchargez le fichier [[https://github.com/torvalds/linux/blob/master/sound/pci/cs46xx/cs46xx_image.h|cs46xx_image.h]] à partir de l'arborescence du noyau de Linus : {{{
$ wget https://raw.github.com/torvalds/linux/master/sound/pci/cs46xx/cs46xx_image.h
 1. Téléchargez le fichier [[https://github.com/torvalds/linux/blob/v3.2/sound/pci/cs46xx/cs46xx_image.h|cs46xx_image.h]] à partir de l'arborescence du noyau de Linus : {{{
$ wget https://raw.github.com/torvalds/linux/v3.2/sound/pci/cs46xx/cs46xx_image.h
Line 30: Line 72:
 1. Téléchargez le [[attachment:write_images.c|code source]] pour le [[http://bugs.debian.org/464197#34|programme qui va créer le firmware]] à partir de {{{cs46xx_image.h}}} : {{{
$ wget 'http://wiki.debian.org/snd-cs46xx?action=AttachFile&do=get&target=write_images.c' -O write_images.c
 1. Téléchargez le [[attachment:write_images.c|code source]] pour le [[https://bugs.debian.org/464197#34|programme qui va créer le firmware]] à partir de {{{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 75:
 1. Téléchargez le [[http://bugs.debian.org/464197#181|patch]] pour {{{cs46xx_image.h}}}: {{{
$ wget 'http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=181;att=0;bug=464197' -O cs46xx_image.diff
 1. Téléchargez le [[https://bugs.debian.org/464197#181|patch]] pour {{{cs46xx_image.h}}}: {{{
$ wget 'https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=181;att=0;bug=464197' -O cs46xx_image.diff
Line 45: Line 87:
 1. Installez le firmware : {{{  1. Installez le microcode : {{{
Line 66: Line 108:
== Dépannage == ==== Dépannage ====
Line 86: Line 128:
La liste suivante est basée sur les champs ''alias'' de {{{modinfo snd-cs46xx}}} des images noyau de Debian 3.2.0 (3.2.51-1). La liste suivante est basée sur les champs ''alias'' de {{{modinfo snd-cs46xx}}} des images noyau de Debian 3.16 (3.16.7-ckt9-3~deb8u1).

Translation(s): English - Français - Italiano


Périphériques Cirrus Logic Sound Fusion CS4280, CS461x, CS462x, CS463x

Cette page décrit comment utiliser, sur les systèmes Debian, les périphériques audio basés sur les chipsets CS46xx.

snd-cs46xx est un module du noyau Linux qui prend en charge les contrôleurs audio Sound Fusion CS46xx de Cirrus Logic. C'est un pilote d'ALSA fourni avec le noyau Linux.

Avec la version 2.6.23-1 du noyau linux-2.6, le microcode, disponible seulement sous forme binaire, de ce pilote a été retiré du fait de problèmes de licence. Le pilote a alors été désactivé. Le microcode a été aussi retiré du paquet alsa-source pour résoudre le bogue 483918.

Avec la version 2.6.23-1~experimental.1 du noyau linux-2.6, le pilote snd-cs46xx a été réactivé et patché pour utiliser un microcode à partir de l'espace utilisateur (résolvant le bogue de Debian 464197).

Avec le noyau Linux 3.14, le microcode, disponible seulement sous forme binaire, a été rétiré de l'arborescence du noyau, et le pilote modifié pour le charger de l'extérieur. Le microcode du périphérique fait partie des versions d'ALSA depuis la version 1.0.28.1

Le microcode du périphérique ne peut pas être distribué par le projet parce que le pilote snd-cs46xx n'a pas de licence.2 Une licence pour une diffusion libre a été demandé à Cirrus Logic.3

Installation

Debian 8 « Jessie »

Plusieurs fichiers de microcode sont nécessaires pour utiliser ce périphérique et peuvent être récupérés dans le projet ALSA.

  1. Installez le paquet alsa-utils :

    $ su
    # aptitude update && aptitude install alsa-utils
    # exit
  2. Récupérez une archive d'alsa-firmware (≥ v1.0.28) à partir du serveur du projet ALSA, par exemple :

    $ wget ftp://ftp.alsa-project.org/pub/firmware/alsa-firmware-1.0.28.tar.bz2
  3. Extrayez l'archive, par exemple :

    $ tar xvf alsa-firmware-1.0.28.tar.bz2
  4. Installez le microcode sur votre machine, par exemple :

    $ cd alsa-firmware-1.0.28/cs46xx
    $ su
    # mkdir /lib/firmware/cs46xx
    # cp ba1 cwc4630 cwcasync cwcbinhack cwcdma cwcsnoop /lib/firmware/cs46xx
  5. Rechargez le module snd-cs46xx :

    # modprobe -r snd-cs46xx ; modprobe snd-cs46xx
  6. Si ce n'est pas déjà fait, ajoutez votre compte utilisateur au groupe audio, déconnectez-vous puis reconnectez-vous au système :

    # adduser yourusername audio
    # exit
    $ exit
  7. Exécutez alsamixer(1) pour activer les canaux audio et montez le volume.

  8. Testez le périphérique audio, par exemple :

    $ aplay /usr/share/sounds/alsa/Noise.wav
    $ speaker-test -t sine -f 440 -c 2
    $ speaker-test -t wav -c 2

Debian 7 « Wheezy »

Un fichier de firmware est nécessaire pour utiliser ce périphérique.

  1. Installez les paquets alsa-base, alsa-utils et build-essential :

    $ su
    # aptitude update && aptitude install alsa-base alsa-utils build-essential
    # exit
  2. Téléchargez le fichier cs46xx_image.h à partir de l'arborescence du noyau de Linus :

    $ wget https://raw.github.com/torvalds/linux/v3.2/sound/pci/cs46xx/cs46xx_image.h
  3. Téléchargez le code source pour le programme qui va créer le firmware à partir de cs46xx_image.h :

    $ wget 'https://wiki.debian.org/snd-cs46xx?action=AttachFile&do=get&target=write_images.c' -O write_images.c
  4. Téléchargez le patch pour cs46xx_image.h:

    $ wget 'https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=181;att=0;bug=464197' -O cs46xx_image.diff
  5. Appliquer le patch:

    $ patch -i cs46xx_image.diff
  6. Compilez le programme write_images :

    $ gcc -o write_images write_images.c
  7. Exécutez le programme pour créer le firmware :

    $ ./write_images
  8. Installez le microcode :

    $ su
    # mkdir /lib/firmware/cs46xx
    # cp cs46xx/cs46xx-old.fw /lib/firmware/cs46xx
  9. Rechargez le module snd-cs46xx module :

    # modprobe -r snd-cs46xx ; modprobe snd-cs46xx
  10. Si ce n'est pas déjà fait, ajoutez votre compte utilisateur au groupe audio, déconnectez-vous puis reconnectez-vous au système :

    # adduser nom_d'utilisateur audio
    # exit
    $ exit
  11. Exécutez alsamixer(1) pour activer les canaux audio et montez le volume.

  12. Testez le périphérique audio, par exemple :

    $ aplay /usr/share/sounds/alsa/Noise.wav
    $ speaker-test -t sine -f 440 -c 2
    $ speaker-test -t wav -c 2

Dépannage

  • Examinez le "ring buffer" (liste circulaire) du noyau (dmesg(1)) pour vérifier que le firmware a été chargé.

    • Si la sortie ressemble à ceci :

      [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

      c'est que le firmware n'est pas au bon format.

      • Assurez-vous que le patch pour cs46xx_image.h a été appliqué avant la compilation de write_images.c.

      • Assurez-vous que write_images a été exécuté sur un système où les entiers longs non signés sont de type petit-boutien 32-bits.

Périphériques pris en charge

La page fr/HowToIdentifyADevice/PCI explique comment identifier un périphérique PCI.

La liste suivante est basée sur les champs alias de modinfo snd-cs46xx des images noyau de Debian 3.16 (3.16.7-ckt9-3~deb8u1).

  • 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]

Voir aussi


CategoryHardware | CategorySound