Обновление драйверов Ubuntu
Пользователи Windows привыкли, что для того, чтобы оборудование хорошо работало и выдавало максимальную производительность, необходимо выполнять обновление драйверов.
Такая же ситуация характерна для Ubuntu, и даже больше, здесь еще многое оборудование не поддерживается или поддерживается не полностью. С новыми версиями драйверов могут приходить исправления, улучшения производительности или даже поддержка нового оборудования. В этой статье мы рассмотрим как обновить драйвера в Ubuntu.
Обновление драйверов в Ubuntu
Мы уже подробно рассматривали что из себя представляют драйвера в операционной системе Linux и как с ними работать в статье установка драйверов в Linux. Из той же статьи мы узнали, что большинство драйверов Linux, а именно драйвера с открытым исходным кодом входят в ядро системы, но также есть прошивки для драйверов и проприетарные драйвера.
Таким образом, чтобы обновить драйвера в Ubuntu достаточно просто обновить ядро до самой новой версии, а если ещё проще то просто регулярно обновлять систему с помощью команд:
sudo apt update
sudo apt upgrade
Но тут есть еще несколько нюансов. В о-первых в официальных репозиториях не содержится самая новая версия ядра Linux, там находится та версия, которая была самой новой на момент релиза вашего дистрибутива. Во-вторых проприетарные драйвера тоже в официальных репозиториях чаще всего не обновляются и нужно искать другие пути для их установки. Все это мы рассмотрим дальше.
Обновление драйверов, встроенных в ядро
Как я уже сказал, для обновления драйверов с открытым исходным кодом необходимо обновить версию ядра. Но не смотря на то, что новая версия ядра не будет автоматически устанавливаться в вашей системе, deb пакеты новых версий исправно пакуются и выгружаются в общий доступ для всех желающих обновить свою систему.
Посмотреть какая версия ядра используется сейчас вы можете командой:
Вы можете скачать нужный образ ядра по ссылке. Там хранится больше количество ядер для разных дистрибутивов, чтобы найти самое новое пролистайте вниз. Не стоит брать ядра с приставкой rc — это нестабильные версии. Здесь нас будут интересовать два файла linux-headers и linux-image.
Обратите внимание, что ядро нужно качать только для своей архитектуры, например, для x86 — i386, а для x64 — amd64. Узнать свою архитектуру вы можете просто выполнив команду:
Вам необходимо скачать два эти файлы, а затем перейти в папку с загрузками и выполнить
sudo dpkg -i linux-image*
sudo dpkg -i linux-headers*
Теперь осталось обновить параметры загрузчика Grub, чтобы теперь система загружалась с новым ядром:
После применения этой команды необходимо будет перезагрузить компьютер.
Если вы хотите уже самую-самую свежую версию ядра Linux, для которой еще не собраны пакеты на выше указанном сайте, то в можете собрать ядро Linux из исходников. Ещё есть и другие методы обновления ядра, все они описаны в этой статье.
Обновления на прошивки для драйверов выходят очень редко, но если вы не хотите обновлять всю систему, то можно проверить есть ли обновления для прошивок:
sudo apt-cache policy linux-firmware
И затем установить если есть:
sudo apt install linux-firmware
С обновлением обычных драйверов с открытым исходным кодом разобрались, теперь поговорим о проприетарных драйверах с ними ситуация немного сложнее.
Обновление проприетарных драйверов
Если обновление драйверов Ubuntu с открытым исходным кодом происходит, можно сказать, за раз, в пару команд, то с проприетарными драйверами не все так просто. В Ubuntu есть специальная утилита, для обновления и установки драйверов от сторонних разработчиков. Для ее запуска откройте главное меню и введите в строке поиска Программы и обновления.
Откройте программу, а затем перейдите на последнюю вкладку — Дополнительные драйвера. Здесь вы можете выбрать необходимые драйвера и их версии для установки, будут доступны не только драйвера для видеокарт, но и другие проприетарные драйвера, например, для сетевых адаптеров, звуковых карт и т д:
После завершения настройки нажмите Применить, и система запустит установку драйверов. Но все дело в том, что программа берет драйвера из официальных репозиториев, а там они не всегда первой свежести. Если вы хотите именно самую новую версию драйверов, то придется качать установщики из официальных сайтов.
Но тут уже кроется еще одна проблема, если вы устанавливаете драйвера не из репозиториев системы, а с помощью стороннего установщика, то есть большой риск, что они слетят при следующем обновлении системы. Так что тут придется выбирать или новизна или стабильность, ну в общем, как обычно.
Установка драйверов NVIDIA подробно описана в отдельной статье, поэтому я не буду подробно на этом останавливаться. Скажу только, что скачать установщик можно с официального сайта, но будьте осторожны и качайте драйвера только для вашей видеокарты.
С драйвером для видеокарт AMD все стало намного проще с выходом свободного драйвера, теперь он поставляется вместе с ядром и может быть обновлен без проблем, так, как описано в первом способе. О нём на сайте тоже есть подробная статья.
Если вы использовали установку драйверов с помощью системного менеджера драйверов, то вы будете получать обновления при каждом обновлении системы. Но если вы использовали установщик, здесь уже придется устанавливать их каждый раз вручную.
Что касается других проприетарных драйверов, то вам придется обновлять их подобным способом.
Выводы
Теперь вы знаете как обновить драйвера Ubuntu. Для новичков это может показаться сложным, но если ваше оборудование работает отлично, то вам и необязательно ничего обновлять. Если у вас остались вопросы, пишите комментарии!
- Новые видеокарты, обычно отлично работают с открытым драйвером Nouvau, но проприетарный драйвер NVIDIA может добавить улучшенную поддержку 3D и лучшее управление аппаратными средствами.
- Установка драйверов с помощью утилиты Дополнительные драйверы деактивирует предыдущий драйвер, так что будьте аккуратны и устанавливайте только драйвера с пометкой рекомендовано.
- Если система не запускается после того как была выполнена установка или обновление драйверов Ubuntu вам придется удалить установленный драйвер или добавить модуль в черный список.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Утилита установки драйверов linux
Библиотека сайта rus-linux.net
Вам нужно открыть конфигурационный файл, содержащий список модулей. Также необходимо знать его точное имя и размещение файла в вашем дистрибутиве. В Ubuntu этот файл называется modules.conf и размещается в /etc каталоге ( /etc/modules.conf ). Мы обновим этот файл, но вначале мы сделаем его резервную копию. Пожалуйста помните, что для изменения конфигурационных файлов нужны права суперпользователя.
Так будет выглядеть эта процедура:
$ cp /etc/modules.conf /etc/modules.conf.bak $ gedit /etc/modules.conf
Приведенные выше команды откроют файл modules.conf в текстовом редакторе gedit. Теперь, просто добавьте драйвер в пустую строку ниже существующих драйверов, сохраните файл, выйдите из текстового редактора и перезагрузите систему, чтобы изменения вступили в силу. Это все!
Вот пример, файла modules.conf для Kubuntu Linux, установленной на виртуальной машине. Добавим новый драйвер. Мы просто запишем его имя ниже существующих записей. Конечно, необходимо знать ТОЧНОЕ имя соответствующего драйвера.
Третий вариант немного более сложный.
Загрузка драйверов
Вы успешно скомпилировали драйвер, но ничего не произошло. Это получилось потому, что драйвер еще не включен. Посмотрев внутрь каталога, вы заметите файл с расширением .ko . Это и есть ваш драйвер, и его необходимо загрузить вручную.
Нам нужно установить драйвер в ядро. Это можно сделать с помощью команды insmod .
$ cd драйвер_каталог $ insmod драйвер.ko
После загрузки драйвера его можно конфигурировать. Вы можете убедиться в том, что драйвер действительно присутствует в списке всех доступных модулей:
Если вы случайно сделали серьезную ошибку и хотите удалить драйвер, то можете воспользоваться командой rmmod :
Конфигурирование драйверов
Конфигурирование драйвера требует немного знаний о его функциональности. Чаще всего инструкции находятся в текстовых файлах how-to руководства.
Ниже приведенный пример показывает как конфигурировать сетевую карту после загрузки сетевого драйвера. Сетевой карте присвоен идентификатор и IP адрес. В данном случае, eth0 — имя выбранного устройства, но оно может быть другим, например: eth1, eth2 и т. д. . Назначенный IP адрес показывает нам, что машина будет частью локальной сети.
После перезагрузки вы увидите, что сетевое подключение отсутствует. Это происходит из-за того, что драйвер отсутствует в общем каталоге по умолчанию, и система не знает, где его искать. Вам придется повторить всю процедуру снова:
$ cd драйвер_каталог $ insmod драйвер.ko $ ifconfig eth0 192.168.0.9
Теперь становится понятно, что применение скрипта для автоматизации этих действий было бы отличной идеей. И это именно то, что мы собираемся сделать — написать скрипт и добавить его в начальную загрузку системы.
Скрипты
Как и в системах DOS и Windows, скрипты могут быть написаны в текстовом редакторе. Учитывая внутренние различия между текстовыми файлами и скриптами, необходимо различать текстовые файлы и скрипты. В системе Windows достаточно изменить расширение .txt на .bat и файл станет скриптом. В Linux немного по-другому.
Командная строка Linux находится внутри оболочки или, точнее сказать, и есть сама оболочка или Шелл (Shell). Существует несколько оболочек, каждая со своим уникальным набором команд. Самая популярная (устанавливается по умолчанию) оболочка Linux это BASH . Нам необходимо добавить информацию в наш скрипт, если хотим сделать его связанным с нашей оболочкой.
Таким образом, записав в файл приведенные выше команды плюс ссылка на оболочку, получим следующий скрипт:
#!/bin/bash $ cd драйвер_каталог $ insmod драйвер.ko $ ifconfig eth0 192.168.0.9
#!/bin/bash $ insmod /home/roger/драйвер_каталог/драйвер.ko $ ifconfig eth0 192.168.0.9
Теперь у нас есть рабочий скрипт. Или точнее текстовый файл, который содержит соответствующие команды. Нам необходимо сделать его исполняемым файлом. Во-первых, нужно сохранить этот файл. Назовем его network_script .
Сделаем скрипт исполняемым.
Теперь у нас есть работающий скрипт. Нам нужно разместить его в каталоге /etc/init.d и он будет запускаться во время начальной загрузки системы.
$ cp network_script /etc/init.d/
В завершение нужно обновить систему для активации скрипта.
$ update-rc.d network_script defaults
После перезагрузки вы поймете, что драйвер загружен автоматически и сетевая карта сконфигурирована! Возможен и другой вариант, make install и драйвер будет помещен в каталог по умолчанию:
/lib/modules//kernel/drivers/net/драйвер.ko
Или вы могли разместить драйвер в этом каталоге сами. Таким образом, вы могли бы избежать написания скрипта.
Однако мой метод, даже если и менее изящный, имеет одно преимущество. Драйверы, которые вы скомпилировали вручную и поместили в каталоги по умолчанию, будут потеряны при обновлении ядра системы. Это значит, что вам будет необходимо их переустанавливать каждый раз после такого обновления. Мой неэлегантный метод позволяет избежать этой проблемы.