Sound unter FreeBSD auf Thinkpad

rbrinkmo

Well-Known Member
Glücklich über mein problemloses upgrade von FreeBSD 5.4 auf 6 stable wollte ich mich mal wieder der Soundkonfiguration widmen (was ich anfang/mitte letzten Jahres schonmal aufgegeben hatte).
Also erstmal google und wiki bemüht. Das Script im wiki scheint auch der richtige Schritt zu sein. Allerdings kann ich mit der Ausgabe recht wenig anfangen:
Code:
vi ./sndchk
#!/bin/sh
for module in /boot/kernel/snd_*.ko; do 
  kldload $module 
done
cat /dev/sndstat


# ./sndchk
kldload: can't load /boot/kernel/snd_ad1816.ko: File exists
kldload: can't load /boot/kernel/snd_als4000.ko: File exists
kldload: can't load /boot/kernel/snd_atiixp.ko: File exists
kldload: can't load /boot/kernel/snd_cmi.ko: File exists
kldload: can't load /boot/kernel/snd_cs4281.ko: File exists
kldload: can't load /boot/kernel/snd_csa.ko: File exists
kldload: can't load /boot/kernel/snd_driver.ko: File exists
kldload: can't load /boot/kernel/snd_ds1.ko: File exists
kldload: can't load /boot/kernel/snd_emu10k1.ko: File exists
kldload: can't load /boot/kernel/snd_es137x.ko: File exists
kldload: can't load /boot/kernel/snd_ess.ko: File exists
kldload: can't load /boot/kernel/snd_fm801.ko: File exists
kldload: can't load /boot/kernel/snd_ich.ko: File exists
kldload: can't load /boot/kernel/snd_maestro.ko: File exists
kldload: can't load /boot/kernel/snd_maestro3.ko: File exists
kldload: can't load /boot/kernel/snd_mss.ko: File exists
kldload: can't load /boot/kernel/snd_neomagic.ko: File exists
kldload: can't load /boot/kernel/snd_sb16.ko: File exists
kldload: can't load /boot/kernel/snd_sb8.ko: File exists
kldload: can't load /boot/kernel/snd_sbc.ko: File exists
kldload: can't load /boot/kernel/snd_solo.ko: File exists
kldload: can't load /boot/kernel/snd_t4dwave.ko: File exists
kldload: can't load /boot/kernel/snd_uaudio.ko: File exists
kldload: can't load /boot/kernel/snd_via8233.ko: File exists
kldload: can't load /boot/kernel/snd_via82c686.ko: File exists
kldload: can't load /boot/kernel/snd_vibes.ko: File exists
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <CS423x-PCI> at io 0x530 irq 5 drq 1:0 bufsz 4096 (1p/1r/0v channels duplex default)
Es wurde scheinbar etwas gefunden. Aber welcher Treiber? Immerhin würde ich diesen jetzt gern in der /boot/loader.conf eintragen.

Die Hardware ist ein IBM Thinkpad 600E Type 2645-8A0. Demnach müsste der gefundene Soundchip korrekt sein.

