Voodoohda |
|
|

Aug 22 2009, 06:47 AM




- Advanced Member
- Group: Developer
- Posts: 106
Добрый день.
Предлагаю вашему вниманию мою версию драйвера VoodooHDA
От оригинальной версией от команды Voodoo эта версия отличается несколькими моментами:
был изменен набор настроек в PrefPanel, что позволило в моем случае завести микрофон
добавлена возможность вносить изменения в настройки нод через редактирования Info.plist драйвера.
Рассмотрим способ внесения изменений в настройки нод.
Для того чтобы изменить настройки ноды добавте в секцию NodesToPath в файле Info.plist дочерние ключи так как это показано в примере:
CODE
<key>NodesToPatch</key>
<array>
<dict>
<key>Codec</key>
<integer>0</integer>
<key>Node</key>
<integer>20</integer>
<key>Config</key>
<string>0x99130110</string>
<key>Type</key>
<integer>4</integer>
</dict>
<dict>
<key>Codec</key>
<integer>0</integer>
<key>Node</key>
<integer>8</integer>
<key>select</key>
<integer>1</integer>
<key>Type</key>
<integer>1</integer>
</dict>
</array>
В примере меняются настройки двух нод 20 и 8 кодека номер 0.
Для Ноды 20 с помощью ключа Config задается новый PinConfig.
С помощью ключа Conns указывается номер ноды к которой будет подключатся нода 20. Получается цепочка 20 -> 12
С помощью ключа Type задается тип коннектора.
возможные значения:
0 - [Audio Output]
1 - [Audio Input]
4 - [Pin Complex]
В версии 2.5.3 появилась возможность указывать в Info.plist настройки регуляторов из PrefPanel по умолчанию. Для этого в Info.plist появилась новая секция - MixerValues
CODE
<key>IOUserClientClass</key>
<string>VoodooHDAUserClient</string>
<key>MixerValues</key>
<dict>
<key>iMix</key>
<string>90</string>
</dict>
<key>NodesToPatch</key>
<array/>
<key>VoodooHDAVerboseLevel</key>
<integer>1</integer>
В это секции нужно перечислить те регуляторы значения которых вы хотите задать. В примере задано значение для регулятора iMix. Значение можно задавать от 0 до 99.
Вот перечень имен регуляторов:
CODE
Main
Bass
Trable
Synth
PCM
Speaker
Line
Mic
CD
iMix
AltPCM
Rec
iGain
oGain
Line1
Line2
Line3
Dig1
Dig2
Dig3
PhoneIn
PhoneOut
Video
Radio
Monitor
Имена некоторых регуляторов для Info.plist были сокращены для удобства их записи, но их соответствие регуляторам из PrefPanel вполне очевидно.
VoodooHDA является заменой стандартному AppleHDA. Поэтому во избежание kernel panic бекапте и удаляете AppleHDA.kext прежде чем ставить VoodooHDA!
Господа, драйвер находиться на этапе разработки. Возможно и даже наверняка у кого-нибудь он не заработает. Чтобы помочь нам исправить ошибки в драйвере в ваших сообщениях приводите следующую информацию:
- напишете драйвером какой версии вы воспользовались
- называйте вашу звуковую карточку
- описывайте какие входы/выходы существуют на вашем компьютере. Например: Разъем для наушников джек черного цвета, и т.д.
- перечислите какие из них работают и какие нет
- прикрепите к вашем сообщению результат работы утилиты getDump
Утилита getDump - позволяет получить все настройки драйвера VoodooHDA + схемы соединения нодов.
getdump.zip ( 1.53K )
Number of downloads: 2300Утилита getExtDump - позволяет получить из загруженного драйвера VoodooHDA текущие настройки усиления для всех нод
getExtDump.zip ( 2.74K )
Number of downloads: 1547Наиболее полную информацию о системе дадут оба дампа.PrefPanel - позволяет настраивать усиление звука для каждого входа и выхода
VoodooHDA.prefPane.zip ( 25.64K )
Number of downloads: 1753UPDATE 22.08.2009
- убрано сообщение
VoodooHDAEngine[0x4e41500]::volumeChanged из лога
+ добавлен параметр
Codec в настройках нода в Info.plist для задание адреса кодека
UPDATE 28.08.2009
*исправлена работа с внутренним микрофоном.
*исправлен алгоритм вычисления рабочих цепочек.
UPDATE 06.10.2009
+Сделана автосмена названия устройства в настройках звука
*некоторые исправления связанные с работой автодетекта
UPDATE 20.12.2009
+Сделано чтение настроек регуляторов из Info.plist
UPDATE 7.02.2010
+Теперь регулятор imix не будет влиять на выходные миксеры
+добавлен параметр
select в настройках ноды в Info.plist для задания выбранного выхода ноды.
VoodooHDA_Leo.254.zip ( 78.86K )
Number of downloads: 571
VoodooHDA.kext_Snow_254.zip ( 150.51K )
Number of downloads: 1777
voodoohda_src.254.zip ( 1.32MB )
Number of downloads: 269UPDATE 15.02.2010 (Экспериментальная версия)
+Добавлен параметр DAC
UPDATE 26.02.2010 (Экспериментальная версия)
+Добавлен параметр SwitchCh
VoodooHDA_Leo.256.zip ( 79.26K )
Number of downloads: 569
VoodooHDA.kext_Snow_256.zip ( 151.27K )
Number of downloads: 2189
voodoohda_src.256.zip ( 908.25K )
Number of downloads: 386Версия 2.6.2
VoodooHDA.kext_262_Leo.zip ( 80.22K )
Number of downloads: 101
VoodooHDA.kext_262_Snow.zip ( 153.47K )
Number of downloads: 487 This post has been edited by AutumnRain: Jun 3 2010, 08:23 AM
Ноутбук Acer Aspire 5930G-733G25Mi
Mac OS iPC OSx86 Leopard 10.5.6 [Intel AMD SSE2 SSE3] Final Release + Apple Update 10.5.7 + Apple Update 10.5.8
Процессор T5800 Intel Core 2 Duo
Chipset Mobile Intel PM45 Express / ICH9-M
Видео nVidia GeForce 9600M GT с 512 Мб DDR3 видеопамяти
Звук Realtek HDA ALC888S-VC2
WebCam Acer CrystalEye 1 Мегапиксель - конфликтует с AppleHPET.kext и не дает заснуть
Сеть Marvell Yukon 88E8071 Gigabit Ethernet - не работает
WiFi intel 5100 802.11a/b/g не работает - заменена на Atheros mini PCI-e AR5006ER

