IPB

Welcome Guest!

Returning User? Login here.

Want membership privileges? Register here.

40 Pages V  « < 7 8 9 10 11 > »   
Start a new topic Add Reply
> Voodoohda
Slice
post Sep 29 2009, 07:10 PM
Post #161
QUOTE (AutumnRain @ Sep 29 2009, 12:12 AM) *
У меня стало налаживаться со свободным временем, буду потихоньку втягиваться в процесс.
Если я правильно тебя понимаю, то в последних версиях ты экспериментировал с числом создаваемых регуляторов?
Для нормальной отладки этого процесса нам будет не хватать данных дампа. При некоторых положениях регулятора часть нод будут переводиться в состояние force_mute которое в дампе не видно

Насчет того, чтобы показать в дампе forcemute - хорошая идея, постараюсь в ближайшее время вставить в программу.
В настоящий момент ситуация такова: я делал полный автодетект всех входов и всех выходов, и на Сигмателе все это отладил в разных вариантах группировки устройств. Версия 242. Но когда ее выложил, тут же получил шквал отзывов, что выход молчит. После длинного разбирательства, что не так, я понял, что врет изначальный алгоритм с версии 021, который создает массив контролей. В той версии вранье приводило к нерабочим микрофонам. В версии 235 мне, опять-таки некорректным способом удалось оживить микрофоны у какой-то части пациентов, но без автодетекта. В версии 242 одеяло передвинулось с левого края на правый, но осталось той же ширины. Вся проблема в миксерах, которые работают как со входными пинами, так и с выходными. На Сигмателе у меня их нет, вот и все работает. А на ALC883-888
CODE
    nid=23 [pin: Line-out (Grey Jack)]
      |
      + <- nid=15 [audio mixer] [src: pcm, mix]
             |
             + <- nid=5 [audio output] [src: pcm]
             + <- nid=11 [audio mixer] [src: mix]

