Как найти драйвера на компьютер с самостоятельно подобранной конфигурацией! Как узнать, какой звуковой драйвер мне нужен Ручной вариант поиска звукового драйвера

Как найти драйвера на компьютер с самостоятельно подобранной конфигурацией! Как узнать, какой звуковой драйвер мне нужен Ручной вариант поиска звукового драйвера

Наверно у каждого, кто хоть раз самостоятельно переустанавливал операционную систему, возникал популярный вопрос: как узнать, какие драйвера необходимо установить на компьютер для его стабильной работы? Именно на этот вопрос мы и попытаемся ответить в данной статье. Давайте разбираться подробнее.

В теории, на компьютер или ноутбук нужно устанавливать софт для всех устройств, которые этого требуют. Со временем разработчики операционных систем постоянно расширяют базу драйверов Microsoft. И если во времена Windows XP приходилось устанавливать вручную чуть ли не все драйвера, то в случае с более новыми ОС множество драйверов устанавливаются уже автоматически. Тем не менее, остаются устройства, софт для которых приходится устанавливать вручную. Предлагаем вашему вниманию ряд способов, которые помогут вам в решении этого вопроса.

Способ 1: Официальные сайты производителей

Для того, чтобы установить все необходимые драйвера, вам нужно поставить ПО для всех плат в вашем компьютере. Имеется в виду материнская плата, видеокарта и внешние платы (сетевые адаптеры, звуковые карты и так далее). При этом в «Диспетчере устройств» может быть не указано, что для оборудования нужны драйвера. При установке операционной системы просто использовалось стандартное ПО для устройства. Тем не менее, софт для таких девайсов необходимо устанавливать оригинальный. Большая часть всего устанавливаемого софта приходится на материнскую плату и интегрированные в нее чипы. Поэтому, сперва мы будем искать все драйвера для материнской платы, а потом уже для видеокарты.

  1. Узнаем производителя и модель материнской платы. Для этого нажимаем клавиши «Win+R» на клавиатуре и в открывшемся окне вводим команду «cmd» для открытия командной строки.
  2. В командной строке необходимо ввести поочередно команды:
    wmic baseboard get Manufacturer
    wmic baseboard get product
    Не забываем нажимать «Enter» после ввода каждой команды. В результате вы увидите на экране производителя и модель вашей материнской платы.
  3. Теперь ищем в интернете сайт производителя и заходим на него. В нашем случае это .
  4. На сайте отыскиваем поле для поиска или соответствующую кнопку в виде лупы. Как правило, нажав на эту кнопку вы и увидите поисковое поле. В такое поле необходимо ввести модель материнской платы и нажать «Enter» .
  5. На следующей странице вы увидите результат поиска. Необходимо выбрать из списка свою материнскую плату. Обычно под названием модели платы есть несколько подразделов. Если есть раздел «Драйвера» или «Загрузки» , нажимаем на название такого раздела и переходим в него.
  6. В некоторых случаях следующая страница может быть разделена на подразделы с ПО. Если это так, то ищем и выбираем подраздел «Драйверы» .
  7. Следующим шагом будет выбор операционной системы и разрядности из выпадающего списка. Обратите внимание, что в некоторых случаях в списках драйверов могут быть отличия при выборе разных ОС. Поэтому просмотрите не только ту систему, которая установлена у вас, но и версии ниже.
  8. После выбора ОС вы увидите список всего ПО, которое необходимо вашей материнской плате для взаимодействия с другими компонентами компьютера. Необходимо скачать их все и установить. Скачивание происходит автоматически после нажатия на кнопку , «Download» или соответствующую иконку. Если вы загрузили архив с драйверами, то перед установкой обязательно извлеките все его содержимое в одну отдельную папку. После этого уже устанавливайте ПО.
  9. После того как вы установите весь софт для вашей материнской платы, переходим к видеокарте.
  10. Нажимаем снова комбинацию клавиш «Win+R» и в появившемся окне вводим команду «dxdiag» . Для продолжения жмем «Enter» или кнопку «ОК» в этом же окне.
  11. В открывшемся окне средства диагностики переходим на вкладку «Экран» . Тут вы сможете узнать производителя и модель вашего графического адаптера.
  12. Если у вас ноутбук, то необходимо также перейти на вкладку «Преобразователь» . Тут вы сможете увидеть информацию о второй дискретной видеокарте.
  13. После того, как вы узнали производителя и модель вашей видеокарты, необходимо перейти на официальный сайт компании. Вот список страниц загрузок крупнейших производителей графических адаптеров.
  14. Вам необходимо на этих страницах указать модель вашей видеокарты и операционную систему с разрядностью. После этого вы сможете скачать софт и установить его. Обратите внимание, что предпочтительно устанавливать ПО для графического адаптера именно с официального сайта. Только в этом случае будут установлены специальные компоненты, которые увеличат производительность видеокарты и позволят произвести ее детальную настройку.
  15. Когда вы установите ПО для графического адаптера и материнской платы, необходимо проверить результат. Для этого открываем «Диспетчер устройств» . Нажимаем сочетание кнопок «Win» и «R» на клавиатуре, и в открывшемся окне пишем команду devmgmt.msc . После этого нажимаем «Enter» .
  16. В результате вы увидите окно «Диспетчера устройств» . В нем не должно быть неопознанных устройств и оборудования, рядом с названием которого находятся вопросительные или восклицательные знаки. Если все именно так, то все необходимые драйвера вы установили. А если такие компоненты присутствуют, рекомендуем использовать один из следующих способов.

Способ 2: Утилиты для автоматического обновления ПО

Если вам лень искать и устанавливать весь софт вручную, то стоит присмотреться к программам, которые предназначены для облегчения этой задачи. Обзор на популярнейшие программы для автоматического поиска и обновления софта мы проводили в отдельной статье.

Вы можете использовать любую из описанных утилит. Но рекомендуем все же воспользоваться DriverPack Solution либо Driver Genius . Это программы с наибольшей базой драйверов и поддерживаемого оборудования. Мы уже рассказывали вам о том, как пользоваться DriverPack Solution.

Поэтому давайте мы расскажем вам о том, как найти и установить все драйвера с помощью программы Driver Genius. И так, начнем.

  1. Запускаем программу.
  2. Вы сразу же окажетесь на ее главной странице. Тут посередине находится зеленая кнопка «Начать проверку» . Нажимаем смело на нее.
  3. Запустится процесс сканирования вашего компьютера или ноутбука. Спустя несколько минут вы увидите список всех устройств, для которых необходимо скачать и установить ПО. Так как мы не ищем конкретный драйвер, то отмечаем галочками все имеющиеся пункты. После этого жмем кнопку «Далее» в нижней области окна программы.
  4. В следующем окне вы увидите список устройств для которых уже были обновлены драйвера с помощью данной утилиты, и те устройства, для которых ПО еще требуется закачать и установить. Последний тип устройств отмечен серым кругом рядом с названием. Для надежности нажимаем просто кнопку «Загрузить все» .
  5. После этого программа попытается подключиться к серверам для загрузки необходимых файлов. Если все пройдет удачно, вы вернетесь в предыдущее окно, где сможете отследить прогресс загрузки ПО в соответствующей строке.
  6. Когда будут загружены все компоненты, значок рядом с названием устройства станет зеленого цвета с направленной вниз стрелкой. К сожалению, установить все ПО одной кнопкой не получится. Поэтому выделяем строку с необходимым устройством и жмем кнопку «Установить» .
  7. По желанию создаем точку восстановления. Это вам предложат в следующем диалоговом окне. Выбираете ответ, соответствующий вашему решению.
  8. После этого начнется процесс установки драйвера для выбранного устройства, в ходе которого могут возникать стандартные диалоговые окна. В них необходимо просто читать лицензионные соглашения и нажимать кнопки «Далее» . Проблем на этом этапе у вас возникнуть не должно. После установки того или иного ПО вам могут предложить перезагрузить систему. Если такое сообщение будет, рекомендуем сделать это. Когда драйвер будет успешно установлен, в программе Driver Genius напротив строки с оборудованием будет зеленая галочка.
  9. Таким образом необходимо установить софт для всего оборудования из списка.
  10. В конце можете для убедительности провести сканирование компьютера еще раз. Если вы установили все драйвера, то увидите подобное сообщение.
  11. Кроме того, вы можете проверить, установлено ли все ПО, с помощью «Диспетчера устройств» как описано в конце первого способа.
  12. Если же остались еще неопознанные устройства, попробуйте следующий способ.

Способ 3: Онлайн-сервисы

Если предыдущие способы вам не помогли, остается надеяться на этот вариант. Смысл его заключается в том, что искать ПО мы будем в ручную по уникальному идентификатору устройства. Дабы не дублировать информацию, рекомендуем ознакомиться вам с нашим уроком.

В нем вы найдете детальную информацию о том, как найти ID и что с ним делать далее. А также руководство по использованию двух наиболее крупных онлайн-сервисов по поиску драйверов.

Способ 4: Ручное обновление драйвера

Этот способ является самым малоэффективным из всех приведенных выше. Однако, в очень редких случаях помочь установить софт сможет именно он. Вот что для этого необходимо.


Это самые действенные способы определить устройства, для которых необходимо установить софт. Надеемся, один из предложенных вариантов поможет вам в решении этого вопроса. Не забывайте вовремя обновлять ПО для ваших устройств. Если у вас возникнут трудности с поиском или установкой драйверов, пишите в комментарии. Вместе мы все исправим.

Мы пригласили всех желающих поучаствовать в добровольной помощи в разработке очередных версий DRP, сегодня пришла пора рассказать о том, как именно мы создаем немаловажную вещь при работе с большими архивами драйверов (необходимые сис. админам и другим профессионалам, занимающимся «серийной» настройкой компьютеров) - индексы.

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


Герои Silicon Valley работают над оптимизацией собственных алгоритмов

Как строится пользовательский индекс драйверов

Для каждого устройства в системе есть свой уникальный номер (DevID ).
Он отображается как в установках Windows, так и в программе DriverPack Solution . Уникальный для каждого устройства идентификатор (однозначно характеризующий каждое устройство), используется программой для автоматического «подбора» драйвера к нему.

База данных в программе содержит ID всех устройств, самостоятельно отслеживает версии драйверов для них, сопоставляет их версии и актуальность. В случае наличия в базе более новой версии, программа автоматически предлагает установить для устройства новый драйвер. Можно найти драйвер для конкретного устройства и самостоятельно в интернете, выбрав соответствующий режим поиска драйвера.

Для эффективной работы программы необходимы архивы драйверов (в формате "7z "), а для быстрого поиска по ним, требуется проиндексировать файлы, содержащиеся внутри.

Кроме уже содержащихся (довольно обширных) в программе архивов драйверов, DriverPack Solution предоставляет возможность создания пользовательских драйверпаков. Это актуально как при наличии нестандартного оборудования, так и «привязанности» операционной системы пользователя к некоторым типам (возможно устаревших) драйверов.

Новые драйвера после их разархивации «разбросаны» по папкам, которые содержат массу файлов, на первый взгляд, совершенно «ненужных» пользователю.

Для того, чтобы выбрать «нужные» файлы, требуется в распакованных файлах найти один с расширением *.inf.
Именно он содержит (в секции ) перечень необходимых файлов, по которому и требуется скопировать список файлов в предварительно созданную пользователем папку.

Примечание: если среди распакованных файлов нет.inf-файла, то автоматическое создание пакета драйверов невозможно. Настоятельно не рекомендуется удалять файлы с расширением *.САТ – сведения о цифровой подписи.

Как было раньше

До 2010 года, пока версий Windows было чуть меньше, нами использовался следующий метод создания индекса к сборке драйверов.

Создается папка D (сокр. от «Drivers»), а драйверы помещаются в любую подпапку внутри директории D.
Имя подпапки (поддиректории) может быть любым, однако рекомендуется использовать максимально короткие имена. Стоит избегать длинных путей к файлам – это может привести к ошибкам и помешать установке.

При создании структуры папок пакета драйверов следует придерживаться определенных общепринятых правил именования. Обязательно должны использоваться только английские названия папок.

В созданных папках драйверы разделяются по производителям, тем самым образуя подпапки.
Названия производителей также рекомендуется максимально сокращать. Например: «NVidia» – «N», «ATi» – «A» и т. д. Внутри папки с именем производителя драйверы располагаются в папках 1-9, при необходимости число папок может быть увеличено. После создания необходимой структуры папок поместите ваши драйверы в соответствующие подпапки (примечание: распакованные файлы, .inf-файлы, но не архивы или программы установки).

Название папки Английское название Пояснение
A Additions Дополнения
B Broadband Широкополосные сетевые устройства (*DSL-модемы и им подобные)
C Chipset Наборы системной логики (чипсеты)
CPU Central processor unit Центральный процессор (необходим для AMD K8)
D Dial-Up Модемы
G Graphics Видеоадаптеры (Графические карты)
L LAN Сетевые адаптеры
M Mass Storage Контроллеры жестких дисков
P Printers Принтеры
S Sound Звуковые адаптеры
VMWare VMWare Драйверы для виртуальной машины VMWare
W WLAN Беспроводные адаптеры
U USB USB-устройства (флешки, фотокамеры)
Y Misc Разное (Все что не попало в другие разделы)
Y Monitor Мониторы
Z Hid Устройства ввода (Интелектуальные мыши, клавиатуры тачпады и т.п.)

Процесс создания (пользовательских) пакетов драйверов

После создания структуры папок с новыми драйверами требуется заархивировать созданную папку (в примере – это папка «D») в соответствии с требованиями программы к архиву.
  • Имя архива: «DP_НазваниеПакетаДрайверов_ x86-32_ВерсияПакетаДрайверов.7z»
  • Требования: имя архива не должно содержать пробелов . Например, название пакета драйверов версии 9.06 для контроллеров жестких дисков должно быть таким: «DP_MassStorage_x86-32_906.7z.»
  • Формат архива: 7z
  • Уровень сжатия: «Ultra» (для обеспечения максимальной компрессии, при желании вы можете указать меньший уровень сжатия).
  • Метод сжатия: «LZMA» (значение установлено по умолчанию, изменять его не рекомендуется).
  • Размер словаря: 32 Mb
Размер слова: 256.

Последнее установлено по умолчанию. Можно увеличить или уменьшить значение этого параметра. Увеличение данного параметра позволяет достичь большей компрессии, но требует больше времени для создания архива.

Индексные файлы хранятся в *.txt - формате, и находятся папке «Indexes» а не в «dev_db» , как было ранее.

Структуру индексных файлов целесообразно рассмотреть на примере двух драйверов.

Содержимое индексного файла для 1-го:
«PCI\VEN_8086&DEV_24D5&SUBSYS_680316F3 Audio_w7x64_912.2\ Audio_w7x64_912.2\3\1\Alcwdm18.inf Realtek.NTamd64 06/19/2009,6.0.1.6305 Realtek AC"97 Audio»

Содержимое индексного файла для 2-го:
«HDAUDIO\FUNC_01&VEN_10DE&DEV_8067 Audio_w7x64_912.2\ Audio_w7x64_912.2\11\1\nvhda.inf VIDIA.NTamd64 11/11/2009,1.00.00.63 NVIDIA High Definition Audio»

Более развернуто объяснение структуры приведено в таблице:

Текущие реалии

Сегодня жесткой привязки к структуре индекса нет, что называется, «свободный стиль».

Главное – это использовать маркеры операционных систем. Дополнительно есть маркеры для, практически, всех производителей ноутбуков.
При этом расположение и название папок и подпапок перестало иметь значение, единственное требование – наличие минимально одного маркера системы.

