Re: linux-l: Kernel-Soundunterstützung

Mario Thaten mario at thaten.in-berlin.de
Sa Feb 12 11:04:24 CET 2000


Reply to mail by Arnd Fricke of Fri, 11 Feb 2000 14:17:22 +0100:

>>Du hast die Karte per isapnp aktiviert?

> (*räusper*) Bitte nicht lachen... was ist "isapnp"? Ich habe
> diesen Hinweis auch in der Mini-Howto zu Alsa gefunden, aber
> leider ohne jede Erläuterung (während dieser Text gleichzeitig
> aber die Kommandozeilen-Komplettierung per TAB noch extra
> erklärt!)

Bei Suse heißt das Paket isapnp oder isapnptools und ist (glaube
ich) in der Serie "ap" zu finden. Es geht darum, eine
Plug-&Play-Karte zu initialisieren. Darum an dieser Stelle nochmal
die Frage, was Du genau für eine Karte hattest:
Vibra16 Isa-Plug&Play?
Nur soviel zu isapnp (das steht nämlich glaub ich im SuSE-Handbuch
so um Kapitel 11 oder 12 hervorragend beschrieben):
1) pnpdump > /etc/isapnp.conf
Das schreibt die Konfigurationsparameter aller gefundenen
Plug&Play-Ressourcen in die Datei /etc/isapnp.conf.

Am Anfang der Datei steht dann sowas:
-----------8<-----------
# (DEBUG)
(READPORT 0x020b)
(ISOLATE PRESERVE)
(IDENTIFY *)
(VERBOSITY 2)
(CONFLICT (IO FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # or WARNING
----------->8-----------
Die Datei ist übrigens hervorragend kommentiert.
Ein gefundenes Device wird wie folgt gekennzeichnet:
-----------8<-----------
(CONFIGURE CSC4236/-1 (LD 0
#     ANSI string -->WSS/SB<--
----------->8-----------
Danach bietet er Dir meist eine Vielzahl an
Konfigurationsmöglichkeiten an. Bei einer Soundkarte handelt es
sich hierbei meistens um:
-----------8<-----------
#     Start dependent functions: priority preferred
#       First DMA channel 1.
#             8 bit DMA only
#             Logical device is not a bus master
#             DMA may execute in count by byte mode
#             DMA may not execute in count by word mode
#             DMA channel speed type A
 (DMA 0 (CHANNEL 1))
#       Next DMA channel 0 or 3.
#             8 bit DMA only
#             Logical device is not a bus master
#             DMA may execute in count by byte mode
#             DMA may not execute in count by word mode
#             DMA channel speed type A
 (DMA 1 (CHANNEL 0))
#       IRQ 5.
#             High true, edge sensitive interrupt (by default)
 (INT 0 (IRQ 5 (MODE +E)))
#       Logical device decodes 16 bit IO address lines
#             Minimum IO base address 0x0534
#             Maximum IO base address 0x0534
#             IO base alignment 4 bytes
#             Number of IO addresses required: 4
 (IO 0 (SIZE 4) (BASE 0x0534))
#       Logical device decodes 16 bit IO address lines
#             Minimum IO base address 0x0388
#             Maximum IO base address 0x0388
#             IO base alignment 8 bytes
#             Number of IO addresses required: 4
 (IO 1 (SIZE 4) (BASE 0x0388))
#       Logical device decodes 16 bit IO address lines
#             Minimum IO base address 0x0220
#             Maximum IO base address 0x0220
#             IO base alignment 32 bytes
#             Number of IO addresses required: 16
 (IO 2 (SIZE 16) (BASE 0x0220))
----------->8-----------
Er gibt meist mehrere Kombinationsmöglichkeiten an, die alle durch
eine Leerzeile voneinander getrennt sind. Davon suchst Du Dir
diejenige raus, die Dir für Dein System am plausibelsten erscheint
(z.B. wie meine oben, aber Vorsicht, die ist auf die Crystal-Karte
zugeschnitten) und entfernst die Kommentarzeichen vor den Zeilen
mit den Hardwareressourcen (IO, DMA usw.).

Der Abschluß einer Devicekonfiguration erfolgt mit folgenden Zeilen.
-----------8<-----------
#     End dependent functions
 (NAME "CSC4236/-1[0]{WSS/SB              }")
 (ACT Y)
))
----------->8-----------
Hierbei muß vor dem (ACT Y) das Kommentarzeichen entfernt werden.
Jetzt müßte die Anzahl der öffnenden Klammern in der Datei mit der
Anzahl der schließenden übereinstimmen. Es kann passieren, daß er
für eine Karte mehrere Devices findet (das hier eben war der
SB-Port, er findet aber auch noch den Game-Port), die solltest Du
dann entsprechend konfigurieren. Die Datei schließt ab mit einem:
-----------8<-----------
# Returns all cards to the "Wait for Key" state
(WAITFORKEY)
----------->8-----------
Ich hänge als Beispiel meine isapnp.conf an.
Du startest diese testweise mit 
/sbin/isapnp /etc/isapnp.conf
Er sollte jetzt keine Fehlermeldungen bringen, sonst mußt Du für
die entsprechenden Devices andere Einstellungen auswählen. Die
Original isapnp.conf kannst Du jederzeit über das pnpdump-Kommando
zurückholen. Erst wenn die Karte mit isapnp initialisiert ist,
können die Kernel- bzw. Alsa-Module sie finden.
Aber mach erstmal diesen Schritt und gib ne Erfolgsmeldung :).

> Wenn ich es richtig sehe, gibt es zwei ganz verschiedene
> Möglichkeiten, die ich offenbar versehentlich gleichzeitig
> probiert habe, nämlich die Soundunterstützung im Kernel, und
> Alsa. 
> Ich sollte mich wohl als erstes für eine Strategie entscheiden.
> Was ist besser, und was einfacher? 

Ich bin bisher immer mit dem Kernel klargekommen, aber sobald ich
Zeit habe, schaue ich mir mal Alsa an, ich hab hier nämlich noch ne
Onboard DS-XG (Yamaha), die mit dem Kernel und OSS-free nicht zum
Laufen zu kriegen ist.

> Was müßte denn in der /etc/asound.conf drin stehen?

S.o. muß mich erst noch damit beschäftigen.

Gruß, Mario

-- 
 .~.    Mario Thaten (mario at thaten.de)
 /V\    Linux 2.3.40
/( )\   Call for codewriters:
 ^ ^    Anybody interested in implementing an "Undo"-function in life?

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : honk
Dateityp    : application/octet-stream
Dateigröße  : 809 bytes
Beschreibung: File attachment
URL         : <https://mlists.in-berlin.de/pipermail/linux-l-mlists.in-berlin.de/attachments/20000212/b751f242/attachment.obj>


Mehr Informationen über die Mailingliste linux-l