No sound on HP 2133 built in speakers

Curtis Villamizar curtis at occnc.com
Mon Feb 1 04:50:17 UTC 2010


[btw: I'm not subscribed so please keep me on the Cc.  Otherwise I
have to wait for the archive to carry any followup].

I've had limited success with an HP 2133 (netbook) that came with
Linux.  If its any consolation to us FreeBSDers, some of the hardware
didn't work with Linux either as shipped by HP and it was running
X11R6.9 with the old VIA driver.

There was a conversation about the HP 2133 built in speakers in April
2009.

http://lists.freebsd.org/pipermail/freebsd-multimedia/2009-April/010032.html
(subject: Not working sound on HP 2133)

There were some posts earlier and two brief later posts essentially
saying "use snd_hda".  Nothing after that.

To be brief, this is mostly informational except maybe a suggestion to
put more detail in /dev/sndstat and better yet a way to unmute more
directly.

I've tried both OSS and snd_hda and have had slightly better luck with
OSS.  The internal mic works with OSS but I haven't got it to work
with snd_hda.

The above email references an earlier post from December 2008.

http://lists.freebsd.org/pipermail/freebsd-multimedia/2008-December/009530.html
(subject: snd_hda on HP mini-note 2133)

The pindumps show the internal speakers at nid 22.  Excerpt below has
white space change for email readability.

  hdac0:  nid 22 0x92174110 as  1 seq  0
       Speaker Fixed jack  7 loc 18 color   Green misc 1
  hdac0:        Caps: IN OUT    EAPD      Sense: 0x0000e300 delay 60us

I'm not sure how to interpret the second line.

Searching for "nid: 22" and "nid=22" reveals the audio plumbing.
hdac0 has "nid: 22" taking input from "nid=11 [audio mixer]".  This
matches the pcm0 plumbing, but indicated "mute=1".

  hdac0:             nid: 22
  hdac0:            Name: pin: Speaker (Fixed)
  hdac0:      Widget cap: 0x0040058d
  hdac0:                  PWR UNSOL STEREO
  hdac0:     Association: 0 (0x00000001)
  hdac0:         Pin cap: 0x00010037
  hdac0:                  ISC TRQD PDC OUT IN EAPD
  hdac0:      Pin config: 0x92174110
  hdac0:     Pin control: 0x00000040 OUT
  hdac0:            EAPD: 0x00000002
  hdac0:      Output amp: 0x80000000
  hdac0:                  mute=1 step=0 size=0 offset=0
  hdac0:     connections: 1
  hdac0:           |
  hdac0:           + <- nid=11 [audio mixer]

  pcm0: | DUMPING Playback/Record Pathes |
  pcm0: +--------------------------------+
  pcm0: 
  pcm0: Playback:
  pcm0: 
  pcm0:     nid=22 [pin: Speaker (Fixed)]
  pcm0:       |
  pcm0:       + <- nid=11 [audio mixer] [src: pcm, mix]
  pcm0:              |
  pcm0:              + <- nid=15 [audio selector] [src: pcm]
  pcm0:                     |
  pcm0:                     + <- nid=3 [audio output] [src: pcm]
  pcm0:              + <- nid=33 [audio selector] [src: mix]
  pcm0:                     |
  pcm0:                     + <- nid=32 [audio mixer] [src: mix]

Since I also have an HP 2133 (among other laptops) but I'm running
OSS, I tried to correlate this information with what "ossmix -D" gives
me.  Other than the jack colors there is very little to go by.  I'm
unable to get any sound on the internal speakers.  The OSS plumbing is
definitely less obvious (to me at least).

With OSS I am also unable to eliminate a high level of static on the
internal mic, but that is a separate problem.  With snd_hda I get
nothing on the internal mic.

With snd_hda there doesn't seem to be anything I can do with the mixer
to enable the internal speaker.  It looks to be wired to pcm0 but no
apparent way to unmute it.

Note that mixer doesn't report mute status and xmixer doesn't report
it in ascii output, only graphically and its not immediately obvious
which button state is "mute on" (apparently the "in" postion).

BTW- It would be nice if the same level of detail provided when
kldload snd_hda.ko is run would be provided through /dev/sndstat with
the verbosity turned up a bit higher so that the mute state could be
seen after a mixer app has made changes.

Both OSS and snd_hda work with an external mic.  Both have a bit of
problem with noise that can be improved to the point of tolerable with
adjustments to the volume levels.

Curtis

