Hallo,
ich verwende als Soundkarte eine M-Audio Delta Audiophile 2496. In den Groups habe ich gelesen,
dass diese Karte auf dem Envy24-Chip basiert.
Bislang gibt es keine native Unterstützung durch den Kernel als solches. Daher habe ich die OSS-
Variante probiert. Leider funktioniert auch OSS nicht (siehe dazu meinen Forum-Eintrag unter:
http://www.4front-tech.com/forum/viewtopic.php?t=238)
Dann habe ich den Groups gelesen, dass vor einiger Zeit sich mal ein Japaner daran versucht hat,
ein natives Kernel-Modul für den Envy24-Chip zu schreiben.
Also habe ich es unter:
http://people.freebsd.org/~lofi/envy24.tar.gz
heruntergeladen und in "/usr/src/sys" entpackt.
Eine Kompilerung mittels "make" jeweils in den Verzeichnissen
"/usr/src/sys/modules/drivers/sound/envy24"
und
"/usr/src/sys/modules/sound/driver/ak452x"
schlug fehl. Hatte einige Defines und Headers nicht gefunden und paar Funktionsaufrufe waren
nicht korrekt.
Danach habe ich die Quelldateien modifiziert ("diff <original> <modifiziert>"):
Eine erneute Kompilerung (wie oben genannt) funktionierte bis auf viele Warnings. Anschließende
"make install"-Ausführungen kopierten dann die Module in mein Modul-Verzeichnis.
Ein "kldload snd_envy24" funktionierte.
Hier der Output von kldstat:
Hier der Output von dmesg:
Hier der Output von sndstat:
Nur gibt's keinen Mucks aus den Lautsprechern. Weder bei "cat /boot/support.4th > /dev/dsp"
noch bei allen anderen dsp*.*
Hier meine Mixer-Einstellungen
Jetzt weiß ich nicht mehr weiter. Keine Ahnung, was an dem Source-Code der Envy24-Module
evtl. noch verkehrt sein könnte.
Weiß jemand von Euch Rat?
Danke und Gruß,
Uri
Code:
uname -a
FreeBSD 5.3-RELEASE FreeBSD 5.3-RELEASE #0: Fri Nov 5 04:19:18 UTC 2004
root@harlow.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386
ich verwende als Soundkarte eine M-Audio Delta Audiophile 2496. In den Groups habe ich gelesen,
dass diese Karte auf dem Envy24-Chip basiert.
Bislang gibt es keine native Unterstützung durch den Kernel als solches. Daher habe ich die OSS-
Variante probiert. Leider funktioniert auch OSS nicht (siehe dazu meinen Forum-Eintrag unter:
http://www.4front-tech.com/forum/viewtopic.php?t=238)
Dann habe ich den Groups gelesen, dass vor einiger Zeit sich mal ein Japaner daran versucht hat,
ein natives Kernel-Modul für den Envy24-Chip zu schreiben.
Also habe ich es unter:
http://people.freebsd.org/~lofi/envy24.tar.gz
heruntergeladen und in "/usr/src/sys" entpackt.
Eine Kompilerung mittels "make" jeweils in den Verzeichnissen
"/usr/src/sys/modules/drivers/sound/envy24"
und
"/usr/src/sys/modules/sound/driver/ak452x"
schlug fehl. Hatte einige Defines und Headers nicht gefunden und paar Funktionsaufrufe waren
nicht korrekt.
Danach habe ich die Quelldateien modifiziert ("diff <original> <modifiziert>"):
Code:
:/usr/src/sys/modules/sound/driver/envy24# diff /root/krempel/envy24/dev/sound/pci/ak452x.c /usr/src/sys/dev/sound/pci/ak452x.c
122c122
< codec->lock = snd_mtxcreate(codec->name);
---
> codec->lock = snd_mtxcreate(codec->name, codec->name);
246c246
< MODULE_DEPEND(snd_ak452x, snd_pcm, PCM_MINVER, PCM_PREFVER, PCM_MAXVER);
---
> MODULE_DEPEND(snd_ak452x, sound, SOUND_MINVER, SOUND_PREFVER, SOUND_MAXVER);
Code:
:/usr/src/sys/modules/sound/driver/envy24# diff /root/krempel/envy24/dev/sound/pci/envy24.c /usr/src/sys/dev/sound/pci/envy24.c
34,35c34,35
< #include <pci/pcireg.h>
< #include <pci/pcivar.h>
---
> #include <dev/pci/pcireg.h>
> #include <dev/pci/pcivar.h>
2282< /*flags*/0, &sc->dmat) != 0) {
---
> /*flags*/0, /*lockfunc*/busdma_lock_mutex,
> /*lockarg*/&Giant, &sc->dmat) != 0) {
2311c2312
< sc->lock = snd_mtxcreate(name);
---
> sc->lock = snd_mtxcreate(name, name);
2443,2444c2444,2445
< MODULE_DEPEND(snd_envy24, snd_pcm, PCM_MINVER, PCM_PREFVER, PCM_MAXVER);
< MODULE_DEPEND(snd_envy24, snd_ak452x, PCM_MINVER, PCM_PREFVER, PCM_MAXVER);
---
> MODULE_DEPEND(snd_envy24, sound, SOUND_MINVER, SOUND_PREFVER, SOUND_MAXVER);
> MODULE_DEPEND(snd_envy24, snd_ak452x, SOUND_MINVER, SOUND_PREFVER, SOUND_MAXVER);
c2282,2283
Eine erneute Kompilerung (wie oben genannt) funktionierte bis auf viele Warnings. Anschließende
"make install"-Ausführungen kopierten dann die Module in mein Modul-Verzeichnis.
Ein "kldload snd_envy24" funktionierte.
Hier der Output von kldstat:
Code:
:/usr/src/sys/modules/sound/driver/envy24# kldstat
Id Refs Address Size Name
1 14 0xc0400000 5cdad0 kernel
2 2 0xc09ce000 1c180 linux.ko
3 1 0xc09eb000 4ad9c8 nvidia.ko
4 14 0xc0e99000 537f0 acpi.ko
5 1 0xc2a7a000 9000 ntfs.ko
6 1 0xc2b42000 2000 star_saver.ko
8 3 0xc36dd000 18000 sound.ko
11 1 0xc3760000 7000 snd_envy24.ko
12 1 0xc3ef5000 2000 snd_ak452x.ko
Hier der Output von dmesg:
Code:
:/usr/src/sys/modules/sound/driver/envy24# dmesg | tail
pcm0: system configuration
SubVendorID: 0xd634, SubDeviceID: 0x1412
XIN2 Clock Source: 22.5792MHz(44.1kHz*512)
MPU-401 UART(s) #: 1
AC'97 codec: not exist
ADC #: 1
DAC #: 1
Multi-track converter type: I2S(96KHz support, 24bit resolution, ID#0x2)
S/PDIF(IN/OUT): 1/1 ID# 0x00
GPIO(mask/dir/state): 0x04/0xfb/0xfe
Hier der Output von sndstat:
Code:
:/usr/src/sys/modules/sound/driver/envy24# cat /dev/sndstat
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <Envy24 audio(Generic)> at io 0xd800:32,0xd400:16,0xd000:16,0xcc00:64 irq 19
(5p/3r/0v channels duplex default)
Nur gibt's keinen Mucks aus den Lautsprechern. Weder bei "cat /boot/support.4th > /dev/dsp"
noch bei allen anderen dsp*.*
Code:
:/usr/src/sys/modules/sound/driver/envy24# ll /dev/dsp*
crw-rw-rw- 1 root wheel 30, 3 26 Nov 22:19 /dev/dsp0.0
crw-rw-rw- 1 root wheel 30, 0x00010003 26 Nov 20:51 /dev/dsp0.1
crw-rw-rw- 1 root wheel 30, 0x00020003 26 Nov 20:51 /dev/dsp0.2
crw-rw-rw- 1 root wheel 30, 0x00030003 26 Nov 20:51 /dev/dsp0.3
crw-rw-rw- 1 root wheel 30, 0x00040003 26 Nov 20:51 /dev/dsp0.4
crw-rw-rw- 1 root wheel 30, 0x00050003 26 Nov 20:51 /dev/dsp0.5
crw-rw-rw- 1 root wheel 30, 0x00060003 26 Nov 20:51 /dev/dsp0.6
crw-rw-rw- 1 root wheel 30, 0x00070003 26 Nov 20:51 /dev/dsp0.7
crw-rw-rw- 1 root wheel 30, 5 26 Nov 20:51 /dev/dspW0.0
crw-rw-rw- 1 root wheel 30, 0x00010005 26 Nov 20:51 /dev/dspW0.1
crw-rw-rw- 1 root wheel 30, 0x00020005 26 Nov 20:51 /dev/dspW0.2
crw-rw-rw- 1 root wheel 30, 0x00030005 26 Nov 20:51 /dev/dspW0.3
crw-rw-rw- 1 root wheel 30, 0x00040005 26 Nov 20:51 /dev/dspW0.4
crw-rw-rw- 1 root wheel 30, 0x00050005 26 Nov 20:51 /dev/dspW0.5
crw-rw-rw- 1 root wheel 30, 0x00060005 26 Nov 20:51 /dev/dspW0.6
crw-rw-rw- 1 root wheel 30, 0x00070005 26 Nov 20:51 /dev/dspW0.7
crw-rw-rw- 1 root wheel 30, 0x0005000b 26 Nov 20:51 /dev/dspr0.5
crw-rw-rw- 1 root wheel 30, 0x0006000b 26 Nov 20:51 /dev/dspr0.6
crw-rw-rw- 1 root wheel 30, 0x0007000b 26 Nov 20:51 /dev/dspr0.7
Hier meine Mixer-Einstellungen
Code:
:/usr/src/sys/modules/sound/driver/envy24# mixer
Mixer vol is currently set to 75:75
Mixer bass is currently set to 0:0
Mixer treble is currently set to 0:0
Mixer synth is currently set to 0:0
Mixer pcm is currently set to 75:75
Mixer speaker is currently set to 0:0
Mixer line is currently set to 75:75
Mixer mic is currently set to 0:0
Mixer cd is currently set to 0:0
Mixer mix is currently set to 0:0
Recording source: mic
Jetzt weiß ich nicht mehr weiter. Keine Ahnung, was an dem Source-Code der Envy24-Module
evtl. noch verkehrt sein könnte.
Weiß jemand von Euch Rat?
Danke und Gruß,
Uri
Zuletzt bearbeitet: