Показать полную графическую версию : Создание дисков с автоматической установкой драйверов
Страниц :
1
2
3
[
4]
5
6
7
8
9
10
11
12
13
Отвлеклись ведь от основного вопроса ! Задача - определить оборудование и вывести список драйверов, которые необходимо установить кликом на рядом расположенный "чекбокс". Путь и название драйвера пользователь вручную прописывает в INI файле. Базу устройств также дополняет вручную в соответствующем INI. Собственно так и сделано в вышеупомянутом диске.
А есть этот драйвер на диске, какой он там версии, сколько их - пользователь сам определяет.
PS Да, K_SETUP.EXE, вполне можно брать за основу. Проэксперементировал с определением заведомо отсутствующего в базе устройства. Определил его Hardware ID с помощью программы UnknownDevices, (pcidevs.txt для которой регулярно поплолняется).
Забил этот ID в соответствующую секцию DEV.INI. Устройство было найдено и установилось из пакета драйверов, согласно мною указанного пути в PCI.INI.
PS Да, K_SETUP.EXE, вполне можно брать за основу. Проэксперементировал с определением заведомо отсутствующего в базе устройства. Определил его Hardware ID с помощью программы UnknownDevices, (pcidevs.txt для которой регулярно поплолняется).
Забил этот ID в соответствующую секцию DEV.INI. Устройство было найдено и установилось из пакета драйверов, согласно мною указанного пути в PCI.INI.
Во-первых, для определения ID нового устройства совершенно не обязательно пользоваться сторонним ПО. Достаточно зайти в диспетчер устройств и посмотреть ID этого устройства.
Во-вторых, DEV.INI, очень похоже, что делается автоматически, путем сканирования INI файлов. Соответственно, полагаю, что при обновлении пакета драйверов этот файл просто пересканируется какой-то тулзой и все.
В-третьих, добавить устройство можно прямо в PCI.INI, судя по всему он именно для этого и создан, а DEV.INI является вспомогательным, чтобы вручную не прописывать тонны ID, например от тех же реалтеков....
Поправьте, если я не прав!
werwolf-basic
20-12-2007, 01:39
Интеграция при помощи n-Lite - ваше спасение. И не надо изобретать велосипед... если ездишь на мотоцикле
P.S. - Почему Vista занимает DVD, а XP - CD?
- Потому, что ВСЕ драйвера интегрированы, Система и программы установлены, причём не менее 4 раз! :lol:
Вот вам и универсальный загрузочный диск :lol:
Если бы все было так просто, никто бы не заморачивался. Не под все необходимые девайся дрова есть даже в висте, к сожалению.
Интеграция при помощи n-Lite - ваше спасение. И не надо изобретать велосипед... если ездишь на мотоцикле
P.S. - Почему Vista занимает DVD, а XP - CD?
- Потому, что ВСЕ драйвера интегрированы, Система и программы установлены, причём не менее 4 раз!
Вот вам и универсальный загрузочный диск »
DEV.INI, очень похоже, что делается автоматически, путем сканирования INI файлов. »
Делается DEV.INI к сожалению вручную (но это и хорошо - возможно его самому дополнять) и является основой-базой для сравнения результатов сканирования, проделанных K_SETUP.EXE
добавить устройство можно прямо в PCI.INI »
Если нет ID устройства в DEV.INI, хоть ты что добавляй в PCI.INI - при выводе результатов сканирования этого устройства ессно не будет в списке.
mamont1, Нашёл автора диска (K-SETUP) - помочь в обновлении софтины не может- думаю понятно почему »
Поробуй поговорить с ним на предмет описания что находится в INI и что нужно дописать самому чтобы пользоваться. т.е. формат файла.
vserd,
Дык я же уже провёл успешный эксперемент с дополнением "базы" для K_SETUP.EXE.
А именно : взял("навскидку") MB ASUS P5GC-MX/1333. Решил "научить" K_SETUP.EXE просканировать ОС на наличие сетевого адаптера этой платы и последующей установки для него драйвера. Для этого :
В DEV.INI добавил :
;---------------------------------------------------------------
[Network\Attansiclan\WinXP_32\l251x86.inf=>AtcL002.ndi.NT]
;
PCI\VEN_1969&DEV_2048&SUBSYS_82331043&REV_A0,"Atheros L2 Fast Ethernet Adapter"
PCI\VEN_1969&DEV_2048&SUBSYS_20481969&REV_A0,"Atheros L2 Fast Ethernet Adapter"
PCI\VEN_1969&DEV_2048,"Atheros L2 Fast Ethernet Adapter"
;
Данные ID и пр. взял из inf файла родных драйверов.
В PCI.INI добавил :
;******************************************** Atheros L2 Fast Ethernet ********************************
[Entry]
Device_INF="[Network\Attansiclan\WinXP_32\l251x86.inf=>AtcL002.ndi.NT]";
Device_Name="Atheros L2 Fast Ethernet Adapter";
Hint="Драйвер сетевой карты";
OperatingSystem="Win2003,WinXP,Win2000";
ExecutePath="Network\Attansiclan\setup.exe";
InstallType="Manual";
InstallSection="Driver";
;
Сетевой адаптер определился и после клика на "нём" в списке обнаруженных драйверов - благополучно установился.
Эдак можно пополнить "базу" устройств и другими драйверами. Хотелось бы надеяться, что любыми...
Если, как было вышесказанно, есть "утиль", вытаскивающий необходимую инфу из драйверов - это облегчило бы ручной труд.
Так вот, если бы "всем миром" пополнять и выкладывать здесь эту "базу", то рассматриваемый вопрос думается, был бы решён...
Не грех было бы и саму прграммку K_SETUP.EXE переделать... Думаю не только её автору это по силам.
Программисты, отзовитесь !
Так вот, если бы "всем миром" пополнять и выкладывать здесь эту "базу", то рассматриваемый вопрос думается, был бы решён...
Не грех было бы и саму прграммку K_SETUP.EXE переделать... Думаю не только её автору это по силам.
Так чего уж - сразу свое написать, зачем тянуть?
Цитата Tools:
Так чего уж - сразу свое написать, зачем тянуть? »
Tools, Есть намётки? Выкладывай- не томи. Потестируем!!! »
Наметки, наметки... вот запустите regedit, HKEY_LOCAL_MACHINE->SYSTEM->CurrentControlSet->Enum, ну и например, раздел PCI.... Вот вам и список устройств.... А как его отсканить - не знаю. Не программист.
Вот вам и список устройств... »
Нужен список ID устройств не конкретного компьютера, а всех основных существующих устройств. Ессно современных в первую очередь.
Конечно его составить можно вручную, перелопатив кучу inf_ов из различных драйверов. (И не понятно, зачем копаться в реестре - получается необходимо иметь кучу разных машин с разной конфигурацией для изымания оттуда данных. Не реально.)
Тут в помощь - либо имеющиеся в сети ресурсы, типа http://www.pcidatabase.com/vendors.php?sort=id
либо соответствующие программы с регулярно пополняемыми базами устройств. Но всё это нудный и долгий труд...
Вот любопытная прога, правда для Линукса: http://ezix.org/project/wiki/HardwareLiSter
Нужен список ID устройств не конкретного компьютера, а всех основных существующих устройств. »
Неверная постановка. Такого списка небудет ни когда, да и не нужен он.
1. Получить список устройств которые есть физически (именно физически в данный момент времени на данном компьютере).
2. Пройтись по папкам/архивам начиная с некоторой папки, извлечь PNPID и сравнить со списком который получили на 1-м шаге.
3. Установка
3.1 Сформировать список и показать пользователю пускай сам выбирает.
3.2. Установить автоматом
4. После окончания, показать те устройства на которые не удалось обнаружить драйвера и по которым система говорит что они работают не корректно.
На шаге 0 можно включить всякую оптимизацию, которая будет выполняться один раз при сборке диска (например формировать список заранее, вести одельный файл на каждый драйвер и т.п.) для ускорения шага 2.
вот запустите regedit, HKEY_LOCAL_MACHINE->SYSTEM->CurrentControlSet->Enum, ну и например, раздел PCI »
Это список установленных драйверов устройств. У меня на одной машине показывает 15 устройств, потому что новая, а на другой 50, т.к. пережила кучу переездов с матер на мать, да и всякие железяки в нее втыкаются. Большая часть их мертвая. Физически не установлено. Но показывается.
hччp://members.datafast.net.au/~dft0802/downloads.htm
скачайте VBS скрипт, и посмотри.
Такого списка небудет ни когда, да и не нужен он. »
А с чем же в таком случае будет происходить сравнение найденных программой ID устройств ? Именно с данными из списка.
И речь идёт не о всех, а об основных используемых повсеместно устройствах. И списки такие есть и будут всегда (см. вышеуказанные ссылки). А лучше самим их создавать и народу предлагать. И тому пример , рассматриваемая здесь утилита K_SETUP.EXE, опирающаяся на DEV.INI и PCI.INI.
2. Пройтись по папкам/архивам начиная с некоторой папки, извлечь PNPID »
Вот это совершенно не преемлемая постановка. Что же все зациклились на сканировании этих папок/архивов ! Во-первых это достаточно сложная и трудоёмкая задача для программиста. Во-вторых - ну, очень долгая по времени (представь DVD c 4 или даже с 8,5 G дров ! И в-третьих - не во всякую папочку зайти можно - это уж от разработчика дистрибутива дров зависит. Может попасться нечто индивидуальное и внутрь не пускающее...
А используемый в K_SETUP.EXE способ позволяет запускать любые родные Setup.exe драйверов. А уж автоматом или нет ставиться будут - как ключи или скрипты организовать.
Сформировать список и показать пользователю пускай сам выбирает. »
Именно так и происходит. И пусть выбирает из того, что сам поместил на диск. Устарело или не нужно стало - обнови, добавь или удали. Хозяин - барин.
После окончания, показать те устройства на которые не удалось обнаружить драйвера »
Важнее показать эти устройства (а вернее все имеющиеся) до установки драйверов. А уж есть эти драйверы на диске или нет - забота самого пользователя. Было бы что искать.
PS А если нет по каким то причинам драйвера для устройства, то можно поэксперементировать с его созданием с помощью программы WinDriver. А также сгенерировать INF, в котором будет и ID и пр.
MKN, Во-первых это достаточно сложная и трудоёмкая задача для программиста. »
обход дерева + сравнение строк. Ничего сложного.Во-вторых - ну, очень долгая по времени (представь DVD c 4 или даже с 8,5 G дров »
Вот тут вступает в действие оптимизация. Либо мы формируем список зарание и прописываем в него нужную инфу, либо ждем пока найдется. Вариантов можно придумать массу.
используемый в K_SETUP.EXE способ позволяет запускать любые родные Setup.exe драйверов » И кликать на кнопки? мне это не нравится. Хотя я допускаю такой вариант установки для особых драйверов.
А если нет по каким то причинам драйвера для устройства, то можно поэксперементировать с его созданием с помощью программы WinDriver. А также сгенерировать INF, в котором будет и ID и пр. »
Шутить изволите???? Чтобы эксперементировать с созданием драйверов нужно знать что делаешь, зачем делаешь, как железяка работает, и как это все вписать в архитектуру ОС. Для обычного пользователя это не решаемая задача. Для программера только если есть опыт или желание + время.
Мне интересен вариант именно автоматической установки дров. Чтобы ничего не щелкать, ничего не нажимать, и чтобы ставились те драйвера устройства, для которых система считает их не известными или не правильно работающими. Чтобы драйвера искались и в драйвер-паках и в распакованном виде в отдельных папках. И чтобы учитывала возникшую коллизию со звуком (и возможно другими).
Ничего сложного. »
И в чём же дело ? Почему никто за многие годы "в массы" ничего подобного не предложил. На диск то этот "к-системский"
совершенно случайно удалось наткнуться, а то всё бы плакали - сделать бы диск, да как бы......
А что касаемо "задачи для программиста" - придётся ему всё же поднапрячься - ты ведь видишь задачу, как сканирование в архивах и дистрибутивах, INF_ов... Попади ка сначала в этот дистрибутив, которых достаточное кол-во. А если он "индивидуального пошива" от разработчика ?..
формируем список зарание и прописываем в него нужную инфу »
О чём и речь. Кто бы составил и пополнял...
И кликать на кнопки? »
А что зазорного ? Рядом пусть будет большая кнопка - "Аутоинстал", как на всех путных дисках от материнок.
Шутить изволите???? »
Какие же шутки, коли польза очевидна - в сгенерированном одним кликом INF-файле выбранного устройства - необходимая информация для внесения в базу. Раз нет доступного "утиля" - тоже выход. Ессно для интересующихся. А "обычные", как ты их назвал, пользователи - этим вообще не должны заморачиваться, а нести свой комп к тебе (или ко мне)... А у нас - "чудо-диск" есть(мог бы быть)!...
Короче - когда возможна реализация проекта ? : )) (Я всё же на базе K_SETUP.EXE под часто мной обслуживаемое железо, "базу" сделаю со временем... Помощи похоже, от прграммистов-альтруистов, ждать не приходится...))
в чём же дело ? Почему никто за многие годы "в массы" ничего подобного не предложил »
У меня нет инфы о том откуда (и как можно) брать инфу о физических железяках. Пока я не решу этой проблемы, движняка не будет. + отсутствие времени на поиск и написание. :((
Попади ка сначала в этот дистрибутив, которых достаточное кол-во. А если он "индивидуального пошива" от разработчика »
В нормальных дистрибутивах что я видел, сами драйвера лежат в распакованном виде. В не нормальных в запакованных файлах инсталяторов. Для таких случаев можно прописать особую обработку. Вот и все. В конечном итоге это сводится к нескольким файлам в определенных папках, + записи в реестр. При большой надобности раздербанить и проанализировать это можно легко.
Сформируй свое вИденье задачи, максимально формализуй, если есть доп инфа тоже включи (ссылки) и тогда найдется программер (возможно даже школьник) который ее сделает. Начинающему оно как-то не позубам (нет связанной инфы), а профи уже не интересно, у него своих проектов хватает. Когда появится задачка, тогда и решение будет не за горами.
Там кодинга определителя недели на 2 + еще некоторое время на интерфейс, больше времени уйдет на прочтение и осознание доки и тестирование.
нет инфы о том откуда (и как можно) брать инфу о физических железяках. »
А K_SETUP.EXE откуда берёт ?
а профи уже не интересно »
Вот оно в чём дело... По такой логике и всё, что здесь на форуме делают люди - дет. сад. А что простенькие программки и утилитки серьёзные фирмы делают - так это вообще чёрт те что...
А "видение задачи" уже сформулированно на предыдущих 9 листах топика. Повторю :
Есть комп-чёрный ящик с установленной XP и с не определёнными устройствами, требующими установки для них драйверов.
Дисков "сопровождения" ессно нет, ситуация многим до боли знакомая.
Задача :
При запуске (пока мифического) диска :
1. Предложить пользователю (две кнопки):
а). "Определить устройства, требующие установки драйверов и установить драйверы "АВТОМАТИЧЕСКИ"
и
б). "Определить устройства, требующие установки драйверов" и выбрать установку необходимых - "ВРУЧНУЮ"
Оговорка 1 : (реализовать для начала хотя бы пункт б). )
После сканирования, для пункта б). :
1. Вывести для пользователя меню-список названий найденных устройств, с возможно большими подробностями (тип, чип, производитель и т.д.)
2. Напротив каждого устройства в списке - чекбокс и кнопка "Установить драйвер"
3. Под меню списка - кнопка "Установить выбранные драйверы" (установка производится последовательно и автоматически. Перезагрузка компа также автоматически, если необходимо)
Оговорка 2 : (Для начала с пунктом 3 можно повременить)
Итак - если для начала хотя бы сделать утилиту с эими двумя оговорками было бы уже здорово.
А K_SETUP.EXE откуда берёт »
не знаю, когда узнаю тогда буду думу думать.
Вот оно в чём дело... По такой логике и всё, что здесь на форуме делают люди - дет. сад. »
Это твои придумки. Я такого не говорил.
А что простенькие программки и утилитки серьёзные фирмы делают - так это вообще чёрт те что... »
А эти простенькие програмки и утилитки делаются из-за лени. :)) Надоедает пользоваться монстрами и ждать пока загрузится или выполнять обезьянью работу (типа 20 раз на дню нажимать на одни и теже кнопки в количестве 200 шт), или для облегчения. А потом они "уходят" по рукам. У самого их несколько штук есть :))
vserd,
Ты не сказал главного - задачу я достаточно чётко обрисовал ? И реально, уже сегодня "упрощённый" вариант утилиты сделать ?
не знаю, когда узнаю тогда буду думу думать. »
А почему бы автора K_SETUP.EXE не спросить ? С ним ведь уже связались.
Цитата Tools:
вот запустите regedit, HKEY_LOCAL_MACHINE->SYSTEM->CurrentControlSet->Enum, ну и например, раздел PCI »
Это список установленных драйверов устройств. У меня на одной машине показывает 15 устройств, потому что новая, а на другой 50, т.к. пережила кучу переездов с матер на мать, да и всякие железяки в нее втыкаются. Большая часть их мертвая. Физически не установлено. Но показывается. »
Но сама Windows же как-то различает какие из устройств в списке являются активными, а какие нет, я очень сильно сомневаюсь, что Windows каждый раз сканирует все устройства. Это же достаточно долго! А окно Диспетчера устройств выскакиет практически мгновенно. Значит где-то все же это все храниться? А другой "базы" кроме реестра вообще-то нет...
werwolf-basic
22-12-2007, 05:21
А еси взять диск, например, от GA-965GMA-S2 и кое-что подправить и добавить?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC