Adding drivers to linux

How to Install Additional Drivers in Ubuntu

How do you install drivers in Ubuntu? The simple answer is that Ubuntu itself identifies and installs drivers on your system. Unlike older versions of Windows, you don’ have to manually search for and install drivers here.

But there is a catch. Some hardware components have several drivers available: open source ones and the proprietary ones.

By default, Ubuntu installs the open source drivers and in some cases, that causes problems in your Ubuntu install.

You might face some issues with the wireless or the graphics card. Sometimes it’s because the open source version provided by the Linux distribution doesn’t work as good as the proprietary drivers provided by the hardware manufacturers.

The good thing is that Ubuntu is aware of these issues and this is why it provides an easy way to install additional proprietary drivers.

You may use these additional drivers to get better performance on your system. If you find them not working, you can revert easily .

In this tutorial, you’ll learn how to install additional drivers on Ubuntu. I’ll also show you how to install Nvidia proprietary drivers on Ubuntu.

Installing additional drivers in Ubuntu

Since a few versions now, Ubuntu doesn’t have Additional Drivers listed as a separate application. Instead, it now resides in the ‘Software & Updates’ app. From here, you can install drivers which are not installed by default during installation.

Let me show the exact steps for installing additional drivers.

Step 1: Go to Software Settings

Go to the menu by pressing the Windows key. In the search bar, type ‘drivers’. Click on ‘Software & Updates’ in the results.

Search Software & Updates in GNOME Activity

Step 2: Check available additional drivers

Open the ‘Additional Drivers’ tab. Here you will be able to see all the devices you can install drivers for.

As shown in the image below, in case of other drivers like wireless drivers, you will get the option to either use the driver or to not use the device at all.

To use the install the drivers, select it and click on Apply Changes.

Installing drivers in Ubuntu

Step 3: Install the additional drivers

After the installation is complete, you will get a restart option. Click on it to restart your system and finish driver installation. The driver will be in use after the reboot.

Читайте также:  Check status of all services linux

If you ever want to go back to using the open source driver or disabling the device, you can open ‘Additional Drivers’ and select the corresponding option for that.

If you want to use the default driver instead of the proprietary one that you just installed, just select the option “Do not use the device” under that.

Install Nvidia Proprietary Drivers in Ubuntu

Let’s see how to use Nvidia proprietary drivers on Ubuntu.

The question is, why would you do that in the first place? This is because the free and open source ‘nouveau’ driver may not properly support the graphics card’s functionality.

In a few cases, the system would not boot at all and gets stuck at journalctl . If you are facing the boot problem because of Nvidia drivers, you can expand the next section to fix that problem.

To work around this issue, you have to disable the ‘nouveau’ driver. You can do this using modprobe . modprobe is the kernel utility that allows us to enable or disable kernel drivers and modules during boot up.

On the grub screen, press ‘e’ to edit the command line.

Edit Grub menu

Navigate to the line starting with ‘ linux ‘ and add the following to the end of that line as shown in the image below. You can use the arrow keys to move the cursor.

Blacklisting Nvidia nouveau driver

After this, press F10 to boot and follow the rest of the simple steps. If your system still fails to boot (most probably systems with 900 series or 1000 series GPUs), you may need to add some more kernel parameters. Check this link for more information.

In the previous section, you have already learned how to see the additional drivers available for your system.

In this particular case, you can see the NVIDIA discrete graphics card has two driver options available. The open-source one and the proprietary one.

software & updates additional drivers

Click ‘Using NVIDIA driver metapackage ‘ to select the proprietary driver. Then click on the ‘ Apply Changes’ button to install the driver.

software & updates additional drivers nvidia proprietary

After installation is complete, you will get a restart button. Click on it to restart your PC and finish driver installation.

software & updates additional drivers install successful

That’s it. You restart your PC and you should see Nvidia Graphics in action.

I hope this quick tutorial helped you with Nvidia drivers and additional drivers in Ubuntu. If you have questions or suggestions, please let us know.

Читайте также:  Сменить имя компьютера alt linux

Источник

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

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

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

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

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

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

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

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

$ cd каталог_исходных_кодов_ядра $ patch -p1 < файл_патча

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

/usr/lib/modules/3.10.0-862.el7.x86_64/kernel

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

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

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

$ ls -F каталог_исходных_кодов_ядра/drivers

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

Читайте также:  How to create file and directory in linux

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

каталог_исходных_кодов_ядра/drivers/net/netdevice

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

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

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

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

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

obj-$(CONFIG_NETDEVICE_DEV) += netdevice/

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

config NETDEVICE_DEV tristate 'Netdevice support'

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

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

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

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

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

Похожие записи:

Источник

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