Konfiguracja karty dźwi

Wszystko związane z jądrem systemowym, sterownikami, sprzętem itp.
bwgg
Posty: 6
Rejestracja: 16 marca 2009, 22:27

Konfiguracja karty dźwiękowej Creative Sound Blaster X-Fi XtremeMusic - Wheezy

Post autor: bwgg »

Wiedziałem, że nadejdzie taki dzień, kiedy się poddam.
Instalując jakiś czas temu Debiana wrzuciłem do szuflady kartę dźwiękową, której w tamtych czasach nie dało się w żaden sposób uruchomić. Dziś, widząc w różnych źródłach, że ALSA już z nią zatańczy postanowiłem ją sprawdzić.
Niestety Creative Sound Blaster X-Fi XtremeMusic (EMU20K1) nie chce ze mną współpracować. Założyłem, że jeśli działa w Debianie Squeeze (http://wiki.debian.org/X-Fi#Squeeze) to z Wheezy też - błąd, albo po prostu u mnie coś jest jeszcze nie tak.

Wyłączyłem kartę zintegrowaną (płyta główna ASUS P5Q Pro), z której korzystałem do tej pory i osadziłem kartę w złączu PCI (sprawdzałem oba dostępne złącza). Następnie, ponieważ od kopa nic nie zadziałało wykonałem

Kod: Zaznacz cały

aptitude purge alsa-base alsa-utils
potem ponownie zainstalowałem pakiety - nic. Poszperałem po forach, brak jednoznacznych, a co ważniejsze - działających porad. Restartów poszło wiele.

Kod: Zaznacz cały

Linux 2.6.38-2-amd64 #1 SMP Sun May 8 13:51:57 UTC 2011 x86_64 GNU/Linux

Kod: Zaznacz cały

lspci | grep audio
04:00.0 Multimedia audio controller: Creative Labs SB X-Fi

Kod: Zaznacz cały

lsmod | grep snd
snd_ctxfi              81324  0 
snd_pcm                67327  1 snd_ctxfi
snd_seq                44678  0 
snd_timer              22658  2 snd_pcm,snd_seq
snd_seq_device         13155  1 snd_seq
snd                    52280  5 snd_ctxfi,snd_pcm,snd_seq,snd_timer,snd_seq_device
soundcore              13014  1 snd
snd_page_alloc         12969  2 snd_ctxfi,snd_pcm

Kod: Zaznacz cały

aplay -l
aplay: device_list:235: no soundcards found...

Kod: Zaznacz cały

cat /proc/asound/cards
--- no soundcards ---

Kod: Zaznacz cały

cat /etc/group|grep audio
audio:x:29:bwgg
Sugestie?
Awatar użytkownika
DaVidoSS
Junior Member
Posty: 875
Rejestracja: 06 marca 2010, 11:26
Lokalizacja: ~/

Post autor: DaVidoSS »

Po pierwsze sprawdź czy jest moduł:

Kod: Zaznacz cały

ls  /lib/modules/`uname -r`/kernel/sound/pci/ctxfi/ | grep snd-ctxfi.ko
Następnie wykonaj jako root:

Kod: Zaznacz cały

modinfo snd-ctxfi 
Na samym dole wyniku polecenia są opcje do załadowania modułu.
Zostaw terminal (1) otwarty będziesz potrzebował tu zajrzeć.

Otwórz kolejny terminal (2) i wykonaj jako root:

Kod: Zaznacz cały

tail -f /var/log/messages
Otwórz kolejny terminal (3) i wykonaj jako root :

Kod: Zaznacz cały

modprobe -r snd-ctxfi
modprobe snd-ctxfi ........
cat /proc/asound/cards
Za kropki wstaw poklei opcje dla modułu wykonując polecenia modprobe.
Zacznij od opcji "enable".

Kod: Zaznacz cały

modprobe snd-ctxfi enable
Sprawdź jak zachowuje się terminal (2).
Sprawdź czy po :

Kod: Zaznacz cały

cat /proc/asound/cards
pojawią się urządzenia.
Powodzenia.
bwgg
Posty: 6
Rejestracja: 16 marca 2009, 22:27

Post autor: bwgg »

Dziękuję za szybką odpowiedź.
DaVidoSS pisze:

Kod: Zaznacz cały

ls  /lib/modules/`uname -r`/kernel/sound/pci/ctxfi/ | grep snd-ctxfi.ko
Jest na miejscu.
DaVidoSS pisze:

Kod: Zaznacz cały

modinfo snd-ctxfi 

Kod: Zaznacz cały

filename:       /lib/modules/2.6.38-2-amd64/kernel/sound/pci/ctxfi/snd-ctxfi.ko
license:        GPL v2
description:    X-Fi driver version 1.03
author:         Creative Technology Ltd
alias:          pci:v00001102d0000000Bsv*sd*bc*sc*i*
alias:          pci:v00001102d00000005sv*sd*bc*sc*i*
depends:        snd-pcm,snd,snd-page-alloc
intree:         Y
vermagic:       2.6.38-2-amd64 SMP mod_unload modversions 
[B]parm:           use_system_timer:Foce to use system-timer (bool)
parm:           reference_rate:Reference rate (default=48000) (uint)
parm:           multiple:Rate multiplier (default=2) (uint)
parm:           index:Index value for Creative X-Fi driver (array of int)
parm:           id:ID string for Creative X-Fi driver (array of charp)
parm:           enable:Enable Creative X-Fi driver (array of bool)
parm:           subsystem:Override subsystem ID for Creative X-Fi driver (array of int)[/B]
W dalszym kroku sprawdziłem

Kod: Zaznacz cały

enable, use_system_timer, reference_rate, multiple
Nie mam pojęcia co podać pozostałym jako wartość.

Nie jest to jednak chyba ważne - obojętnie co bym nie ustawiał (czy po prostu ładował moduł -

Kod: Zaznacz cały

modprobe snd-ctxfi
po ubiciu (-r) modułu, w logu zapisuje się chyba największy objaw problemu:

Kod: Zaznacz cały

May 22 22:16:41 odin kernel: [ 3422.430500] SB-XFi 0000:04:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
May 22 22:16:41 odin kernel: [ 3422.548877] SB-XFi 0000:04:00.0: PCI INT A disabled
May 22 22:16:41 odin kernel: [ 3422.548891] SB-XFi: probe of 0000:04:00.0 failed with error -16
Trafiony?
DaVidoSS pisze:

Kod: Zaznacz cały

cat /proc/asound/cards
Dla formalności - oczywiście brak.

Pozdrawiam,
Borys.
Awatar użytkownika
DaVidoSS
Junior Member
Posty: 875
Rejestracja: 06 marca 2010, 11:26
Lokalizacja: ~/

Post autor: DaVidoSS »

Trafiony.
Jak zapewne się domyślasz ten moduł jest dla karty PCI a Ty zapewne masz PCI-E.
Jeśli moje domysły są trafne musisz załadować moduł z opcja subsystem by wymusić szynę PCI-E.

Kod: Zaznacz cały

Module for Creative Sound Blaster X-Fi boards (20k1 / 20k2 chips)
       
      * Creative Sound Blaster X-Fi Titanium Fatal1ty Champion Series
      * Creative Sound Blaster X-Fi Titanium Fatal1ty Professional Series
      * Creative Sound Blaster X-Fi Titanium Professional Audio
      * Creative Sound Blaster X-Fi Titanium
      * Creative Sound Blaster X-Fi Elite Pro
      * Creative Sound Blaster X-Fi Platinum
      * Creative Sound Blaster X-Fi Fatal1ty
      * Creative Sound Blaster X-Fi XtremeGamer
      * Creative Sound Blaster X-Fi XtremeMusic

     reference_rate    - reference sample rate, 44100 or 48000 (default)
     multiple        - multiple to ref. sample rate, 1 or 2 (default)
     subsystem        - override the PCI SSID for probing; the value
                                consists of SSVID << 16 | SSDID.  The default is
                                zero, which means no override.
Poza tym plik konfiguracyjny należało by przejrzeć.

Kod: Zaznacz cały

cat /etc/modprobe.d/alsa-base.conf

Kod: Zaznacz cały

alias snd-card-0 snd-emu20k1
alias sound-slot-0 snd-emu20k1

install snd-emu20k1 /sbin/modprobe --ignore-install snd-emu20k1 && { /sbin/modprobe --quiet snd-emu20k1-synth ; : ; }
bwgg
Posty: 6
Rejestracja: 16 marca 2009, 22:27

Post autor: bwgg »

Niestety pudło. Karta osadzona w slocie PCI, no taką rzecz to bym naprawdę zauważył.

alsa-base.conf ustawiona automatycznie:

Kod: Zaznacz cały

cat /etc/modprobe.d/alsa-base.conf 
# autoloader aliases
install sound-slot-0 /sbin/modprobe snd-card-0
install sound-slot-1 /sbin/modprobe snd-card-1
install sound-slot-2 /sbin/modprobe snd-card-2
install sound-slot-3 /sbin/modprobe snd-card-3
install sound-slot-4 /sbin/modprobe snd-card-4
install sound-slot-5 /sbin/modprobe snd-card-5
install sound-slot-6 /sbin/modprobe snd-card-6
install sound-slot-7 /sbin/modprobe snd-card-7
# Cause optional modules to be loaded above generic modules
install snd /sbin/modprobe --ignore-install snd && { /sbin/modprobe --quiet snd-ioctl32 ; /sbin/modprobe --quiet snd-seq ; }
install snd-rawmidi /sbin/modprobe --ignore-install snd-rawmidi && { /sbin/modprobe --quiet snd-seq-midi ; : ; }
install snd-emu10k1 /sbin/modprobe --ignore-install snd-emu10k1 && { /sbin/modprobe --quiet snd-emu10k1-synth ; : ; }

# Prevent abnormal drivers from grabbing index 0
options bt87x index=-2
options cx88_alsa index=-2
options snd-atiixp-modem index=-2
options snd-intel8x0m index=-2
options snd-via82xx-modem index=-2
# Keep snd-pcsp from beeing loaded as first soundcard
options snd-pcsp index=-2
# Keep snd-usb-audio from beeing loaded as first soundcard
options snd-usb-audio index=-2
Jeszcze z sysloga:

Kod: Zaznacz cały

May 23 20:47:14 odin kernel: [    6.476549] SB-XFi 0000:04:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
May 23 20:47:14 odin kernel: [    6.595620] PLL initialization failed!!!
May 23 20:47:14 odin kernel: [    6.595664] SB-XFi 0000:04:00.0: PCI INT A disabled
May 23 20:47:14 odin kernel: [    6.595666] ctxfi: Something wrong!!!
May 23 20:47:14 odin kernel: [    6.595784] SB-XFi: probe of 0000:04:00.0 failed with error -16

Kod: Zaznacz cały

PLL initialization failed!
- tego nie ogarnę. Szybkie przeszukanie Google też nic mi nie powiedziało. Co ma oznaczać ten komunikat? Czy to chodzi o pętlę synchronizacji fazy? Jest to jedyne rozwinięcie tego skrótu jakie znam (nie licząc Polskich Linii Lotniczych).
ODPOWIEDZ