Страница 1 из 2

Не работает внутренний микрофон в ноуте.

Добавлено: 2008-07-06 22:05:47
zl0y
Имеем ACER 4715z с драйвером звука snd_hda и freebsd 7.0-current сборки 2 июля:

Код: Выделить всё

# cat /dev/sndstat
FreeBSD Audio Driver (newpcm: 32bit 2008070301/i386)
Installed devices:
pcm0: <Intel 82801H High Definition Audio Controller> at memory 0xfc200000 irq 22 kld snd_hda [20071129_0050] [MPSAFE] (1p:16v/1r:2v channels duplex default)
С внешним микрофоном нет никаких проблем, а вот внутренний не работает ни в одной программе.
mixer показывает:

Код: Выделить всё

Mixer vol      is currently set to 100:100
Mixer pcm      is currently set to 100:100
Mixer speaker  is currently set to 100:100
Mixer rec      is currently set to 100:100
Не долго подумав я накатил свежий diff от разработчика snd_hda и пересобрал ведро. Такие же грабли. Где рыть?

Re: Не работает внутренний микрофон в ноуте.

Добавлено: 2008-07-06 22:27:22
Alex Keda

Код: Выделить всё

uname -a

Re: Не работает внутренний микрофон в ноуте.

Добавлено: 2008-07-06 22:29:55
zl0y

Код: Выделить всё

FreeBSD my.notebook 7.0-STABLE FreeBSD 7.0-STABLE #7: Sun Jul  6 20:50:17 EEST 2008     root@my.notebook:/usr/obj/usr/src/sys/my  i386
конфиг ведра:

Код: Выделить всё

include         GENERIC
ident           my

device atapicam


Re: Не работает внутренний микрофон в ноуте.

Добавлено: 2008-07-12 21:07:03
zingel
а что если

Код: Выделить всё

kldload -v sound.ko
?

Re: Не работает внутренний микрофон в ноуте.

Добавлено: 2008-07-13 1:16:27
zl0y
zingel писал(а):а что если

Код: Выделить всё

kldload -v sound.ko
?
он уже загружен

Код: Выделить всё

# kldstat |grep sound
2    2 0xc0d71000 6c350    sound.ko

Re: Не работает внутренний микрофон в ноуте.

Добавлено: 2008-07-13 1:20:35
zingel

Код: Выделить всё

kldunload sound && kldload snd_hda

Re: Не работает внутренний микрофон в ноуте.

Добавлено: 2008-07-13 1:29:17
zl0y
zingel писал(а):

Код: Выделить всё

kldunload sound && kldload snd_hda
kldunload sound нельзя сделать, он поднимается модулем snd_hda заново.

Re: Не работает внутренний микрофон в ноуте.

Добавлено: 2008-07-13 1:35:32
zingel
как так нельзя? автоматом kld может грузится только в 4 случаях:

1)ядро
2)loader.conf
3)cron
4)это руткит-kld

какой из них у тебя?

Re: Не работает внутренний микрофон в ноуте.

Добавлено: 2008-07-13 11:29:15
zl0y
zingel писал(а):как так нельзя? автоматом kld может грузится только в 4 случаях:

1)ядро
2)loader.conf
3)cron
4)это руткит-kld

какой из них у тебя?
Я не в том смысле, если выгрузить sound.ko то snd_hda его заново загружает, даже если написать в load.conf sound_load="NO"
И в чем смысл выгрузки sound.ko ?

Re: Не работает внутренний микрофон в ноуте.

Добавлено: 2008-07-13 11:40:08
zingel
И в чем смысл выгрузки sound.ko
в том, что этот модуль поджгружает все snd_* по-списку, это - нерационально, логичнее загружать один модуль для одного утройства

Re: Не работает внутренний микрофон в ноуте.

Добавлено: 2008-07-13 12:18:07
zl0y
zingel писал(а):
И в чем смысл выгрузки sound.ko
в том, что этот модуль поджгружает все snd_* по-списку, это - нерационально, логичнее загружать один модуль для одного утройства
все модули грузятся при snd_driver_load="YES", а не при sound_load="YES", что собственно у меня так и делается :)

Код: Выделить всё

# cat loader.conf
sound_load="YES"                        # Digital sound subsystem
snd_hda_load="YES"                      # Intel High Definition Audio (Controller)
...

Re: Не работает внутренний микрофон в ноуте.

Добавлено: 2008-07-13 12:44:50
zingel

Код: Выделить всё

scanpci -v -V=10 && devinfo -vr

Re: Не работает внутренний микрофон в ноуте.