Aug 22 2009, 07:56 AM




- Advanced Member
- Group: Developer
- Posts: 1,632
Наверно, нужно дать еще ссылку на PrefPanel, или вообще ее здесь прикрепить. Наконец-то она у меня заработала!
Поздравляю! Эта версия - великий шаг вперед. Первое испытание: чистый инфо-плист.
Систем-лог:
QUOTE
Aug 22 11:36:20 localhost kernel[0]: Natit: Starting.
Aug 22 11:36:20 localhost kernel[0]: Natit: Found device with ID=0x284B
Aug 22 11:36:20 localhost kernel[0]: VoodooHDADevice[0x2422e000]::init
Aug 22 11:36:20 localhost kernel[0]: VoodooHDADevice::mixerSetDefaults
Aug 22 11:36:20: --- last message repeated 3 times ---
Aug 22 11:36:20 localhost kernel[0]: dacNid = 2, outputNid = 3, devType = Digital-out, connType = Jack
Aug 22 11:36:20 localhost kernel[0]: warning: found invalid min/max dB (using default -22.5 -> 0.0 range)
Aug 22 11:36:20 localhost kernel[0]: dacNid = 2, outputNid = 13, devType = Speaker, connType = Fixed
Aug 22 11:36:20 localhost kernel[0]: dacNid = 7, outputNid = 14, devType = Mic, connType = Jack
Aug 22 11:36:20 localhost kernel[0]: dacNid = 5, outputNid = 15, devType = Line-out, connType = Jack
Aug 22 11:36:20 localhost kernel[0]: dacNid = 30, outputNid = 33, devType = Digital-out, connType = Fixed
Aug 22 11:36:20 localhost kernel[0]: warning: found invalid min/max dB (using default -22.5 -> 0.0 range)
...
Aug 22 11:36:57 HackBook-2 kernel[0]: VoodooHDAEngine[0x4e41500]::volumeChanged(0x4e41000, 73, 70)
Aug 22 11:36:57 HackBook-2 kernel[0]: VoodooHDAEngine[0x4e41500]::volumeChanged(0x4e41100, 73, 70)
Aug 22 11:36:57 HackBook-2 kernel[0]: VoodooHDAEngine[0x4e41500]::volumeChanged(0x4e41000, 70, 69)
Aug 22 11:36:57 HackBook-2 kernel[0]: VoodooHDAEngine[0x4e41500]::volumeChanged(0x4e41100, 70, 69)
Aug 22 11:36:57 HackBook-2 kernel[0]: VoodooHDAEngine[0x4e41500]::volumeChanged(0x4e41000, 69, 66)
Aug 22 11:36:57 HackBook-2 kernel[0]: VoodooHDAEngine[0x4e41500]::volumeChanged(0x4e41100, 69, 66)
Последнее сообщение повторяется пяцоттыщ раз. Надо убирать!
minMaxDB чего-то орет про цифровые выходы, а вот про микрофон орать перестала, и внешний микрофон заработал.
Спикер работает, при включении наушников в левое гнездо звук переключается туда. Правое гнездо работает как Line-out.
Т.е. работает все, кроме встроенного микрофона. Картинки:
Picture_4.png ( 44.39K )
Number of downloads: 264
Picture_6.png ( 51.21K )
Number of downloads: 228
Picture_7.png ( 41.19K )
Number of downloads: 195Приступаю к подбору патчей.
getExtDump также отработала нормально, и дала информацию по всем трем адресам.
Кстати, а когда мы пишем патч для ноды 3, какой адрес имеется ввиду? Что-то здесь надо пересмотреть.

Aug 22 2009, 01:57 PM




- Advanced Member
- Group: Developer
- Posts: 1,632
Продолжаю тестирование.
Теперь десктоп с ALC883. Физически имеются 6 разъемов сзади, 2 спереди, и SPDIF. Про последний ничего не знаю.
VoodooHDA с чистым инфо-плистом дает звук на два зеленых разъема - передний и задний. Эти разъемы основные, они и для AppleHDA выделенные, остальные выходные устройства не присутствуют (кроме SPDIF).
В панели есть два микрофона, т.е. передний и задний розовые разъемы. Никакие настройки звука в префПанели не помогают, в сквозном канале только шипение (сквозной канал организовал через QuickTimePro Player, вариант работает на ноуте). Громкость шипения можно регулировать в панели.
Это означает, что входная нода микрофона имеет низкую чувствительность, а регулировка происходит на уровне следующих усилителей, ну они и усиливают собственный шум.
Патчем на том компьютере заниматься нет возможности, возвращаюсь к ноутбуку.
Прописав патч на 12 ноду, которая у меня прекрасно работала с AppleHDA, я получил в контрольной панели второй микрофон. Увы, второе устройство тоже, почему-то, реагирует только на внешний микрофон, но никак не на внутренний. Пока изучаю варианты.
Мне не нравится отображение микрофона в системе - "Mic", Можно сделать подробнее "Mic Int", "Mic Ext", "Line Out"

Aug 22 2009, 04:38 PM




- Advanced Member
- Group: Developer
- Posts: 106
QUOTE (Slice @ Aug 22 2009, 11:56 AM)

Наверно, нужно дать еще ссылку на PrefPanel, или вообще ее здесь прикрепить. Наконец-то она у меня заработала!
Добавил
QUOTE (Slice @ Aug 22 2009, 11:56 AM)

Систем-лог:
Последнее сообщение повторяется пяцоттыщ раз. Надо убирать!
QUOTE (Slice @ Aug 22 2009, 11:56 AM)

Кстати, а когда мы пишем патч для ноды 3, какой адрес имеется ввиду? Что-то здесь надо пересмотреть.
Выложил версию 0.2.34 в которой исправил эти недочеты.
Наконец-то работает еще у какого-то кроме меня!!! Ура!!
QUOTE (Slice @ Aug 22 2009, 05:57 PM)

Продолжаю тестирование.
Теперь десктоп с ALC883. Физически имеются 6 разъемов сзади, 2 спереди, и SPDIF. Про последний ничего не знаю.
VoodooHDA с чистым инфо-плистом дает звук на два зеленых разъема - передний и задний. Эти разъемы основные, они и для AppleHDA выделенные, остальные выходные устройства не присутствуют (кроме SPDIF).
В панели есть два микрофона, т.е. передний и задний розовые разъемы. Никакие настройки звука в префПанели не помогают, в сквозном канале только шипение (сквозной канал организовал через QuickTimePro Player, вариант работает на ноуте). Громкость шипения можно регулировать в панели.
Это означает, что входная нода микрофона имеет низкую чувствительность, а регулировка происходит на уровне следующих усилителей, ну они и усиливают собственный шум.
Патчем на том компьютере заниматься нет возможности, возвращаюсь к ноутбуку.
Интересно было бы взглянуть на дампы этого десктопа.
QUOTE (Slice @ Aug 22 2009, 05:57 PM)

Прописав патч на 12 ноду, которая у меня прекрасно работала с AppleHDA, я получил в контрольной панели второй микрофон. Увы, второе устройство тоже, почему-то, реагирует только на внешний микрофон, но никак не на внутренний. Пока изучаю варианты.
Буду ждать новостей.

QUOTE (Slice @ Aug 22 2009, 05:57 PM)

Мне не нравится отображение микрофона в системе - "Mic", Можно сделать подробнее "Mic Int", "Mic Ext", "Line Out"
А как названы устройства в PrefPanel устраивает?
This post has been edited by AutumnRain: Aug 22 2009, 04:43 PM
Ноутбук Acer Aspire 5930G-733G25Mi
Mac OS iPC OSx86 Leopard 10.5.6 [Intel AMD SSE2 SSE3] Final Release + Apple Update 10.5.7 + Apple Update 10.5.8
Процессор T5800 Intel Core 2 Duo
Chipset Mobile Intel PM45 Express / ICH9-M
Видео nVidia GeForce 9600M GT с 512 Мб DDR3 видеопамяти
Звук Realtek HDA ALC888S-VC2
WebCam Acer CrystalEye 1 Мегапиксель - конфликтует с AppleHPET.kext и не дает заснуть
Сеть Marvell Yukon 88E8071 Gigabit Ethernet - не работает
WiFi intel 5100 802.11a/b/g не работает - заменена на Atheros mini PCI-e AR5006ER

Aug 22 2009, 05:05 PM




- Advanced Member
- Group: Developer
- Posts: 1,632
Проанализировал дампы с двух компов по поводу "микрофонов".
Рабочая ситуация STAC9228, внешний микрофон
7 - input
27 - oss:mic mute
24 - oss:rec 0:21dB
21 - oss:mic 0:40dB
14 - src:mic PinComplex 02a11020 Cap=1737
Итак, здесь src=oss=mic - все работает
CODE
else if (direction == kIOAudioStreamDirectionInput) {
usage = kIOAudioControlUsageInput;
initOssDev = SOUND_MIXER_MIC;
Нерабочая цепочка STAC9228, внутренний микрофон (она работает в AppleHDA)
8 - input
28 - oss:monitor mute
25 - oss:rec 0:21dB
22 -oss:monitor 0:40dB
12 - src:monitor PinComplex 0x90a39140 Cap=1737
Итак, разница только в том, что это не mic, а monitor, т.е. встроенный микрофон, для которого программа не предусмотрела никакого решения.
Теперь ALC883 оба внешние входа не работают
9 - input
34 - oss;monitor, rec, speaker, mix
25 - src:monitor PinComplex 02a19c50 Cap=173e
Причина - монитор
8 - input
35 - oss:rec -12:+34dB
24 - src:mic PinComplex 0x01a19c40 Cap=173e
и, одновременно,
26 - src:line PinComplex 0x0181344f Cap= 173e
CODE
Record:
nid=8 [audio input]
|
+ <- nid=35 [audio mixer] [src: speaker, line, mic, mix]
|
+ <- nid=24 [pin: Mic (Pink Jack)] [src: mic]
+ <- nid=26 [pin: Line-in (Blue Jack)] [src: line]
+ <- nid=29 [beep widget] [src: speaker]
+ <- nid=11 [audio mixer] [src: mix]
Здесь, видать, мешает присутствие line, которую можно отменить параметром conns.
Но в целом, исходники нужно расширять на другие типы входов и выходов. Почему только mic?

Aug 22 2009, 05:16 PM




- Advanced Member
- Group: Developer
- Posts: 1,632
QUOTE (AutumnRain @ Aug 22 2009, 04:38 PM)

Интересно было бы взглянуть на дампы этого десктопа.
ALC883Dumps.zip ( 7.49K )
Number of downloads: 28QUOTE
А как названы устройства в PrefPanel устраивает?
Да, здесь получше.
Picture_9.png ( 49.21K )
Number of downloads: 97

Aug 23 2009, 05:23 AM




- Advanced Member
- Group: Developer
- Posts: 1,632
QUOTE (Slice @ Aug 22 2009, 05:05 PM)

Проанализировал дампы с двух компов по поводу "микрофонов".
Рабочая ситуация STAC9228, внешний микрофон
7 - input
27 - oss:mic mute
24 - oss:rec 0:21dB
21 - oss:mic 0:40dB
14 - src:mic PinComplex 02a11020 Cap=1737
Итак, здесь src=oss=mic - все работает
CODE
else if (direction == kIOAudioStreamDirectionInput) {
usage = kIOAudioControlUsageInput;
initOssDev = SOUND_MIXER_MIC;
Нерабочая цепочка STAC9228, внутренний микрофон (она работает в AppleHDA)
8 - input
28 - oss:monitor mute
25 - oss:rec 0:21dB
22 -oss:monitor 0:40dB
12 - src:monitor PinComplex 0x90a39140 Cap=1737
Итак, разница только в том, что это не mic, а monitor, т.е. встроенный микрофон, для которого программа не предусмотрела никакого решения.
А вот, кстати, и систем-лог этой ситуации
QUOTE
Aug 23 09:18:00 localhost kernel[0]: Natit: Found device with ID=0x284B
Aug 23 09:18:00 localhost kernel[0]: VoodooHDADevice[0x2363a000]::init
Aug 23 09:18:00 localhost kernel[0]: VoodooHDADevice::mixerSetDefaults
Aug 23 09:18:00: --- last message repeated 3 times ---
Aug 23 09:18:00 localhost kernel[0]: dacNid = 2, outputNid = 3, devType = Digital-out, connType = Jack
Aug 23 09:18:00 localhost kernel[0]: warning: found invalid min/max dB (using default -22.5 -> 0.0 range)
Aug 23 09:18:00 localhost kernel[0]: dacNid = 2, outputNid = 13, devType = Speaker, connType = Fixed
Aug 23 09:18:00 localhost kernel[0]: dacNid = 7, outputNid = 14, devType = Mic, connType = Jack
Aug 23 09:18:00 localhost kernel[0]: dacNid = 5, outputNid = 15, devType = Line-out, connType = Jack
Aug 23 09:18:00 localhost kernel[0]: dacNid = 8, outputNid = 12, devType = Mic, connType = Fixed
Aug 23 09:18:00 localhost kernel[0]: warning: found invalid min/max dB (using default -22.5 -> 0.0 range)
Aug 23 09:18:00 localhost kernel[0]: dacNid = 30, outputNid = 33, devType = Digital-out, connType = Fixed
Aug 23 09:18:00 localhost kernel[0]: warning: found invalid min/max dB (using default -22.5 -> 0.0 range)
P.S. Кстати, под словом Codec народ понимает CodecID, я предлагаю поменять на Addr в списке патчей, чтобы не путались. Да и пора составлять инструкции, что можно пропатчить, если в дампе видим какие-то несоответствия.
Вот в моей ситуации с помощью патча я добавил ноду 12, соответствующую внутреннему микрофону. С тебя объяснения по поводу твоих добавок. Да и общие соображения, если есть.

Aug 23 2009, 10:53 AM



- Member
- Group: Comrade
- Posts: 44
а это версия для лео или для ирбиса?
>Процессор:PDC E6300 >ASUS P5Q Pro Turbo>Звук:VIA VT1708S>Физическая память: 2Gb >HDD:WD 500Gb>Видео:GTS 250 512mb >Atheros L1e
Водку пей - но помни твердо, от нее краснеет морда!

Aug 23 2009, 02:30 PM




- Advanced Member
- Group: Developer
- Posts: 1,632
QUOTE (Yurik @ Aug 23 2009, 10:53 AM)

а это версия для лео или для ирбиса?
Пока мы ее компилировали под 32 бита, но в исходниках нет ничего особо системно зависимого. Будет окончательный вариант - кто-нибудь компильнет под х64.
2
AutumnRainЯ чего-то не понял насчет количества коннекторов
CODE
NodesToPatchArray[i].nConns = nArrayCount;
В чем здесь идея?

Aug 23 2009, 06:28 PM




- Advanced Member
- Group: Developer
- Posts: 106
QUOTE (Slice @ Aug 23 2009, 06:30 PM)

2
AutumnRainЯ чего-то не понял насчет количества коннекторов
CODE
NodesToPatchArray[i].nConns = nArrayCount;
В чем здесь идея?
Точнее будет так:
CODE
if (tmpString->isEqualTo("Conns")){
for(unsigned int arrayIndex = 0; arrayIndex < nArrayCount; arrayIndex++) {
NodesToPatchArray[i].Conns[arrayIndex] = tmpUIArray[arrayIndex];
}
NodesToPatchArray[i].nConns = nArrayCount;
Я сделал так, чтобы можно было указать больше одного конектора в Info.plist.
Пример:
CODE
<key>NodesToPatch</key>
<array>
<dict>
<key>Codec</key>
<integer>0</integer>
<key>Node</key>
<integer>8</integer>
<key>Conns</key>
<array>
<integer>12</integer>
<integer>13</integer>
<integer>14</integer>
</array>
<key>Type</key>
<integer>1</integer>
</dict>
</array>
Теперь у ноды 8 будет соединение с нодой 12, 13 и 14
Ноутбук Acer Aspire 5930G-733G25Mi
Mac OS iPC OSx86 Leopard 10.5.6 [Intel AMD SSE2 SSE3] Final Release + Apple Update 10.5.7 + Apple Update 10.5.8
Процессор T5800 Intel Core 2 Duo
Chipset Mobile Intel PM45 Express / ICH9-M
Видео nVidia GeForce 9600M GT с 512 Мб DDR3 видеопамяти
Звук Realtek HDA ALC888S-VC2
WebCam Acer CrystalEye 1 Мегапиксель - конфликтует с AppleHPET.kext и не дает заснуть
Сеть Marvell Yukon 88E8071 Gigabit Ethernet - не работает
WiFi intel 5100 802.11a/b/g не работает - заменена на Atheros mini PCI-e AR5006ER

Aug 24 2009, 12:49 PM




- Advanced Member
- Group: Developer
- Posts: 1,632
QUOTE (AutumnRain @ Aug 23 2009, 06:28 PM)

Я сделал так, чтобы можно было указать больше одного конектора в Info.plist.
Твою идею я знаю, но мне что-то сомнительно, что переменная nArrayCount будет относится к этому массиву, а не к списку нод.
И еще я подумал, что неплохо было бы вынести CodecAddress за скобки.
CODE
<key>NodesToPatch</key>
<array>
<key>Codec</key>
<integer>0</integer>
<array>
<dict>
<key>Node</key>
<integer>8</integer>
</dict>
<dict>
<key>Node</key>
<integer>9</integer>
</dict>
</array>
</array>
Как думешь, реально? Или клиентам так будешь сложнее?
Теперь мои попытки завести внутренний микрофон на Сигмателе.
В исходники внес min/max dB такой же, как и для внешнего микрофона. Это не совсем правда, но неважно: причина не в этом.
Систем-лог
QUOTE
Aug 24 16:02:51 HackBook-2 kernel[0]: VoodooHDADevice[0x241fe000]::init
Aug 24 16:02:51 HackBook-2 kernel[0]: VoodooHDADevice::mixerSetDefaults
Aug 24 16:02:51: --- last message repeated 3 times ---
Aug 24 16:02:51 HackBook-2 kernel[0]: dacNid = 2, outputNid = 3, devType = Digital-out, connType = Jack
Aug 24 16:02:51 HackBook-2 kernel[0]: warning: found invalid min/max dB (using default 0-40dB range)
Aug 24 16:02:51 HackBook-2 kernel[0]: dacNid = 2, outputNid = 13, devType = Speaker, connType = Fixed
Aug 24 16:02:51 HackBook-2 kernel[0]: dacNid = 7, outputNid = 14, devType = Mic, connType = Jack
Aug 24 16:02:51 HackBook-2 kernel[0]: dacNid = 5, outputNid = 15, devType = Line-out, connType = Jack
Aug 24 16:02:51 HackBook-2 kernel[0]: dacNid = 8, outputNid = 12, devType = Mic, connType = Fixed
Aug 24 16:02:51 HackBook-2 kernel[0]: warning: found invalid min/max dB (using default 0-40dB range)
Aug 24 16:02:51 HackBook-2 kernel[0]: dacNid = 30, outputNid = 33, devType = Digital-out, connType = Fixed
Aug 24 16:02:51 HackBook-2 kernel[0]: warning: found invalid min/max dB (using default 0-40dB range)
Варнинг уже известный, диапазон я подправил.
В дампах рабочая и нерабочая цепочки имеют совершенно одинаковые характеристики
CODE
Record: Рабочая цепочка
nid=7 [audio input]
|
+ <- nid=27 [audio selector] [src: mic]
|
+ <- nid=24 [audio selector] [src: mic]
|
+ <- nid=21 [audio selector] [src: mic]
|
+ <- nid=14 [pin: Mic (Black Jack)] [src: mic]
Microphone Volume (OSS: mic)
|
+- control 6 (nid 21 out): +0/+40dB (5 steps) -- чувствительность микрофона, только через VoodooPrefPane
+- control 12 (nid 27 out): mute
Recording Level (OSS: rec)
|
+- control 9 (nid 24 in 0): +0/+21dB (15 steps) -- этот регулятор отображается в панели Sound
+- control 12 (nid 27 out): mute
nid: 7
Name: audio input
Widget cap: 0x001d0541
PWR PROC STEREO
Association: 1 (0x00000001)
Stream cap: 0x00000001
PCM
PCM cap: 0x000e07e0
16 20 24 bits, 44 48 88 96 176 192 KHz
connections: 1
|
+ <- nid=27 [audio selector]
Record: Нерабочая цепочка
nid=8 [audio input]
|
+ <- nid=28 [audio selector] [src: monitor]
|
+ <- nid=25 [audio selector] [src: monitor]
|
+ <- nid=22 [audio selector] [src: monitor]
|
+ <- nid=12 [pin: Mic (Fixed)] [src: monitor]
Microphone2 Volume (OSS: monitor)
|
+- control 7 (nid 22 out): +0/+40dB (5 steps) -- регулятор чувствительности недоступен нигде
+- control 13 (nid 28 out): mute
Recording Level (OSS: rec)
|
+- control 10 (nid 25 in 0): +0/+21dB (15 steps) -- этот регулятор отображается в панели Sound
+- control 13 (nid 28 out): mute
nid: 8
Name: audio input
Widget cap: 0x001d0541
PWR PROC STEREO
Association: 3 (0x00000001)
Stream cap: 0x00000001
PCM
PCM cap: 0x000e07e0
16 20 24 bits, 44 48 88 96 176 192 KHz
connections: 1
|
+ <- nid=28 [audio selector]
Вот картинки
Picture_1.png ( 52.26K )
Number of downloads: 37
Picture_2.png ( 54.24K )
Number of downloads: 35
Picture_4.png ( 43.27K )
Number of downloads: 38Можешь пояснить мне, где что изменить, чтобы prefPane увидела регулятор ноды 22?

Aug 24 2009, 02:09 PM




- Advanced Member
- Group: Developer
- Posts: 1,632
Подправил исходники для получения вот такого результата
CODE
Record:
nid=8 [audio input]
|
+ <- nid=28 [audio selector] [src: mic, monitor]
|
+ <- nid=25 [audio selector] [src: mic, monitor]
|
+ <- nid=22 [audio selector] [src: mic, monitor]
|
+ <- nid=12 [pin: Microphone (Fixed)] [src: mic, monitor]
Регулятор не появился, микрофон не заработал.

Aug 25 2009, 08:16 AM




- Advanced Member
- Group: Developer
- Posts: 106
2 Slice
Я не каждый день имею возможность работать над драйвером. Но стараюсь по быстрее разобраться тем, чтобы все нужные регуляторы OSS устройств попали на панель PrefPanel.
На счет warning: found invalid min/max dB (using default 0-40dB range) я не уверен, что из-за этого не работает микрофон.
Скорее всего из того что отключен усилитель на одной из промежуточных нод между микрофоном и цифровым входом. К сожалению дамп утилиты getExtDump который ты прилагал к своему посту - пустой. Скажи она (утилита getExtDump) у тебя работает? Можешь ли ты
выставить все регуляторы на вкладке соответствующей не работающему микрофону на максимумы и снять дамп утилитой getExtDump.
Ноутбук Acer Aspire 5930G-733G25Mi
Mac OS iPC OSx86 Leopard 10.5.6 [Intel AMD SSE2 SSE3] Final Release + Apple Update 10.5.7 + Apple Update 10.5.8
Процессор T5800 Intel Core 2 Duo
Chipset Mobile Intel PM45 Express / ICH9-M
Видео nVidia GeForce 9600M GT с 512 Мб DDR3 видеопамяти
Звук Realtek HDA ALC888S-VC2
WebCam Acer CrystalEye 1 Мегапиксель - конфликтует с AppleHPET.kext и не дает заснуть
Сеть Marvell Yukon 88E8071 Gigabit Ethernet - не работает
WiFi intel 5100 802.11a/b/g не работает - заменена на Atheros mini PCI-e AR5006ER

Aug 25 2009, 08:30 AM




- Advanced Member
- Group: Developer
- Posts: 1,632
Есть исходники prefPanel
VHDA_w_prefpane.zip ( 547.07K )
Number of downloads: 89Небольшое отличие - теперь можно включить все регуляторы общим тумблером.
Picture_1.png ( 50.64K )
Number of downloads: 71Микрофон не заработал! Я просто путаюсь в исходниках, не могу отследить, где присваюваются регуляторы нодам, и как на это влияет ПрефПанель.
ExtDump
CODE
nid: 8
Name: audio input
Widget cap: 0x001d0541
PWR PROC STEREO
Association: 3 (0x00000001)
connections: 1
|
+ <- nid=28 [audio selector]
nid: 28
Name: audio selector
Widget cap: 0x0030090d
LRSWAP STEREO
Association: 3 (0x00000001)
OSS: mic, monitor
Output amp: 0x80000000
mute=1 step=0 size=0 offset=0
Output val: [0x00 0x00]
connections: 3
|
+ <- nid=25 [audio selector] (selected)
+ [DISABLED] <- nid=19 [pin: Other (None)] [DISABLED]
+ [DISABLED] <- nid=20 [pin: Other (None)] [DISABLED]
nid: 25
Name: audio selector
Widget cap: 0x00300103
STEREO
Association: 3 (0x00000001)
OSS: mic, monitor
Input amp: 0x00050e00
mute=0 step=14 size=5 offset=0
Input val: [0x0C 0x0C]
connections: 1
|
+ <- nid=22 [audio selector]
nid: 22
Name: audio selector
Widget cap: 0x0030010d
STEREO
Association: 3 (0x00000001)
OSS: mic, monitor
Output amp: 0x00270400
mute=0 step=4 size=39 offset=0
Output val: [0x02 0x02]
connections: 1
|
+ <- nid=12 [pin: Microphone (Fixed)]
nid: 12
Name: pin: Microphone (Fixed)
Widget cap: 0x00400181
UNSOL STEREO
Association: 3 (0x00000001)
OSS: mic, monitor (monitor)
Pin cap: 0x00001737
ISC TRQD PDC OUT IN VREF[ 50 80 GROUND HIZ ]
Pin config: 0x90a39150
Pin control: 0x00000024 IN VREFs
connections: 1
|
+ [DISABLED] <- nid=3 [audio output] [DISABLED]
Microphone2 Volume (OSS: monitor)
|
+- control 7 (nid 22 out): +0/+40dB (5 steps)
+- control 13 (nid 28 out): mute
Recording Level (OSS: rec)
|
+- control 10 (nid 25 in 0): +0/+21dB (15 steps)
+- control 13 (nid 28 out): mute
Здесь OSS: mic, monitor - уже уже мои попытки сделать маску, чтобы воспринимала как микрофон. Но видать не туда прописал.
ЗЫ: У ноды 22 нет входного усилителя???

Aug 25 2009, 08:48 AM




- Advanced Member
- Group: Developer
- Posts: 106
QUOTE (Slice @ Aug 25 2009, 12:30 PM)

Есть исходники prefPanel
Небольшое отличие - теперь можно включить все регуляторы общим тумблером.
Толку от этого общего тумблера нет - т.к. регулятор должен быть связан с внутренней таблицей где храниться номер кодека, номер PCM устройства для однозначной связи с OSS устройством.
QUOTE (Slice @ Aug 25 2009, 12:30 PM)

Микрофон не заработал! Я просто путаюсь в исходниках, не могу отследить, где присваюваются регуляторы нодам, и как на это влияет ПрефПанель.
Как будет возможность, я опишу алгоритм работы с PrefPanel. Пока прости, ноутбук дома, я на работе.

QUOTE (Slice @ Aug 25 2009, 12:30 PM)

ЗЫ: У ноды 22 нет входного усилителя???
А почему ты это считаешь странным? У ноды 25 тоже нет выходного усилителя, а ноды 8 вообще никого нет.
Ноутбук Acer Aspire 5930G-733G25Mi
Mac OS iPC OSx86 Leopard 10.5.6 [Intel AMD SSE2 SSE3] Final Release + Apple Update 10.5.7 + Apple Update 10.5.8
Процессор T5800 Intel Core 2 Duo
Chipset Mobile Intel PM45 Express / ICH9-M
Видео nVidia GeForce 9600M GT с 512 Мб DDR3 видеопамяти
Звук Realtek HDA ALC888S-VC2
WebCam Acer CrystalEye 1 Мегапиксель - конфликтует с AppleHPET.kext и не дает заснуть
Сеть Marvell Yukon 88E8071 Gigabit Ethernet - не работает
WiFi intel 5100 802.11a/b/g не работает - заменена на Atheros mini PCI-e AR5006ER

Aug 25 2009, 10:50 AM




- Advanced Member
- Group: Developer
- Posts: 1,632
QUOTE (AutumnRain @ Aug 25 2009, 08:48 AM)

А почему ты это считаешь странным? У ноды 25 тоже нет выходного усилителя, а ноды 8 вообще никого нет.
Да, у 21-й ноды тоже нету, а она участвует в рабочей цепочке для внешнего микрофона.
Короче, сверил по всем дампам рабочую цепочку от 7 ноды (внешний микрофон) и от 8 ноды - внутренний. Разницы не увидел.
Физически вторая цепочка работает с AppleHDA.
Буду теперь смотреть, где Вуду работает с микрофон не так, как с монитором.

Aug 25 2009, 01:42 PM




- Advanced Member
- Group: Developer
- Posts: 1,632
Нашел!
CODE
case HDA_CONFIG_DEFAULTCONF_DEVICE_MIC_IN:
if ((widget->pin.config & HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_MASK)
== HDA_CONFIG_DEFAULTCONF_CONNECTIVITY_JACK) //внешний определим позднее как тип 2
break;
type = 1; //внутренний микрофон
break;
Изучаю дальше.
Блин! Даже поменяв mic<->monitor, и выставив в префпанели два регулятора, (которые работают!), я, вместо звука, имею только шипение, громкость которого регулируется обоими регуляторами. Где же ошибка?
P.S. В контрольной панели микрофоны внутренний и внешний не отличаются, надо бы исправить. (тип 1 и 2)

Aug 26 2009, 06:10 PM




- Advanced Member
- Group: Developer
- Posts: 106
2 SliceЧтобы появился регулятор monitor нужно внести следующие изменения:
VoodooHDADevice.cpp строка 2498
CODE
for(int j = 1; j < 24; j++) {
if(sliderTabs[i].volSliders[j].enabled == 0)
continue;
Заменить на
CODE
for(int j = 1; j < 25; j++) {
if(sliderTabs[i].volSliders[j].enabled == 0)
continue;
VoodooHDADevice.cpp строка 2420
CODE
mPrefPanelMemoryBuf[i].size = nSliderTabsCount;
for(int j = 1; j < 24; j++) {
if(sliderTabs[i].volSliders[j].enabled == 0)
continue;
Заменить на
CODE
mPrefPanelMemoryBuf[i].size = nSliderTabsCount;
for(int j = 1; j < 25; j++) {
if(sliderTabs[i].volSliders[j].enabled == 0)
continue;
VoodooHDADevice.h строка 55
CODE
PcmDevice *pcmDevice; //Указатель на устройство PCM к которому принадлежат OSS Dev регуляторов на данной вкладке
volSlider volSliders[24]; //Регуляторы на вкладке
Заменить на
CODE
PcmDevice *pcmDevice; //Указатель на устройство PCM к которому принадлежат OSS Dev регуляторов на данной вкладке
volSlider volSliders[25]; //Регуляторы на вкладке
Есть какие-нибудь наработки?
Ноутбук Acer Aspire 5930G-733G25Mi
Mac OS iPC OSx86 Leopard 10.5.6 [Intel AMD SSE2 SSE3] Final Release + Apple Update 10.5.7 + Apple Update 10.5.8
Процессор T5800 Intel Core 2 Duo
Chipset Mobile Intel PM45 Express / ICH9-M
Видео nVidia GeForce 9600M GT с 512 Мб DDR3 видеопамяти
Звук Realtek HDA ALC888S-VC2
WebCam Acer CrystalEye 1 Мегапиксель - конфликтует с AppleHPET.kext и не дает заснуть
Сеть Marvell Yukon 88E8071 Gigabit Ethernet - не работает
WiFi intel 5100 802.11a/b/g не работает - заменена на Atheros mini PCI-e AR5006ER

Aug 26 2009, 08:52 PM




- Advanced Member
- Group: Developer
- Posts: 1,632
QUOTE (AutumnRain @ Aug 26 2009, 06:10 PM)

Есть какие-нибудь наработки?
Твои советы завтра же буду внедрять. Я там уже немало поковырялся в исходниках, да еще исверил с оригинальными 2.2. Оказалось, что твой метод доступа к префПанели практически совпадает с вудушным, и у них тоже внедрен патч пинкофига через инфо-плист. Но мы уже работаем над своей версией, а их версия более не развивается.
Конкретных достижений у меня нет, вот еще с названиями устройств экпериментирую, хочу, чтобы в панели "Звук" микрофоны были разные, и уже нашел, как это делается.
Еще странность: я сделал два устройства, но когда я втыкаю внешний микрофон, оба устройства его слышат. Внутренний пока молчит.
Такое впечатление, что обе ноды замыкаются на внешнее гнездо, но не на внутренний микрофон. Как это может быть?

Aug 27 2009, 07:47 AM




- Advanced Member
- Group: Developer
- Posts: 106
QUOTE (Slice @ Aug 27 2009, 12:52 AM)

Твои советы завтра же буду внедрять. Я там уже немало поковырялся в исходниках, да еще исверил с оригинальными 2.2. Оказалось, что твой метод доступа к префПанели практически совпадает с вудушным, и у них тоже внедрен патч пинкофига через инфо-плист. Но мы уже работаем над своей версией, а их версия более не развивается.
Сегодня я взял ноут с собой на работу, так что могу тебе помогать.
QUOTE (Slice @ Aug 27 2009, 12:52 AM)

Конкретных достижений у меня нет, вот еще с названиями устройств экпериментирую, хочу, чтобы в панели "Звук" микрофоны были разные, и уже нашел, как это делается.
Здорово. Может нам выложить исходники проекта в какой-нибудь публичный SVN сервер. Так будет проще одновременно работать над ним. Ты пользовался системой SVN?
QUOTE (Slice @ Aug 27 2009, 12:52 AM)

Еще странность: я сделал два устройства, но когда я втыкаю внешний микрофон, оба устройства его слышат. Внутренний пока молчит.
Такое впечатление, что обе ноды замыкаются на внешнее гнездо, но не на внутренний микрофон. Как это может быть?
Возможно те данные о цепочках которые определил VoodooHDA не верны? А может верны, но сигнал все же проходит от внешнего микрофона к одному из цифровых входов.
Взгляни на схему которую я высылал тебе вместе со статьей. У меня два из трех микрофонов (ноды 18h и 19h) подключены к нодам 22h и 23h одновременно. Таким образом существуют две альтернативные цепочки от каждого микрофона к цифровому входу микросхемы. Например 18->22->9 и 18->23->8
Даже если нода 23 будет помечена в VoodooHDA как отключенная она может работать если входной и выходной усилители этой ноды будут иметь значения усиления по умолчанию отличные от 0.
Ноутбук Acer Aspire 5930G-733G25Mi
Mac OS iPC OSx86 Leopard 10.5.6 [Intel AMD SSE2 SSE3] Final Release + Apple Update 10.5.7 + Apple Update 10.5.8
Процессор T5800 Intel Core 2 Duo
Chipset Mobile Intel PM45 Express / ICH9-M
Видео nVidia GeForce 9600M GT с 512 Мб DDR3 видеопамяти
Звук Realtek HDA ALC888S-VC2
WebCam Acer CrystalEye 1 Мегапиксель - конфликтует с AppleHPET.kext и не дает заснуть
Сеть Marvell Yukon 88E8071 Gigabit Ethernet - не работает
WiFi intel 5100 802.11a/b/g не работает - заменена на Atheros mini PCI-e AR5006ER