- Как установить драйвера на Linux
- Как обстоит дело в Linux с ПО
- Инсталляция проприетарных и свободных драйверов
- Nvidia
- Intel
- Старые комплектующие
- Драйвера для Linux.
- Как называются драйвера для Linux ?
- Где не стоит искать и брать драйвера для Linux.
- Драйвера для Linux есть, но их надо првильно искать!
- Обзор способов установки драйверов для Linux.
- Установка драйвера для Linux из исходного кода.
- Некоторые тонкости при установке драйверов для Linux.
- Установка драйвера звуковых карт .
- Установка драйверов для видеокарт под Linux.
- Добавление драйвера устройства в 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-3 | grep ‘binary driver’
$ sudo apt install nvidia-«Версия пакета» nvidia-«Настройки»
Создание конфига xorg.conf:
Перезагрузка компьютера, после которого всё должно работать правильно.
Intel
У Intel нет проприетарного ПО, все драйверы имеют открытый исходный код и находятся внутри ядра Linux. То есть для пользователей ноутбуков и настольных ПК с процессором Intel и встроенным графическим ядром вообще не придётся думать о дополнительных настройках ОС.Также написано и на официальной странице: «Большинство Linux-дистрибутивов включают в себя графические драйверы Intel. Обратитесь к поставщику операционной системы и используйте их дистрибутив для доступа и поддержки драйверов». Другими словами производительность операционной системы на базе процессора Intel не зависит от несвободного ПО.
Старые комплектующие
К сожалению, производители рано или поздно прекращают поддержку старого оборудования. В таком случае остаётся или использовать поддерживаемую версию Windows, или оставаться на более поздних дистрибутивах Ubuntu или Debian, для которых также были выпущены пакеты поддержки.
Источник
Драйвера для Linux.
Как называются драйвера для Linux ?
Драйвера в Linux называются — модулями ядра ( modules kernel ), но не все модули являются драйверами. Некоторые модули создают виртуальные устройства, обслуживают файловые системы, обеспечивают шифрование на уровне ядра и т.д. Эта статья не ставит целью спор о терминологии, просто я хочу описать, что делать когда ваше устройство не работает под Linux.
Где не стоит искать и брать драйвера для Linux.
Для начала стоит сказать, что не стоит искать драйверы для Linux на диске производителя. Если они там и есть , то слишком старые и наверняка уже не совместимы с вашей системой.
Внимание: берите пакеты только с сайта разработчика ( если это Open Source) или с сайта производителя устройства. Ни каких файлообменников, особенно платных.
Было бы неплохо при покупке устройства проверить его по списку совместимых устройств который есть для Linux, также как и для Windows. Но я так ни когда не делал, всегда надеялся на русский авось. И в общем все устройства работали. Правда вполне вероятно, что какая нибудь программная кнопочка на вашем сканере, для молниеносной отправки по электронной почте отсканированного изображения, не будет работать. Но кто пользуется этими кнопочками?
Драйвера для Linux есть, но их надо првильно искать!
И так, вы поставили Linux,но у вас что-то не работает. Не стоит паниковать, все будет хорошо. Великий и могучи Интернет нам поможет, там полно драйверов и описаний. Но вот найти все это не так просто. Запрос в поисковой системе вида : Драйвера для Linux , как правило ни к чему не приводит. Для начала необходимо собрать информацию о нашем устройстве. Надписи на коробке и плате могут быть полезными, но не всегда. Торговая марка устройства часто ни чего ни говорит о том какой Linux драйвер нужен для его работы. Гораздо надежнее опираться на вывод специальных утилит опрашивающих оборудование. Мне приходилось использовать две: lsusb — для опроса USB устройств, lspci — для опроса PCI устройств, включая PCI-Express. Как правило в системе они уже установлены. Но вы можете установить самостоятельно пакеты usbutils и pciutil , соответственно. Команды необходимо запускать с правами администратора ( root ). Пример запуска команды lspci:
Пример вывода команды 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 из исходного кода.
Часто драйвер можно установит без перекомпиляции ядра, но част кода ядра загрузить все равно придется, также необходим компилятор gcc-c++ ну может еще что по мелочи,но я не сталкивался или не помню. И так средствами вашего дистрибутива устанавливаем пакет с именем типа kernel-hiders или kernel-source ( уточнить по вариантам ) версия пакета должна соответствовать версии ядра. Ссылка /usr/src/linux должна указывать на каталог с исходниками или хидер файлами. Если в ходе установки модуля ядра вы получаете сообщение о невозможности обнаружить хидер файлы, значит одно из этих условий не выполняется. В идеале для того чтобы установить драйвер нужно в каталоге с исходниками просто выполнить команды : ./configure ; make . И от имени root : make install . Или от имени root запустить скрипт установки. Многие устройства поддерживаются как драйверами в составе ядра , так и отдельными пакетами драйверов. Если включена поддержка в ядре, то нельзя ставить дополнительные пакеты драйверов. Устройство работать не будет.Но идеал в этой жизни очень редок. По этому рассмотрим некоторые проблемы.В подавляющем большинстве случаев информация приведенная дальше вам не пригодится. Но 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:
Где 3stack — строчка, выцепленная из файла документации для конкретного чипа. Перед тем, как править /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 (по слухам, обоими неважно).
Открытые драйвера имеют меньше проблем, поэтому рекомендую их. В этом случае для r6xx-8xx необходимо установить пакет radeon-ucode с прошивками. В первоисточнике написано: «Если не вкомпилировать их в ядро, то DRM в ядре нужно собирать модулями.» Как вкомпилировать прошивки в ядро я не представляю.
Источник
Добавление драйвера устройства в 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, которые могут быть объединены в дерево каталогов, в зависимости от того, как составлен проект «исходников» драйвера.
Теперь необходимо включить исходные коды драйвера 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.
Источник