ps - This HP 2133 is bordering on a useful FreeBSD netbook used with a
headset (to the extent any netbook is useful).  Off topic, there have
been many improvements very recently (FreeBSD 8.0 and ports):

  openchrome now works - no need for vesa driver and can hook up to a
  monitor, but still forced to same resolution as LCD.  Have to look
  into that.  Thank you Roland for the work on X11.

  Nits to look at is unplug USB keyb disables both keyboards and plug
  in external mouse shuts off Emulate3Button, needed for internal pad.
  These seem to be related to X11 use of hal.

  With webcamd the built in camera works for some applications.  An
  external camera with PWC no longer works unless plugged directly
  into the one USB port.  Webcamd supports both cameras simultaneously
  which is impressive, though it may not be useful.

  The bwi driver didn't work for this (pciconf reports chip=0x431214e4
  rev=0x02, which uses a 4312 rev 2, requiring newer firmware rev).
  The bwn driver hold promise and that will be next to be tested.

  Sound sort of works as described above.  External speaker and mic
  only.

  Ekiga3 seems to be a step backward in my limited playing with it.

pps - best audio results were acheived with:

  OSS settings:

    !ossmix -d0 jack.fp-gray.mute OFF
    !ossmix -d0 jack.fp-gray.pcm1 58.4:58.4
    !ossmix -d0 jack.fp-gray.select6 pcm1
    !ossmix -d0 jack.fp-gray.select6-mute OFF
    !ossmix -d0 jack.fp-gray.mix6-mute ON
    !ossmix -d0 jack.int-green.mode input
    !ossmix -d0 jack.int-green.mute ON
    !ossmix -d0 jack.int-green.select4 pcm1
    !ossmix -d0 jack.int-green.select4-mute ON
    !ossmix -d0 jack.int-green.mix6-mute ON
    !ossmix -d0 record.select1.select11 55.4:55.4
    !ossmix -d0 record.select1.select12 fp-mic
    !ossmix -d0 record.select2.select21 0.0:0.0
    !ossmix -d0 record.select2.select22 fp-mic
    !ossmix -d0 misc.pcm21 0.0:0.0
    !ossmix -d0 misc.pcm2-mute ON
    !ossmix -d0 misc.mix6-mute1 ON
    !ossmix -d0 misc.mix2 pcm2
    !ossmix -d0 misc.select3 pcm1
    !ossmix -d0 misc.beep 0.0
    !ossmix -d0 misc.select3-mute ON
    !ossmix -d0 misc.mix6-mute2 ON
    !ossmix -d0 misc.mix4 select3
    !ossmix -d0 misc.fp-mic 0.0:0.0
    !ossmix -d0 misc.int-mic 0.0:0.0
    !ossmix -d0 misc.mix3 0.0:0.0
    !ossmix -d0 misc.pcm1 0.0:0.0
    !ossmix -d0 misc.pcm22 0.0:0.0
    !ossmix -d0 misc.mix61 pcm1
    !ossmix -d0 misc.mix62 0.0:0.0
    !ossmix -d0 misc.select7 pcm1
    !ossmix -d0 misc.select7-mute ON
    !ossmix -d0 misc.mix6-mute3 ON
    !ossmix -d0 misc.mix7 select7
    !ossmix -d0 misc.mute1 ON
    !ossmix -d0 misc.mute2 ON
    !ossmix -d0 vmix0-enable ON
    !ossmix -d0 vmix0-channels Stereo
    !ossmix -d0 vmix0-src Fast
    !ossmix -d0 vmix0-outvol 20.0
    !ossmix -d0 vmix0-invol 16.0
    !ossmix -d0 vmix0.pcm4 25.0:25.0
    !ossmix -d0 vmix0.pcm5 25.0:25.0
    !ossmix -d0 vmix0.pcm6 25.0:25.0
    !ossmix -d0 vmix0.pcm7 25.0:25.0

  snd_hda (using xmixer):

    % cat .xgmixer.scf
    #SCFF 1.0
    # mixer device name
    [/dev/mixer1]

    # Settings for the vol-device = { Int[0-100]:leftValue Int[0-100]:rightValue }
    vol = { 100 100 }
    # show slider for device "vol" = Bool[True, False]:Map
    vol_map = True
    # label of the device "vol" = String:Label
    vol_label = "Vol  "

    # Settings for the pcm-device = { Int[0-100]:leftValue Int[0-100]:rightValue }
    pcm = { 75 75 }
    # show slider for device "pcm" = Bool[True, False]:Map
    pcm_map = True
    # label of the device "pcm" = String:Label
    pcm_label = "Pcm  "

    # Settings for the mic-device = { Int[0-100]:leftValue Int[0-100]:rightValue }
    mic = { 100 100 }
    # show slider for device "mic" = Bool[True, False]:Map
    mic_map = True
    # label of the device "mic" = String:Label
    mic_label = "Mic  "

    # Settings for the mix-device = { Int[0-100]:leftValue Int[0-100]:rightValue }
    mix = { 0 0 }
    # show slider for device "mix" = Bool[True, False]:Map
    mix_map = True
    # label of the device "mix" = String:Label
    mix_label = "Mix  "

    # Settings for the rec-device = { Int[0-100]:leftValue Int[0-100]:rightValue }
    rec = { 58 58 }
    # show slider for device "rec" = Bool[True, False]:Map
    rec_map = True
    # label of the device "rec" = String:Label
    rec_label = "Rec  "


More information about the freebsd-multimedia mailing list