Home / LinuxUser / 2000 / 12 / Dem Rechner die Töne entlockt

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(161 Punkte bei 4 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Sound-Karten unter Linux

Dem Rechner die Töne entlockt

Kernel-Treiber

Etwas zur Geschichte: Die ersten Soundtreiber im Kernel wurden von Hannu Savolainen geschrieben, der später zum Open Sound System (OSS) ging, einem kommerzielen Projekt. Alan Cox, der bei Red Hat beschäftigt ist, arbeitet weiterhin an der Modularisierung der Treiber und entwickelt neuen Code. Er ist laut Sound-HowTo der momentane Maintainer des Projektes Sound.

Alan Cox, Entwickler für den Distributor Red Hat, betreut die Programmierung der Sound-Module im Kernel.

Hannu Savolainen steuert immer noch Code zum Kernel bei, arbeitet aber gleichzeitig an OSS, das in einer abgespeckteren Version frei erhältlich ist. Es unterstützt mehrere Modelle – vor allem neuere – und soll leichter zu konfigurieren sein. Der Nachteil ist aber, dass Sie dafür bezahlen müssen und den Sourcecode nicht bekommen.

Daneben gibt es noch das Advanced Linux Sound Architecture Projekt, das von Jaroslav Kysela und einigen Mitstreitern aus der Taufe gehoben wurde. Es entstand bei der Arbeit an alternativen Treibern für die Gravis UltraSound-Karte. Es soll einmal, so das Ziel der Entwickler, die eingebauten Kernel-Treiber ablösen.

ISAPNP

Ein Plug'n'Play-Karte zu konfigurieren ist nicht einfach, denn nicht ohne Grund haben die Karten den Spitznamen "Plug'n'Pray" (engl. Einstecken und beten) bekommen. Aber unter Linux gibt es eine Lösung für dieses Problem. Hierbei helfen Ihnen die beiden Tools pnpdump und isapnp.

Das erste der beiden liest die möglichen Basiskonfigurationen aus den im System installierten Karten aus und schreibt sie auf die Standardausgabe. Mit einem Trick wird daraus eine Konfigurationsdatei, die später zusammen mit isapnp verwendet werden kann. Mit isapnp wird anschließend die Konfiguration aktiviert.

Da pnpdump direkt auf die Hardware zugreift, darf nur der Systemadministrator damit arbeiten. Werden Sie also mit

[agrytz]$ su
Password:

zum Superuser und geben Sie anschließend pnpdump > isapnp.conf. So wird die Ausgabe, die normalerweise auf dem Bildschirm erschienen wäre direkt in die Datei isapnp.conf umgeleitet. Diese müssen wir danach noch editieren. Das muss nicht in allen Fällen notwendig sein. Es ist aber immer sinnvoll, zu prüfen, ob das Gerät nicht mit anderen Gerät in Konflikt steht.

Ausschnitt aus isapnp.conf

# (DEBUG)
(READPORT 0x0273)
(ISOLATE PRESERVE)
(IDENTIFY *)
(VERBOSITY 2)
(CONFLICT (IO FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # or WARNING
# Don't forget to uncomment the activate (ACT Y) when happy
#       Start dependent functions: priority functional
#       IRQ 5, 7, 9 or 10.
#             High true, edge sensitive interrupt (by default)
# (INT 0 (IRQ 5 (MODE +E)))
#       First DMA channel 1 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 in compatible mode
# (DMA 0 (CHANNEL 1))
#       Logical device decodes 16 bit IO address lines
#             Minimum IO base address 0x0220
#             Maximum IO base address 0x0280
#             IO base alignment 32 bytes
#             Number of IO addresses required: 16
# (IO 0 (SIZE 16) (BASE 0x500))
#     End dependent functions
 (NAME "CTL0070/-1[0]{Audio               }")
# (ACT Y)
))
(WAITFORKEY)

Benutzen Sie dafür die erstellte Konfigurationsdatei. Im Kasten sehen Sie eine verkürzte Variante (der zweite DMA-Kanal ist nicht angegeben); die wichtigen Zeilen wurden fett hervorgehoben. In der Ursprungsdatei bietet Ihnen pnpdump wesentlich mehr Möglichkeiten an. Jetzt sollten sie die oben gelernten Befehle anwenden und die freien Adressbereiche, Interrupts und DMAs heraussuchen.

Haben Sie das erledigt, kommentieren Sie die entsprechenden Zeilen aus, indem Sie das Lattenkreuz davor entfernen und kommentieren Sie ebenfalls die Zeile (ACT Y) aus, damit diese Konfiguration beim Start des Rechners aktiviert wird.

Wenn Sie pnpdump mit der Option -c aufrufen, wird die Conf-Datei gleich so geschrieben, dass die Geräte aktiviert sind. Schreiben Sie sich auf jeden Fall die Werte auf, mit denen Sie letztendlich die Karte initialisieren. Sie brauchen diese später beim Laden der Module.

Wenn Ihre Konfigurationsdatei fertig ist, kopieren Sie sie nach /etc/isapnp.conf und rufen

[agrytz]$ isapnp /etc/isapnp.conf

auf. Dann sollte die Ausgabe so aussehen:

Board 1 has Identity 2f ff ff ff ff 81 71 93 04:  ADS7181 Serial No -1 [checksum
 2f]
ADS7181/-1[0]{Analog Devices AD1816A}: Ports 0x220 0x388 0x500; IRQ5 DMA1 DMA0 -
-- Enabled OK
ADS7181/-1[1]{Analog Devices AD1816A}: Port 0x300; IRQ7 --- Enabled OK
ADS7181/-1[2]{Analog Devices AD1816A}: Port 0x200; --- Enabled OK

In diesem Fall wurde die Karte erfolgreich initialisiert. Nun muss nur noch das richtige Modul für den Kernel geladen werden. Der entsprechende Befehl, der ebenfalls als Benutzer root ausgeführt werden muss, lautet:

[agrytz]$ /sbin/modprobe ad1816 io=0x500 irq=5 dma=1 dma2=3 ad1816_clockfreq=33000

Den richtigen Eintrag bei der Clock-Frequenz finden Sie in der Dokumentation an der oben genannten Stelle. Erhalten Sie nun eine Fehlermeldung, dann kann es unter Umständen sein, dass die Grundbestandteile des Soundsystems nicht geladen sind. Sehen sie sich die Ausgabe des Befehls

[agrytz]$ /sbin/lsmod
...
sound      60248   0  (unused)
soundcore   2788   3  [sound]
soundlow     304   0  [sound]

und suchen Sie nach den oben gezeigten Modulen. Sollten sie vorhanden und das Kartenmodul einwandfrei geladen worden sein, dann müsste dort statt (unused) der Name des Moduls stehen. Sollte das nicht der Fall sein können Sie diese mit folgenden Befehlen laden:

[agrytz]$ /sbin/insmod soundcore
[agrytz]$ /sbin/insmod soundlow
[agrytz]$ /sbin/insmod sound

Nun sind Sie dem Ende der Konfiguration schon sehr nahe. Es fehlt lediglich noch ein Eintrag in die Datei /etc/conf.modules. Dort stehen alle Module, die der Rechner beim Start laden soll. Ergänzen sie hier die Zeilen:

alias sound-slot-0 ad1816
alias sound-service-0-3 ad1816
alias char-major-14 ad1816
post-install  ad1816 /sbin/modprobe -k ad1816
options ad1816 io=0x500 irq=5 dma=1 dma2=3

Beachten Sie bitte unbedingt, dass es sich hierbei um eine Beispielkonfiguration für eine Sound-Karte mit AD1816-Chipsatz handelt. Für Ihre Sound-Karte sieht die Konfiguration sehr wahrscheinlich etwas anders aus. Geben Sie nach dem Editieren der Datei conf.modules an der Kommandozeile

[agrytz]$ /sbin/depmod -a

ein. So werden die Abhängigkeiten registriert. Testen Sie nach erfolgreichem Laden des Sound-Moduls die Funktion:

[agrytz]$ cat /dev/sndstat
OSS/Free:3.8s2++-971130 Load type: Driver loaded as a module Kernel: Linux local
host.localdomain 2.2.15-4mdk #1 Wed May 10 15:31:30 CEST 2000 i686 Config option
s: 0
Installed drivers:
Card config:
Audio devices: 0: AD1816 audio driver (DUPLEX)
Synth devices:
Midi devices:
Timers: 0: System clock
Mixers: 0: AD1816 audio driver

Nach dem Sie nun die Konfiguration zu Fuß geschafft haben, nun noch ein Hinweis: SuSE 7.0 verfügt über ein Tool, dass Ihnen die Konfiguration der ISA Plug'n'Play-Sound-Karte abnehmen und diese richtig konfigurieren soll. Im Selbstversuch wurde die oben genannte Soundkarte allerdings nicht zuverlässig erkannt. Auch mit dem Mandrakes eigenem Tool HardDrake ließ sich die Karte nicht konfigurieren.

Soundkonfiguration mit einem grafischen Frontend bei SuSE 7.0.

Glossar

ISA

(Industry Standard Architecture; engl.: Industrieller Architektur-Standard) Ein Standard für Peripherie-Geräte. wurde später durch PCI (siehe unten) abgelöst. Wenn die Steckplätze betrachten, gilt als Faustregel: die breiten sind ISA-Plätze; die schmalen PCI. Aus dieser Logik fällt der AGP (Advanced Graphics Port) heraus, der eine verbesserte Schnittstelle zur Grafik-Hardware darstellt. Dieser Port wird intern aber als PCI-Schnittstelle behandelt.

IRQ

(Interrupt; engl.: Unterbrecher)

DMA

(Direct Memory Access; engl.: Direkter Speicherzugriff)

PCI

(engl.: Peripheral Component Interconnect)

Jumper

(engl.: Schalter) Bei einem Jumper handelt es sich um eine kleine Steckbrücke, die jeweils zwei Leiter miteinander verbindet. Meistens stehen sechs oder mehr Stifte nebeneinander und je nachdem, wie die Brücke gesteckt ist, ergibt sich eine andere Schaltung. Diese Technik wird auch verwendet, um den Geräten am IDE-Stecker (Festplatten, CDROM-Laufwerke) ihre Status zuzuweisen (Master oder Slave).

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 0 Punkte (1 Stimme)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...