Нужны ли драйвера для linux

Обновлено: 03.07.2024

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

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

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

Установка

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

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

После успешной распаковки из архива и компиляции исходников (./configure, make, make install), вы, скорее всего, столкнетесь с выбором из трех вариантов:

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

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

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

Вам нужно открыть конфигурационный файл, содержащий список модулей. Также необходимо знать его точное имя и размещение файла в вашем дистрибутиве. В Ubuntu этот файл называется modules.conf и размещается в /etc каталоге ( /etc/modules.conf ). Мы обновим этот файл, но вначале мы сделаем его резервную копию. Пожалуйста помните, что для изменения конфигурационных файлов нужны права суперпользователя.

Так будет выглядеть эта процедура:

Приведенные выше команды откроют файл modules.conf в текстовом редакторе gedit. Теперь, просто добавьте драйвер в пустую строку ниже существующих драйверов, сохраните файл, выйдите из текстового редактора и перезагрузите систему, чтобы изменения вступили в силу. Это все!

Вот пример, файла modules.conf для Kubuntu Linux, установленной на виртуальной машине. Добавим новый драйвер. Мы просто запишем его имя ниже существующих записей. Конечно, необходимо знать ТОЧНОЕ имя соответствующего драйвера.


Третий вариант немного более сложный.

Загрузка драйверов

Вы успешно скомпилировали драйвер, но ничего не произошло. Это получилось потому, что драйвер еще не включен. Посмотрев внутрь каталога, вы заметите файл с расширением .ko . Это и есть ваш драйвер, и его необходимо загрузить вручную.

Нам нужно установить драйвер в ядро. Это можно сделать с помощью команды insmod .

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

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

Конфигурирование драйверов

Конфигурирование драйвера требует немного знаний о его функциональности. Чаще всего инструкции находятся в текстовых файлах how-to руководства.

Ниже приведенный пример показывает как конфигурировать сетевую карту после загрузки сетевого драйвера. Сетевой карте присвоен идентификатор и IP адрес. В данном случае, eth0 - имя выбранного устройства, но оно может быть другим, например: eth1, eth2 и т. д. . Назначенный IP адрес показывает нам, что машина будет частью локальной сети.

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

Скрипты

Как и в системах DOS и Windows, скрипты могут быть написаны в текстовом редакторе. Учитывая внутренние различия между текстовыми файлами и скриптами, необходимо различать текстовые файлы и скрипты. В системе Windows достаточно изменить расширение .txt на .bat и файл станет скриптом. В Linux немного по-другому.

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

Таким образом, записав в файл приведенные выше команды плюс ссылка на оболочку, получим следующий скрипт:

Можно сделать это короче:

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

Сделаем скрипт исполняемым.

Теперь у нас есть работающий скрипт. Нам нужно разместить его в каталоге /etc/init.d и он будет запускаться во время начальной загрузки системы.

В завершение нужно обновить систему для активации скрипта.

После перезагрузки вы поймете, что драйвер загружен автоматически и сетевая карта сконфигурирована! Возможен и другой вариант, make install и драйвер будет помещен в каталог по умолчанию:

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

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

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

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

Давайте рассмотрим подробнее работу с драйверами linux и Windows.

Как драйвера устройств работают в Windows

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

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

Как работают драйвера Linux

В Linux ситуация с драйверами очень сильно отличается. Большинство драйверов для вашего оборудования распространяются в виде открытого программного обеспечения и интегрированы в дистрибутив Linux. Эти драйверы linux, как правило, являются частью ядра Linux, но здесь есть исключение - драйверы видеокарты являются частью программного обеспечения Xorg, а драйверы принтера включены в набор CUPS (система печати).

Это значит, что большинство доступных для linux драйверов уже установлены на вашем компьютере, включены вместе с ядром, в виде модулей ядра или вместе с графическим сервером или сервером печати. Установка драйверов Linux почти не нужна. Драйвера в Linux разработаны, в основном, энтузиастами, но иногда их выпускают сами производители оборудования, которые вносят свой вклад в развитие ядра Linux и других проектов, например, это Intel, AMD, а также другие, более мелкие производители.

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

Установка проприетарных драйверов Linux

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

