Linux как добавить драйвера

Установка драйверов для оборудования в Linux Mint

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

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

По идее, все должно подтягиваться из интернета

Мой небольшой опыт в установке Linux Mint и других дистрибутивов Linux подсказывает, что чаще всего необходимые драйвера подтягиваются при установке из интернета. То есть, после завершения процесса инсталляции, на ПК или ноутбуке уже должно все работать. Исключение из этого правила составляет устаревшее или редкое оборудование, встроенные видеокарты и видеокарты от NVIDIA. Для них в Linux Mint имеется Менеджер драйверов.

Используем Менеджер драйверов

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

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

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

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

Рекомендованные сообществом и разработчиками версии драйверов отмечены соответствующим образом. Отметка обозначает, что данные драйвера прошли тестирование и гарантированно будут работать на данном дистрибутиве и с данным оборудованием. Также отметка будет находиться напротив драйверов с открытым исходным кодом. На моей практике помимо видеодрайверов в этом меню еще могут находиться драйвера для Wi-Fi или Bluetooth модулей, один раз там у меня располагался подключенный к ноутбуку сканер.

Читайте также:  Fedora linux server edition

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

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

Что если Менеджер драйверов не поможет?

Количество оборудования, которое может попасться пользователю Linux Mint огромно и всегда существует вариант, что в репозиториях Linux Mint будет отсутствовать вариант драйверов для этого оборудования. В таком случае могу посоветовать только обратиться к интернету: зная модель и версию оборудования ищите драйвера для Linux на форумах и сайтах. Скорей всего вы окажетесь не единственным пользователем, который столкнулся с отсутствующими драйверами.

Также не стоит забывать про сайт производителя оборудования, вполне может быть, что Linux-версия оборудования будет находиться там. У меня так было с адаптером Bluetooth — в репозиториях ничего, но зато на сайте есть архив с драйверами и инструкцией по установке.

Подведем итоги

Как по мне, с проблемами в плане драйверов чаще сталкиваются владельцы ноутбуков. Пользуясь ПК, например, у меня не возникало проблем с драйверами до момента, пока не втыкал в системный блок или материнскую плату что-то инородное.

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

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

Источник

Добавление драйвера устройства в Linux

Обычно в системах Unix и Linux установка драйверов для новых устройств не вызывает трудностей. Даже для неопытных пользователей этих систем. Но это в том случае, если производители устройства (и/или разработчики драйверов) позаботились об этом. И оснастили пакет драйвера специальными установочными и конфигурационными скриптами. А также протестировали всё это в нескольких системах. Однако бывают случаи, когда «удобной» возможности установить драйвер устройства нет, но есть исходные коды драйвера. В таком случае можно попытаться собрать драйвер самостоятельно. Конечно, это далеко не так просто, нужно поэкспериментировать. Но успешный результат возможен с высокой вероятностью. И главное, что для этого требуется — это знать и понимать общий порядок действий в случае ручной сборки драйвера. С такими задачами часто сталкиваются администраторы систем, обслуживающих технологические процессы на производствах, хостинг-площадки и т. д.

Читайте также:  Making file executable in linux

Способы установки драйверов

Для Linux-систем установка драйверов устройств происходит тремя основными способами:

  • установка патча для определённых версий ядра;
  • использование специальных сценариев для установки и конфигурации драйвера;
  • с помощью загружаемого модуля ядра.

Надо признать, что для Linux ручная установка драйверов представляет собой довольно сложную и трудоёмкую работу. Поэтому разработчики стремятся всё чаще обеспечивать автоматическую установку и настройку для своих драйверов/устройств. Ведь они заинтересованы в максимально эффективном распространении своих разработок. По этой причине самым распространённым способом установки драйверов является использование сценариев установки. Для самых популярных типов устройств, например для видеокарт, аудиоустройств и даже для сетевого оборудования в настоящее время трудно найти драйверы без автоматической установки.Установка таких драйверов ничем не отличается от установки обычных пакетов. Вся инструкция описана в файле README, подробнее об установке из исходников читайте здесь.

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

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

