Newsgroup: it.comp.os.linux.sys
Titolo: SoundBlaster 128 PCI

Non riesco a far funzionare la mia SB128 PCI sotto linux... dunque:
ho la mandrake 7.2 e il kernel 2.2.18 (col supporto per l'audio attivato
ovviamente)
ho provato sia il driver es1371 del kernel che il driver ens1371 di alsa.
uno per volta ovviamente. il driver e' sicuramente quello giusto, perche'
tra i device_id supportati da quei drivers c'e' pure quello della mia scheda
(che viene riconosciuta come Ensoniq 5880). inoltre e' pure scritto nei doc
;)
comunque quando provo a caricare il driver con modprobe ho questo errore:
[root@benares /root]# modprobe snd-card-ens1371
snd: unable to grab IRQ 0 for Ensoniq AudioPCI
snd: Ensoniq AudioPCI soundcard #1 not found or device busy
/lib/modules/2.2.18/misc/snd-card-ens1371.o: init_module: Device or resource
busy
Hint: insmod errors can be caused by incorrect module parameters, including
invalid IO or IRQ parameters
/lib/modules/2.2.18/misc/snd-card-ens1371.o: insmod
/lib/modules/2.2.18/misc/snd-card-ens1371.o failed
/lib/modules/2.2.18/misc/snd-card-ens1371.o: insmod snd-card-ens1371 failed
se provo a specificare  a mano l'irq della scheda (che comunque da quel che
ho capito non dovrebbe essere necessario) succede questo:
[root@benares /root]# modprobe snd-card-ens1371 irq=0
/lib/modules/2.2.18/misc/snd-card-ens1371.o: invalid parameter parm_irq
/lib/modules/2.2.18/misc/snd-card-ens1371.o: insmod
/lib/modules/2.2.18/misc/snd-card-ens1371.o failed
/lib/modules/2.2.18/misc/snd-card-ens1371.o: insmod snd-card-ens1371 failed
da quel che ho capito il problema sta nel fatto che ai drivers non piace il
fatto che la scheda sia sull'irq 0, ma non so come cambiarlo... con setpci
non sono riuscito a risolvere nulla, anche perche' non saprei che parametro
cambiare... quello che si avvicina di piu' a quello che mi serve dovrebbe
essere "interrupt_line" solo che e' impostato a ff non a 0 (il che mi fa
supporrre non c'entri un tubo con l'irq) e comunque anche se lo imposto a un
altro valore (ad esempio 8, che dovrebbe essere un irq che ho libero) non ca
mbia nulla....
/etc/modules.conf e' a posto, l'ho modificato seguando i doc di alsa, e cmq
dal messaggio di errore direi che non c'e' nessun errore nel caricamento dei
moduli si direbbe quindi che l'errore sia nel fatto dell'irq, ma non ho la
piu' pallida idea di come sistemarlo.... :\
vi riporto alcune "info" sul mio sistema, casomai potessero servirvi.
[root@benares /root]# lspci
00:00.0 Host bridge: VIA Technologies, Inc.: Unknown device 0305 (rev 02)
00:01.0 PCI bridge: VIA Technologies, Inc.: Unknown device 8305
00:04.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super] (rev 22)
00:04.1 IDE interface: VIA Technologies, Inc. VT82C586 IDE [Apollo] (rev 10)
00:04.2 USB Controller: VIA Technologies, Inc. VT82C586B USB (rev 10)
00:04.3 USB Controller: VIA Technologies, Inc. VT82C586B USB (rev 10)
00:04.4 Host bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI]
(rev 30)
00:0a.0 Multimedia audio controller: Ensoniq 5880 AudioPCI (rev 02)
00:11.0 Unknown mass storage controller: Promise Technology, Inc.: Unknown
device 0d30 (rev 02)
01:00.0 VGA compatible controller: nVidia Corporation NV15 (Geforce2 GTS)
(rev a3)
[root@benares /root]# lspci -vv -s 0:a
00:0a.0 Multimedia audio controller: Ensoniq 5880 AudioPCI (rev 02)
        Subsystem: Ensoniq Creative Sound Blaster AudioPCI128
        Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
        Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort-
<TAbort-
<MAbort- >SERR- <PERR-
        Latency: 32 (3000ns min, 32000ns max)
        Interrupt: pin A routed to IRQ 0
        Region 0: I/O ports at a400
        Capabilities: [dc] Power Management version 1
                Flags: PMEClk- DSI+ D1- D2+ AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D3 PME-Enable- DSel=0 DScale=0 PME-
[root@benares /root]# lsdev
Device            DMA   IRQ  I/O Ports
------------------------------------------------
cascade             4     2
dma                          0080-008f
dma1                         0000-001f
dma2                         00c0-00df
fpu                      13  00f0-00ff
ide0                     14  01f0-01f7 03f6-03f6 d800-d807
ide1                     15  0170-0177 0376-0376 d808-d80f
keyboard                  1  0060-006f
Mouse                    12
parport0                     0378-037f 0778-077a
pic1                         0020-003f
pic2                         00a0-00bf
serial                       02f8-02ff 03f8-03ff
timer                     0  0040-005f
usb-uhci                  9  d000-d013 d400-d413
vga+                         03c0-03df
--
    Shiva
  "Better true to yourself
Than a perfect shadow
       Of somebody else
     An empty shell"
(MrBig, My new religion)



 ho provato sia il driver es1371 del kernel che il driver ens1371 di alsa.
Ho una scheda audio come la tua, ma ho compilato il driver direttamente
nel kernel, senza creare il modulo, comunque, se ti puo' essere utile,
eccoti cosa dice /proc/pci:
Multimedia audio controller: Ensoniq Unknown device (rev 2).
Vendor id=1274. Device id=5880.
Slow devsel.  IRQ 5.  Master Capable.  Latency=32.  Min Gnt=12.Max Lat=128.
I/O at 0xe400 [0xe401].
-- 
http://www.fantoibed.com
      linux       
http://fantoibed.cjb.net
     addicted     
fant...@iname.com

 Non riesco a far funzionare la mia SB128 PCI sotto linux... dunque:
Prova a disabilitare la ricerca di dispositivi PCI dal setup del BIOS;
da me ha funzionato cosi'...
Ciao,
Krtayuga

 da me ha funzionato cosi'...
Scusa... volevo dire il riconoscimento automatico di dispositivi plug
and play; cmq se fai una ricerca su Google (
http://www.google.com
) a
partire dal messaggio di errore "device or resource busy" o simile
troverai un messaggio in cui e' scritto come fare (io ho fatto cosi', ma
ho risolto qs situazione piu' di un anno fa quindi non ricordo
benissimo).
Ciao,
Krtayuga

 partire dal messaggio di errore "device or resource busy" o simile
ok grazie, provero' a fare come mi hai detto. pero' perdonami la
curiosita'.. non e' che poi mi sballa tutto il resto sotto windows? :) linux
bene o male lo uso per "divertimento", i programmi che mi servono girano
sotto windows, quindi per me e' piu' importante che windows funzioni bene
che far funzionare la sb128 sotto linux. cmq insomma, non credo mi costi
nulla fare questa prova, almeno lo spero... non mi fido molto di windows per
certe cose :)


> Slow devsel.  IRQ 5.  Master Capable.  Latency=32.  Min Gnt=12.Max
Lat=128.
a me quello che mi frega e' che la mia scheda e' sull'irq 0.. (infatti ho
dato uno scorcio ai sorgenti del driver e dentro la funzione che fa il
probing del chip c'era un bel (vado a memoria)
  if (pcidev->irq == 0)
    then return -1;
:(((
ho la tentazione di togliere queste due righe e di ricompilare il driver, ma
non vorrei scoprire di aver fatto un bel casino...
non c'e' qualche modo per assegnare un irq diverso alla scheda da dentro
linux?


                 Status: D3 PME-Enable- DSel=0 DScale=0 PME-
IRQ = 0 mi piace poco; io avevo un problema simile con i device USB; ho 
risolto smanettando nel bios ( disabilitando il PNP o qualcosa del genere ).
Prova a cambiare slot alla scheda ( cambiano gli irq assegnati ... ) e vedi 
cosa succede.
Non credo che sia un problema software .... windows che dice ?

 Non credo che sia un problema software .... windows che dice ?
windows 2000 usa un nuovo sistema per evitare conflitti si schede. ovvero
assegna l'irq 9 a praticamente tutto quello che c'e' nel comp... (almeno nel
mio caso usa il 9 ;)
cmq so che non e' un prob software, e' che cercavo un modo per risolverlo
via software :)