Фактически же маркер – конкретное название папки. Оно видно в названии одного из подкаталогов драйвер-пака: DRP\Drivers\DP_Chipset_14101.7z\Intel\WinAll \Chipset\9.4.0.1007_HECI\

В данном случае «WinAll» значит «все версии Windows».

Маркеры

Версия Windows = маркер (имя подпапки), характеризующий, что драйвер который находится внутри папки-маркера подходит для указанной ОС.

  • XP x64 =«5x64»;
  • XP x86 =«5x86»;
  • Vista x64 =«6x64|NTx64|AllNT|67x64»;
  • Vista x86 =«6x86|NTx86|AllNT|67x86»;
  • Windows 7 x64 =«7x64|NTx64|AllNT|67x64|78x64|781x64|7819x64»;
  • Windows 7 x86 =«7x86|NTx86|AllNT|67x86|78x86|781x86|7819x86»;
  • Windows 8 x64 =«8x64|NTx64|AllNT|78x64|All8x64»;
  • Windows 8 x86 =«8x86|NTx86|AllNT|78x86|All8x86»;
  • Windows 8.1 x64 =«81x64|NTx64|AllNT|781x64|7819x86|All8x64»;
  • Windows 8.1 x86 =«81x86|NTx86|AllNT|781x86|7819x86|All8x86»;
  • Windows 9 x64 =«9x64|NTx64|AllNT|7819x64|All8x64|81x64»;
  • Windows 9 x86 =«9x86|NTx86|AllNT|7819x86|All8x86|81x86»;
  • Windows 10 x64 =«10x64|NTx64|AllNT|78110x64|All8x64»;
  • Windows 10 x86 =«10x86|NTx86|AllNT|78110x86|All8x86»;
  • Все x64 =«Allx64»;
  • Все x86 =«Allx86»;
  • Все XP =«AllXP»;
  • Все Vista =«All6»;
  • Все Windows 7 =«All7»;
  • Все Windows 8 =«All8»;
  • Все Windows 8.1 =«All81»;
  • Все Windows 9 =«All9»;
  • Все Windows 10 =«All10»;
  • Любые Windows =«WinAll»;

Маркеры ноутбуков

Маркер-папка с названием производителя ноутбука = слово, используемое самим производителем для идентификации его ноутбуков
  • Acer_nb = acer / emachines / packard*bell / gateway / aspire
  • Apple_nb = apple
  • Asus_nb = asus
  • Dell_nb = dell / alienware / arima / jetway / gericom
  • Fujitsu_nb = fujitsu / siemens
  • Gigabyte_nb = gigabyte
  • HP_nb = hp / compaq
  • Lenovo_nb = lenovo / compal / ibm
  • LG_nb = lg
  • MSI_nb = msi / micro-star
  • NEC_nb = nec
  • Panasonic_nb = panasonic / matsushita
  • Samsung_nb = samsung
  • Sony_nb = sony / vaio
  • Toshiba_nb = toshiba
  • OEM_nb = другие вендоры (benq / clevo / depo / durabook / ecs / elitegroup / eurocom / getac / intel / iru / k-systems / medion / mitac / mtc / nokia / pegatron / prolink / quanta / sager / shuttle / twinhead / rover / roverbook / viewbook / viewsonic / vizio / wistron и т.д.)

Текущий индекс

Если при скачивании с нашего сайта обновленных драйвер-паков их имена файлов совпадают (например, старый и новый файл имеет имя «DP_Chipset_14112.7z» ), можно просто заменить старые файлы новыми.
При наличии такого же файла, но с меньшим номером, его можно удалить: скачали «DP_Chipset_14112.7z» , но в папке есть «DP_Chipset_14111.7z» - файл с меньшим номером версии «DP_Chipset_14111.7z» можно удалить.

Индексируем новые драйвер-паки (создаем списки поддерживаемых устройств).
Если старые индексы удалены, то при запуске DRP, программа автоматически попросит вас произвести индексацию новых драйвер-паков - например программа для нового драйвер-пака «DP_Chipset_14112.7z» создает файлы-индекса «DP_Chipset_14112_xxx.xxx» в соответствующей папке в «X:\DRP\Indexes\» .

Можно также удалить и старые индексы.
В папке «Indexes» необходимо удалить все файлы старого драйвер-пака.
Имени файла индекса соответствуют имя драйвер-пака и найти его легко. Например, вы скачали драйвер-пак «DP_Chipset_14112.7z» а у вас был «DP_Chipset_14111.7z» , соответственно удаляем все файлы-индексы «DP_Chipset_14111_xxx.xxx» , если же и скаченный и старый драйвер-пак имеют одинаковое имя например «DP_Chipset_14112.7z» , то индексы «DP_Chipset_14112_xxx.xxx» также нужно удалить т.к. список поддерживаемых устройств в новой версии драйвер-пака может отличаться.

Если вам лень выискивать нужный для удаления индекс - можно удалить все папку «Indexes» и тогда программа будет создавать индексы для всех драйвер-паков, а не только для нового, что займет больше времени, но результат будет идентичным.

Надеемся, что данное руководство по созданию индекса драйверов будет полезно не только

17.02.2017

Наверное каждый, кто переустанавливал операционную систему, попадал в неловкую ситуацию, когда нужно установить драйвера для видеокарты, а ее модель неизвестна. Или просто необходимо обновить драйвера на видеокарте, не ведая ее названия. Обычно в таких ситуациях пользуются установочным диском, который в обязательном порядке продается с видеокартой. Но что делать, если по каким-либо причиной такой диск отсутствует?

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

К сожалению, определить модель видоекарты онлайн невозможно. Для определения воспользутесь специальными программами.

Как узнать модель видеокарты

Есть несколько способов узнать точно, какая именно видеокарта у вас установлена.

Способ 1: Узнаем модель видеокарты с помощью идентификатора оборудования

  1. На рабочем столе на значке «Мой компьютер» («Этот компьютер» в Windows 10) щелкаем правой кнопкой мыши и в появившемся окне выбираем пункт «Свойства» .
  2. В появившемся окне находим строку «Диспетчер устройств» и нажимаем на нее.
  3. Далее необходимо открыть ветку с разделом «Видеоадаптеры» . В ней будут отображены видеокарты, подключенные к компьютеру. Если ранее драйвера уже были установлены, то вы увидите полное название и модель видеокарт.
  4. Это может быть достаточно, если вы хотите просто обновить уже установленные драйвера. Если же драйвера совсем отсутствуют, то скорее всего вы увидите в списке видеоадаптеров строку «Стандартный VGA графический адаптер» или .
  5. Нажимаем по такой неопознанной видеокарте правой кнопкой мыши и в выпадающем меню выбираем пункт «Свойства» .
  6. В списке закладок вверху находим «Сведения» и переходим туда.
  7. Под надписью «Свойство» вы увидите выпадающее меню по которому необходимо нажать. Ищем строку «ИД оборудования» .
  8. В поле «Значения» , которое расположено ниже, вы увидите несколько строк. Необходимо выделить последнюю, нажать на ней правую кнопку мыши и выбрать в меню пункт «Копировать» .
  9. После того, как ИД будет скопирован, переходим на следующий сайт
  10. Перейдя по ссылке, вы увидите поисковое поле вверху сайта. Сюда необходимо вставить скопированную ранее информацию об ИД оборудования. Далее необходимо нажать кнопку «Искать» , расположенную правее строки поиска.
  11. Если все было сделано верно, то как результат вы увидите модель видеокарты и сможете даже скачать сразу же драйвер к ней. Но вернемся к поиску драйверов чуть позже.

Способ 2: Узнаем модель видеокарты с помощью средства диагностики DirectX

Если по каким-то причинам упомянутый сайт не работает, всегда получить информацию о графическом чипе стандартными средствами Windows.


Способ 3: Узнаем модель видеокарты с помощью средства «Сведения о системе»


Как скачать драйвер видеокарты

После того, как удалось узнать модель видеокарты, нужно установить или обновить драйвер для нее. Для этого есть несколько способов.

Способ 1: Скачиваем драйвер с портала devid.info

Как уже упоминалось выше, после определения видеокарты по ИД на портале devid.info/ru есть сразу же возможность качать необходимые драйвера.


Способ 2: Скачиваем драйвер с официального сайта

Установка драйверов которые были скачаны с официальных сайтов является самым правильным и безопасным решением. На таких сайтах информация об обновлениях и изменениях выкладывается в первую очередь.

  1. Для этого следует выбрать сайт производителя вашей видеокарты перейдя по следующим ссылкам
  2. В соответствующих полях вам необходимо будет лишь указать тип вашего устройства, серию, модель и операционную систему. Довольно часто эти параметры можно определить автоматически.
  3. Нажимаете кнопку «Поиск» и в открывшейся странице скачиваете драйвер.

Вот как это выглядит процесс по поиску драйвера для видеокарт NVidia



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

Драйверы устройств обеспечивают интерфейс между ядром UNIX и аппаратной частью компьютера. Благодаря этому от остальной части ядра скрыты архитектурные особенности компьютера, что значительно упрощает перенос системы и поддержку работы различных периферийных устройств.

В UNIX существует большое количество драйверов. Часть из них обеспечивает доступ к физическим устройствам, например, жесткому диску, принтеру или терминалу, другие предоставляют аппаратно-независимые услуги. Примером последних могут служить драйверы /dev/kmem для работы с виртуальной памятью ядра /dev/null, представляющий "нулевое" устройство.

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

Типы драйверов

Драйверы различаются по возможностям, которые они предоставляют, а также по тому, каким образом обеспечивается к ним доступ и управление. Можно рассматривать три основные типа драйверов:

Символьные.

Этот тип драйверов обеспечивает работу с устройствами с драйверы побайтовым доступом и обменом данными. К таким устройствам можно отнести модемы, терминалы, принтеры, манипуляторы мышь и т. д.

Доступ к таким драйверам не включает использование буферного кэша, таким образом ввод и вывод как правило не буферизуется. При необходимости буферизации для символьных драйверов обычно используется подход, основанный на структурах данных, называемых clist.

Блочные драйверы

Этот тип драйверов позволяет производить обмен данными с устройством фиксированными порциями (блоками).

Например, для жесткого диска данные можно адресовать и, соответственно, читать только секторами, размер которых составляет несколько сотен байтов. Для блочных драйверов обычно используется буферный кэш, который и является интерфейсом между файловой системой и устройством.

Хотя операции чтения и записи для процесса допускают обмен данными, размер которых меньше размера блока, на системном уровне это все равно приводит к считыванию всего блока, изменению части его данных и записи измененного блока обратно на диск.

Драйверы низкого уровня (raw drivers)

Этот тип интерфейса блочных драйверов позволяет производить обмен данными с блочными устройствами, минуя буферный кэш. Это, в частности, означает, что устройство может быть адресовано элементами, размер которых не совпадает с размером блока.

Обмен данными происходит независимо от файловой подсистемы и буферного кэша, что позволяет ядру производить передачу непосредственно между пользовательским процессом и устройством, без дополнительного копирования.

На рис. 5.1 приведена упрощенная схема взаимодействия драйверов устройств с другими подсистемами операционной системы UNIX.

Жесткий диск Гибкий диск Терминал

Рис. 5.1. Драйверы устройств UNIX

Не все драйверы служат для работы с физическими устройствами, такими как сетевой адаптер, последовательный порт или монитор. Часть драйверов служат для предоставления различных услуг ядра прикладным процессам и не имеют непосредственного отношения к аппаратной части компьютера. Такие драйверы называются программными или драйверами псевдоустройств. Можно привести несколько примеров псевдоустройств и соответствующих им программных драйверов:

/dev/mem /dev/nulf

Обеспечивает доступ к виртуальной памяти ядра. Зная виртуальные адреса внутренних структур ядра, процесс может считывать хранящуюся в них информацию. С помощью этого драйвера может, например, быть реализована версия утилиты ps(1), выводящей информацию о состоянии процессов в системе.

Обеспечивает доступ к разделу исполняемого файла ядра, содержащего таблицу символов. Совместно с драйвером /dev/kmem обеспечивает удобный интерфейс для анализа внутренних структур ядра.

Обеспечивает доступ к физической памяти компьютера.

Является "нулевым" устройством. При записи в это устройство данные просто удаляются, а при чтении процессу возвращается 0 байтов. Примеры использования этого устройства рассматривались в главе 1, когда с помощью /dev/null мы подавляли вывод сообщений об ошибках.

Обеспечивает заполнение нулями указанного буфера. Этот драйвер часто используется для инициализации области памяти.

Драйвер устройства адресуется старшим номером (major number) устройства. Напомним, что среди атрибутов специальных файлов устройств, которые обеспечивают пользовательский интерфейс доступа к периферии компьютера, это число присутствует наряду с другим, также имеющим отношение к драйверу, -- младшим номером (minor number). Младший номер интерпретируется самим драйвером (например, для клонов, оно задает старшее число устройства, которое требуется "размножить"). Другим примером использования младших номеров может служить драйвер диска. В то время как доступ к любому из разделов диска осуществляется одним и тем же драйвером и, соответственно, через один и тот же старший номер, младший номер указывает, к какому именно разделу требуется обеспечить доступ.

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

Этот интерфейс различен для блочных и символьных устройств. Ядро содержит коммутаторы устройств двух типов: bdevsw для блочных и cdevsw для символьных устройств. Ядро размещает отдельный массив для каждого типа коммутатора, и любой драйвер устройства имеет запись в соответствующем массиве. Если драйвер обеспечивает как блочный, так и символьный интерфейсы, его точки входа будут представлены в обоих массивах.

Типичное описание этих двух массивов имеет следующий вид (назначение различных точек входа мы рассмотрим далее в этом разделе):

struct bdevsw { int (*d open)(); int (*d_close) () ; int (*d_strategy)(); int (*d_size) (); int (*d_xhalt) () ;

struct cdevsw {

int (*d_open) ();

int (*d^_close) () ;

int (*d_read) <) ;

int (*d_write) ()

int (*d_ioctl) ()

int (*d_xpoll) ()

int {*d_xhalt) ()

struct streamtab *d_str;

} cdevsw; Ядро вызывает функцию open {) требуемого драйвера следующим образом:

(*bdevsw.d_open)(dev, ...);

передавая ей в качестве одного из параметров переменную dev (типа dev t), содержащую старший и младший номера. Макрос getmajor() служит для извлечения старшего номера из переменной dev. Благодаря этому драйвер имеет возможность определить, с каким младшим номером была вызвана функция open (), и выполнить соответствующие действия.

Коммутатор определяет абстрактный интерфейс драйвера устройства. Каждый драйвер обеспечивает соответствующую реализацию функций этого интерфейса. Если драйвер не поддерживает каких-либо функций стандартного интерфейса, он заменяет соответствующие точки входа специальными заглушками, предоставляемыми ядром. Когда ядру требуется запросить какую-либо операцию у драйвера устройства, оно определяет элемент коммутатора, соответствующий данному драйверу (используя его старший номер), и вызывает требуемую функцию.

В названиях точек входа драйвера используются определенные соглашения. Поскольку в ядре системы одновременно присутствует большое количество различных драйверов, каждый их них должен иметь уникальное имя во избежание проблем при компиляции (точнее, при редактировании связей) ядра. Каждый драйвер имеет уникальное двухсимвольное обозначение, используемое в качестве префикса названий функций. Например, драйвер виртуальной памяти ядра /dev/kmem имеет префикс mm, таким образом функции этого драйвера будут иметь названия mmopen () , mmclose(),mmread() И mmwrite() .

