Кожен користувач комп`ютера рано чи пізно зіткнеться з питанням пошуку, встановлення і видалення драйверів. Буде це викликано покупкою нового пристрою, переустановкою операційної системи, бажанням підвищити швидкодію чи поліпшити інші характеристики системи – суть не важлива. У цій статті я хочу надати деякі теоретичні відомості про драйвери, а також обговорити деякі тонкості і прийоми при роботі з ними.
Що це таке
Драйвер – набір службових програм, що дозволяють операційній системі (ОС) працювати з тим чи іншим пристроєм комп`ютера. Його задача – обробляти запити, що надходять від прикладних і системних програм, переводити їх на мову зрозумілу фізичному пристрою, керувати процесами його ініціалізації, настроювання параметрів, обміну даними, переключенням з одного стану в інший і т.п. Драйвер дозволяє операційній системі взаємодіяти з конкретним пристроєм через загальний інтерфейс, що не враховує особливості даного пристрою. Іншими словами, драйвер транслює запити високого рівня в запити низкорівневої машинної мови, безпосередньо звертаючись до апаратних ресурсів комп`ютера.
Не для кожного пристрою потрібен драйвер. Якщо існує строгий стандарт, що описує набір команд, послідовність і тимчасові параметри операцій і інші особливості роботи з даним класом пристроїв, драйвер може і не знадобитися, тому що операційна система вже має у своєму складі всі необхідні для цього процедури. В принципі, це можна назвати й вбудованим драйвером. Приклади – клавіатура, таймер, комунікаційні порти, модем (зовнішній). Але якщо пристрій може бути замінений на інше, відмінний по своїх функціональних можливостях, то драйвер для нього потрібно буде встановлювати обов`язково.
Драйвер може міститися й у дистрибутиві операційної системи. Тоді питання його пошуку відпадає само по собі. Однак пристрої, що з`явилися після офіційного виходу ОС, зажадають встановлення окремого драйвера розробленого виробником. Крім того, набір драйверів у комплекті з ОС невеликий і охоплює тільки невелику частину найбільш розповсюджених чи цілком стандартних пристроїв.
Драйвери і Windows
В операційних системах Microsoft Windows драйвер складається з декількох файлів, що зберігаються звичайно в каталогах SYSTEM, SYSTEM32 і їхніх підкаталогах. Ядро драйвера зберігається у файлах з розширеннями .VXD, .DRV, .SYS і деяких інших, а додаткові процедури зібрані в динамічні бібліотеки .DLL. Крім того, до складу драйвера можуть входити файли довідки, утиліти, модулі деінсталяції і т.д.
Послідовність операцій по установці і видаленню драйвера зберігається в спеціальному інформаційному файлі .INF. З його допомогою Windows визначає тип, виробника, модель пристрою, клас драйвера, необхідні ресурси і файли. У цьому файлі також описуються операції розпакування, запуску, копіювання, видалення, перейменування файлів, додавання і видалення ключів у реєстрі і т.д. Усі .INF-файли зберігаються в каталозі INF, причому встановлювані драйвери не-Microsoft`івського походження (поставляються не в комплекті з ОС) відкладаються в окремий підкаталог INF/OTHER.
Windows вміє автоматично знаходити драйвер для пристрою. Для цього вона використовує технологію Plug&Play, точніше, її частину, що відповідає за самоідентифікацію пристрою. Зокрема, PCI-пристрої виявляються BIOS і заносяться у виді списку в спеціальну область ESCD (Extended System Configuration Data). Windows може використовувати її, а може і самостійно опитати шину PCI і довідатися в кожного пристрою коди його виробника, моделі і версії, необхідні ресурси й іншу інформацію. Далі перевіряється база даних (файли DRVDATA.BIN і DRVIDX.BIN) по усіх відомих пристроях і знаходиться необхідний .INF-файл. Якщо в каталозі .INF є нові файли, вони будуть автоматично проіндексовані і внесені в базу даних.
Варто також пам`ятати, що операційні системи Windows 98 SE і Windows 2000, так само як і їхніх нащадках, підтримують нову модель драйверів, що одержала назву WDM (Windows Driver Model). Це – спроба реалізувати повну підтримку Plug&Play і ACPI, тобто дати можливість завантажувати і вивантажувати драйвери “на ходу”, без перезавантаження системи, підключати їх у виді фільтрів-розширень до стандартних драйверів Microsoft, більш гнучко керувати енергозбереженням і конфігурацією пристроїв і т.п. WDM-драйвери зберігаються в каталозі SYSTEM32/DRIVERS. Зокрема, інтерфейси нового покоління USB і IEEE-1394 (FireWire) працюють тільки під керуванням WDM-драйверів.
“Референс” чи “фірмові”?
Як правило, функціональність кожного пристрою комп`ютера визначається його контролерами. Контролери мають вид інтегральних мікросхем, установлених на друкованій платі. Взаємодія пристрою з іншими компонентами системи зводиться до обміну даними і командами між контролером пристрою і центральним процесором (чи іншим контролером, наприклад, арбітром шини, контролером DMA і т.п.). Можна сказати, що драйвер – це програма, що дозволяє процесору “спілкуватися” з контролером.
Дуже часто розробники мікросхем (так званого чіпсета) самі пишуть драйвери для того пристрою, яким буде керувати їхній контролер. Звичайно такі драйвери називають референсними (“reference”). Вони можуть бути або загальнодоступними і викладатися в Інтернет на сайті розробники, або надаватися винятково виробникам устаткування на доробку й адаптацію. Очевидно, що в першому випадку для пристрою можна і потрібно встановлювати референсні драйвери, що обновляються набагато частіше “фірмових” і містять виправлення помилок і нові можливості. Однак при цьому можна втратити доступ до деяких функцій, специфічних для конкретного пристрою.
“Фірмові” драйвери виробника устаткування можуть бути суттєво застарілими, але при цьому враховувати якісь особливості даного пристрою, про які не знають розробники чіпсету. У будь-якому випадку завжди є зміст спробувати спочатку “референс”-драйвер (якщо він доступний для скачування), а якщо він з якоїсь причини не підійде, повернутися до “фірмових”.
Версії драйверів
Як і будь-яке інше програмне забезпечення, драйвери мають свої версії. Формат версії вільний – кожен розробник сам вирішує, скільки йому потрібно цифр для нумерації й у якій послідовності вони повинні стояти. У деяких випадках все-таки є система: Windows-драйвери для найбільш цікавих на наш погляд пристроїв як ігрових відео- і звукових карт, що підтримують Direct, нумеруються певним чином. Перша цифра – номер версії операційної системи Windows. 4 = Win9x/WinNT, 5 = Win2000. Далі після крапки йде версія Direct. 12 = DX7, 13 = DX8. Останні цифри – номер версії самого драйвера. Наприклад, драйвер для відеокарт nVIDIA має версію 4.13.01.1241, що означає призначений для Win9x і Direct8, його версія – 1241.
Щоб довідатися версію драйвера, розпакуйте його до окремих .VXD і .DLL-файлів. Далі потрібно в “Провіднику” клацнути кожний з файлів (краще з розширенням .VXD) правою кнопкою миші, вибрати “Властивості”, потім закладку “Версія”. Версія драйвера буде виділена кольором.
Іноді виробники супроводжують драйвер своїм інсталятором (setup.exe, install.exe і т.п.). Тоді побачити файли драйвера не представляється можливим. Пошукайте файл readme.txt, version.txt, release.txt чи що-небудь подібне, тому що в них часто теж зазначені версії чи файлів усього комплекту.
Також варто згадати про так звані бета-драйвери. Розробники чіпсетів і пристроїв часто намагаються стимулювати інтерес до себе, викладаючи на своїх сайтах експериментальні драйвери. Інший відомий прийом – надання драйверів власникам різних тематичних Інтернет-сайтів під видом вкрадених чи випадково залишених на внутрішніх корпоративних сторінках (так звані “leaked”-драйвери). Звичайно, розробники заздалегідь відхрещуються від них і не обіцяють технічної підтримки у випадку виникнення проблем, але, як мені здається, вони все рівно аналізують потік листів від користувачів і тим самим заощаджують на процесі пошуку збоїв і налагодження.
Щоб запобігти збоям в системі через бета-драйвери, Microsoft увела спеціальну сертифікацію. Драйвери тестуются в лабораторії Microsoft Windows Hardware Quality Lab (WHQL), і після успішного проходження всіх процедур вони одержують сертифікат. Він має вид файлу типу “Security Catalog” (розширення .CAT), у якому перераховані всі сертифіковані компоненти драйвера. Якщо такого файлу в комплекті драйвера немає, то дуже велика імовірність, що це бета-версія.
До речі, перевіряйте .CAT-файли, запускаючи їх подвійним кліком миші, тому що вони можуть бути фіктивними (порожніми).
Як визначити виробника і модель пристрою
Звичайно, краще купувати комплектуючі відомих виробників, добре, що сьогодні така можливість є. Тоді не буде виникати питання про те, який драйвер потрібно шукати. Але іноді користувач не має поняття про модель чи навіть виробника пристрою – наприклад, якщо комп`ютер не дуже новий і збирав його хтось інший. Перед тим, як починати пошук, прийдеться визначити точну назва пристрою чи його чіпсету.
Усі чіпи обов`язково мають маркування, де зазначена назва виробника, модель, серія, версія і ревізія чіпу, дата випуску. Мікросхеми чіпсету зазвичай мають найскладнышу структуру, у них великий корпус і багато контактів, тому вони більше інших чіпів по розмірах. По маркуванню, користаючись пошуковими сервісами http://www.google.com/, http://www.altavista.com/, http://www.yandex.ru/ і іншими, можна досить швидко відшукати сайт виробника чіпсета і “reference”-драйвери.
Виробника самого пристрою знайти буде легше. По-перше, уся необхідна інформація повинна бути нанесена фарбою на друкованій платі. Навіть якщо ви не знайшли назви, є шанс визначити його по FCC-номеру. Шукайте рядок “FCC ID:”, у якому буде зазначений реєстраційний код, привласнений виробнику пристрою. Після цього потрібно зайти на сайт FCC і ввести код у рядок пошуку.
По-друге, де-небудь обов`язково буде написана модель пристрою, по якій в Інтернет можна спробувати знайти сайт виробника.
По-третє, якщо пристрій встановлюється в слот PCI чи AGP, те за допомогою утиліт можна визначити код виробника цього пристрою чи чіпсету. Можу порекомендувати Sandra, PowerStrip. Принцип, покладений в основу ідентифікації, базується на аналізі інформації, що видається PCI-пристроєм. Як мінімум можна одержати коди виробника (Vendor ID) і моделі (Device ID), що піддаються розшифровці за допомогою таблиць. Зокрема, у таблиці Sandra міститься більш 6 тис. кодів різних пристроїв.
Де взяти драйвер
Звичайно, можна не напружуватися й установити всі драйвери прямо з компакт-диску, що йде в комплекті з пристроєм. Таке рішення цілком оправданно, але тільки на перший час. Драйвери (особливо для внутрішніх пристроїв) мають тенденцію часто обновлятися, тому корисно іноді пошукати в Інтернет нові версії. Інакше велика імовірність зіштовхнутися з несумісністю пристрою з новим програмним забезпеченням чи іншими комплектуючими.
Якщо ви точно знаєте доменне ім`я сайта виробника (чи здогадуєтеся – www.виробник.com, www.виробник.com.tw), то можна починати пошук. На титульній сторінці відшукайте кнопку “Download”, “Drivers”, “Support” чи аналогічну. Далі потрібно вибрати зі списку саме той пристрій, що у вас є. Цілком можливо, що ви побачите кілька пристроїв зі співпадаючими назвами, відмінності яких будуть полягати тільки в суфіксах чи навіть номерах ревізій. Звертайте на цю увагу, інакше драйвер може не підійти. Далі, по можливості, скачуйте драйвери не тільки для тієї операційної системи, що у вас встановлена, але і для інших ОС: під час інсталяції нової Windows буде неприємно знайти факт відсутності необхідного драйвера.
Якщо вам ніяк не вдається знайти потрібний сайт, звертайтеся на спеціалізовані драйверні сайти (http://www.windrivers.com/, http://www.driverhq.com/, http://www.drv.ru/ і т.д.). Скачувати звідтіля безпосередньо файли драйверу можна тільки в одному випадку: фірма-розробник уже припинила своє існування і її сайту фізично немає в Мережі. Набагато краще скористатися пошуком не драйвера, а сайту виробника чи його сторінки технічної підтримки.
Як встановити
Встановка драйвера полягає в наступному: Windows виявляє .INF-файл, відшукує в ньому рядки ідентифікації Plug&Play-пристроїв, і якщо вони збігаються з інформацією, виданої самим пристроєм, система виконує запропоновані дії по копіюванню файлів, додаванню записів до реєстру і т.д. Ви повинні вказати місце розташування файлу у відповідь на запит майстра оновлення устаткування. Майстер запускається або автоматично, після появи повідомлення про знайдений пристрій, або вручну. В останньому випадку зайдіть у “Властивості системи” (натиснути я+Pause), вибирайте закладку “Керування пристроями”, потім властивості потрібного пристрою, закладку “Драйвер”, “Обновити драйвер”.
Якщо в комплекті з драйвером є свій інсталятор, то краще скористатися ним. Для цього потрібно після появи повідомлення про знайдений пристрій натиснути “ESC”, завантажити Windows без драйвера і запустити інсталятор. Він скопіює усі файли драйвера в папку WindowsINFOther, де драйвер і буде знайдений після перезавантаження. Крім того, будуть встановлені додаткові програми, що йдуть у комплекті. Важливо також і те, що в більшості випадків інсталятор може коректно видалити драйвер, не залишивши слідів свого перебування (“Панель керування”/“Встановлення і видалення програм”).
Як видалити вручну
Якщо встановлений вами драйвер не справляється зі своїми функціями і навіть викликає помилки і збої, його потрібно видалити. Просто натиснути “DEL” у списку пристроїв, а потім дочекатися повідомлення про новий пристрій?.. Іноді це допомагає, іноді – ні. Справа в тому, що Windows може наступного разу і не запитати у вас драйвер, а просто проінформувати про знайдений пристрій і відразу повернути все на місце. Для видалення інформації про драйвер буде потрібно додатково вийти в DOS, зайти в каталог Windows/Inf і знайти там .INF-файл потрібного (точніше, уже непотрібного) драйвера і видалити його. Слідом за ним можна відправити і .VXD-файли, що звичайно знаходяться в Windows/System, але тут потрібно виявити акуратність, тому що можна і перестаратися. Тепер після перезавантаження Windows обновить свою базу даних і не знайде старого драйвера, а виходить, можна встановлювати новий чи повертати на місце старий, що добре працював до того, як ви почали ремонтувати те, що не зламалося.
І ще
В Інтернет існують спеціальні сайти, що регулярно стежать за появою нових версій драйверів для найбільш розповсюджених пристроїв. Я теж намагаюся збирати таку інформацію і публікувати її на своєму сайте. Заглядайте іноді, і ви завжди будете поінформовані і не проґавите нову версію необхідного вам драйвера.
|