Универсальные драйверы для linux

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

Для того чтобы установленная операционная система могла корректно работать и взаимодействовать с комплектующими компьютера или другими внешними устройствами, подключенными к нему, должны быть установлены драйвера. В Windows с ними бывает много проблем, в особенности у людей слабо владеющими ПК, на деле в этом нет ничего трудного: достаточно узнать точное название модели и найти нужные файлы на официальном сайте производителя в разделе «Помощь». Но что насчёт дистрибутивов на базе GNU/Linux?

Как обстоит дело в Linux с ПО

Debian, Ubuntu их форки и другие дистрибутивы в большинстве случаев работают с открытыми драйверами, которые встроены в ядро Linux. Таким образом пользователь сможет в полной мере пользоваться как Live USB & CD, так и только что установленной системой. Ничего, кроме обновлений, устанавливать не приходится.

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

Инсталляция проприетарных и свободных драйверов

Установка драйверов на Linux способна снизить нагрузку на компьютер и сделать работу систему плавнее и более оптимизированной. В особенности это подойдёт для игр и редакторов трёхмерной графики. Далеко не всегда на отдельно взятую машину можно установить проприетарный драйвер. Иногда таковых нет или оборудование в силу своей неактуальности прекращает поддерживаться. Тут два выхода: продолжать пользоваться открытым ПО или думать о переходе на более старый LTS дистрибутив, для которого производители ещё выпустили программное обеспечение.

Нередко на старых машинах с ОС Debian бывает так, что даже открытые драйвера не устанавливаются. Это обычно связано с устареванием железа или с отсутствием нужных компонентов репозитории.

Добавление несвободных компонентов в систему:

$ deb http://httpredir.debian.org/debian/ «Кодовое имя дистрибутива» main contrib non-free

$ sudo apt update

$ sudo apt upgrade

Установка несвободной прошивки, OpenGL и пакета поддержки графики:

$ sudo apt install firmware-linux-nonfree libgl1-mesa-dri xserver-xorg-video-ati

После этого нужно перезагрузить систему.

Также есть и свободный графический драйвер для AMD Radeon «AMDGPU». Его можно скачать с сайта производителя, выбрав нужный пакет.

Или установить из терминала. Сначала необходимо проверить систему на наличие данного пакета:

$ dpkg -l amdgpu-pro

Команды для обновления или чистой инсталляции:

$ wget -c —referer=’http://support.amd.com/ru-ru/download/desktop?os=Linux+x86′ https://www2.ati.com/drivers/linux/ubuntu/amdgpu-pro-16.60-379184.tar.xz

$ tar -Jxvf amdgpu-pro-16.60-379184.tar.xz

$ sudo usermod -a -G video $LOGNAME

Далее необходима перезагрузка.

Используя старое оборудование, следует поставить драйвера Linux, которые последними были выпущены. Скорее всего, это будет Ubuntu 14.04 или ещё более старая версия.

Nvidia

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

Также можно провести инсталляцию из официального репозитория. Проверка на наличие версий драйверов:

$ sudo apt update && clear && apt-cache search nvidia-1 | grep ‘binary driver’

$ sudo apt install nvidia-«Версия пакета» nvidia-«Настройки»

Создание конфига xorg.conf:

Перезагрузка компьютера, после которого всё должно работать правильно.

Intel

У Intel нет проприетарного ПО, все драйверы имеют открытый исходный код и находятся внутри ядра Linux. То есть для пользователей ноутбуков и настольных ПК с процессором Intel и встроенным графическим ядром вообще не придётся думать о дополнительных настройках ОС.Также написано и на официальной странице: «Большинство Linux-дистрибутивов включают в себя графические драйверы Intel. Обратитесь к поставщику операционной системы и используйте их дистрибутив для доступа и поддержки драйверов». Другими словами производительность операционной системы на базе процессора Intel не зависит от несвободного ПО.

Читайте также:  Что такое ос windows не удалось получить параметры сети от маршрутизатора

Старые комплектующие

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

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Windows lite для слабых ноутбуков

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

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

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

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

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

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

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

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

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

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

Источник

Нет драйверов на Linux, но есть на Windows. Что делать?

можно на выбранный мной комп поставить Ubuntu и прикрутить туда Виндовсные драйверы?

Поставь последнюю Ubuntu, должно заработать.

Ноутов полно. Я хожу в магазины с загрузочной флешкой.

можно на выбранный мной комп поставить Ubuntu и прикрутить туда Виндовсные драйверы

еще какие-нить варианты ноутов до 800$. веб разработчика под Linux

можно на выбранный мной комп поставить Ubuntu

и прикрутить туда Виндовсные драйверы

Или как быть в такой ситуации?

Источник

В чем разница в драйверах Linux, OS X и Windows?

Объясните пожалуйста, разницу между драйверами в этих системах, и что есть драйвер в каждой из них?

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

В Linux и OS X, как то все по другому. В большинстве своем устройства умеют из коробки. Я читал, что драйвера «вшиты в ядро», но не могу понять, что это значит?

Почему так получается, что линукс с кучей вшитых драйверов, занимает меньше места чем свежеустановленная винда?

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

Если в винде драйвер это инсталлятор, то что есть драйвер в Linux и OS X?

Почему к примеру такие устройства, как 3g модем, на винде для введения команд, требует установки драйверов и установки отдельной программы hyperterminal, тогда как на OS X, есть просто устройство в /dev/tty.3gModem , к которому можно подключиться по screen безо всяких драйверов?

  • Вопрос задан более трёх лет назад
  • 3067 просмотров
Читайте также:  Xerox workcentre 3025 не сканирует mac os

«драйвер это чаще всего графический инсталлятор»
«Если в винде драйвер это инсталлятор, то что есть драйвер в Linux и OS X?»

Не приравнивайте инсталлятор драйвера и сам драйвер. Драйвер в винде может предствлять собой один .inf файл, и не иметь никакого инсталлятора.

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

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

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

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

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

Если взять видеокарту, которая поддерживает DirectX12, то в Линуксе его (DirectX) вообще нет, и Линукс не сможет пользоваться всеми фичами, предоставляемыми карточкой, вот и ответ почему Линукс работает со многими устройствами стандартными драйверами, а Windows требует индивидуальный.

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

А вообще — все дело в оптимизации, в поиске «лучшего пути» и т.п.

Поэтому все программы (а драйвера являются программами) или вообще не совместимы или очень ограниченно совместимы с различными операционными системами.

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

В Linux и OS X, как то все по другому. В большинстве своем устройства умеют из коробки. Я читал, что драйвера «вшиты в ядро», но не могу понять, что это значит?

Т.н. монолитная архитектура vs микроядерная.

Есть еще и хитрые комбинации — прочитайте про ядро Mach например.

Или про то как устроены драйвера в FreeBSD — одни и те же драйвера в FreeBSD могут как встраиваться в ядро FreeBSD (как в Linux), так и существовать как отдельные модуля (как в Windows).

UPD:
Разница в архитектуре операционных систем и, следовательно, во внутреннем устройстве драйверов настолько велика, что даже имея доступ к исходным текстам, перенести драйвера из Linux в FreeBSD, к примеру — это много работы, много усилий. Скажем драйвера от последнего GPU i3/i5/i5 переносили пару-тройку лет.

Источник

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