FreeBSD 5.4 erkennt Soundkarte nicht

-Daemon-

Well-Known Member
Hallo zusammen,

ich hab ein Problem mit meiner Soundkarte in meinem Zweitrechner. Es ist eine Creative Soundblaster 16 für ISA-Bus (die Karte hat auch noch ein IDE-Interface drauf).
Laut Hardware-Notes von FreeBSD 5.4 unterstützt der snd_sbc-Treiber diese Karte. Das Kernelmodul (snd_sbc.ko) hab ich geladen, sowie in der /boot/loader.conf eingetragen. Mein Rechner mag die Karte aber trotzdem nicht erkennen. In der dmesg hab ich auch nichts gefunden.

Die /boot/loader.conf:
Code:
sound_load="YES"
snd_sbc_load="YES"

Die dmesg:
Code:
Copyright (c) 1992-2005 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD 5.4-RELEASE #0: Sun May  8 10:21:06 UTC 2005
    root@harlow.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Pentium II/Pentium II Xeon/Celeron (349.96-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x652  Stepping = 2
  Features=0x183f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR>
real memory  = 134152192 (127 MB)
avail memory = 121614336 (115 MB)
ACPI disabled by blacklist.  Contact your BIOS vendor.
npx0: <math processor> on motherboard
npx0: INT 16 interface
cpu0 on motherboard
pcib0: <Intel 82443BX (440 BX) host to PCI bridge> pcibus 0 on motherboard
pir0: <PCI Interrupt Routing Table: 7 Entries> on motherboard
pci0: <PCI bus> on pcib0
agp0: <Intel 82443BX (440 BX) host to PCI bridge> mem 0xe0000000-0xe3ffffff at device 0.0 on pci0
pcib1: <PCI-PCI bridge> at device 1.0 on pci0
pci1: <PCI bus> on pcib1
isab0: <PCI-ISA bridge> at device 7.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel PIIX4 UDMA33 controller> port 0xf000-0xf00f,0x376,0x170-0x177,0x3f6,0x1f0-0x1f7 at device 7.1 on pci0
ata0: channel #0 on atapci0
ata1: channel #1 on atapci0
uhci0: <Intel 82371AB/EB (PIIX4) USB controller> port 0xe000-0xe01f irq 11 at device 7.2 on pci0
usb0: <Intel 82371AB/EB (PIIX4) USB controller> on uhci0
usb0: USB revision 1.0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
pci0: <bridge> at device 7.3 (no driver attached)
pci0: <display, VGA> at device 8.0 (no driver attached)
rl0: <RealTek 8139 10/100BaseTX> port 0xe800-0xe8ff mem 0xe7000000-0xe70000ff irq 5 at device 10.0 on pci0
miibus0: <MII bus> on rl0
rlphy0: <RealTek internal media interface> on miibus0
rlphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
rl0: Ethernet address: 00:30:bd:1a:e5:d6
orm0: <ISA Option ROM> at iomem 0xc0000-0xc7fff on isa0
pmtimer0 on isa0
atkbdc0: <Keyboard controller (i8042)> at port 0x64,0x60 on isa0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model Generic PS/2 mouse, device ID 0
fdc0: <Enhanced floppy controller> at port 0x3f0-0x3f5 irq 6 drq 2 on isa0
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0
ppc0: Generic chipset (NIBBLE-only) in COMPATIBLE mode
ppbus0: <Parallel port bus> on ppc0
plip0: <PLIP network interface> on ppbus0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A
sio1 at port 0x2f8-0x2ff irq 3 on isa0
sio1: type 16550A
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
unknown: <PNP0303> can't assign resources (port)
unknown: <PNP0a03> can't assign resources (port)
unknown: <PNP0f13> can't assign resources (irq)
unknown: <PNP0501> can't assign resources (port)
unknown: <PNP0700> can't assign resources (port)
unknown: <PNP0400> can't assign resources (port)
unknown: <PNP0501> can't assign resources (port)
Timecounter "TSC" frequency 349961476 Hz quality 800
Timecounters tick every 10.000 msec
ad0: 6204MB <ST36531A/3.29> [13446/15/63] at ata0-master UDMA33
acd0: CDROM <GCD-R580B/1.05> at ata1-master PIO3
Mounting root from ufs:/dev/ad0s1a

Und zum Schluß noch die Ausgabe von /dev/sndstat:
Code:
pj@askja$ cat /dev/sndstat 
FreeBSD Audio Driver (newpcm)
Installed devices:
Das hat mich am meisten gewundert.

Noch was: Wenn ich im XMMS ein Lied abspielen will, meckert er, ich solle meine Karte richtig konfigurieren, sicherstellen, den korrekten output-plugin gewählt zuhaben, sowie zu überprüfen, dass kein anderes Programm die Soundkarte belegt. Letzteres ist definitiv nicht der Fall. Zudem zeigt mir mein xterm folgende Meldung an:
Code:
** WARNING **: oss_open(): Failed to open audio device (/dev/dsp): No such file or directory

Nach dem Problem hab ich gegooglet, aber kein zufriedenstellendes Ergebniss gefunden; wahrscheinlich hab ich's aber wieder übersehen :eek: Außerdem gibt's das Verzeichnis bei mir nicht; ich hab versucht eines anzulegen (naiv wie ich bin :rolleyes: ), aber das hat er selbst dem root verboten.

So, ich hoffe, das ich den Fall hinreichend genau geschildert habe (ich sitzt seit ~14h an dem Problem... :zitter: ).

Kann es sein das die Soundkarte kaputt ist?

Gruß,
Philipp

Nachtrag: Ich hab auch die Anleitung im Wiki befolgt, die war ebensowenig von Erfolg gekrönt.
 
Deine Soundkarte benötigt noch ein wenig Handarbeit bis sie läuft. Im FreeBSD-Handbuch wird genau anhand deiner Soundkarte aufgezeigt, was bei nicht-Plug&Play-ISA-Karten für Konfigurationsarbeit (in /boot/device.hints) notwendig ist:
http://www.freebsd.ch/doc/de_DE.ISO8859-1/books/handbook/sound-setup.html

Nicht PnP-fähige ISA-Karten benötigen weiterhin Angaben zu den Karteneinstellungen (IRQ, I/O-Port). Die Karteneinstellungen tragen Sie in die Datei /boot/device.hints ein. Während des Systemstarts liest der loader(8) diese Datei und reicht die Einstellungen an den Kernel weiter. Für eine alte Creative SoundBlaster 16 ISA-Karte, die den snd_sbc(4) Treiber benutzt, fügen Sie die folgende Zeile in die Kernelkonfiguration ein:

device snd_sbc

In die Datei /boot/device.hints tragen Sie beispielsweise die folgenden Einstellungen ein:

hint.sbc.0.at="isa"
hint.sbc.0.port="0x220"
hint.sbc.0.irq="5"
hint.sbc.0.drq="1"
hint.sbc.0.flags="0x15"

In diesem Beispiel benutzt die Karte den I/O-Port 0x220 und den IRQ 5.

Die Hilfeseite des jeweiligen Treibers beschreibt die Syntax der Einträge in der Datei /boot/device.hints.
 
Last edited:
@0815chaot: ISA-Karten sind nicht plug&play fähig, das können meines Wissens nach nur EISA- und PCI-Karten.

@AndreasMeyer: Danke für deinen Hinweis. Ich werd's mal versuchen was im Handbuch steht. Ich meld mich dann nochmal.

Gruß und Danke für die Tips,
Philipp
 
-Daemon- said:
@0815chaot: ISA-Karten sind nicht plug&play fähig, das können meines Wissens nach nur EISA- und PCI-Karten.
Der Unterschied zwischen ISA und EISA ist für Plug&Play unerheblich. Außerdem glaube ich nicht, daß es die SoundBlaster 16 überhaupt in einer Ausführung als EISA-Karte gibt - trotzdem haben die "neueren" Modelle Plug&Play. Es kommt nur auf das Alter der Karte an. Wenn deine sogar noch einen IDE-Controller hat, dann dürfte die steinalt sein - und zu der Zeit konnten die Teile eben noch kein Plug&Play.

Im Prinzip ist es ja nun auch egal, ob die Karte ISA oder EISA kann, wenn du dir sicher bist, daß sie nicht Plug&Play-fähig ist, dann mußt du zwingend die entsprechende Konfiguration in der /boot/device.hints eintragen. Das steht übrigens auch in der Manpage.
 
Es ist schon eine Weile her das ich die Frage nach der Unterstützung der Karte gestellt habe. Heute hab ich mich mal wieder dieser Baustelle angenommen. Ich hab in meine Kernelkonfiguration folgendes eingefügt (in /boot/device.hints wurden ebenfalls die entsprechenden Einträge vorgenommen - siehe Link von AndreasMeyer):
Code:
device snd_sbc

Wenn ich nun den Kernel kompilieren will, bleibt er beim make depend mit folgender Fehlermeldung hängen:
Code:
In file included from ../../../dev/sound/pcm/sound.h:93,
                 from ../../../dev/sound/isa/sbc.c:28:
../../../dev/sound/pcm/channel.h:69:24: channel_if.h: No such file or directory
mkdep: compile failed
*** Error code 1

Stop in /usr/src/sys/i386/compile/ASKJAKERNEL.
*** Error code 1

Stop in /usr/src/sys/i386/compile/ASKJAKERNEL.

Ich bin beim Kernelbau nach dieser Anleitung vorgegangen. Ich habe das erste - dort beschriebene - Verfahren angewendet, da das 2te, neuere irgendwie nicht will (auch ohne Sounddevice).

Kann mir das bitte jemand erklären? :confused: Ich hab schon gegooglet, aber nichts wirklich brauchbares gefunden.

Danke schonmal für eure Hilfe.

Gruß,
Philipp

Nachtrag: /var/log/messages sagt nichts
 
Laut Manpage benötigt device snd_sbc auch device sound - aus deinem Post geht nicht hervor, ob du das auch drin hast.

Davon abgesehen frage ich mich, warum du das Modul in den Kernel kompilieren willst. :confused:
 
Danke für den Hinweis. Ich versuchs nochmal.

Wieso ich das in den Kernel kompilier? Weil es über Module nicht tut (steht auch im Handbuch).
 
-Daemon- said:
Wieso ich das in den Kernel kompilier? Weil es über Module nicht tut (steht auch im Handbuch).
Hast du da einen genauen Link zu? In Abschnitt 7.2 des Handbuchs steht dazu nichts, in NOTES wird das auch nicht erwähnt (da steht das normalerweise immer dabei) und die Manpage gibt das auch nicht her.
 
Die SoundBlaster die ich hab ist noch mit ISA-Bus und nicht PnP-fähig. Deswegen der Aufwand. Hier steht mehr dazu (Abschnitt 7.2.1.1).

Auch wenn es evtl. anders gehen sollte, ich bin erstmal froh, dass die Karte nun überhaupt in der dmesg auftaucht.
 
Nein, dort steht, daß du für FreeBSD 4.x das Modul in den Kernel kompilieren mußt, weil es da noch keine /boot/device.hints gibt, in der man IRQ, DMA etc. festlegen kann. Ab 5.x ist das nicht nötig, diese Syntax im Kernel sogar überhaupt nicht mehr erlaubt, da funktioniert das durch Laden des Moduls und den Einträgen in /boot/device.hints. Kann natürlich sein, daß du dabei irgendeinen Detailfehler gemacht hast, aber wenn es jetzt so läuft, sei's drum.
 
Naja, ist ja schlußendlich egal wie man's macht. Hauptsache es läuft ;) Außerdem war's ne gute Übung. :)

@AndreasMeyer: Die Seite im Wiki kenn ich schon :)
 
Hab mich wohl zu früh gefreut. XMMS meckert beim Versuch ein Lied abzuspielen, dass man doch gefälligst die Soundkarte richtig konfigurieren soll. In der Konsole kommt dazu dann ne Fehlermeldung, dass es kein Directory/File /dev/dsp gibt. Von Hand anlegen kann ich es auch nicht (permission denied; vlt. auch besser so ;)).

Langsam hab ich den Eindruck das die Karte kaputt ist. :eek:
 
In /dev kann und soll man ab 5.x nicht mehr manuell rumfummeln. Da wir so nicht weiterkommen, wäre der dmesg eines Verbose Mode Boots hilfreich.
 
@0815chaot: Auch die dmesg eines Verbose Mode Boots bringt uns nicht mehr weiter, da die Soundkarte beschlossen hat, in den Hardwarehimmel umzuziehen.

Ich hab die Karte mal noch mit Debian Sarge und Windoof 2000 getestet, in beiden Fällen war nicht viel zu machen. (Unter Debian kam von XMMS die gleiche Meldung wie bei FreeBSD; Windoom wollte nicht, der hat mir erzählt er hätte kein Ausgabemedium...)

Thema hat sich somit erledigt
 
Da können wir natürlich lange rumprobieren. :)

Mein Tip: Tu dir selbst einen Gefallen und baue eine SoundBlaster 128 PCI für unter 10 Euro ein. Läuft garantiert ohne irgendwelche Fummeleien am Kernel oder /boot/device.hints. Einbauen, snd_es137x.ko laden, wohlfühlen.
 
Back
Top