В табл. 5.1 приведены некоторые точки входа, общие для различных типов драйверов, а символами хх, с которых начинается имя каждой функции, обозначен уникальный префикс драйвера. Стандартные точки входа драйвера отличаются для разных версий UNIX. Например, некоторые версии имеют расширенный коммутатор блочных устройств, включающий такие функции, как xxioctl (), xxread () и xxwrite (). В некоторых версиях включены точки входа для инициализации и сброса шины данных.

Таблица 5.1. Типичные точки входа в драйвер устройства

Точка входа

Сим-вольный

Низкого ный уровня

Назначение

Вызывается при каждой опера-

ции открытии устройства. Обеспечивает необходимую реини-циализацию физического устройства и внутренних данных драйвера. Например, для каждого последующего открытия драйвера могут размещаться дополнительные буферы, обеспечивающие возможность независимой работы с устройством нескольким процессам

Вызывается, когда число ссылок на данный драйвер становится равным нулю, т. е. ни один из процессов системы не работает с устройством (не имеет открытым соответствующий файл устройства). Может вызывать отключение физического устройства. Например, драйвер накопителя на магнитной ленте может перемотать ленту в начало

Производит чтение данных от устройства

Является общим интерфейсом

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

Вызывается при поступлении

прерывания, связанного с данным устройством. Может выполнить копирование данных от устройства в промежуточные буферы, которые затем считываются функцией xxread () по запросу прикладного процесса.

Производит опрос устройства.

Обычно используется для устройств, не поддерживающих прерывания, например, для определения поступления данных для чтения

Вызывается для останова драй-

вера при останове системы или при выгрузке драйвера.

Общая точка входа для операций блочного ввода/вывода. Название функции говорит о том, что устройство может обеспечивать собственную стратегию обработки поступающих запросов, например, изменять их порядок для повышения производительности ввода/вывода. Если устройство занято, функция помещает запросы в очередь. В этом случае фактический ввод/вывод инициирует функция обработки прерывания, которая вызывается, когда устройство закончит предыдущую операцию ввода/вывода

Ядро вызывает те или иные функции драйвера в зависимости от запроса. Например, если процесс выполняет системный вызов read(2) для специального файла символьного устройства, ядро вызовет функцию xxread () для соответствующего символьного драйвера. Если же процесс запрашивает ту же операцию для обычного дискового файла, ядро вызовет процедуру xxstrategy() для блочного драйвера, обслуживающего данную файловую систему.

Вообще говоря, можно выделить пять основных случаев, в которых ядро обращается к функциям драйвера:

О Автоконфигурация. Обычно происходит в процессе инициализации UNIX, когда ядро определяет, какие устройства доступны в системе.

О Ввод/вывод. Запрос на операцию ввода/вывода может быть инициирован как прикладным процессом, так и некоторыми подсистемами ядра, например, подсистемой управления памятью.

О Обработка прерываний. Ядро вызывает соответствующую функцию драйвера для обработки прерывания, поступившего от устройства (если устройство способно генерировать прерывания).

П Специальные запросы. Ядро вызывает соответствующую функцию драйвера для обработки специальных команд, полученных с помощью системного вызова ioctl(2).

П Реинициализация/Останов. Некоторые типы аппаратных архитектур могут требовать сброса и реинициализации устройства. Определенные функции драйвера также вызываются при останове операционной системы.

На рис. 5.2 и 5.3 приведены схемы доступа к драйверам символьного и блочного устройств.

Как видно из рисунков, схема обработки запроса ядром UNIX различна для символьных и блочных устройств.

При обсуждении точек входа драйверов устройств следует иметь в виду, что большинство функций драйвера, отвечающих за передачу данных, осуществляют копирование информации из адресного пространства ядра, в котором находится сам драйвер, в адресное пространство задачи. Когда ядро вызывает функцию драйвера, все действия выполняются в системном контексте процесса. Однако схема вызова функций может быть различной:

П Функция может быть вызвана по запросу процесса. Например, если процесс выполняет системный вызов read(2), ядро вызывает соответствующую точку входа драйвера xxread(), обеспечивающего работу с файлом. В этом случае говорят, что функция имеет контекст задачи.

П Функция может быть вызвана другой подсистемой ядра операционной системы. Например, для блочного драйвера функция xxstrategy () может быть вызвана страничным демоном, для сохранения страниц во вторичной памяти (как правило, на жестком диске). Поскольку страничный демон представляет собой системный процесс, выполняющийся только в контексте ядра, функция xxstrategy () в этом случае имеет системный контекст.

Если функция вызывается в процессе обработки прерывания, то она имеет контекст прерывания -- специальный вид системного контекста. Функции драйвера, отвечающие за обработку прерывания, например xxintr () имеют этот тип контекста.

Рис. 5.3.

Различия в контексте и причинах вызова тех или иных функций драйвера позволяют представить драйвер устройства состоящим из двух частей: верхней части (top half) и нижней части (bottom half). Функции верхней части драйвера имеют синхронный характер, т. е. вызываются по определенным запросам прикладного процесса и выполняются в его контексте. Таким образом, для этих функций доступно адресное пространство и u-area процесса, и при необходимости эти функции могут перевести процесс в состояние сна (вызовом функции sleep (} ядра). Функции ввода/вывода и управления принадлежат верхней части драйвера.

Вызов функций нижней части носит асинхронный характер. Например, момент вызова функции обработки прерываний нельзя предугадать, и ядро не может контролировать, когда эта функция будет вызвана. Выполнение таких функций происходит в контексте ядра и обычно не имеет никакого отношения к контексту текущего процесса. Таким образом, функции системного контекста не имеют права адресовать структуры данных текущего процесса, например его u-area, а также не могут перевести процесс в состояние сна, поскольку это заблокирует процесс, не имеющий непосредственного отношения к работе драйвера.

Две части драйвера требуют синхронизации. Например, в случае, когда функции обеих частей используют одну и ту же структуру данных, функция верхней части при выполнении должна заблокировать прерывания на период работы с "разделяемой" областью памяти. В противном случае, прерывание может поступить в тот момент, когда целостность структуры данных нарушена, что приведет к непредсказуемым результатам.

Все представленные выше функции, за исключением xxhalt (), xxpoll () и xxintr {), принадлежат верхней части драйвера. Функция xxhalt {) вызывается ядром при останове системы и, таким образом, имеет системный контекст, не связанный с контекстом прикладного процесса.

Функция xxpoll () обычно вызывается при обработке ядром прерывания таймера для всех устройств, указанных как опрашиваемые. Это необходимо, в частности, для устройств, которые не могут или "не хотят" использовать аппаратные прерывания. Вместо этого xxpoll () может использоваться для эмуляции прерываний, например вызывая функцию xxintr (} на каждый n-ный тик системного таймера. Поэтому и функция xxpoll () и функция обработки прерывания xxintr () не могут рассчитывать на контекст прикладного процесса. В большинстве версий UNIX функции опроса и обработки прерываний вызываются не через коммутатор устройств, а через специальные таблицы ядра.

В UNIX SVR4 определены две дополнительные точки входа -- init () и start (). Драйвер регистрирует эти функции в таблицах ядра io init и io_start. Код начальной загрузки системы запускает функции xxinit () перед инициализацией ядра, а функции xxstart () сразу же после инициализации.

Сегодня мы рассмотрим:

Существуют различные причины, по которым необходимо на персональный компьютер. Не всегда это делается с использованием программ с автоматической подборкой драйверов.

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

Звуковая карта не определяется ОС

Рассмотрим случаи, когда операционная система не в состоянии самостоятельно выбрать драйвер для звуковой карты персонального компьютера. В процессе переустановки системы и дальнейшей ее перезагрузки, это определяется отсутствием звуковых сигналов.

Причиной в создании такой ситуации может быть установленное звуковое оборудование на персональном компьютере, которое: редко встречается; дата выпуска старше, чем устанавливаемая ОС.
В таком случае надо в ручном режиме выполнить установку звукового драйвера. Есть несколько способов определения необходимого звукового драйвера для ПК.

Помощь Microsoft в определении звукового драйвера

Операционная система компьютера предлагает свою помощь в определении нужного звукового драйвера. Необходимо направить курсор на папку «Мой компьютер» нажимаем правую кнопку мыши (ПКМ), далее «Свойства», затем «Оборудование». Можно сделать проще: папка «Мой компьютер» нажимаем ПКМ, переходим в раздел диспетчер устройств.

Откроется список в диспетчере устройств, выбираем звуковую карту (нет драйвера, рядом с ней стоит восклицательный знак). Выделяем строку, вверху есть опция «Обновить драйвер», затем пункт «Поиск драйверов», когда все происходит с положительным результатом, будет предложено окно «Установить».

Ручной вариант поиска звукового драйвера

Когда автоматический выбор звукового драйвера не получился, надо пробовать найти его вручную, для этого переходим в любую поисковую систему (Google, Яндекс). Затем в поисковой строке вводим название своего звукового устройства на ПК и добавляем «+ драйвер», в открывшемся окне выбираем нужный для нас .

Какой необходим драйвер для персонального компьютера? Это легко увидеть на вкладке «Диспетчер устройств». Рекомендуется скачивать драйвер на официальном сайте производителя установленной материнской платы (когда звуковая карта встроена в нее). Предлагается также скачать драйвер с сайта, специализирующегося на обновлении этого оборудования для ПК.

После произведенного скачивания драйвера переходим снова на вкладку «Диспетчер устройств», открываем «Поиск драйверов на ПК», указываем место, куда его сохранили, «Установить».

Установка звукового драйвера программой

Бывают случаи, когда пользователю компьютера сложно найти звуковой драйвер вручную и при помощи ОС, тогда предлагается его поиск специальной программе. В настоящее время для этих целей есть несколько программ: Driver Checker, Sam Drivers, Device Doctor, другие программы.

Работать с интерфейсом программ этого вида, понятно, на интуитивном уровне.

Бывают разные случаи, в которых необходимо определить звуковой драйвер для своего ПК, специалисты советуют:

  • Определить модель установленного звукового устройства на ПК (читаем на компьютере). Может быть, отсутствие звука в причине не установленного оборудования, запрета его использования в BIOS.
  • Когда звук, на ПК интегрированный, рекомендуется скачивать звуковой драйвер только с сайта производителя «материнской платы», или же в случае отдельной установки звуковой карты списать с нее маркировку чипа. Через систему поиска по маркировке найти необходимый драйвер.
  • Рекомендуется пользоваться программой AIDA 64, она не только покажет необходимый звуковой драйвер, но и все установленное оборудование, можно определить и маркировку чипа.