Чаще всего нам приходится сталкиваться с проприетарными драйверами для видеокарт, например, для NVIDIA, которые обеспечивают лучшую производительность в играх на Linux. Конечно, есть драйверы ядра Linux с открытым исходным кодом, которые заставят вашу видеокарту работать, но они не могут обеспечить достаточный уровень производительности в 3D играх. Некоторые драйвера wifi по прежнему закрыты, поэтому ваше оборудование не будет работать пока вы их не установите.

Установка драйверов в Linux зависит от вашего дистрибутива. В Ubuntu и основанных на ней дистрибутивах есть специальный инструмент - Дополнительные драйверы.


Программа определит, какие проприетраные драйверы устройств Linux можно установить и предложит скачать и установить их. В Linux Mint тоже есть инструмент менеджер драйверов, он работает аналогично инструменту в Ubuntu. Fedora - против проприетарных драйверов Linux и здесь нет никакого способа их установить. Во многих дистрибутивах проприетарные драйверы устройств linux можно найти в неофициальных репозиториях. Каждый дистрибутив решает эту проблему по-разному.

Установка прошивок в Linux

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

Чтобы установить прошивки в Linux необходимо скачать и установить пакет linux-firmware, это можно сделать с помощью следующей команды в Ubuntu:

sudo apt install linux-firmware

А в RPM дистрибутивах:

sudo yum install linux-firmware

Также возможно придется установить другие прошивки. Чтобы посмотреть подробнее, что нужно, и как установить, посмотрите лог ядра dmesg.

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

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

Вы также можете попытаться определить принтер по описанию PostScript или PPD файла. Эти файлы часто входят в состав драйвера принтера для Windows и вы можете найти PPD файл, который сделает работу вашего принтера лучше. Файл PPD можно выбрать в процессе работы CUPS.

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

Как заставить работать другое программное обеспечение

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

В общем, если в Linux что-то не работает из коробки, и если оно все еще не работает после установки драйвера или прошивки, то, скорее всего, оно уже не будет работать вообще. Если вы используете старую версию Linux, может помочь обновление до самой новой версии. Это обеспечит лучшую аппаратную поддержку и обновления. Но если что-то все еще не работает, то , скорее всего, оно уже работать не будет.

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

Выводы

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

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

Rsync был создан специально для скорости и сохранения полосы пропускания. Там интерфейс GUI для rsync называется grsync.

3 ответа

По большей части вам не нужно устанавливать дополнительные драйверы. Включены почти все доступные драйверы.

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

Самый простой способ узнать, нужны ли какие-либо драйверы, - сначала выбрать «Попробовать Ubuntu» на экране установки, чтобы узнать, нужны ли вам какие-либо драйверы, и проверить, есть ли у Ubuntu работа с вашим оборудованием.

Ubuntu - это операционная система с открытым исходным кодом, и в операционной системе с открытым исходным кодом можно предоставить пользователям дополнительную защиту от проблем, вызванных установкой неправильного драйвера, и дополнительную помощь в восстановлении системы после установки неправильный проприетарный графический драйвер. Здесь я имею в виду встроенные графические драйверы с открытым исходным кодом, такие как nouveau и пакеты amdgpu, и проприетарные графические драйверы, такие как драйверы NVIDIA с официального сайта NVIDIA и драйвер AMDGPU-Pro 1 от официального AMD веб-сайт.

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

В системах Linux (и некоторых других Unix с открытым исходным кодом) драйверы обрабатываются совсем иначе, чем в ОС Windows.

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

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

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

Что бы посмотреть список доступных для вашей системы проприетарных драйверов зайдите в меню Система-Администрирование-Драйверы устройств. У вас должно быть рабочее подключение к интернету, поскольку поиск драйверов происходит именно в нём. После поиска система покажет вам список всех доступных драйверов, в моём случае он выглядит так:


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

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


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


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

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

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

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


Где не стоит искать и брать драйвера для Linux.

Для начала стоит сказать, что не стоит искать драйверы для Linux на диске производителя. Если они там и есть , то слишком старые и наверняка уже не совместимы с вашей системой.

Внимание: берите пакеты только с сайта разработчика ( если это Open Source) или с сайта производителя устройства. Ни каких файлообменников, особенно платных.

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

Драйвера для Linux есть, но их надо првильно искать!

Пример вывода команды lsusb:

В выводе этих команд ищем строку соответствующую нашему устройству. Как правило это не составляет труда. Можно сориентироваться по названию устройства или названию чипа. Или по тому какая строка появляется при подключении USB устройства. Или методом исключения. Вот эту строку и нужно вводить в поисковую систему, Google или Yandex. Google предложит вам англоязычные сайты, и если вы способный понимать, что там написано, Google конечно предпочтительнее. Иначе используйте Yandex. Например для поиска информации по Wi-Fi адаптеру из примера нужно ввести в поиск: ID 0bda:8198 Realtek Semiconductor Corp. RTL8187B Wireless Adapter. Если по все строке не чего не нашлось, то нужно попробовать поискать по идентификатору устройства. Наша цель поиска в поиске источника драйвера и краткого алгоритма его установки. Но главное конечно сам Linux драйвер.

Обзор способов установки драйверов для Linux.

Установка из двоичного пакета становится все более распростроненной в Linux. Но это не всегда возможно, хотя и проходит в 99 случаев из 100. Даже если не нашли двоичного пакета не стоит растраиваться. Linux предоставляет гораздо больше возможностей , чем другие, устаревшие ОС.

Установка драйвера для Linux из исходного кода.

Некоторые тонкости при установке драйверов для Linux.

Установка драйвера звуковых карт .

В этом случае необходима поддержка alsa в ядре. Драйвер вашего устройства из состава ядра или из пакета :alsa-driver. Остановитесь на чем то одном.Необходимы пакеты alsa-utils , alsa-lib, драйверы устройства . Системный сервис alsa должен запускаться при старте системы. Используйте программу alsamixer для первоначального включения звука и опытов. Если у вас звуковая карта на основе snd-hda-intel, но при этом не работают наушники/микрофон. Необходимо передать модулю звуковой карты параметр, определяющий модель чипсета, а их для данного драйвера очень много. Чипсет можно узнать из соответствующей строки в alsamixer. Затем, сверившись с документацией ALSA ( /usr/src/linux/Documentation/sound/alsa/ALSA-Configuration.txt и /usr/src/linux/Documentation/sound/alsa/HD-Audio-Models.txt ), ввести следующую строку в /etc/modules.d/alsa:

Установка драйверов для видеокарт под Linux.

Для полноценной работы видеокарт в Linux необходима поддержка DRM. Поддержка DRM в Linux может быть включена или через ядро, или через библиотеку libdrm. Остановитесь на чем то одном. Необходимы пакеты : mesa , драйвер вашей видео карты из состава xorg или фирменный. Название загружаемого драйвера прописывается в файле /etc/X11/xorg.conf . Если этот файл удалить то видео система Linux ( сейчас это Xorg ) попытается настроиться автоматический. Если у вас что-то не получается с драйверами ATI в Linux , то попробуйте прочитать следующие рекомендации. Во-первых, выясните не только модель своей карты, но и её поколение по таблице в Википедии(R300, R600 и т.п.) Далее, существует два пакета с драйверами для ATI:

  • xf86-video-ati (они же «radeon») — открытые и активно разрабатываемые драйверы. Поддерживают KMS, Xrandr и Gallium
  • ati-drivers (fglrx) — закрытые драйверы от ATI/AMD. Наиболее полно поддерживают возможности оборудования, но имеют множество проблем, самой главной из которых сто́ит признать плохую поддержку новых версий ядра и xorg-server

Пройдёмся по основным поколениям карт ATI:

  • r100, r200 — не поддерживаются закрытыми драйверами с незапамятных времён; radeon же поддерживает их возможности в полном объёме;
  • r300-r500 — поддержка этих карт в fglrx прекращена в версии 9.3; в radeon поддерживаются хорошо;
  • r600, r700, r800 — именно на эти серии нацелены последние версии fglrx. В свободных драйверах реализована (и очень неплохо) поддержка двухмерного ускорения, Xrandr (работа с несколькими мониторами), Xvideo (ускорение вывода видео), поддержка трёхмерного ускорения в процессе разработки (для r800 необходима mesa 7.9);
  • r900 — пока поддерживается лишь в последних версиях fglrx и в radeon из git (по слухам, обоими неважно).

Читайте также: