snd_emu10k1 driver

Bill Blue bblue at netoldies.com
Thu Sep 28 07:54:05 PDT 2006


On Wed, 27 Sep 2006 01:42:03 -0700, Josh Paetzel <josh at tcbug.org> wrote:

> On Wednesday 27 September 2006 11:55, Bill Blue wrote:
>> Hi,
>>
>> Is this driver known to be 100% working?  I'm running stable 6.2 p6
>> right now and have this device driver installed (device sound and
>> device snd_emu10k1 compiled into the kernel) for use with a
>> Creative Live! card.  Audio outputs work correctly, and the various
>> players will produce audio as expected via the PCM control.  Line
>> input works as well.  'mixer' works as does KDE's kmix (they track
>> each other).  I've also installed the driver via kldload at boot,
>> but it makes no difference.
>>
>> I'm unable to successfully record audio from the line input of this
>> Creative Live! card.  Either using the generic /dev/dsp as the
>> recording source, or individual devices /dev/dsp0.0 and up, dspW0.0
>> and up, or dspr0.4/5.  There's just no audio there.
>>
>> For the recording software I've used Krec, ffmpeg, darkice and
>> streamTranscoder (the latter two feeding an icecast server).
>> 'mixer' has its recording device (=rec) set to line in, and I'm
>> feeding audio to line in (analog) and spdif in (digital).  There's
>> no problem monitoring the 'line in' buss on the outputs, but
>> there's no audio on the record output device.
>>
>> dmesg shows the driver being installed, and cat /dev/sndstat shows
>> it is active on pcm0.  If I cat /dev/sndstat with a higher
>> verbosity (set with sysctrl) it shows that the record devices
>> should be dsp0.4 and dsp0.5, line and mic in respectively.  The man
>> page for snd_emu10k1 says the recording devices should be dspr0.4
>> and dspr0.5 but only if they're driving a codec directly -- I'm not
>> sure what that means exactly.
>>
>> There's no sound daemons like esound or artsd running during these
>> tests.  The ports being tested as an input device seem to open
>> correctly and show up as read devices in fstat.
>>
>> I've also tried the snd_emu10kx driver to no avail.
>>
>> Has anyone had experience using the Live! sound card and these
>> drivers?  And if so, is recording correctly supported?
>>
>> I have other sound cards available, but none of them seem to have
>> driver support in FreeBSD.  One is a Delta (Midiman) 410 with an
>> ICE1712 chip, and the other is a Turtle Beach TB400 (not a Santa
>> Cruz) with Vortex AU8830A2 chip.  Both cards have analog and
>> digital ins and outs.
>>
>> Anyone with insight on any of this?
>>
>> --Bill
>
> I thought I'd try this out since I have a SB Live! 5.1, use the
> snd_emu10k1 driver and don't run artsd or esound but when I start
> krec the record button is greyed out!  Using ffmpeg and the /dev/dsp
> device I was able to record just fine from the mic port on the card.
>
> I'm running 6.1-R-p6

Here's my various outputs:

Sep 20 19:18:12 v2 kernel: pcm0: <Creative EMU10K1> port 0xd000-0xd01f irq 21 at device 2.0 on pci4
Sep 20 19:18:12 v2 kernel: pcm0: <TriTech TR28023 AC97 Codec>

FreeBSD v2.netoldies.com 6.2-PRERELEASE FreeBSD 6.2-PRERELEASE #1: Sun Sep 17 15:37:40 PDT 2006     root at v2.netoldies.com:/usr/obj/usr/src/sys/V2KERNEL  i386

FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <Creative EMU10K1> at io 0xd000 irq 21 kld snd_emu10k1 (4p/2r/4v channels duplex default)

pcm0 at pci4:2:0:  class=0x040100 card=0x00211102 chip=0x00021102 rev=0x04 hdr=0x00
     vendor   = 'Creative Labs'
     device   = 'EMU10000 Sound Blaster Live! (Also Live! 5.1) - OEM from DELL - CT4780'
     class    = multimedia
     subclass = audio
emujoy0 at pci4:2:1:       class=0x098000 card=0x00201102 chip=0x70021102 rev=0x01 hdr=0x00
     vendor   = 'Creative Labs'
     device   = 'EMU10000 Game Port'
     class    = input device

I have found the problem, which turned out to be mostly that of (lack of good) documentation and user interpretation.  The mixer man page doesn't really talk at all about signal routing, and the kmix man page says almost nothing useful, with examples that address only one card type.  snd_emu10k1's man page says less than all the others combined.

'mixer -?' gives a list of input devices and record devices:

  devices: vol, pcm, speaker, line, mic, cd, rec, igain, line1, phin, phout, video
  rec devices: vol, line, mic, cd, line1, phin, phout, video

and 'mixer' gives a list of all devices and slider settings with no regard to what they do or how they interrelate, and the default record device (=rec).

At least in this driver, the devices pcm, line, mic, cd, line1, phin, phout, and video, seem to be strictly inputs -- a mix of internal system and external jack inputs.  pcm is an input from software media players, line and mic are external inputs, cd and possibly line1 are 4 pin connectors on the card itself, but I don't know the role of phin, phout and video.  vol is master playback volume.  The spdif input on the Live! card doesn't seem to be supported.

The rec devices are mostly self explanatory, except for two issues.  First, on this driver there's only a single device selectable for record at one time (i.e. no record mixer).  That devices record level is unaffected by its playback slider level.  Second, the selected device's record level is controlled by the rec slider (only), and is independent of all other levels UNLESS the selected record device is vol.  In this case rec controls the record level of the signal mix being fed to the system master volume slider.

Kmix's layout really confuses the roles of the various signals, and even calls the rec device RecMon which implies a different functionality.  Xmixer lays all devices out on the same pane with no notion of routing.

So, like in the Windows drivers, I was selecting the correct device unaware that whatever device I selected was being record-level-controlled by rec.  Bah.

Anyway, after figuring this out everything works fine with the driver itself.  Hopefully, the explanation above will help out someone else about to make the same stupid mistake.  Perhaps future versions of UI's can be laid out in such a way that you can just look at them and understand the routing.

Thanks to those who responded.

--Bill



More information about the freebsd-stable mailing list