#language it ~-[[DebianWiki/EditorGuide#translation|Traduzioni]]: [[snd-cs46xx|English]] - [[fr/snd-cs46xx|Français]] - Italiano-~ ---- = Dispositivi Cirrus Logic Sound Fusion CS4280, CS461x, CS462x, CS463x = Questa pagina descrive come abilitare su Debian il supporto per i dispositivi audio basati sui chipset CS46xx. <> snd-cs46xx è un modulo del kernel Linux che supporta i controller audio Sound Fusion CS46xx di Cirrus Logic. È un driver [[it/ALSA|ALSA]] incluso nel kernel Linux. Da [[DebianPkg:src:linux-2.6|linux-2.6]] 2.6.23-1, il pacchetto binario del firmware di questo driver è stato rimosso a causa di [[KernelFirmwareLicensing|problemi di licenza]]. Il driver è stato in tale occasione disabilitato. Il firmware è stato inoltre rimosso dal pacchetto DebianPkg:alsa-source per risolvere il bug DebianBug:483918. In [[DebianPkg:src:linux2.6|linux-2.6]] 2.6.31-1~experimental.1, il driver snd-cs46xx è stato reinserito e modificato per utilizzare il firmware in spazio utente (risolvendo il bug DebianBug:464197). In Linux 3.14 il firmware solo binario è stato [[https://git.kernel.org/linus/ad233a5f0f33a894f48c7d968ec207f46cbcae03|spostato fuori dall'albero del kernel]], con il driver modificato in modo da caricarlo esternamente. Il firmware del dispositivo fa parte dei rilasci di ALSA a partire dalla versione 1.0.28.<> Il firmware non può essere distribuito dal progetto Debian in quanto il driver snd-cs46xx non ha una licenza.<> È stata richiesta una licenza di libera ridistribuzione a Cirrus Logic.<> == Installazione == <> === Debian 8 "Jessie" === Per usare il dispositivo è necessario fornire diversi file del firmware che possono essere recuperati dal [[http://www.alsa-project.org|Progetto ALSA]]. 1. Installare il pacchetto DebianPkg:alsa-utils: {{{ $ su # aptitude update && aptitude install alsa-utils # exit }}} 1. Recuperare un archivio tar alsa-firmware (≥ v1.0.28) dal server del progetto ALSA, per esempio: {{{ $ wget ftp://ftp.alsa-project.org/pub/firmware/alsa-firmware-1.0.28.tar.bz2 }}} 1. Estrarre l'archivio tar, per esempio: {{{ $ tar xvf alsa-firmware-1.0.28.tar.bz2 }}} 1. Installare il firmware nel proprio sistema, per esempio: {{{ $ cd alsa-firmware-1.0.28/cs46xx $ su # mkdir /lib/firmware/cs46xx # cp ba1 cwc4630 cwcasync cwcbinhack cwcdma cwcsnoop /lib/firmware/cs46xx }}} 1. Ricaricare il modulo snd-cs46xx: {{{ # modprobe -r snd-cs46xx ; modprobe snd-cs46xx }}} 1. Se non è già stato fatto aggiungere il proprio utente al gruppo {{{audio}}}, poi disconnettersi e rifare il login nel sistema: {{{ # adduser proprio_nome_utente audio # exit $ exit }}} 1. Eseguire [[DebianMan:1/alsamixer|alsamixer(1)]] per togliere l'impostazione di muto ai canali ed alzare i livelli del volume. 1. Testare il dispositivo audio, per esempio: {{{ $ aplay /usr/share/sounds/alsa/Noise.wav $ speaker-test -t sine -f 440 -c 2 $ speaker-test -t wav -c 2 }}} <> === Debian 7 "Wheezy", Debian 6.0 "Squeeze" === Per l'uso del dispositivo è richiesta l'aggiunta di un firmware. 1. Installare i pacchetti DebianPkg:alsa-base, DebianPkg:alsa-utils e DebianPkg:build-essential: {{{ $ su # aptitude update && aptitude install alsa-base alsa-utils build-essential # exit }}} 1. Scaricare il file [[https://github.com/torvalds/linux/blob/v3.2/sound/pci/cs46xx/cs46xx_image.h|cs46xx_image.h]] dal ramo del kernel di Linus: {{{ $ wget https://raw.github.com/torvalds/linux/v3.2/sound/pci/cs46xx/cs46xx_image.h }}} 1. Scaricare il [[attachment:snd-cs46xx/write_images.c|codice sorgente]] di un [[https://bugs.debian.org/464197#34|programma per creare il firmware]] da {{{cs46xx_image.h}}}: {{{ $ wget 'https://wiki.debian.org/snd-cs46xx?action=AttachFile&do=get&target=write_images.c' -O write_images.c }}} 1. Scaricare una [[https://bugs.debian.org/464197#181|patch]] per {{{cs46xx_image.h}}}: {{{ $ wget 'https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=181;att=0;bug=464197' -O cs46xx_image.diff }}} 1. Applicare la patch: {{{ $ patch -i cs46xx_image.diff }}} 1. Compilare il programma {{{write_images}}}: {{{ $ gcc -o write_images write_images.c }}} 1. Eseguirlo per creare il firmware: {{{ $ ./write_images }}} 1. Installare il firmware: {{{ $ su # mkdir /lib/firmware/cs46xx # cp cs46xx/cs46xx-old.fw /lib/firmware/cs46xx }}} 1. Ricaricare il modulo snd-cs46xx: {{{ # modprobe -r snd-cs46xx ; modprobe snd-cs46xx }}} 1. Se non già effettuato, aggiungere l'account utente al gruppo {{{audio}}} e rieffettuare il login al sistema: {{{ # adduser nome_utente audio # exit $ exit }}} 1. Eseguire [[DebianMan:1/alsamixer|alsamixer(1)]] per riattivare i canali e alzare i livelli del volume. 1. Provare il dispositivo, usando ad esempio: {{{ $ aplay /usr/share/sounds/alsa/Noise.wav $ speaker-test -t sine -f 440 -c 2 $ speaker-test -t wav -c 2 }}} ==== Risoluzione dei problemi ==== * Esaminare il ring buffer del kernel ([[DebianMan:1/dmesg|dmesg(1)]]) per verificare che il firmware sia stato caricato. * Se viene mostrato qualcosa di simile: ~- {{{ [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 }}} -~ Il firmware non è nel formato corretto. * Assicurarsi che la patch per {{{cs46xx_image.h}}} sia applicata prima di compilare {{{write_images.c}}}. * Assicurarsi che {{{write_images}}} sia eseguito su un sistema dove la variabile unsigned long è little-endian 32-bit. == Dispositivi supportati == ## DO NOT REMOVE : this paragraph is required for search-engines ! Consultare la pagina che spiega come [[it/HowToIdentifyADevice/PCI|identificare un dispositivo PCI]]. L'elenco seguente è basato sui campi ''alias'' del comando {{{modinfo snd-cs46xx}}} su Debian con il kernel 3.16 (3.16.7-ckt9-3~deb8u1). ## list generated with: http://www.klabs.be/~fpiat/linux/hardware/modinfo-devnames/ ~- {{{ 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] }}} -~ == Si veda anche == * [[it/ALSA|ALSA]] * [[KernelFirmwareLicensing|Stato dei firmware distribuiti con i sorgenti del kernel Linux]] ---- CategoryHardware | CategorySound