Soundblaster, amd64 und nur Rauschen

xbit

Well-Known Member
Moin Moin!

Ich habe ein FreeBSD 5.4 #6 auf einem amd64 laufen, auch die amd64 Version von FreeBSD.

Meine Soundkarte ist eine Soundblaster Live 128 oder so, jedenfalls der snd_emu10k1 Treiber. Auf meiner alten Kiste (Athlon 900) lief die Karte unter FreeBSD 5.4 i386 wunderbar. Jetzt auf dem amd64 hab ich folgendes Problem.

Mit xawtv kann ich TV glotzen und habe guten Sound. Die TV Karte gibt dabei den Sound ueber Line In an die Soundkarte, die das dann ausgibt. Das funktioniert soweit.

Fuer XMMS verwende ich den esound Daemon. Wenn ich den starte und mit XMMS OGG oder MP3 Files abspielen will, hoer ich nur Rauschen. Ausserdem laufen die Files rasend schnell durch, so als waere die Soundausgabe in eine Datei umgeleitet worden.

Wenn ich mit play (aus dem sox Port) eine WAV Datei abspielen will, hoere ich etwas, allerdings wird das dann zerhackt und wiederholt. Im Grunde hoert man etwa 2 Sekunden und dann geht's von vorne los.

Hier ist die 'sysctl -a' Ausgabe:
Code:
hw.snd.report_soft_formats: 1
hw.snd.targetirqrate: 32
hw.snd.verbose: 1
hw.snd.maxautovchans: 0
hw.snd.unit: 0
hw.snd.pcm0.buffersize: 4096
hw.snd.pcm0.vchans: 0

Hier noch die 'cat /dev/sndstat' Ausgabe.
Code:
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <Creative EMU10K1> at io 0xa800 irq 9  (4p/2r/0v channels duplex default)
        [pcm0:play:0]: spd 44100, fmt 0x10000010, flags 0x00023030, 0x00000000, pid 558
        interrupts 0, underruns 0, ready 65536
        {userland} -> feeder_root(0x10000010) -> {hardware}
        [pcm0:play:1]: spd 0, fmt 0x00000000/0x00000008, flags 0x00000000, 0x00000000
        interrupts 0, underruns 0, ready 0
        {userland} -> feeder_root(0x00000000) -> {hardware}
        [pcm0:play:2]: spd 0, fmt 0x00000000/0x00000008, flags 0x00000000, 0x00000000
        interrupts 0, underruns 0, ready 0
        {userland} -> feeder_root(0x00000000) -> {hardware}
        [pcm0:play:3]: spd 0, fmt 0x00000000/0x00000008, flags 0x00000000, 0x00000000
        interrupts 0, underruns 0, ready 0
        {userland} -> feeder_root(0x00000000) -> {hardware}
        [pcm0:record:0]: spd 0, fmt 0x00000000/0x00000008, flags 0x00000000, 0x00000000
        interrupts 0, overruns 0, hfree 4096, sfree 0
        {hardware} -> feeder_root(0x00000000) -> {userland}
        [pcm0:record:1]: spd 0, fmt 0x00000000/0x00000008, flags 0x00000000, 0x00000000
        interrupts 0, overruns 0, hfree 4096, sfree 0
        {hardware} -> feeder_root(0x00000000) -> {userland}

File Versions:
$FreeBSD: src/sys/dev/sound/pcm/vchan.c,v 1.16.2.1 2005/01/30 01:00:05 imp Exp $
$FreeBSD: src/sys/dev/sound/pcm/sound.c,v 1.92.2.1 2005/01/30 01:00:05 imp Exp $
$FreeBSD: src/sys/dev/sound/pcm/sndstat.c,v 1.17.2.3 2005/09/21 02:47:12 yongari Exp $
$FreeBSD: src/sys/dev/sound/pcm/mixer.c,v 1.40.2.1 2005/01/30 01:00:05 imp Exp $
$FreeBSD: src/sys/dev/sound/pcm/feeder_rate.c,v 1.10.6.1 2005/01/30 01:00:05 imp Exp $
$FreeBSD: src/sys/dev/sound/pcm/feeder_fmt.c,v 1.13.4.1 2005/01/30 01:00:05 imp Exp $
$FreeBSD: src/sys/dev/sound/pcm/feeder.c,v 1.32.4.1 2005/01/30 01:00:05 imp Exp $
$FreeBSD: src/sys/dev/sound/pcm/fake.c,v 1.13.4.1 2005/01/30 01:00:05 imp Exp $
$FreeBSD: src/sys/dev/sound/pcm/dsp.c,v 1.77.2.1 2005/01/30 01:00:04 imp Exp $
$FreeBSD: src/sys/dev/sound/pcm/channel.c,v 1.97.2.1 2005/01/30 01:00:04 imp Exp $
$FreeBSD: src/sys/dev/sound/pcm/buffer.c,v 1.23.2.2 2005/01/30 01:00:04 imp Exp $
$FreeBSD: src/sys/dev/sound/pcm/ac97_patch.c,v 1.2.4.1 2005/01/30 01:00:04 imp Exp $
$FreeBSD: src/sys/dev/sound/pcm/ac97.c,v 1.51.2.2 2005/05/01 14:31:06 scottl Exp $
$FreeBSD: src/sys/dev/sound/pci/emu10k1.c,v 1.52.2.2 2005/01/30 01:00:04 imp Exp $
$FreeBSD: src/sys/dev/sound/isa/sndbuf_dma.c,v 1.2.4.1 2005/01/30 01:00:03 imp Exp $

Ich hab schon an diversen Stellen gesucht, aber bisher nix gefunden, was mir irgendwie helfen koennte.
Oder hab ich irgendwo uebersehen, dass die Karte unter amd64 nicht laeuft?

Hat irgendjemand eine Idee wie ich das in den Griff bekomme?

Danke schonmal!
 
Es gibt Karten, die eigentlich 16Bit sind, aber mittel 32Bit Bridge-Chip zu 32Bit PCI-Karten gemacht wurden. Die funktionieren unter amd64 natürlich nicht wirklich. Allerdings die SB 128 zu neu, um darunter zu fallen.

Das große Problem bei dieser Karte ist, dass Creative allen Schrott, der gerade billig zu bekommen war, zu dieser Karte zusammen gelötet hat. DIE Sb128 gibt es nicht, jede Serie stellt technisch gesehen eine eigenständige Karte da.

Die simpelste Lösung und dauerhafteste wäre wohl, dass du dir eine richtige neue Soundkarte besorgst. Was die Softwareseite betrifft, kann ich dir leider nicht helfen, da ich mangels amd64-Installation dein Problem nicht nachvollziehen kann.
 
Hm... das muss ich mir die Karte wohl nochmal genauer anschauen oder eine neue holen.

Danke erstmal fuer die Info.
 
So, hab mal gesucht und mit dmesg usw geschaut.

Laut dmesg sieht es so aus, als wenn die bloede onboard TriTech AC97 Karte aktiviert (?) wird. Zumindest habe ich da folgende Zeilen:
pcm0: emu10k1
pcm0: TriTech AC 97

Dummerweise ist die TriTech onboard Karte im BIOS auf disabled gestellt. Also scheint das BIOS irgendwie madig zu sein.

Hat jemand da eine Idee, wie ich FreeBSD ueberreden kann, die eine Karte, fuer die auch der Treiber vorhanden ist, zu nutzen und die andere zu ignorieren?

Danke schon mal.
 
Unerwünschte Karten kannst du durch das Setzten eines Hinds in der /boot/devices.hints abschalten. Allerdings würde ich das Problem an anderer Stelle suchen. Denn 2 Soundkarten sollten von BSD auch als 2 Geräte erkannt werden und sind somit kein Problem. Du hättest dann pcm0 und pcm1. Daher würde ich sagen, dass es sich nur um den auf der externen Karte verbauten Codec handelt. Eine Audigy wird z.B. auch so erkannt:
Code:
pcm0: <Creative Audigy (EMU10K2)> port 0xc400-0xc41f irq 19 at device 14.0 on pci0
pcm0: <TriTech TR28602 AC97 Codec>
 
Hm... ich weiss leider nicht mehr, wie mein alter Athlon ohne onboard Sound die Karte erkannt hat.

Ich glaub, ich hau da nochmal ein i386 FreeBSD drauf und schau, on das mit dem Sound klarkommt, oder ob da auch nur Mist aus den Boxen kommt.

Vielleicht komm ich auch mit den /boot/devices.hints weiter.

Danke.
 
Zurück
Oben