Самые полезные настройки и команды Linux
Автор: Igor Ljubuncic, перевод: С.Русинов
Установка драйверов
Чаще всего, необходимые драйвера включаются в дистрибутив и устанавливаются в процессе установки. Иногда бывает все не так удачно, и только что собранная рабочая станция будет идти без звука, сети или видео драйверов.
Я не буду вдаваться в детали, поясняя установку специфических драйверов. Для получения этой информации вам необходимо обратиться к поставщикам оборудования. Я поясню, как установить драйверы, как загрузить их, а затем как добавить их в автозагрузку, чтобы они загружались автоматически каждый раз при запуске системы.
Установка
Подобно любому программному обеспечению, драйверы могут быть скомпилированными или нет. Обычно они не скомпилированы. Драйверы обычно распространяются в виде исходных текстов, с целью достижения максимально возможной совместимости аппаратных средств на установленной платформе. Это значит, что вам придется компилировать их из исходных текстов. Элементарно! Мы уже знаем как это сделать.
Если поставщик оборудования является щедрым, он, возможно, дополнит поставляемый драйвер само-устанавливающим скриптом. Другими словами, вам будет нужно только запустить одну команду, которая выполнит: распаковку архива, компиляцию, установку и загрузку драйвера. Но это может не работать. Я был свидетелем как само-устанавливающийся скрипт драйвера работал неверно. По этой причине, для всех практических задач, вам следует устанавливать драйвер вручную.
После успешной распаковки из архива и компиляции исходников (./configure, make, make install), вы, скорее всего, столкнетесь с выбором из трех вариантов:
При втором варианте, процесс установки, будет выглядеть следующим образом:
Вам нужно открыть конфигурационный файл, содержащий список модулей. Также необходимо знать его точное имя и размещение файла в вашем дистрибутиве. В Ubuntu этот файл называется modules.conf и размещается в /etc каталоге ( /etc/modules.conf ). Мы обновим этот файл, но вначале мы сделаем его резервную копию. Пожалуйста помните, что для изменения конфигурационных файлов нужны права суперпользователя.
Так будет выглядеть эта процедура:
Приведенные выше команды откроют файл modules.conf в текстовом редакторе gedit. Теперь, просто добавьте драйвер в пустую строку ниже существующих драйверов, сохраните файл, выйдите из текстового редактора и перезагрузите систему, чтобы изменения вступили в силу. Это все!
Вот пример, файла modules.conf для Kubuntu Linux, установленной на виртуальной машине. Добавим новый драйвер. Мы просто запишем его имя ниже существующих записей. Конечно, необходимо знать ТОЧНОЕ имя соответствующего драйвера.
Третий вариант немного более сложный.
Загрузка драйверов
После загрузки драйвера его можно конфигурировать. Вы можете убедиться в том, что драйвер действительно присутствует в списке всех доступных модулей:
Если вы случайно сделали серьезную ошибку и хотите удалить драйвер, то можете воспользоваться командой rmmod :
Конфигурирование драйверов
Конфигурирование драйвера требует немного знаний о его функциональности. Чаще всего инструкции находятся в текстовых файлах how-to руководства.
После перезагрузки вы увидите, что сетевое подключение отсутствует. Это происходит из-за того, что драйвер отсутствует в общем каталоге по умолчанию, и система не знает, где его искать. Вам придется повторить всю процедуру снова:
Теперь становится понятно, что применение скрипта для автоматизации этих действий было бы отличной идеей. И это именно то, что мы собираемся сделать — написать скрипт и добавить его в начальную загрузку системы.
Скрипты
Таким образом, записав в файл приведенные выше команды плюс ссылка на оболочку, получим следующий скрипт:
Можно сделать это короче:
Сделаем скрипт исполняемым.
Теперь у нас есть работающий скрипт. Нам нужно разместить его в каталоге /etc/init.d и он будет запускаться во время начальной загрузки системы.
В завершение нужно обновить систему для активации скрипта.
После перезагрузки вы поймете, что драйвер загружен автоматически и сетевая карта сконфигурирована! Возможен и другой вариант, make install и драйвер будет помещен в каталог по умолчанию:
Или вы могли разместить драйвер в этом каталоге сами. Таким образом, вы могли бы избежать написания скрипта.
Однако мой метод, даже если и менее изящный, имеет одно преимущество. Драйверы, которые вы скомпилировали вручную и поместили в каталоги по умолчанию, будут потеряны при обновлении ядра системы. Это значит, что вам будет необходимо их переустанавливать каждый раз после такого обновления. Мой неэлегантный метод позволяет избежать этой проблемы.
Установка драйверов в Linux
В Windows мы привыкли, что перед тем, как новое оборудование будет работать, для него необходимо установить драйвера. Не важно будет ли это USB устройство, веб-камера или видеокарта. Драйвера в Windows выпускаются производителями и распространяются через интернет или на диске в комплекте с оборудованием.
В Linux, драйвера тоже необходимы, но ситуация состоит с ними немного по-другому. Здесь все свободные драйвера Linux встроены в ядро и если ваше оборудование будет работать с этой операционной системой, то, скорее всего, оно будет работать из коробки. Свободные драйвера разрабатываются производителями оборудования или же независимыми разработчиками. Также производители могут не открывать код своих драйверов, тогда они считаются проприетарными и не включаются в ядро, а доустанавливаются вручную.
Давайте рассмотрим подробнее работу с драйверами linux и Windows.
Как драйвера устройств работают в Windows
Windows может немного в этом помочь и установить большинство драйверов от производителей через центр обновления Windows. При подключении устройства к компьютеру Windows вы увидите сообщение «Установка драйвера». Windows определяет производителя, ищет драйвер на серверах Microsoft и загружает его на ваш компьютер. Microsoft не пишут драйвера самостоятельно, они получают их от производителей и предоставляют вам, как только они понадобятся.
Если оборудование не работает в WIndows, то обычно вы можете найти драйвер чтобы заставить его работать. Обычно достаточно подыскать подходящий драйвер на просторах сети.
Как работают драйвера Linux
Это значит, что большинство доступных для linux драйверов уже установлены на вашем компьютере, включены вместе с ядром, в виде модулей ядра или вместе с графическим сервером или сервером печати. Установка драйверов Linux почти не нужна. Драйвера в Linux разработаны, в основном, энтузиастами, но иногда их выпускают сами производители оборудования, которые вносят свой вклад в развитие ядра Linux и других проектов, например, это Intel, AMD, а также другие, более мелкие производители.
Установка проприетарных драйверов Linux
Некоторые производители не хотят открывать исходный код своих драйверов, поэтому для поддержки оборудования выпускают проприетарные драйвера в Linux с закрытым исходным кодом. Большинство дистрибутивов Linux не включают такие драйвера в свой состав, а значит они не смогут их автоматически определить и загрузить.
Чаще всего нам приходится сталкиваться с проприетарными драйверами для видеокарт, например, для NVIDIA, которые обеспечивают лучшую производительность в играх на Linux. Конечно, есть драйверы ядра Linux с открытым исходным кодом, которые заставят вашу видеокарту работать, но они не могут обеспечить достаточный уровень производительности в 3D играх. Некоторые драйвера wifi по прежнему закрыты, поэтому ваше оборудование не будет работать пока вы их не установите.
Установка прошивок в Linux
Не все могут делать драйвера с открытым кодом или проприетарные драйвера. Некоторым драйверам необходимы прошивки, чтобы правильно работать с устройствами. Например, прошивки нужны для работы некоторых модулей wifi или сетевых интерфейсов.
Чтобы установить прошивки в Linux необходимо скачать и установить пакет linux-firmware, это можно сделать с помощью следующей команды в Ubuntu:
sudo apt install linux-firmware
А в RPM дистрибутивах:
sudo yum install linux-firmware
Также возможно придется установить другие прошивки. Чтобы посмотреть подробнее, что нужно, и как установить, посмотрите лог ядра dmesg.
Как установить драйверы для принтера в Linux
Вы также можете попытаться определить принтер по описанию PostScript или PPD файла. Эти файлы часто входят в состав драйвера принтера для Windows и вы можете найти PPD файл, который сделает работу вашего принтера лучше. Файл PPD можно выбрать в процессе работы CUPS.
Принтер может стать головной болью в Linux и многие из них могут не работать должным образом или даже вообще не работать. Так что при выборе принтера лучше сразу смотреть только те, которые точно будут работать с Linux.
Как заставить работать другое программное обеспечение
Иногда вам может понадобиться поставить драйвера linux для другого оборудования, которые не предоставляются автоматически. Например, NVIDIA предоставляет собственный инсталлятор для своего драйвера. Но тем не менее лучше использовать драйвера упакованные для вашего дистрибутива, они будут работать лучше.
Найти подробную информацию, как настроить работу того или иного оборудования в вашем дистрибутиве можно на различных форумах. Обычно, если у вас не очень новое устройство, другие пользователи уже сталкивались с этими проблемами, но они их уже решили, и вы можете найти эти ответы.
Выводы
Вы не должны возиться с драйверами слишком много. Драйвера в Linux с открытым исходным кодом и они интегрированы в ядро. В большинстве случаев вам не нужно устанавливать их или изменять, система автоматически определит оборудование и загрузит автоматические драйверы. Когда вы установили Linux, ваше оборудование должно работать либо сразу, либо после установки нескольких проприетарных драйверов.
Вы можете устанавливать и драйвера linux, размещенные на официальных сайтах производителей, но проприетарные драйвера могут работать не настолько хорошо, как подготовленные для вашей системы.
🏷 Как найти имя и версию драйвера сетевой карты в Linux
Вопрос: Сетевая карта Ethernet подключена к моей Linux-системе, и я хотел бы узнать, какой драйвер сетевого адаптера установлен для оборудования NIC. Есть ли способ узнать имя и версию драйвера сетевой карты для моей сетевой карты?
Для правильной работы аппаратного обеспечения сетевой интерфейсной платы (NIC) необходим соответствующий драйвер устройства для аппаратного обеспечения NIC.
Драйвер устройства NIC реализует аппаратно-независимый общий интерфейс между ядром Linux и NIC, так что пакеты могут перемещаться между ядром и NIC.
Хотя некоторые драйверы могут быть статически встроены в ядро, большинство драйверов для современных сетевых адаптеров динамически загружаются как модули ядра.
Когда вы устраняете неполадки аппаратного обеспечения сетевого адаптера, вы можете проверить, правильно ли установлен драйвер сетевого адаптера.
В этом случае вам нужно знать, какой модуль ядра является вашим драйвером NIC.
Способ первый
Первый способ заключается в проверке сообщений dmesg.
Поскольку ядро загружает необходимые аппаратные драйверы во время загрузки, вывод dmesg должен сообщить, установлен ли драйвер карты Ethernet.
Приведенный выше вывод показывает, что драйвер с именем r8169 загружен в ядро.
Если вы хотите узнать более подробно об этом драйвере (например, о версии драйвера), вы можете использовать команду modinfo.
Диспетчер устройств в Ubuntu
Если вы были достаточно опытным пользователем Windows, то после перехода на Linux, наверное, задавались вопросом, а где здесь диспетчер устройств? Программа, с помощью которой можно было бы посмотреть подключенные к компьютеру устройства, установленные для них драйвера, настроить драйвера, да и посмотреть информацию об оборудовании в одном месте. Но ситуация здесь неоднозначная, полной альтернативы нет, есть утилиты показывающие немного информации, есть консольные команды. Но все очень запутанно и непонятно.
В этой статье мы попытаемся расставить все точки над «i» в вопросе просмотр устройств Ubuntu, и в частности, ответим на вопрос где взять диспетчер устройств Ubuntu.
Немного теории
Работа с драйверами в операционных системах Linux и Windows очень сильно отличается. В Windows нужно отдельно искать и устанавливать каждый драйвер, в Linux же все доступные драйвера с открытым исходным кодом встроены в ядро и поэтому установка драйверов не нужна, за исключением нескольких проприетарных устройств, таких как видеокарты. Драйвера для таких устройств выделены в виде модулей ядра и загружаются по мере необходимости. Что же касается свободных драйверов, то для одного устройства в ядре может быть несколько модулей, из которых система выбирает то, что по ее мнению, будет лучше работать.
Диспетчер устройств Ubuntu в терминале
В соответствии с принципом GNU в Linux есть отдельная утилита, для просмотра каждого из типов устройств. Называются они так же, как и технологии, с помощью которых подключены устройства с префиксом ls (list):
Рассмотрим каждую из этих утилит подробнее.
lspci
Как я уже сказал, к шине PCI подключаются многие важные устройства. PCI расшифровывается как Peripheral component interconnect или по-нашему взаимосвязь периферийных компонентов. Все видеокарты подключаются именно таким способом также чаще всего мы можем здесь встретить сетевые адаптеры, карт ридеры и другие адаптеры. В основном все что размещено на материнской плате, в корпусе компьютера, кроме процессора и жестких дисков подключено по PCI.
Посмотреть устройства Ubuntu подключенные по шине PCI можно с помощью команды lspci. Давайте рассмотрим ее синтаксис:
$ lspci опции
Опции утилиты указывают сколько данных нужно выводить и как их фильтровать. Рассмотрим подробнее:
Но обычно вам не понадобятся эти опции, чтобы посмотреть оборудование, подключенное по PCI просто выполните команду без параметров:
Если вы хотите посмотреть только оборудование определенного типа, скажем, звуковую карту используйте фильтр grep:
Или для видео карты:
Также мы можем фильтровать устройства по PCI id, идентификатору производителя:
Хотите просмотреть какой драйвер ядра сейчас загружен для устройства? Эту информацию утилита предоставляет с опцией vv:
Нас интересует строчка Kernel driver in use. Можем отфильтровать по ней:
lsusb
Несмотря на то, что контроллер USB подключен к PCI, в выводе команды lspci мы увидим только сам контроллер, для просмотра устройств Ubuntu нам нужна другая команда, и это lsusb. Синтаксис тот же:
$ lsusb опции
Опций здесь поменьше:
Смотрим все подключенные устройства USB ubuntu:

Выбираем устройства по идентификатору производителя:
Здесь способ отображения похожий, в первой колонке шина и порт, разделенные двоеточием, дальше id производителя, а затем описание устройства.
lsscsi
SCSI контроллер тоже подключен к PCI, а к нему уже подключаются жесткие диски и оптические приводы. Для просмотра этих устройств используется утилита lsscsi. Если она не установлена в вашей системе, ее можно установить командой:
sudo apt-get install lsscsi
$ lsscsi опции
Но опций тут немного больше:
Смотрим подключенные жесткие диски:

lscpu
Теперь, когда вы разобрались с основами, можно посмотреть еще одну утилиту. lshw выводит подробную информацию по каждому устройству в терминал. Здесь отображается как процессор и pci устройства, так и жесткие диски:
На этом дереве наглядно показана иерархия подключения устройств в Linux. Например, смотрим информацию только о видеокарте:
Или сетевом адаптере:
Здесь же можно посмотреть какой драйвер загружен для устройства, в строке Конфигурация, поле driver.
Как видите, консольные инструменты ничем не хуже программы Windows, и они полностью заменяют диспетчер устройств в Ubuntu.
Диспетчер устройств с графическим интерфейсом
Пожалуй, лучшей программой для решения таких задач будет hardinfo. Она позволяет посмотреть устройства Ubuntu подключенные к системе, подробную информацию о них, а также информацию об установленной системе и поддерживаемых ею функциях.
Эта программа не поставляется с дистрибутивом по умолчанию, но ее очень просто установить:
sudo apt install hardinfo
Вот так выглядит главное окно программы:
На вкладке Computer собрана информация о системе:
Если вам нужны только подключенные устройства ubuntu, то для этого есть раздел Devices, здесь есть подробная информация по каждому устройству:
Выводы
В этой статье мы рассмотрели как в Ubuntu посмотреть устройства, подключенные к компьютеру хотя и нет единой программы, диспетчер устройств в Ubuntu, но зато есть достаточно инструментов, чтобы ее заменить. Надеюсь, теперь для вас работа с устройствами в Linux стала чуть яснее. Если остались вопросы, пишите в комментариях!
Как узнать какой драйвер использует устройство в Ubuntu Linux
Пункт Kernel driver in use.
Как узнать какой драйвер использует устройство в Ubuntu Linux: 6 комментариев
нихрена не работает этот способ, куча букв а какая версия драйвера нет
Вася, добавил в исходную заметку картинку, чтобы было понятно что нужно смотреть.
Таким образом мы узнаём [b]какой именно драйвер[/b] (правильно всё-таки его называть модулем) использует Linux для устройства.
Я не очень понимаю зачем нужна [b]именно версия драйвера[/b], так как она жёстка привязана к версии ядра и обычно для железа говорят, что оно поддерживается, начиная с такой-то версии ядра. Видимо это наследие M$.
[i]4.15.0-96-generic[/i] и есть версия ядра.
Если очень хочется узнать версию модуля, то можно узнать md4-хэш от исходников, использованных для компиляции модуля:
Поле version у некоторых модулей тоже присутствует, но редко.
Правда, я не знаю для чего может понадобится эта информация.
Версия драйвера важна для видеодрайвера. Тут можно узнать, что для карточки используется драйвер nvidia, а версии нет.
Не забываем, что если устройство работает, то используется модуль, который поддерживает устройство.
Относительно NVIDIA это должно быть что-то типа (проверить не могу, так как нет доступа к устройству с картой от NVIDIA): nvidia.ko
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
























