Intel HighDefinitionAudio und FreeBSD

daemonic

Well-Known Member
Hallo,

habe FreeBSD 6.0-Release auf mein neues Laptop (Asus A6vm) installiert.
Leider funktioniert der Soundtreiber snd_ich nicht.
Mit etwas fummeln im snd_ich Treiber, klemmt sich der Treiber halbwegs an "pci0".
Beim Booten bekomme ich folgende Fehlermeldung
Code:
pcm0: <Intel ICH7 (82801FB)> mem 0xfebf8000-0xfebfbfff irq 16 at device 27.0 on pci0
pcm0: unable to map IO port space

Mit pciconf(8) sieht man folgendes
Code:
pcm0@pci0:27:0: class=0x040300 card=0x11731043 chip=0x26688086 rev=0x04 hdr=0x00
    vendor   = 'Intel Corporation'
    device   = '82801FB/FR/FW/FRW Intel High DefiNition Audio Controller'
    class    = multimedia

Die Soundkarte wird trotzdem nicht erkannt ("cat /dev/sndstat" bringt nicht die bekannten Infos).

Hat jemand schon Intel HDA (wenn auch mit AC'97 Codec) unter FreeBSD zum laufen gebracht ?

Danke schon mal für Eure Unterstützung.

Grüße


quirk für ICH7 im snd_ich Treiber:
Code:
--- /usr/src/sys/dev/sound/pci/ich.c.ori        Sat Jan  7 15:49:57 2006
+++ ./ich.c.sas Sat Jan  7 21:15:45 2006
@@ -46,6 +46,7 @@
 #define ICH5ID         0x24d58086      /* ICH5 needs to be treated as ICH4 */
 #define I6300ESBID     0x25a68086      /* 6300ESB needs to be treated as ICH4 */
 #define ICH6ID         0x266e8086      /* ICH6 needs to be treated as ICH4 */
+#define ICH7ID         0x26688086      /* ICH7 , unofficial quirk by Sashi Asokarajan  */
 
 /* buffer descriptor */
 struct ich_desc {
@@ -584,7 +585,8 @@
                if ((pci_get_devid(sc->dev) != ICH4ID) &&
                    (pci_get_devid(sc->dev) != ICH5ID) &&
                    (pci_get_devid(sc->dev) != I6300ESBID) &&
-                   (pci_get_devid(sc->dev) != ICH6ID)) {
+                   (pci_get_devid(sc->dev) != ICH6ID) &&
+                   (pci_get_devid(sc->dev) != ICH7ID)) {
                        return ENXIO;
                }
        }
@@ -648,6 +650,10 @@
                device_set_desc(dev, "Intel ICH6 (82801FB)");
                return BUS_PROBE_LOW_PRIORITY;
 
+       case ICH7ID:
+               device_set_desc(dev, "Intel ICH7 (82801FB)");
+               return BUS_PROBE_LOW_PRIORITY;
+
        case SIS7012ID:
                device_set_desc(dev, "SiS 7012");
                return BUS_PROBE_DEFAULT;
@@ -735,10 +741,12 @@
 
        if (pci_get_devid(dev) == ICH5ID ||
            pci_get_devid(dev) == I6300ESBID ||
-           pci_get_devid(dev) == ICH6ID) {
+           pci_get_devid(dev) == ICH6ID ||
+           pci_get_devid(dev) == ICH7ID) {
                sc->nambarid = PCIR_MMBAR;
                sc->nabmbarid = PCIR_MBBAR;
                sc->regtype = SYS_RES_MEMORY;
+               pci_write_config(dev, PCIR_ICH_LEGACY, ICH_LEGACY_ENABLE, 1);
        } else {
                sc->nambarid = PCIR_NAMBAR;
                sc->nabmbarid = PCIR_NABMBAR;
 
Das Thema hatten wir hier schonmal. Hat im dortigen auch nicht funktioniert.

HD-Audio wird von FreeBSD momentan nicht unterstuetzt.
 
z.I.

OSS unterstützt ebenfalls keinen HDA !

Wer einen HDA Controller hat, kann versuchen "ich.c" zu hacken!
Aus der pciconf(8) stammenden ChipID dort entsprechend einbauen (s. diff oben).
Damit bekommt man wenigstens Sound mit AC'97. Klappt aber auch nur mit HDA Controller die für AC'97 freigeschaltet sind.
Meiner (chip=0x26688086) ist leider (wie ich erfahren habe) "hart verdrahtet"
für ausschliesslich HDA ;'(

Grüße
 
Guten Morgen.

Auf meine anfrage in der FreeBSD mailingliste ( http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061415.html ) wurde bestaetigt das ein Nativer Treiber dafuer in arbeit ist. Der Opensound treiber ist meiner meinung nach schrott boxen schnarren wie sau und qualitaet der mp3 ist auch nicht gerade der hit. Also abwarten und tee trinken. Oder bei dem NetBSD bootet ausweichen auf NetBSD dort soll der treiber ja nativ laufen. Bei mir Bootet NetBSD leider nicht er haengt am Raidcontroller :(


Gruss Martin
 
splash schrieb:
Der Opensound treiber ist meiner meinung nach schrott
Da kann ich nur zustimmen. Ich krieg gar keine Ausgabe damit hin.

Ich wuerde mich freuen, wenn man zu HDA und FreeBSD bald etwas neues hoeren koennte. :)
 
Hallo zusammen,
auf die Gefahr hin das ich nun gesteinigt werde :ugly:

Wird HDA ICH6 in der Zwischenzeit unterstützt? Mein letzter Versuch mit FreeBSD 6.0 auf meinem Notebook habe ich wieder eingestampft weil keine Unterstützung da war. ;'(

Gruß
Majobu
 
nice !

Danke fuer die info *g*.

Seit dem update von opensound rennt meine ICH6 auch sauber. Aber nativ ist natuerlich bei weitem besser :D

Gruss Martin
 
Gute Nachrichten!

Die Sache nimmt so langsam Gestalt an, wie hier nachzulesen ist.

Der Patch funktioniert bei mir (HP Pavillion, Intel HDA), hab aber noch nicht so richtig ausgetestet.

Installationsanweisungen findet man unter obigem Link, oder hier in der Kurzfassung (releng6 ggf. durch current ersetzen):

Code:
# fetch http://people.freebsd.org/~ariff/test/hda_releng6.diff
# patch -d /usr/src -p0 < hda_releng6.diff
# cd /usr/src/sys/modules/sound
# make clean cleandir && 
make &&
make install
# kldload snd_hda.ko
# cat /dev/sndstat
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <Intel 82801G High Definition Audio Controller> at memory 0xd2400000 irq 22 kld snd_hda [20061004_0030] (1p/1r/0v channels duplex default)

Jetzt noch ein beherztes "cat /dev/urandom > /dev/audio" und mit ein wenig Glück ist auch euer Leben wieder lebenswert! ;)

Danke noch an Daemon, der mich auf die aktuellen Entwicklungen auf multimedia@ hingewiesen hat!
 
Hm ohman, sorry bin Anfaenger!

Also habe alles gemacht wies da steht, klappte auch alles, habe auch inner console zB Sound, bei ner Fehleingabe piepts dann...

Nur wie bekomme ich das denn nun mit KDE und so am laufen?

Es kommt immer /dev/dsp Device Busy

*schulterzuck*

Handyelt sich um Freebsd 6.1

danke im Vorraus.
 
Moin Kiste1985,

spontan würde ich sagen: Trag in die Datei: /etc/sysctl.conf folgende Zeilen ein.

hw.snd.pcm0.vchans=4
hw.snd.maxautovchans=4

bzw.

# sysctl hw.snd.pcm0.vchans=4
# sysctl hw.snd.maxautovchans=4

auf der Console, um gleich Ergebnisse zu erzielen. Damit können mehrere Programme gleichzeitig auf die Soundkarte zugreifen (in dem Fall 4, reicht in der Regel).

Gruss, Elwood

PS: Kann man dem snd_hda eigentlich abgewöhnen, dass der Terminal-Beep über die Soundkarte kommt. Mir reicht der Interne-Speaker völlig aus. Muss gestehen, dass ich mir das noch nicht näher angeguckt habe.
 
Hallo,

da ich grade auf meinem frischen Nx6325 FreeBSD installiert habe und auch kein Sound - nehme ich jetzt mal diesen Thread her.

in current ist übrigens bereits enthalten und der patch wird nicht benötigt...

mal ne ganz dumme Frage: wie komm ich an den Treiber? Das tar.gz hab ich mir schon geladen - aber FreeBSD ist nur abgeschmiert als ich sound abspielen wollte.

Das Modul hat er korrekt geladen - aber dann.....:(

Jetzt sprecht ihr grad davon das es schon irgendwo fertige Packete gibt - wo/bzw. wie komm ich da ran?

Danke & Schönen Gruß
quetzal
 
Zurück
Oben