Record:

    nid=8 [audio input]
      |
      + <- nid=35 [audio mixer] [src: speaker, line, mic, mix]
             |
             + <- nid=24 [pin: Microphone (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]

Input Mix:

    nid=11 [audio mixer]
      |
      + <- nid=24 [pin: Microphone (Pink Jack)] [src: mic]
      + <- nid=25 [pin: Microphone (Pink Jack)] [src: monitor]
      + <- nid=26 [pin: Line-in (Blue Jack)] [src: line]
      + <- nid=29 [beep widget] [src: speaker]

Я пока не разобрал алгоритм работы этого 11 миксера, но похоже, драйвер тоже не понимает, что с ним делать.
Пожалуйста, прочитайте ЧаВо!
My page
AutumnRain
post Oct 1 2009, 04:10 PM
Post #162
QUOTE (Slice @ Sep 29 2009, 11:10 PM) *
Насчет того, чтобы показать в дампе forcemute - хорошая идея, постараюсь в ближайшее время вставить в программу.
В настоящий момент ситуация такова: я делал полный автодетект всех входов и всех выходов, и на Сигмателе все это отладил в разных вариантах группировки устройств. Версия 242. Но когда ее выложил, тут же получил шквал отзывов, что выход молчит. После длинного разбирательства, что не так, я понял, что врет изначальный алгоритм с версии 021, который создает массив контролей. В той версии вранье приводило к нерабочим микрофонам. В версии 235 мне, опять-таки некорректным способом удалось оживить микрофоны у какой-то части пациентов, но без автодетекта. В версии 242 одеяло передвинулось с левого края на правый, но осталось той же ширины. Вся проблема в миксерах, которые работают как со входными пинами, так и с выходными. На Сигмателе у меня их нет, вот и все работает. А на ALC883-888
Я пока не разобрал алгоритм работы этого 11 миксера, но похоже, драйвер тоже не понимает, что с ним делать.


У меня есть одна особенность в реализации этого миксера: Встроенный микрофон не заведен в этот миксер nid 11. Внешний и Line-in заведены, а встроенный нет. И из-за этого когда работают внешний микрофон или Line-in я слышу свой голос в колонках, а когда работает внутренний - в колонках тишина. Возможно в этом роль миксера 11 - разгрузить микросхему оцифровки сигнала для создания усиленной копии сигнала приходящей на вход и выдать его сразу на выход минуя микросхему? Только зачем в него beep widget заведен?

P.S. Только мне не ясно чем этот миксер тебе помешал? Его можно просто отключить и связь цифрового выхода с колонками это никак не повлияет.

This post has been edited by AutumnRain: Oct 1 2009, 04:12 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
Slice
post Oct 1 2009, 06:19 PM
Post #163
QUOTE (AutumnRain @ Oct 1 2009, 07:10 PM) *
У меня есть одна особенность в реализации этого миксера: Встроенный микрофон не заведен в этот миксер nid 11. Внешний и Line-in заведены, а встроенный нет. И из-за этого когда работают внешний микрофон или Line-in я слышу свой голос в колонках, а когда работает внутренний - в колонках тишина. Возможно в этом роль миксера 11 - разгрузить микросхему оцифровки сигнала для создания усиленной копии сигнала приходящей на вход и выдать его сразу на выход минуя микросхему? Только зачем в него beep widget заведен?

P.S. Только мне не ясно чем этот миксер тебе помешал? Его можно просто отключить и связь цифрового выхода с колонками это никак не повлияет.

beep widget - тоже источник звука, как и микрофон, так что логично, что он заведен на миксер.
Я не уверен, что мне мешает именно 11 миксер. Посмотри еще раз мой отчет в посте 158.
Там где Microphone volume имеется противоречие между версиями 235 и 242. А именно усилитель расположен не там, не на той ноде. А почему?
Разница между версиями вот:
CODE
            if ((widget->type == HDA_PARAM_AUDIO_WIDGET_CAP_TYPE_PIN_COMPLEX) || widget->waspin)
                controls[cnt].ndir = HDA_CTL_IN;
            else
                controls[cnt].ndir = HDA_CTL_OUT;

Когда я поставил && вместо || я получил нерабочий выход.
Все, понял. Это условие касается не только пинов, но и миксеров. Например 11-ый. Сейчас буду смотреть дампы и сравнивать результаты.
Пожалуйста, прочитайте ЧаВо!
My page
Slice
post Oct 1 2009, 07:54 PM
Post #164
Ну вот теперь есть и результат
[attachment=572:VoodooHD..._Leo_243.zip]
[attachment=573:VoodooHD...2_64_243.zip]

Attached File  voodoohda_src.243.zip ( 3.82MB ) Number of downloads: 2827

Работают все входы и все выходы с автодетектом на двух компах
1. Dell 1525, Sigmatel9228, Snow 10.6.1 32bits
Применил такой патч
CODE
            <key>NodesToPatch</key>
            <array>
                <dict>
                    <key>Codec</key>
                    <integer>2</integer>
                    <key>Config</key>
                    <string>0x90a70120</string>  -- внутренний аналоговый моно-микрофон, нет в линукс-дампе
                    <key>Node</key>
                    <integer>12</integer>
                </dict>
                <dict>
                    <key>Codec</key>
                    <integer>2</integer>
                    <key>Config</key>
                    <string>0x02a1102f</string>  -- микрофонное гнездо
                    <key>Node</key>
                    <integer>14</integer>
                </dict>
                <dict>
                    <key>Codec</key>
                    <integer>2</integer>
                    <key>Config</key>
                    <string>0x90a6e140</string>  -- внутренний цифровой стерео-микрофон, чувствительность низкая, зато не шумит
                    <key>Node</key>
                    <integer>19</integer>
                </dict>
                <dict>
                    <key>Codec</key>
                    <integer>2</integer>
                    <key>Config</key>
                    <string>0x02011014</string>  -- поместил линейный выход в одну группу с наушниками и спикером
                    <key>Node</key>
                    <integer>15</integer>
                </dict>
            </array>

2. GA-965P, ALC883, Leo 10.5.8 -- чистый инфо-плист. Все по умолчанию.
Замечания еще есть, возможны улучшения.
Пожалуйста, прочитайте ЧаВо!
My page
cVad
post Oct 1 2009, 10:40 PM
Post #165
Ноут Benq R56 - Conexant Cx20549 - все заработало.
* 10.6.4 * iMac9,1 * E8400(3.6) * Palit GTS250 512Mb * ASUS P5B Deluxe ICH8R JMicron363 AD1988B * home *
Slice
post Oct 2 2009, 05:50 PM
Post #166
QUOTE (quark @ Oct 2 2009, 03:49 PM) *
Вот фото паники последнего VoodooHDA и звуковухи ALC888 (GA-EP43-S3L, ICH10)

[attachment=580:VoodooHDA_Panic.jpg]

ioreg: [attachment=581:ioreg_quark.txt]



А это, пусть, пока, тут повисит...
ALC888 datasheet: http://realtek.info/pdf/ALC888_1-0.pdf
ICH10 datasheet: http://www.intel.com/assets/pdf/datasheet/319973.pdf

Позволь поинтересоваться, а это ты не забыл выбросить перед испытанием ВудуХДА?
CODE
    | |   |   |   "CFBundleIdentifier" = "com.apple.driver.AppleAzaliaController"

И еще, попробуй IOPCIFamily 2.6.2. От этого тоже может зависеть.
Однако, КП с ВудуХДА пока не исключены, нужно просто попытаться загрузиться еще раз, непонятно пока, в чем беда с холодным запуском. Также непонятны проблемы со слипом.


QUOTE (AutumnRain @ Oct 2 2009, 07:35 PM) *
Отличная новость. smile.gif
Теперь нужно доделать автосохранение настроек регуляторов (AppleHDA использует для этого IORegistryEntry).
И нужно придумывать нормальный способ тестирования драйвера. А то у одного kernel panic у другого комп не просыпается.

dong предложил "единственно возможный" способ автосохранения с использованием хелпера, только я что-то утерял его пост. Я ему верю, поскольку он программист и достаточно глубоко погрузился в эту тему. А IORegistryEntry скорее всего для записи в efiNVRAM. Не уверен, что на хакинтошах это возможно. С другой стороны, я бы выбрал более простой путь: сделать настройки по-умолчанию оптимальными ( в текущей версии забыл сделать ненулевым iMix), а общую громкость сама Эппл сохраняет. И, кстати, ее нужно использовать, а не перезаписывать.
По-прежнему вопрос об автосмене названий.
Вопрос о необходимости getExtDump. Сейчас он, по-моему, и не работает. Проще удалить все лишние коды, да добавить в общий дамп. Но это тебе работа, как автору этого дампа.
В текущей версии все равно есть ошибки, но уже не столь очевидные. На моем ALC883 передний микрофон работает тихо, но с шумами, надо бы отловить, откуда идет звук, а откуда шумы, похоже тоже ошибка переключений. Еще кто-то говорил о такой же проблеме.
Насчет просыпания - буду проверять, поскольку у меня сон, наконец-то, заработал. Кстати, вуду ему не мешал.
Там проблема в том, что после просыпания ставятся значения регулировок по-умолчанию, а надо бы сохранять текущие настройки.

Да, проверил, после просыпания, если оно произошло, либо КП, либо звук хрипит. Зато теперь есть на чем проверять в чем дело.
Похоже надо PCI дамп делать.
Рецепт на пробуждение
CODE
bash-3.2# kextunload -v /System/Library/Extensions/VoodooHDA.kext
(kernel) Can't unload kext org.voodoo.driver.VoodooHDA; classes have instances:
(kernel)     Kext org.voodoo.driver.VoodooHDA class VoodooHDADevice has 1 instance.
(kernel)     Kext org.voodoo.driver.VoodooHDA class VoodooHDAEngine has 5 instances.
Failed to unload org.voodoo.driver.VoodooHDA - (libkern/kext) kext is in use or retained (cannot unload).
bash-3.2# kextutil /System/Library/Extensions/VoodooHDA.kext
bash-3.2#

После чего звук снова хороший.

Еще плохая новость: выдернул наушники в процессе проигрывания музыки и получил КП. Некорректная обработка прерывания? Функция LOCK()? Наверно, КП на старте тоже с этим связано.
Пожалуйста, прочитайте ЧаВо!
My page
quark
post Oct 3 2009, 05:01 PM
Post #167
QUOTE (Slice @ Oct 2 2009, 08:50 PM) *
Позволь поинтересоваться, а это ты не забыл выбросить перед испытанием ВудуХДА?
CODE
    | |   |   |   "CFBundleIdentifier" = "com.apple.driver.AppleAzaliaController"

И еще, попробуй IOPCIFamily 2.6.2. От этого тоже может зависеть.
Однако, КП с ВудуХДА пока не исключены, нужно просто попытаться загрузиться еще раз, непонятно пока, в чем беда с холодным запуском. Также непонятны проблемы со слипом.


"ioreg" я делал уже убив Voodoo и, кажись, вернув назад старые кексты. Это не первый раз я пробую вуду, и каждый раз ловлю панику и истерику ядра. Естественно все AppleHDA и иже с ними я убиваю.
IOPCIFamily 2.6.2 попробую с понедельника.
At work: Leopard 10.5.8 (iMac 7,1) / GA-EP43-S3L . ICH10 . jMicron JMB368 . ALC888 / Dual Core E5200 / 4GB 800MHz RAM
At home: Leopard 10.5.7 / ASUS M2N-E . nForce570 . AD1988b / Athlon 64 3200+ / 4GB 800MHz RAM
Slice
post Oct 4 2009, 08:52 AM
Post #168
QUOTE (Bugagazavr @ Oct 3 2009, 08:53 PM) *
Да, теперь когда я поставил IOPCIFamily 2.6.2 для снежного, ось грузится без паники как и без самого вуду.
[attachment=592:________...50.31_PM.png]
[attachment=593:ioreg_bugaga.txt]

Судя по всему автодетек не везде работает.

Извини, но в таком ответе информации для меня тоже не густо
CODE
    | |   +-o pci8086,3a30@1F,3  <class IOPCIDevice, id 0x1000001ab, registered, matched, active, busy 0 (288 ms), retain 7>
    | |   +-o sound@1B  <class IOPCIDevice, id 0x1000001ac, registered, matched, active, busy 0 (1188 ms), retain 7>
    | |   +-o pci8086,2e20@0  <class IOPCIDevice, id 0x1000001ad, registered, matched, active, busy 0 (125 ms), retain 7>

ioreg -lw0 -x >ioregBugaga.txt

Для Снежного IOPCIFamily 2.6.3
Пожалуйста, прочитайте ЧаВо!
My page
Bugagazavr
post Oct 4 2009, 09:26 AM
Post #169
Slice, да, сечас посмотрел версию, 2.6.3.

вот ioreg -lw0 -x >ioregBugaga.txt
Attached File  ioregBugaga.txt ( 987.22K ) Number of downloads: 2


Хочу заметить, что имею две звуковые, одна VIA а другая Creative X-Fi Xtreme Audio, на обеих модифицированая вуду работать не захотела.
Сразу извеняюсь если вопросы нубские и т.д. с хаком недавно.

Думаю было бы актуально если бы товарищ Mac'ovod отписался что у него и как, так как чипы впринципе должны быть схожи, разница лишь в последней букве.

This post has been edited by Bugagazavr: Oct 4 2009, 09:31 AM
Name: iMac11.1, Mac Os X: Snow Leopard 10.6.4 - 64 bit
CPU: Core i7 930, MB: P6X58D-E, GPU: nVidia GeForce Palit 9600GT, RAM: 3x2GB Kingston 1600 MHz
SOUND: Realtek ALC889 - Work with AppleHDA, LAN: Marvell 88E8056 - Yukon Injector, HDD: Seagete 250 gb SATAII, Seagate 2x500 gb SATAII
quark
post Oct 5 2009, 10:03 AM
Post #170
Так. Завел вуду. Судя по IOReg'у оно определило карточку и HDMI у видяхи. Звука пока не добился, и в getdump'e только HDMI наблюдается...

Complex output — даже не уверен, что это, но ни на одном из выходов звук не появляется smile.gif
Headphones (Green Front) — проверить не могу - системник старый, на переднюю панель не выведен звук.
SPDIF-out (Orange Rear) — проверить не в состоянии smile.gif
Attached File  Sound.png ( 71.05K ) Number of downloads: 17


Attached File  ioreg_quark.txt ( 419.37K ) Number of downloads: 5

Attached File  getdump_quark.txt ( 3.36K ) Number of downloads: 5

Attached File  getExtDump_quark.txt ( 950bytes ) Number of downloads: 2
Reason for edit: Читай ЧаВо!
At work: Leopard 10.5.8 (iMac 7,1) / GA-EP43-S3L . ICH10 . jMicron JMB368 . ALC888 / Dual Core E5200 / 4GB 800MHz RAM
At home: Leopard 10.5.7 / ASUS M2N-E . nForce570 . AD1988b / Athlon 64 3200+ / 4GB 800MHz RAM
quark
post Oct 6 2009, 07:58 AM
Post #171
QUOTE (quark @ Oct 5 2009, 01:03 PM) *
Так. Завел вуду. Судя по IOReg'у оно определило карточку и HDMI у видяхи. Звука пока не добился, и в getdump'e только HDMI наблюдается...

Complex output — даже не уверен, что это, но ни на одном из выходов звук не появляется smile.gif
Headphones (Green Front) — проверить не могу - системник старый, на переднюю панель не выведен звук.
SPDIF-out (Orange Rear) — проверить не в состоянии smile.gif
Attached File  Sound.png ( 71.05K ) Number of downloads: 17


Attached File  ioreg_quark.txt ( 419.37K ) Number of downloads: 5

Attached File  getdump_quark.txt ( 3.36K ) Number of downloads: 5

Attached File  getExtDump_quark.txt ( 950bytes ) Number of downloads: 2


... у меня встроенная HD Audio звуковуха ALC888 на маме с чипсетом ICH10 -> DeviceID=0x3a3e VendorID=0x8086
At work: Leopard 10.5.8 (iMac 7,1) / GA-EP43-S3L . ICH10 . jMicron JMB368 . ALC888 / Dual Core E5200 / 4GB 800MHz RAM
At home: Leopard 10.5.7 / ASUS M2N-E . nForce570 . AD1988b / Athlon 64 3200+ / 4GB 800MHz RAM
AutumnRain
post Oct 6 2009, 09:55 AM
Post #172
2 Slice
Сейчас я занимаюсь авто-сменой названия выхода в настройках звука при подключения устройства к разъему.
Расскажи как это выглядит в AppleHDA:

1. сразу видны оба названия (Например Speaker и Headphone), и выделение перескакивает с одного устройства на другое.
2. видно только одно название и оно сменяется другим.

Хорошо бы скриншот еще. smile.gif

This post has been edited by AutumnRain: Oct 6 2009, 09:55 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
Slice
post Oct 6 2009, 11:01 AM
Post #173
QUOTE (AutumnRain @ Oct 6 2009, 01:55 PM) *
2 Slice
Сейчас я занимаюсь авто-сменой названия выхода в настройках звука при подключения устройства к разъему.
Расскажи как это выглядит в AppleHDA:

1. сразу видны оба названия (Например Speaker и Headphone), и выделение перескакивает с одного устройства на другое.
2. видно только одно название и оно сменяется другим.

Хорошо бы скриншот еще. smile.gif

Смена названия происходит на глазах через полсекунды после вставки джека
Attached File  ______________1.png ( 46.87K ) Number of downloads: 19
Attached File  ______________2.png ( 49.66K ) Number of downloads: 18

Было бы идеально это повторить. Попробую поискать в дизассемблированном виде, какие процедуры суперкласса используются.

Кстати, насущная проблема в данный момент - участились КП, нужно понять, как их ловить.
Если сделаешь свою версию - не забудь поставить gMixerDefault ненулевым для всех устройств. В частности IMix нужно сделать 50.
Пожалуйста, прочитайте ЧаВо!
My page
AutumnRain
post Oct 6 2009, 11:32 AM
Post #174
QUOTE (Slice @ Oct 6 2009, 03:01 PM) *
Смена названия происходит на глазах через полсекунды после вставки джека
Было бы идеально это повторить. Попробую поискать в дизассемблированном виде, какие процедуры суперкласса используются.


Т.е. вариант 2?
Почему на скриншоте "Встроенные громкоговорители" и "Наушники"?
Может тогда вариант 1??

QUOTE (Slice @ Oct 6 2009, 03:01 PM) *
Кстати, насущная проблема в данный момент - участились КП, нужно понять, как их ловить.


А получить креш дамп можно?

QUOTE (Slice @ Oct 6 2009, 03:01 PM) *
Если сделаешь свою версию - не забудь поставить gMixerDefault ненулевым для всех устройств. В частности IMix нужно сделать 50.


Не уверен в цели сообразности для всех устройств, а для IMix поставлю.

Ноутбук 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
Slice
post Oct 6 2009, 12:11 PM
Post #175
QUOTE (AutumnRain @ Oct 6 2009, 02:32 PM) *
Т.е. вариант 2?
Почему на скриншоте "Встроенные громкоговорители" и "Наушники"?
Может тогда вариант 1??

Нет нет, именно вариант 2. А надписи в эппловском кексте тоже неправильные.
При вставке разъема происходит смена только одной надписи, как видишь на картинке.
QUOTE
А получить креш дамп можно?

Фотографии неоднократно показывали и на лайфе, и здесь в забугорной ветке. А зафиксировать в цифрах это нельзя.
Пожалуйста, прочитайте ЧаВо!
My page
Slice
post Oct 6 2009, 07:50 PM
Post #176
Гениально! Ты это сделал! Проверяю на ALC883 - очень сложный кодек, на нем много ошибок видно, зато нет КП. Вот только звук изменился. Отчитаюсь ниже. Сейчас про автодетект.
Attached File  ______________3.png ( 42.96K ) Number of downloads: 22
Attached File  ______________4.png ( 45.41K ) Number of downloads: 10
Attached File  ______________5.png ( 47.5K ) Number of downloads: 10
Attached File  ______________6.png ( 51.46K ) Number of downloads: 8

Однако из четырех линейных выходов детектятся только два, первый и последний. Входов два, детектятся нормально, но работают сразу все.
Дамп следующий
CODE
Playback:

nid=20 [pin: Line-out (Green Rear)]
|
+ <- nid=12 [audio mixer] [src: pcm, mix] bindSeq=00000001
|
+ <- nid=2 [audio output] [src: pcm] bindSeq=00000001
+ <- nid=11 [audio mixer] [src: mix] bindSeq=00008001

nid=21 [pin: Line-out (Black Rear)]
|
+ <- nid=14 [audio mixer] [src: pcm, mix] bindSeq=00000004
|
+ <- nid=4 [audio output] [src: pcm] bindSeq=00000004
+ <- nid=11 [audio mixer] [src: mix] bindSeq=00008001

nid=22 [pin: Line-out (Orange Rear)]
|
+ <- nid=13 [audio mixer] [src: pcm, mix] bindSeq=00000002
|
+ <- nid=3 [audio output] [src: pcm] bindSeq=00000002
+ <- nid=11 [audio mixer] [src: mix] bindSeq=00008001

nid=23 [pin: Line-out (Grey Rear)]
|
+ <- nid=15 [audio mixer] [src: pcm, mix] bindSeq=00000010
|
+ <- nid=5 [audio output] [src: pcm] bindSeq=00000010
+ <- nid=11 [audio mixer] [src: mix] bindSeq=00008001

Record:

nid=8 [audio input]
|
+ <- nid=35 [audio mixer] [src: speaker, line, mic, mix] bindSeq=00008001
|
+ <- nid=24 [pin: Microphone (Pink Rear)] [src: mic] bindSeq=00000001
+ <- nid=26 [pin: Line-in (Blue Rear)] [src: line] bindSeq=00008000
+ <- nid=29 [beep widget] [src: speaker] bindSeq=00000000
+ <- nid=11 [audio mixer] [src: mix] bindSeq=00008001

Input Mix:

nid=11 [audio mixer]
|
+ <- nid=24 [pin: Microphone (Pink Rear)] [src: mic] bindSeq=00000001
+ <- nid=25 [pin: Microphone (Pink Front)] [src: monitor] bindSeq=00000001
+ <- nid=26 [pin: Line-in (Blue Rear)] [src: line] bindSeq=00008000
+ <- nid=29 [beep widget] [src: speaker] bindSeq=00000000

Очевидно 11 миксер всегда включен со всеми его входами, и звук, соответственно, всегда грязный, с шумами, скрипами.
Как ни странно, но отключать миксер нельзя, от него зависит громкость линейного выхода.
Следующие картинки для пояснения ситуации
Attached File  ______________1.png ( 55.88K ) Number of downloads: 10
Attached File  ______________2.png ( 57.21K ) Number of downloads: 7

И для линейного выхода, и для микрофона есть регулятор IMix. И тот, и другой влияют на громкость воспроизведения ohmy.gif .
Причем в моей версии 243 влияет 4 микрофон, а в твоей 244 - пятый.
Разницы в дампе нет, кроме того, что в твоей версии у всех миксеров появилось ненулевое значение на выходе, как и договаривались
Output val: [0x00 0x00] -- 243
Output val: [0x13 0x13] -- 244
Однако, звук резко испортился. Такое бывает, когда два стереоканала смешивают в противофазе.
Нахожу в дампе еще такую вешь
CODE
            nid: 11
           Name: audio mixer
     Widget cap: 0x0020010b
                 STEREO
    Association: -2 (0x00008001)
            OSS: mix (mix)
      Input amp: 0x80051f17
                 mute=1 step=31 size=5 offset=23
      Input val: [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80] [0x80 0x80]
    connections: 10 enabled 5  -- это почему это 5 разрешенных?
          |
          + <- nid=24 [pin: Microphone (Pink Rear)]
          + <- nid=25 [pin: Microphone (Pink Front)]
          + <- nid=26 [pin: Line-in (Blue Rear)]
          + [DISABLED] <- nid=27 [pin: Headphones (Green Front)]
          + [DISABLED] <- nid=28 [pin: CD (CD)] [DISABLED]
          + <- nid=29 [beep widget]
          + [DISABLED] <- nid=20 [pin: Line-out (Green Rear)]     -- хоть этот выход и закрыт, звук здесь явно прорывается в обратную связь
          + [DISABLED] <- nid=21 [pin: Line-out (Black Rear)]
          + [DISABLED] <- nid=22 [pin: Line-out (Orange Rear)]
          + [DISABLED] <- nid=23 [pin: Line-out (Grey Rear)]

И, кстати, это объясняет эффект с записью воспроизводимого звука. Вот отчет:
http://www.projectosx.com/forum/index.php?...post&p=3053
Цепочка такая: iTunes посылает звук на ноду 2. Звук проходит через ноду 12 и на линейный выход 20. Но затем пробирается на миксер 11, с него через миксер 35 приходит на ноду 8, с которой Квик-тайм записывает звуки. Класс! Вот только эта обратная связь может приглушить звук, или испортить.
Хорошо бы в префпанели сделать кнопочку для отключения этого миксера, а то для него там ничего не предусмотрено.
Пожалуйста, прочитайте ЧаВо!
My page
Slice
post Oct 9 2009, 08:24 AM
Post #177
Слегка поправил проект, звук улучшился, но требуются более капитальные изменения.
Похоже gMixerDefaults слишком общая вешь, а к разным миксерам нужно подходить индивидуально, да и вообще, неплохо бы создать входные устройства (engine) для некоторых из них, например, для ноды 11 - Input Monitor.
Что еще нужно сделать - просмотреть, почему детектятся только первое и последнее устройство. Я, конечно, могу прописать в инфо-плисте, чтобы все выходы были раздельными, но лучше, чтобы драйвер работал правильно с чистым плистом, иначе зачем вообще было заниматься автодетектом?

Эта версия имеет кардинальное улучшение - автосмена названия, так что версию поменял на 0.2.5
Attached File  voodoohda_patching.25.zip ( 192.43K ) Number of downloads: 43
Пожалуйста, прочитайте ЧаВо!
My page
AutumnRain
post Oct 11 2009, 06:11 AM
Post #178
QUOTE (Slice @ Oct 9 2009, 12:24 PM) *
Похоже gMixerDefaults слишком общая вешь, а к разным миксерам нужно подходить индивидуально, да и вообще, неплохо бы создать входные устройства (engine) для некоторых из них, например, для ноды 11 - Input Monitor.


Можно разделить миксеры на несколько типов и добавить их настройки в список gMixerDefaults и PrefPanel. Кстати, PrefPanel нужно будет переделать. так чтобы она получала названия регуляторов от драйвера и их отображала. Тогда в будущем не нужно будет менять PrefPanel если у нас снова измениться список регуляторов.

Мне кажется, что назрела необходимость в сохранении настроек. Настроить все усилители по-умолчанию - задача не выполнимая. Можно сделать возможность чтения настроек gMixerDefaults из Info.plist, но это кастели. Я не верю, чтобы у драйвера не было возможность сохранить настройки где-нибудь в системе, а потом прочитать их при следующем старте. Взять тот же AppleHDA, он же может запомнить положение своего регулятора громкости. Должны быть и другие примеры. Не обязательно сохранять настройки в файл, главное сохранить.

QUOTE (Slice @ Oct 9 2009, 12:24 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
Slice
post Oct 11 2009, 06:50 AM
Post #179
Во-первых, мои поздравления с новым рангом Developer! Теперь у тебя больше места для аттачмента.

QUOTE (AutumnRain @ Oct 11 2009, 10:11 AM) *
Можно разделить миксеры на несколько типов и добавить их настройки в список gMixerDefaults и PrefPanel. Кстати, PrefPanel нужно будет переделать. так чтобы она получала названия регуляторов от драйвера и их отображала. Тогда в будущем не нужно будет менять PrefPanel если у нас снова измениться список регуляторов.

Если честно, то я не знаю, как это сделать. А вообще-то у нас названия регуляторов создаются по тому же механизму catPinName() как и энжайны, вопрос в том, делать ли смену названия также в преф-панели, или же там сделать разные вкладки. Кстати, есть отчеты, что у кого-то преф-панель не видит нужного кодека.
QUOTE
Мне кажется, что назрела необходимость в сохранении настроек. Настроить все усилители по-умолчанию - задача не выполнимая. Можно сделать возможность чтения настроек gMixerDefaults из Info.plist, но это кастели. Я не верю, чтобы у драйвера не было возможность сохранить настройки где-нибудь в системе, а потом прочитать их при следующем старте. Взять тот же AppleHDA, он же может запомнить положение своего регулятора громкости. Должны быть и другие примеры. Не обязательно сохранять настройки в файл, главное сохранить.

Dong углублялся в эту тему, и заявил, что путь, как это делает Эппл для нас закрыт, единственный способ - вставить ХДАхелпер в автозагрузку, чтобы он писал в файл и читал из файла все настройки. Сможешь ли ты его переплюнуть? Хотя вот есть мысль сделать также, как делает загрузчик, который вносит какие-то параметры в реестр (модель ууайди и т.п.)
QUOTE
Ты имеешь ввиду чтобы сделать возможность автодетекта более двух устройств в группе?

Собственно автодетект и переключение звука на три устройства у меня работает (спикер, наушники и линейный выход), не работает смена названия.
Хотя подожди, на Сигмателе я еще не проверил последнюю версию.
Пожалуйста, прочитайте ЧаВо!
My page
Slice
post Oct 11 2009, 02:08 PM
Post #180
Что-то на Сигмателе вообще не происходит смена названий. Да и в логе нечисто
CODE
Oct 11 17:51:22 localhost kernel[0]: VoodooHDADevice[0x2398d000]::init
Oct 11 17:51:22 localhost kernel[0]: Enabling headphone/speaker audio routing switching at node 10:
Oct 11 17:51:22 localhost kernel[0]: Enabling mic/monitor audio routing switching at node 14:
Oct 11 17:51:22 localhost kernel[0]: Enabling headphone/speaker audio routing switching at node 15:
Oct 11 17:51:22 localhost kernel[0]: Pin sense: cad 2 nid=10 res=0x00000000
Oct 11 17:51:22 localhost kernel[0]: setDesc  can't find engine for  Speaker (Analog) channel 1 assoc 0
Oct 11 17:51:22 localhost kernel[0]: Pin sense: cad 2 nid=14 res=0x00000000
Oct 11 17:51:22 localhost kernel[0]: switch nid 21 conn 0 off
Oct 11 17:51:22 localhost kernel[0]: setDesc  can't find engine for  Microphone (Analog) channel 2 assoc 1
Oct 11 17:51:22 localhost kernel[0]: Pin sense: cad 2 nid=15 res=0x00000001
Oct 11 17:51:22 localhost kernel[0]: setDesc  can't find engine for  Line-out (Black Front) channel 1 assoc 0
Oct 11 17:51:22 localhost kernel[0]: warning: found invalid min/max dB (using default -22.5 -> 0.0dB range)

Почему энжайн не найден? Может быть процедура стартует раньше времени? С другой стороны, неплохо было бы при старте системы прописать название, какой джек уже воткнут.
Этот преждевременный старт, наверно, может объяснить и КП в некоторых случаях. Энжайн еще не создан, а процедуры класса уже вызываются.
Жаль, не могу найти время получше врубиться в эту логику.
Пожалуйста, прочитайте ЧаВо!
My page

40 Pages V  « < 7 8 9 10 11 > » 
Add Reply Start a new topic
2 User(s) are reading this topic (2 Guests and 0 Anonymous Users)
0 Members: