Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Windows 98 SE (оптимизация и улучшение) — шестая часть

Автор: MisterGrim
Дата сообщения: 16.02.2011 16:26
Всё, дошло. Добавил идентификатор в Inf, опять поставил систему — звук автоматически определился и работает.
Автор: IFkO
Дата сообщения: 16.02.2011 19:40
MisterGrim
Молодец! Все правильно сделал. Буду в свой драйвер добавлять твои идентификаторы - спасибо за тестирование!

ethylmoth
Позор на мою лысую голову! Я зачем-то бьюсь над WDM-драйвером C-Media, а он у меня давным-давно сделан и выложен: http://bust.narod.ru/drv98/_ac97cm.zip
Ну, раз уж взялся, то все-таки его доработал напильником - отделил микшер в отдельный пакет. Прошу протестировать: http://bust.narod.ru/drv98/_cmiwdm.zip

Да, посмотрел драйвер crystal cs4235. Готов обсудить доработку.
Автор: MisterGrim
Дата сообщения: 16.02.2011 20:31
Однако это значит, что исходная предпосылка неверна:
(AC97.INF)

Цитата:
    ; SigmaTel Default Settings
%STAC97%    = STAC97,    PCI\VEN_8086&DEV_2415
%STAC97%    = STAC97,    PCI\VEN_8086&DEV_2445
%STAC97%    = STAC97,    PCI\VEN_8086&DEV_2485
%STAC97%    = STAC97,    PCI\VEN_8086&DEV_7195
Автор: IFkO
Дата сообщения: 16.02.2011 20:47
MisterGrim
Не совсем так: здесь задан обобщенный идентификатор, без &SUBSYS_..... То есть они на шару написали, что все интеловские чипсеты комплектуются их кодеками! Ничего себе! Но если где-то в другом месте найдется точный идентификатор, этот общешаровый будет отброшен. Не знаю, нужно ли его заглушать: Realtek с подобным подходом вешал систему, его заглушить просто пришлось, теперь пошли жалобы, что раньше кодек распознавался, а теперь нет.
Автор: MisterGrim
Дата сообщения: 17.02.2011 10:03
Насколько знаю, с идентификаторами AC'97 существует бардак, много пересечений. Даже, помнится, в своё время ставил на SoundMax драйверы от Realtek — т.е. не принудительно, штатным установщиком! Причём, что интересно, работало, хотя и не всё.
Кстати, видимо, именно поэтому у MS в 2000 и выше встроены драйверы AC'97 для усреднённых Intel/VIA/SiS звуковых контроллеров, без указания производителя.
Автор: IFkO
Дата сообщения: 17.02.2011 14:26
MisterGrim

Цитата:
у MS в 2000 и выше встроены драйверы AC'97 для усреднённых Intel/VIA/SiS звуковых контроллеров
где бы такие взять для Windows 98 ?
Автор: maxud
Дата сообщения: 17.02.2011 15:45
MisterGrim

Цитата:
Кстати, видимо, именно поэтому у MS в 2000 и выше встроены драйверы AC'97 для усреднённых Intel/VIA/SiS звуковых контроллеров, без указания производителя.

Уже пару раз (см.мой пост от 07-12-2008 в третьей части) в этой теме объяснял почему так получается. Поищите. Идея сделать очень простой, но универсальный драйвер не плоха, но споткнется на несовпадение разводки входов (и выходов) на матплатах разных производителей. Будет больно (я спотыкался при аналогичной попытке собрать универсальный драйвер для AD).
Автор: IFkO
Дата сообщения: 17.02.2011 16:26
maxud

Цитата:
Идея не плоха, но споткнется на несовпадение разводки
сдается мне, что разводка прописывается (например, для SoundMax) просто в настройках драйвера - в Реестре.
Автор: maxud
Дата сообщения: 17.02.2011 17:05
IFkO

Цитата:
сдается мне, что разводка прописывается (например, для SoundMax) просто в настройках драйвера - в Реестре.

Естественно, это есть в inf-файле. Собственно основное назначение SUBSYS именно сказать драйверу куда что заведено для конкретной модели матери. Поэтому для КАЖДОЙ модели матери (свой SUBSYS) надо иметь такую запись в драйвере. Возможно есть большая группа матерей с одинаковой разводкой, тогда достаточно иметь отдельную запись именно для нестандартной матери, а для остальных вообще без SUBSYS.
Есть правда еще один метод: некая програмулька которая сама смортит SUBSYS (или в нее он вводится вручную) которая добавляет для любой матери только одну запись именно для этой матери и позволяет изменять в этом inf-файле назначение входов/выходов. Т.е. имеем некий выбор по умолчанию, ставим драйвер и проверяем на СD-роме ли CD-ром ну и т.д. Если не попали снова запускаем програмульку и изменяем выбор, снова запись, переустановка, проверка. И так пока не попадем.
Автор: MisterGrim
Дата сообщения: 17.02.2011 17:11
Как-то сложно это всё... Эверест же определяет как-то? Сдаётся мне, у него просто более полная база.
Автор: maxud
Дата сообщения: 17.02.2011 17:14
MisterGrim

Цитата:
Как-то сложно это всё... Эверест же определяет как-то? Сдаётся мне, у него просто более полная база.

Да, у него просто большая база SUBSYS (скорее у него большая база матерей с их конфигурациями).
Автор: MisterGrim
Дата сообщения: 17.02.2011 17:36
Не думаю, что определение устройств PCI там как-то зависит от определения МП...
Впрочем, в данном случае всё проще, Realtek однозначно определяется по SUBSYS: всё с кодами SUBSYS_xxxx4005 — это Avance Logic, он же Realtek.
Автор: IFkO
Дата сообщения: 17.02.2011 18:01
maxud
я имел в виду, что драйвер-то может быть один, а вот ИНФов конечно будет очень много. Тут никуда не деться. Если даже делать это не через ИНФ, а вызовом программы, то она места займет не меньше, чем все эти ИНФы вместе взятые - в ней ведь должна быть та же полная база данных.

знатокам S3
Начал ковырять корейские драйверы. Изрядную часть пакета (как впрочем и прежнего) составляют некие утилиты с многоязычными переводами и API (Mesa.dll, Metal.dll и почему-то DirectX.cpl) В задаче спрашивается: а что будет без них? Потеряется только возможность дополнительной настройки или еще что-то? И есть ли где переводы этих утилит на русский?
Автор: maxud
Дата сообщения: 17.02.2011 18:25
IFkO

Цитата:
Если даже делать это не через ИНФ, а вызовом программы, то она места займет не меньше, чем все эти ИНФы вместе взятые - в ней ведь должна быть та же полная база данных.

А зачем ей база? Пользователь сам определяет правильно ли он установил назначение входов/выход.
Там достаточно иметь базу кодеков, а их относительно мало, или вообще методом тыка. Другое дело что не каждый пользователь способен проделать такую настройку.

Добавлено:
MisterGrim

Цитата:
Realtek однозначно определяется по SUBSYS: всё с кодами SUBSYS_xxxx4005

Ага, щас! У меня мать с реалтеком и субсис у нее 300E1695
PCI\VEN_1106&DEV_3059&SUBSYS_300E1695&REV_60\3&13C0B0C5&0&8D

Грубо говоря: в том числе субсис это то что возвращает устройство на запрос о его инентификации. Поскольку у нас этим устройством является AC97-link, то и возвращает он то что прописано в BIOS матери, т.е. само содержание этой строки определяется не тем что реально установлено на матери, а писателем BIOS. Но это не значит что вообще нельзя определить модель кодека. Можно, сам проверял, не было нужного кодека. заменил на более младшую модель. И драйвера в своей панели управления правильно его определили. Но это был realtek.
И похоже делается это с помощью специальных недокументированных команд кодека.

Но с реалтеком действительн проще: в его драйверах вообще нет субсисов! В отличие от других производителей драйверов.
Автор: MisterGrim
Дата сообщения: 17.02.2011 18:38
Так я же и не говорю, что все Realtek должны иметь такой ID. Но которые имеют — это Realtek.

Добавлено:
Из файла PCIDEVS.TXT:

Цитата:
1106:3059:1695:300E== [Realtek]


Добавлено:
Хотя по идее 1695 — это Epox. У Вас материнка Epox?
Автор: maxud
Дата сообщения: 17.02.2011 18:49
MisterGrim

Цитата:
У Вас материнка Epox?

Да, я дополнил свой предидущий пост, почему так получается.
Автор: MisterGrim
Дата сообщения: 17.02.2011 18:53
Не знаю. Мне кажется, единственный путь — тупо дополнять базу известными ID.
Грепнул упомянутый PCIDEVS.TXT на предмет строки 1695. Результат:
[more=показать]1002:4370:1695:6001== [Realtek]
1002:4370:1695:6002== [Realtek]
1002:4370:1695:6003== [Realtek]
1002:4370:1695:6004== [Realtek]
1002:4379:1695:6008=4379 SATA Controller (Epox RC410)
1002:4379:1695:6009=4379 SATA Controller (Epox RD580)
1002:437A:1695:6008=437A SATA Controller (Epox RC410)
1002:437A:1695:6009=437A SATA Controller (Epox RD580)
1002:4380:1695:600E==
1002:4380:1695:600F==
1002:4380:1695:6010==
1002:4382:1695:6001== [Realtek]
1002:4382:1695:6002== [Realtek]
1002:4382:1695:6003== [Realtek]
1002:4382:1695:6004== [Realtek]
1022:2093:1695:4002== [Realtek]
1022:2093:1695:4004== [Realtek]
1022:2093:1695:4006== [Realtek]
1022:2093:1695:4008== [Realtek]
1023:8500:1695:8500=VT8361/VT8601 Graphics Controller
1039:0900:1695:2002==
1039:6325:1695:9008=650 GUI 2D/3D Accelerator
1039:6330:1695:2007==
1039:6330:1695:2008==
1039:6330:1695:200D=Mirage Graphics
1039:6330:1695:200E=Mirage Graphics
1039:7012:1695:2000== [Onboard]
1039:7012:1695:2001== [Onboard]
1039:7012:1695:2002== [Realtek]
1039:7012:1695:2003== [C-Media]
1039:7012:1695:2004== [C-Media]
1039:7012:1695:2005== [Realtek]
1039:7012:1695:2006== [Realtek]
1039:7012:1695:2007== [Realtek]
1039:7012:1695:2008== [Realtek]
1039:7012:1695:2009== [Realtek]
1039:7012:1695:200A== [Realtek]
1039:7012:1695:200C== [Realtek]
1039:7012:1695:200D== [Realtek]
1039:7012:1695:200E== [Realtek]
1039:7012:1695:9008==
1095:3112:1695:9017== (EPoX 9017)
1095:3114:1695:9018=SiI 3512 SATARaid Controller
1095:3114:1695:902A=SiI 3114 SoftRaid 5 Controller (EPoX 902A)
1095:3132:1695:902C=SiI 3132 SoftRaid 5 Controller (EPoX 902C)
1095:3512:1695:9019=SiI 3512 SATARaid Controller (EPoX 9019)
10B7:1700:1695:9024=3Com Gigabit LOM (3C940)
10B9:5455:1695:5002== [Realtek]
10B9:5455:1695:5003== [Realtek]
10B9:5455:1695:5004== [Realtek]
10B9:5455:1695:5005== [Realtek]
10B9:5455:1695:5007== [Realtek]
10B9:5455:1695:5009== [Realtek]
10DE:003A:1695:1009== [Realtek]
10DE:003A:1695:100A== [Realtek]
10DE:003A:1695:100B== [Realtek]
10DE:003A:1695:100D== [Realtek]
10DE:003A:1695:1010== [Realtek]
10DE:003A:1695:1011== [Realtek]
10DE:003A:1695:1014== [Realtek]
10DE:003A:1695:1015== [Realtek]
10DE:003A:1695:101D== [Realtek]
10DE:0059:1695:1009== [Realtek]
10DE:0059:1695:100A== [Realtek]
10DE:0059:1695:100B== [Realtek]
10DE:0059:1695:100D== [Realtek]
10DE:0059:1695:1010== [Realtek]
10DE:0059:1695:1011== [Realtek]
10DE:0059:1695:101B== [Realtek]
10DE:006A:1695:1000== [Realtek]
10DE:006A:1695:1001== [C-Media]
10DE:006A:1695:1002== [Realtek]
10DE:006A:1695:1003== [C-Media]
10DE:006A:1695:1004==
10DE:006A:1695:1008== [Realtek]
10DE:006B:1695:1000==
10DE:006B:1695:1004==
10DE:008A:1695:100E== [Realtek]
10DE:008A:1695:100F==
10DE:008A:1695:1012== [Realtek]
10DE:008A:1695:1013== [Realtek]
10DE:00DA:1695:1005==
10DE:00DA:1695:1007== [Realtek]
10DE:00EA:1695:1005==
10DE:00EA:1695:1009== [Realtek]
10DE:00EA:1695:100A== [Realtek]
10DE:00EA:1695:100B== [Realtek]
10DE:00EA:1695:100C==
10DE:00EA:1695:100D== [Realtek]
10DE:026B:1695:1009== [Realtek]
10DE:026B:1695:100A== [Realtek]
10DE:026B:1695:100B== [Realtek]
10DE:026B:1695:100D== [Realtek]
10DE:026B:1695:1010== [Realtek]
10DE:026B:1695:1011== [Realtek]
10DE:026B:1695:1014== [Realtek]
10DE:026B:1695:1015== [Realtek]
10DE:026B:1695:1016== [Realtek]
10DE:026B:1695:1017== [Realtek]
10DE:026B:1695:1018== [Realtek]
10DE:026B:1695:101F== [Realtek]
10EC:8136:1695:9037== [Epox]
10EC:8136:1695:9037:01=RTL8101E PCIe Fast Ethernet Adapter [Epox]
10EC:8139:1695:4001== [EPoX]
10EC:8139:1695:9001== [EPoX]
10EC:8167:1695:9038== [Epox]
10EC:8168:1695:9036== [Epox]
10EC:8168:1695:9036:01=RTL8168B/8111B PCIe Gigabit Ethernet Adapter [Epox]
10EC:8169:1695:9022== [Epox]
1106:3058:1695:3002== [Avance]
1106:3059:1695:3003== [Vinyl]
1106:3059:1695:3004== [Vinyl]
1106:3059:1695:3005== [Vinyl]
1106:3059:1695:3009== [C-Media]
1106:3059:1695:300A== [C-Media]
1106:3059:1695:300B== [C-Media]
1106:3059:1695:300C== [Realtek]
1106:3059:1695:300D== [Realtek]
1106:3059:1695:300E== [Realtek]
1106:3059:1695:3010== [Realtek]
1106:3065:1695:3003==
1106:3065:1695:3004==
1106:3065:1695:3005==
1106:3065:1695:3006==
1106:3065:1695:300C==
1106:3065:1695:300D==
1106:3065:1695:300E==
1106:3065:1695:902E==
1106:3104:1695:900A=VT6202 USB EHCI Controller
1106:3104:1695:900A:63=VT6212 USB EHCI Controller
1106:3106:1695:900B=VIA Rhine III Fast Ethernet Adapter
1106:3119:1695:9027=VIA Velocity-Family Gigabit Ethernet Adapter
11AB:4320:1695:9025==
11AB:4351:1695:902B==
11AB:4352:1695:902D==
11AB:4362:1695:9029==
11AB:4363:1695:902F==
11AB:4364:1695:9032==
1283:8211:1695:9026=ITE IT8211 ATA/ATAPI Controller
1283:8212:1695:9026=ITE IT8212 ATA RAID Controller
1283:8212:1695:9031=ITE IT8212 ATA RAID Controller
1283:8212:1695:9039=ITE IT8212 ATA RAID Controller
13F6:0111:1695:9009==
197B:2360:1695:9034== [Epox]
197B:2361:1695:9034== [Epox]
197B:2363:1695:9034== [Epox]
197B:2365:1695:9034== [Epox]
197B:2366:1695:9034== [Epox]
8086:2445:1695:3002== [Realtek]
8086:2445:1695:3003== [Realtek]
8086:2445:1695:3004== [Realtek]
8086:2445:1695:3005== [SoundMAX]
8086:2445:1695:4000== [Realtek]
8086:2445:1695:4001== [Realtek]
8086:24C5:1695:4002== [Realtek]
8086:24C5:1695:4007== [Realtek]
8086:24C5:1695:4009== [Realtek]
8086:24C5:4005:1695== [Realtek]
8086:24D5:1695:4002== [Realtek]
8086:24D5:1695:4003== [C-Media]
8086:24D5:1695:4004== [Realtek]
8086:24D5:1695:4006== [Realtek]
8086:24D5:1695:4008== [Realtek]
8086:266E:1695:400A== [Realtek]
8086:266E:1695:400F== [Realtek]
8086:266E:1695:4015== [Realtek]
8086:2698:1695:400A==
8086:2698:1695:400F==
8086:2698:1695:4015==
8086:27DE:1695:400A== [Realtek]
8086:27DE:1695:400F== [Realtek]
8086:27DE:1695:4010== [Realtek]
8086:27DE:1695:4011== [Realtek]
8086:27DE:1695:4018== [Realtek]
[/more]
В целом неутешительно.
Автор: IFkO
Дата сообщения: 17.02.2011 18:56
maxud

Цитата:
с реалтеком действительн проще: в его драйверах вообще нет субсисов!
вообще-то если не учитывать субсисы, то именно драйвер Реалтек, вставая на чужое железо, вещает систему насмерть. Поэтому они нужны хотя бы для уверенности, что это именно Реалтек.

Цитата:
не каждый пользователь способен проделать такую настройку
вот именно. Поэтому все должно делаться само на основании базы данных.

Автор: IFkO
Дата сообщения: 17.02.2011 21:32
MisterGrim

Цитата:
Субсистемный идентификатор — 4005-4710
и ведь что интересно: в том драйвере, на который ты дал ссылку, тоже нет этого идентификатора - установщик повелся на обобщенный...
Автор: MisterGrim
Дата сообщения: 17.02.2011 21:42
Именно! Очевидно, установщик подразумевает, что если я ставлю драйверы Realtek, то я знаю, что делаю, и у меня действительно Realtek. Что я и имел в виду, когда писал, что на SoundMax ставились чужие драйверы.

А такой при этом есть:
%ALCVIA.Desc%=AC97VIA, PCI\VEN_1106&DEV_3059&SUBSYS_47104005

Бардак.
Автор: IFkO
Дата сообщения: 17.02.2011 22:04
MisterGrim
Это не то, это - VIA
Автор: MisterGrim
Дата сообщения: 17.02.2011 22:06
Вот в том-то и дело, что VIA есть, а Intel с таким же SUBSYS отсутствует.
Автор: IFkO
Дата сообщения: 18.02.2011 08:43
MisterGrim
Так не стаким же, а наоборот - 40054710. Или я неправильно понял?
Автор: MisterGrim
Дата сообщения: 18.02.2011 08:49
В Inf'ах в SUBSYS сначала идёт Device ID, а затем Vendor ID.

Добавлено:
Т.е. в моём случае я добавил:
%ALCAUD.Desc%=AC97AUD, PCI\VEN_8086&DEV_2445&SUBSYS_47104005
Автор: IFkO
Дата сообщения: 18.02.2011 14:06
MisterGrim
Ну, если это сработало, то всё правильно.

ethylmoth
Куда пропал? Как там с тестированием? Или остыл?
Автор: LEX1
Дата сообщения: 18.02.2011 19:09
IFkO 19:01 17-02-2011
Цитата:
а что будет без них?

Надо полагать, без Metal.dll отвалится соответствующее апи (использовалось, например в unreal).
Автор: MisterGrim
Дата сообщения: 18.02.2011 19:17
MeTaL нужен, да. Хотя бы для того же Unreal и его производных: в Direct3D на Savage они глючат, а в OpenGL... лучше пожалеть свои нервы.
Автор: IFkO
Дата сообщения: 18.02.2011 21:38
LEX1, MisterGrim
Хорошо, а что есть Mesa.dll ? Она тоже проходит по категории API.
И кроме того, есть 2.4 мега утилит: S3Color.cpl Dvideo.dll S3Cfg3d.dll S3Chromo.dll S3Disply.dll S3Duovue.dll S3Gamma.dll S3Hal95.dll S3Info.dll S3Ovrlay.dll S3Power.dll S3Refre.dll S3Dtoys.exe S3TrayP.exe S3Tweak.exe
Без этого, как я понимаю, можно обойтись? Например, сделать их отдельным пакетом, дополняющим драйвер для тех, кому нравится всё настраивать?
Автор: ethylmoth
Дата сообщения: 18.02.2011 22:18
IFkO

Цитата:
ethylmoth
Куда пропал? Как там с тестированием? Или остыл?

Не пропал, всё норм. Обязательно всё протестирую.

Кстати, хочу поднять один вопросик, актуальный при многократном тестировании и перетыкании оборудования. В дровах звука зачастую присутствует утилита полной деинсталляции этих самых дров: вычищается реестр от устройств, стираются инфы и сами файлы драйвера. Для C-Media это отдельная утилита, у ForteMedia и Crystal деинсталляция есть прямо в панели управления/микшере. При встраивании дров в сборку этот функционал скорей всего выпадет, а подобрать стороннюю чистилку неспользуемых драйверов непросто. Стоит ли встраивать деинсталляцию в сборку? Я считаю, что да.
Автор: st_komoff
Дата сообщения: 19.02.2011 13:32
Соратники, а можно ли под 98-й заюзать USB модемы от сотовых операторов?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687

Предыдущая тема: Задачи на bat-файлах 9


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.