Hier noch die dmesg Ausgabe (Wieso csa?):
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 6.0-STABLE #0: Sun Jan  1 20:55:16 CET 2006
    root@vagabun.:/usr/obj/usr/src/sys/GENERIC
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Pentium II/Pentium II Xeon/Celeron (363.96-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x66a  Stepping = 10
  Features=0x183f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR>
real memory  = 167575552 (159 MB)
avail memory = 154456064 (147 MB)
npx0: [FAST]
npx0: <math processor> on motherboard
npx0: INT 16 interface
acpi0: <IBM TP600R> on motherboard
acpi0: Power Button (fixed)
acpi_ec0: <Embedded Controller: GPE 0x9, GLK> port 0x62,0x66 on acpi0
Timecounter "ACPI-safe" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0xef08-0xef0b on acpi0
cpu0: <ACPI CPU> on acpi0
acpi_throttle0: <ACPI CPU Throttling> on cpu0
acpi_lid0: <Control Method Lid Switch> on acpi0
acpi_button0: <Sleep Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci_link0: BIOS IRQ 9 for 0.6.INTA does not match previous BIOS IRQ 11
pci0: <ACPI PCI bus> on pcib0
agp0: <Intel 82443BX (440 BX) host to PCI bridge> mem 0x40000000-0x43ffffff at device 0.0 on pci0
pcib1: <ACPI PCI-PCI bridge> at device 1.0 on pci0
pci1: <ACPI PCI bus> on pcib1
pci1: <display, VGA> at device 0.0 (no driver attached)
cbb0: <TI1251 PCI-CardBus Bridge> mem 0x50102000-0x50102fff irq 11 at device 2.0 on pci0
cardbus0: <CardBus bus> on cbb0
pccard0: <16-bit PCCard bus> on cbb0
cbb1: <TI1251 PCI-CardBus Bridge> mem 0x50101000-0x50101fff irq 11 at device 2.1 on pci0
cardbus1: <CardBus bus> on cbb1
pccard1: <16-bit PCCard bus> on cbb1
pcib2: <ACPI PCI-PCI bridge> at device 4.0 on pci0
pci8: <ACPI PCI bus> on pcib2
cbb2: <TI1250 PCI-CardBus Bridge> mem 0xa8001000-0xa8001fff irq 11 at device 2.0 on pci8
cardbus2: <CardBus bus> on cbb2
pccard2: <16-bit PCCard bus> on cbb2
cbb3: <TI1250 PCI-CardBus Bridge> mem 0xa8000000-0xa8000fff irq 11 at device 2.1 on pci8
cardbus3: <CardBus bus> on cbb3
pccard3: <16-bit PCCard bus> on cbb3
csa0: <CS4610/CS4611> mem 0x50100000-0x50100fff,0x50000000-0x500fffff irq 11 at device 6.0 on pci0
csa: card is Unknown/invalid SSID (CS4610)
csa0: [GIANT-LOCKED]
pcm0: <CS461x PCM Audio> on csa0
pcm0: AC97 reset timed out.
pcm0: ac97 codec invalid or not present (id == 0)
device_attach: pcm0 attach returned 6
isab0: <PCI-ISA bridge> at device 7.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel PIIX4 UDMA33 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xfcf0-0xfcff at device 7.1 on pci0
ata0: <ATA channel 0> on atapci0
ata1: <ATA channel 1> on atapci0
uhci0: <Intel 82371AB/EB (PIIX4) USB controller> port 0x8400-0x841f irq 11 at device 7.2 on pci0
uhci0: [GIANT-LOCKED]
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)
acpi_tz0: <Thermal Zone> on acpi0
acpi_tz1: <Thermal Zone> on acpi0
acpi_tz2: <Thermal Zone> on acpi0
acpi_tz3: <Thermal Zone> on acpi0
fdc0: <floppy drive controller (FDE)> port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on acpi0
fdc0: [FAST]
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
sio0: configured irq 4 not in bitmap of probed irqs 0
sio0: port may not be enabled
ppc0: <Standard parallel printer port> port 0x3bc-0x3bf irq 7 on acpi0
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
sio0: <Generic IRDA-compatible device> port 0x3f8-0x3ff irq 4 drq 3 flags 0x10 on acpi0
sio0: type 16550A
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: model Generic PS/2 mouse, device ID 0
battery0: <ACPI Control Method Battery> on acpi0
acpi_acad0: <AC Adapter> on acpi0
sio1: configured irq 4 not in bitmap of probed irqs 0
sio1: port may not be enabled
pmtimer0 on isa0
orm0: <ISA Option ROM> at iomem 0xc0000-0xcbfff on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
sio1: configured irq 3 not in bitmap of probed irqs 0
sio1: port may not be enabled
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
Timecounter "TSC" frequency 363962029 Hz quality 800
Timecounters tick every 1.000 msec
dc0: <Xircom X3201 10/100BaseTX> port 0x9000-0x907f mem 0xa8002000-0xa80027ff,0xa8002800-0xa8002fff irq 11 at device 0.0 on cardbus3
miibus0: <MII bus> on dc0
tdkphy0: <TDK 78Q2120 media interface> on miibus0
tdkphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
dc0: Ethernet address: 00:06:29:90:f9:5f
ad0: 11509MB <IBM DARA-212000 AR4IA52A> at ata0-master UDMA33battery0: critically low charge!

acd0: DVDROM <TOSHIBA DVD-ROM SD-C2102/1137> at ata1-master PIO4
Trying to mount root from ufs:/dev/ad0s1a
dc0: link state changed to UP
arplookup 83.169.144.189 failed: host is not on local network
arplookup 83.169.144.189 failed: host is not on local network

Wie bekomme ich nun also den richtigen Eintrag für die /boot/loader.conf raus?
 
Zuletzt bearbeitet:
In /boot/kernel liegt die Datei snd_driver.ko, die alle Sound-Kernelmodule lädt, weswegen die anderen dann nicht mehr geladen werden können. Für dein Problem fällt mir jetzt auch keine andere Lösung ein als in der loader.conf
Code:
snd_driver_load="YES"
einzutragen, dann werden halt immer alle Module geladen, oder ausprobieren...

/dev/urandom
 
da steht es doch:
Code:
pcm0: <CS423x-PCI> at io 0x530 irq 5 drq 1:0 bufsz 4096 (1p/1r/0v channels duplex default)
es wird höchstwahrscheinlich das snd_csa.ko kernelmodul sein.
 
marzl schrieb:
es wird höchstwahrscheinlich das snd_csa.ko kernelmodul sein.

Hatte ich ursprünglich auch mal gedacht (daher hatte ich(?) diesen Eintrag damals wohl in der loader.conf vorgenommen). Allerdings lässt mich die dmesg-Ausgabe diesbezüglich stutzig werden.

Code:
csa0: <CS4610/CS4611> mem 0x50100000-0x50100fff,0x50000000-0x500fffff irq 11 at device 6.0 on pci0
[B]csa: card is Unknown/invalid SSID (CS4610)[/B]
csa0: [GIANT-LOCKED]
pcm0: <CS461x PCM Audio> on csa0
pcm0: AC97 reset timed out.
[B]pcm0: ac97 codec invalid or not present (id == 0)[/B]

Ich möchte aber nicht ausschliessen, dass ich die Ausgabe falsch interpretiere.


Denn ...
CS4610/CS461 != CS423x
korrekt?
 
Zuletzt bearbeitet:
marzl schrieb:
dann würd ich mittels kldload einfach mal manuell durch die snd_* liste gehen und gucken was passiert.
Werd ich dann mal in Angriff nehmen.
Ansonsten werde ich den Rat von /dev/urandom in die Tat umsetzen.
Danke für Eure Ratschläge
 
Die manuellen Steps haben dasselbe ergeben wie die Ausgabe des Script aus dem Wiki.
Es hatte aber den Vorteil, dass ich erkennen konnte, dass der Befehl cat /dev/sndstat diese Ausgabe erzeugt:

FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <CS423x-PCI> at io 0x530 irq 5 drq 1:0 bufsz 4096 (1p/1r/0v channels duplex default)

Jetzt werde ich noch dem Ratschlag von /dev/urandom fogen, den Eintrag snd_driver_load="YES" in der Datei /boot/loader.conf übernehmen, booten ... schaun ma mal...
 
Warum so umständlich? Einfach mit kldload snd_driver alle Sound-Module laden und dann mit cat /dev/sndstat nachsehen, welches Modul verwendet wird. Die Ausgabe differiert je nach Modul etwas:
  • Audigy 2 ZS:
    Code:
    FreeBSD Audio Driver (newpcm)
    Installed devices:
    pcm0: <EMU10Kx PCM Interface> on [color=red]emu10kx0[/color] (16p/1r/4v channels duplex default)
  • SoundBlaster 128:
    Code:
    FreeBSD Audio Driver (newpcm)
    Installed devices:
    pcm0: <Creative CT5880-C> at io 0x4000 irq 17 kld [color=red]snd_es137x[/color] (1p/1r/4v channels duplex default)
Zuletzt hatte ich übrigens auch mal was mit einer CS.... zu tun, die lief mit snd_mss.ko, welches leider keine Manpage hat.

EDIT: Sorry, da haben sich unsere Posts überschnitten. Deine /dev/sndstat sagt nun leider nichts über das Modul aus. Könnte aber wie gesagt mit snd_mss.ko laufen.
 
0815Chaot schrieb:
Deine /dev/sndstat sagt nun leider nichts über das Modul aus. Könnte aber wie gesagt mit snd_mss.ko laufen.
Ja, leider.
snd_mss.ko ist es aber wohl auch nicht da der Befehl "kldload snd_mss.ko" folgendes ausgibt:
kldload: can't load /boot/kernel/snd_mss.ko: File exists
 
rbrinkmo schrieb:
snd_mss.ko ist es aber wohl auch nicht da der Befehl "kldload snd_mss.ko" folgendes ausgibt:
kldload: can't load /boot/kernel/snd_mss.ko: File exists
Nein, das hat damit überhaupt nichts zu tun. Die Meldung besagt lediglich, daß der Treiber schon mal geladen wurde. Wahrscheinlich hast du snd_driver.ko geladen, welches automatisch alle verfügbaren Sound-Module lädt. kldstat(8) sagt dir, welche Module geladen sind.
 
Stimmt. kldstat sagt mir ...

Id Refs Address Size Name
1 37 0xc0400000 637e18 kernel
2 31 0xc0a38000 21178 sound.ko
3 1 0xc0a5a000 3404 snd_driver.ko
4 2 0xc0a5e000 4e28 snd_ad1816.ko
5 2 0xc0a63000 52d4 snd_als4000.ko
6 2 0xc0a69000 58fc snd_atiixp.ko
7 2 0xc0a6f000 5074 snd_cmi.ko
8 2 0xc0a75000 5594 snd_cs4281.ko
9 3 0xc0a7b000 74d0 snd_csa.ko
10 2 0xc0a83000 bf7c snd_ds1.ko
11 2 0xc0a8f000 7794 snd_emu10k1.ko
12 2 0xc0a97000 70fc snd_es137x.ko
13 3 0xc0a9f000 4fd8 snd_ess.ko
14 5 0xc0aa4000 493c snd_sbc.ko
15 2 0xc0aa9000 4a24 snd_fm801.ko
16 3 0xc0aae000 b3d0 snd_mss.ko
17 2 0xc0aba000 5d40 snd_ich.ko
18 2 0xc0ac0000 b5a8 snd_maestro.ko
19 2 0xc0acc000 93f4 snd_maestro3.ko
20 2 0xc0ad6000 10948 snd_neomagic.ko
21 2 0xc0ae7000 49ec snd_sb8.ko
22 2 0xc0aec000 4fc0 snd_sb16.ko
23 2 0xc0af1000 4530 snd_solo.ko
24 2 0xc0af6000 45b8 snd_t4dwave.ko
25 2 0xc0afb000 6050 snd_via8233.ko
26 2 0xc0b02000 4abc snd_via82c686.ko
27 2 0xc0b07000 5604 snd_vibes.ko
28 1 0xc0b0d000 5856c acpi.ko
29 1 0xc1e00000 4000 logo_saver.ko
30 1 0xc1e0c000 16000 linux.ko
31 1 0xc24c1000 8000 snd_uaudio.ko

Also sind alle geladen (?).

Seltsam ist, dass ich vor dem reboot (nach dem Ausführen des sndchk script) beim Abspielen von xmms was hören konnte. Jetzt, nach dem reboot, aber nimmernich
 
Also, am besten einmal rebooten. Danach vergewissern, daß keine Sound-Module geladen sind. Nun snd_mss.ko laden. Anschließend in /dev/sndstat nachgucken, ob eine Soundkarte gefunden wurde. Falls ja: Treffer, snd_mss.ko künftig über die loader.conf laden lassen. Falls nein: Weitersuchen. ;)

Natürlich kann man auch einfach snd_driver.ko laden, aber möchte man wirklich bei jedem Booten Speicher und Ladezeit für alle Sound-Module verschwenden, wenn man nur eines braucht? Suboptimal in deinem Fall ist halt, daß dieses Sound-Modul sich nicht in der /dev/sndstat namentlich zu erkennen gibt. Das deutet IMO noch mehr auf snd_mss.ko hin, das Ding hat ja auch nicht mal eine Manpage...
 
0815Chaot schrieb:
Also, am besten einmal rebooten. Danach vergewissern, daß keine Sound-Module geladen sind. Nun snd_mss.ko laden. Anschließend in /dev/sndstat nachgucken, ob eine Soundkarte gefunden wurde. Falls ja: Treffer, snd_mss.ko künftig über die loader.conf laden lassen.
Erledigt. Das manuelle Vorgehen war auch erfolgreich. Es war tatsächlich snd_mss.ko. Anschliessender Soundcheck ergab das was es sollte. Danke für den Tipp.
Seltsam nur ... nach dem ich das über die loader.conf habe laden lassen gab es keinen Sound beim check.
Irgendwo habe ich sowas schonmal gelesen - manuell funktioniert, automatisch nicht. Wenn ich nur wüsste wo ...

hier meine /boot/loader.conf (vielleicht übersehe ich ja einen Tippfehler):

sound_load="YES"
snd_mss_load="YES"

Ein "cat /dev/sndstat" nach einem reboot ergibt auch die gewünschte Ausgabe. Aber dennoch - wie gesagt - kein Ton.
 
Deine loader.conf ist absolut in Ordnung. Probleme damit sind mir auch keine bekannt. Bleibt also nur noch die Vermutung, daß die Lautstärke (aus welchem Grund auch immer) auf "0" steht. mixer(8) gibt Auskunft darüber.
 
0815Chaot schrieb:
Bleibt also nur noch die Vermutung, daß die Lautstärke (aus welchem Grund auch immer) auf "0" steht.
Das war's auch nicht. Mixer sagt, es sei alles ok.
Mir fällt aber gerade auf, dass der xmms die Datei gerade nicht abspielt(habe ich vorher nicht drauf geachtet). Da kann ich die Playtaste so oft drücken wie ich will, die Spielzeit bleibt auf 0.
Ist da ein Problem bekannt, oder gibt es einen Player der eher zu empfehlen ist?
 
/dev/urandom schrieb:
Hast du das entsprechende Plugin installiert? Für mp3s, etc. braucht der xmms Plugins zum abspielen

libmpg123.so
libwav.so
etc.

Wurden von der Installation mitgebracht. Es hat das genannte mp3 file über das Internet nach der Installation auch schon mal abgespielt.
 
Zurück
Oben