$ cd каталог_исходных_кодов_ядра $ patch -p1 < файл_патча

Расположение «каталог_исходных_кодов_ядра» зависит от системы, в CentOS это /usr/lib/modules//kernel, Например

/usr/lib/modules/3.10.0-862.el7.x86_64/kernel

В случае с ручной установкой, необходимо для начала интегрировать драйвер некоего устройства (исходные коды) в дерево каталогов исходных кодов ядра.

Ручная установка драйвера

Для примера, пусть требуется добавить в ядро драйвер некоего сетевого устройства netdevice. Драйвер этого устройства нужно (как уже известно) поместить в один из каталогов с исходными кодами ядра. А именно — в каталог drivers, внутри которого может быть следующее содержимое:

$ ls -F каталог_исходных_кодов_ядра/drivers

Драйверы чаще всего помещаются в подкаталоги scsi, char, block, net, а также sound и usb. Эти подкаталоги отражают схему размещения драйверов в зависимости от их типа: блочные — для дисков IDE, символьные — для последовательных портов например, для сетевых устройств, звуковых плат и USB-устройств — USB-адаптеры, USB-модемы и т. д. Другие подкаталоги служат для размещения драйверов других категорий, в частности для системных и разного рода шин (pci, pcie, nubus, zorro), а также для платформенно-зависимых драйверов — acorn, macintosh.

Читайте также:  Android linux log files

Таким образом, драйверы для сетевого устройства netdevice следует поместить в следующий каталог:

каталог_исходных_кодов_ядра/drivers/net/netdevice

Исходные коды драйвера представляют собой набор файлов *.c, *.cpp и *.h, которые могут быть объединены в дерево каталогов, в зависимости от того, как составлен проект «исходников» драйвера.

Теперь необходимо включить исходные коды драйвера netdevice в процесс компиляции ядра. Для этого нужно отредактировать следующие файлы:

  • /drivers/net/Makefile – для сборки самого драйвера;
  • /drivers/net/Kconfig – для того, чтобы имя нового устройства было доступно для конфигурирования.

Файлы Makefile и Kconfig содержатся в каждом каталоге дерева каталогов с исходными кодами ядра Linux. Это необходимо для организации универсальной разработки и расширения функционала и возможностей ядра при его сборке из исходных кодов путём независимого дополнения новым кодом. В данном случае кодом драйвера для устройства netdevice.

В файл Makefile следует добавить следующий код:

obj-$(CONFIG_NETDEVICE_DEV) += netdevice/

Таким образом, при сборке ядра в его составе будет собран и сам драйвер netdevice. После дополнения файла Kconfig следующим кодом:

config NETDEVICE_DEV tristate 'Netdevice support'

устройство netdevice будет доступно для использования конфигурационным макросом (необходимо на этапе конфигурирования сборки ядра). Здесь команда config использует ключевое слово NETDEVICE_DEV, которое обязательно должно совпадать с фразой, следующей после CONFIG, которое ранее было указано в файле Makefile.

Команда tristate указывает, что драйвер может быть собран как загружаемый модуль, если это поддерживается. Если нет, то вместо tristate следует указать bool – драйвер будет частью ядра. Фраза ‘Netdevice support’ будет отображаться в выводе конфигурационного скрипта на этапе конфигурирования сборки ядра. Это может быть любой текст, идентифицирующий устройство, для которого добавляется драйвер.

Использование нового драйвера

В современных версиях ядра Linux задействование новых драйверов существенно упрощено. В отличие версий, выпущенных раньше 2.6. Тогда это было настоящей головоломкой и требовало знаний в программировании. Но архитектурные изменения в модели драйверов и устройств, пришедшие в версии 2.6 позволяют теперь связывать драйверы с ядром на более высоком «общепользовательском» уровне. Для этого используется специальный конфигурационный макрос MODULE_DEVICE_TABLE. Он создаёт соответствия, которые позволяют утилите modprobe (и ей подобным) задействовать новые драйверы ядра.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Похожие записи:

Источник

Оцените статью
Adblock
detector