Добавлено: 2008-07-13 13:26:58
zl0y
zingel писал(а):

Код: Выделить всё

scanpci -v -V=10 && devinfo -vr
scanpci

Код: Выделить всё

pci bus 0x0000 cardnum 0x1b function 0x00: vendor 0x8086 device 0x284b
 Intel Corporation 82801H (ICH8 Family) HD Audio Controller
 CardVendor 0x1025 card 0x0133 (Acer Incorporated [ALI], Card unknown)
  STATUS    0x0010  COMMAND 0x0106
  CLASS     0x04 0x03 0x00  REVISION 0x03
  BIST      0x00  HEADER 0x00  LATENCY 0x00  CACHE 0x10
  BASE0     0x00000000fc200004  addr 0x00000000fc200000  MEM 64BIT
  MAX_LAT   0x00  MIN_GNT 0x00  INT_PIN 0x01  INT_LINE 0x16
  BYTE_0    0x01  BYTE_1  0x00  BYTE_2  0x00  BYTE_3  0x03
devinfo

Код: Выделить всё

     pcm0 pnpinfo vendor=0x8086 device=0x284b subvendor=0x1025 subdevice=0x0133 class=0x040300 at slot=27 function=0 handle=\_SB_.PCI0.HDEF
            Interrupt request lines:
                22
            I/O memory addresses:
                0xfc200000-0xfc203fff
          unknown
Вывел инфу только про звук, остальное тут нафиг не нужно.

Re: Не работает внутренний микрофон в ноуте.

Добавлено: 2008-07-13 13:42:18
zingel

Код: Выделить всё

 CardVendor 0x1025 card 0x0133 (Acer Incorporated [ALI], Card unknown)

Re: Не работает внутренний микрофон в ноуте.

Добавлено: 2008-07-13 13:56:34
zl0y
zingel писал(а):

Код: Выделить всё

 CardVendor 0x1025 card 0x0133 (Acer Incorporated [ALI], Card unknown)
:( и девелопер snd_hda молчит

Re: Не работает внутренний микрофон в ноуте.

Добавлено: 2008-07-13 13:58:04
zingel
нужно дождаться paradoxА, что он скажет интересно....

Re: Не работает внутренний микрофон в ноуте.

Добавлено: 2008-07-13 14:09:30
zl0y
zingel писал(а):нужно дождаться paradoxА, что он скажет интересно....
сейчас еще раз пересоберу, в первый раз пропатчил оригинальный hdac.c вместо того, который из svn от разработчика.

Re: Не работает внутренний микрофон в ноуте.

Добавлено: 2008-07-13 15:04:51
zingel

Код: Выделить всё

/* Acer */
#define ACER_VENDORID           0x1025
#define ACER_A5050_SUBVENDOR    HDA_MODEL_CONSTRUCT(ACER, 0x010f)
#define ACER_A4520_SUBVENDOR    HDA_MODEL_CONSTRUCT(ACER, 0x0127)
#define ACER_A4710_SUBVENDOR    HDA_MODEL_CONSTRUCT(ACER, 0x012f)
#define ACER_3681WXM_SUBVENDOR  HDA_MODEL_CONSTRUCT(ACER, 0x0110)
#define ACER_ALL_SUBVENDOR      HDA_MODEL_CONSTRUCT(ACER, 0xffff)
твоей тут нет, на 0x0133, надо

Код: Выделить всё

#define ACER_4715z_SUBVENDOR HDA_MODEL_CONSTRUCT(ACER, 0x0133)
и так далее, сможешь - сам добавь...или жди

Re: Не работает внутренний микрофон в ноуте.

Добавлено: 2008-07-13 15:12:15
paradox_
покажите что говрит

Код: Выделить всё

dmesg -a
на предмет звука
и покажите отдельно лог с дебагом драйвера звука

Re: Не работает внутренний микрофон в ноуте.

Добавлено: 2008-07-13 22:11:41
zl0y
zingel писал(а):

Код: Выделить всё

/* Acer */
#define ACER_VENDORID           0x1025
#define ACER_A5050_SUBVENDOR    HDA_MODEL_CONSTRUCT(ACER, 0x010f)
#define ACER_A4520_SUBVENDOR    HDA_MODEL_CONSTRUCT(ACER, 0x0127)
#define ACER_A4710_SUBVENDOR    HDA_MODEL_CONSTRUCT(ACER, 0x012f)
#define ACER_3681WXM_SUBVENDOR  HDA_MODEL_CONSTRUCT(ACER, 0x0110)
#define ACER_ALL_SUBVENDOR      HDA_MODEL_CONSTRUCT(ACER, 0xffff)
твоей тут нет, на 0x0133, надо

Код: Выделить всё

#define ACER_4715z_SUBVENDOR HDA_MODEL_CONSTRUCT(ACER, 0x0133)
и так далее, сможешь - сам добавь...или жди
давно уже добавил, пофиксило только одновременное воспроизведение колонок и наушников.

Re: Не работает внутренний микрофон в ноуте.

Добавлено: 2008-07-13 22:13:02
zl0y
В общем, обновился до 8-current, наложил свежий diff на dev_hda и те же грабли, только в профиль :st:

#dmesg

Код: Выделить всё

pcm0: <Intel 82801H High Definition Audio Controller> mem 0xfc200000-0xfc203fff irq 22 at device 27.0 on pci0
pcm0: [ITHREAD]
pcm0: <HDA Codec: Realtek ALC268>
pcm0: <HDA Driver Revision: 20080420_0052>
#cat /dev/sndstat

Код: Выделить всё

FreeBSD Audio Driver (newpcm: 32bit 2008070301/i386)
Installed devices:
pcm0: <Intel 82801H High Definition Audio Controller> at memory 0xfc200000 irq 22 kld snd_hda [20080420_0052] [MPSAFE] (1p:16v/1r:2v channels duplex default)
#scanpci -v

Код: Выделить всё

pci bus 0x0000 cardnum 0x1f function 0x01: vendor 0x8086 device 0x2850
 Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) IDE Controller
 CardVendor 0x1025 card 0x0133 (Acer Incorporated [ALI], Card unknown)
  STATUS    0x0288  COMMAND 0x0005
  CLASS     0x01 0x01 0x8a  REVISION 0x03
  BIST      0x00  HEADER 0x00  LATENCY 0x00  CACHE 0x00
  BASE0     0x00000001  addr 0x00000000  I/O
  BASE1     0x00000001  addr 0x00000000  I/O
  BASE2     0x00000001  addr 0x00000000  I/O
  BASE3     0x00000001  addr 0x00000000  I/O
  BASE4     0x00001811  addr 0x00001810  I/O
  MAX_LAT   0x00  MIN_GNT 0x00  INT_PIN 0x01  INT_LINE 0xff
  BYTE_0    0x77  BYTE_1  0xe3  BYTE_2  0x77  BYTE_3  0xc0

Re: Не работает внутренний микрофон в ноуте.

Добавлено: 2008-07-13 22:15:25
paradox_
поменяй вербоус левел
и сделай перезагрузку своего саунда
там будет ооооооооооочень болошой лог по hda
его сюда

Re: Не работает внутренний микрофон в ноуте.

Добавлено: 2008-07-13 22:16:32
zl0y
paradox_ писал(а):поменяй вербоус левел
и сделай перезагрузку своего саунда
там будет ооооооооооочень болошой лог по hda
его сюда
в scanpci ?

Re: Не работает внутренний микрофон в ноуте.

Добавлено: 2008-07-13 22:20:59
zl0y
#sysctl hw.snd.verbose=3 ; cat /dev/sndstat

Код: Выделить всё

FreeBSD Audio Driver (newpcm: 32bit 2008070301/i386)
Installed devices:
pcm0: <Intel 82801H High Definition Audio Controller> at memory 0xfc200000 irq 22 kld snd_hda [20080420_0052] [MPSAFE] (1p:16v/1r:2v channels duplex defaul
        [pcm0:play:dsp0.p0]: spd 48000, fmt 0x10000010, flags 0x00101020, 0x00000004
        interrupts 65222, underruns 0, feed 65222, ready 0 [b:4096/2048/2|bs:4096/2048/2]
        {userland} -> feeder_mixer(0x10000010) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp0]: spd 44100/48000, fmt 0x10000010, flags 0x10007030, 0x00000029, pid 1826 (artsd)
        interrupts 0, underruns 32, feed 72697, ready 64796 [b:0/0/0|bs:65536/4096/16]
        {userland} -> feeder_root(0x10000010) -> feeder_volume(0x10000010) -> feeder_rate(0x10000010 q:1 44100 -> 48000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp1]: spd 48000, fmt 0x00000010/0x10000010, flags 0x10000000, 0x00000061
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:32768/1024/32]
        {userland} -> feeder_root(0x00000010) -> feeder_matrix(0x00000010 -> 0x10000010) -> feeder_volume(0x10000010) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp2]: spd 8000, fmt 0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp3]: spd 8000, fmt 0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp4]: spd 8000, fmt 0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp5]: spd 8000, fmt 0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp6]: spd 8000, fmt 0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp7]: spd 8000, fmt 0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp8]: spd 8000, fmt 0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp9]: spd 8000, fmt 0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp10]: spd 8000, fmt 0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp11]: spd 8000, fmt 0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp12]: spd 8000, fmt 0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp13]: spd 8000, fmt 0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp14]: spd 8000, fmt 0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp15]: spd 8000, fmt 0x00000008, flags 0x10000000, 0x00000000
        interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
        {userland} -> feeder_root(0x00000000) -> {hardware}
        [pcm0:record:dsp0.r0]: spd 48000, fmt 0x10000010, flags 0x00101020, 0x00000005
        interrupts 65222, overruns 0, feed 130444, hfree 4096, sfree 4095 [b:4096/2048/2|bs:4096/2048/2]
        {hardware} -> feeder_root(0x10000010) -> feeder_mixer(0x10000010) -> {userland}
        pcm0:record:dsp0.r0[pcm0:virtual:dsp0.vr0]: spd 44100/48000, fmt 0x10000010, flags 0x10007030, 0x00000029, pid 1826 (artsd)
        interrupts 0, overruns 1, feed 203733, hfree 0, sfree 64796 [b:0/0/0|bs:65536/4096/16]
        {hardware} -> feeder_root(0x10000010) -> feeder_rate(0x10000010 q:1 48000 -> 44100) -> feeder_volume(0x10000010) -> {userland}
        pcm0:record:dsp0.r0[pcm0:virtual:dsp0.vr1]: spd 48000, fmt 0x00000010/0x10000010, flags 0x10000000, 0x00000061
        interrupts 0, overruns 0, feed 0, hfree 0, sfree 32768 [b:0/0/0|bs:32768/1024/32]
        {hardware} -> feeder_root(0x10000010) -> feeder_matrix(0x10000010 -> 0x00000010) -> feeder_volume(0x00000010) -> {userland}

File Versions:
$FreeBSD: src/sys/dev/sound/pci/hda/hdac.c,v 1.54 2008/05/22 09:14:12 kevlo Exp $
$FreeBSD: src/sys/dev/sound/isa/sndbuf_dma.c,v 1.3 2005/01/06 01:43:17 imp Exp $
$FreeBSD: src/sys/dev/sound/pcm/vchan.c,v 1.36 2007/06/16 03:37:28 ariff Exp $
$FreeBSD: src/sys/dev/sound/pcm/sound.c,v 1.119 2007/06/17 19:02:05 ariff Exp $
$FreeBSD: src/sys/dev/sound/pcm/sndstat.c,v 1.28 2007/06/16 03:37:28 ariff Exp $
$FreeBSD: src/sys/dev/sound/pcm/mixer.c,v 1.61 2007/06/16 03:37:28 ariff Exp $
$FreeBSD: src/sys/dev/sound/pcm/feeder_volume.c,v 1.6 2007/06/16 20:36:39 ariff Exp $
$FreeBSD: src/sys/dev/sound/pcm/feeder_rate.c,v 1.23 2007/06/16 03:37:28 ariff Exp $
$FreeBSD: src/sys/dev/sound/pcm/feeder.c,v 1.44 2007/06/17 15:53:11 ariff Exp $
$FreeBSD: src/sys/dev/sound/pcm/fake.c,v 1.18 2007/03/15 18:19:01 ariff Exp $
$FreeBSD: src/sys/dev/sound/pcm/dsp.c,v 1.109 2008/05/27 02:16:05 ariff Exp $
$FreeBSD: src/sys/dev/sound/pcm/channel.c,v 1.122 2007/12/03 14:26:56 ariff Exp $
FreeBSD: src/sys/dev/sound/pcm/buffer.c,v 1.37 2007/06/16 03:37:27 ariff Exp $
$FreeBSD: src/sys/dev/sound/pcm/ac97_patch.c,v 1.11 2007/10/26 20:49:23 ariff Exp $
$FreeBSD: src/sys/dev/sound/pcm/ac97.c,v 1.74 2007/10/26 20:49:59 ariff Exp $
$FreeBSD$
$FreeBSD$
$FreeBSD$
$FreeBSD$
$FreeBSD$

Re: Не работает внутренний микрофон в ноуте.

Добавлено: 2008-07-13 22:23:12
paradox_
нет и вербоус левел поднять хотя бы на 10

либо перегрузись с дебагом
в бут меню выбрать можно
читай внимательнее
и в

Код: Выделить всё

dmesg -a
будет ооооочень большой лог по hda
несколько страниц так точно

он то и нужен