Linux headers all deb

Как установить заголовочные файлы ядра в Linux

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

Если версия вашего ядра не менялась после установки дистрибутива, или вы обновляли его с использованием системного менеджера пакетов (то есть apt-get, aptitude или yum) из системных репозиториев, то заголовочные файлы вы также можете установить с помощью пакетного менеджера. Однако если вы скачивали исходный код ядра и компилировали его самостоятельно, то заголовочные файлы необходимо устанавливать с помощью команды make.

Здесь мы предполагаем, что ваше ядро установлено из основного системного репозитория вашего дистрибутива, и вы хотите установить соответствующие заголовочные файлы ядра.

Установка заголовочных файлов ядра в Debian, Ubuntu или Linux Mint

Если вы не компилировали ядро вручную, то можете установить соответствующие заголовочные файлы ядра с помощью команды apt-get.
Сначала проверьте, не установлены ли уже требуемые заголовочные файлы с помощью команды:

Теперь установите заголовочные файлы, как показано ниже.

Проверьте, что установка прошла успешно.

По умолчанию в Debian, Ubuntu или Linux Mint заголовочные файлы находятся в /usr/src.

Установка заголовочных файлов ядра в Fedora, CentOS или RHEL

Если вы не обновляли ядро вручную, то можете установить соответствующие заголовочные файлы ядра с помощью команды yum.
Сначала проверьте, не установлены ли уже требуемые заголовочные файлы. По умолчанию заголовочные файлы ядра расположены в /usr/src/kernels/.
Если подходящих заголовочных файлов не установлено, вы можете установить их с помощью команды yum. Она автоматически найдет подходящий пакет.

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

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

Источник

How to Install Kernel Headers in Ubuntu and Debian

In our last article, we have explained how to install kernel headers in CentOS 7. Kernel Headers contain the C header files for the Linux kernel, which offers the various function and structure definitions required when compiling any code that interfaces with the kernel, such as kernel modules or device drivers and some user programs.

It is very important to note that the kernel headers package you install should match with the currently installed kernel version on your system. If your kernel version ships with the default distribution installation or you have upgraded your Kernel using dpkg or apt package manager from the Ubuntu or Debian base repositories, then you must install matching kernel headers using package manager only. And if you’ve compiled kernel from sources, you must also install kernel headers from sources.

In this article, we will explain how to install Kernel Headers in Ubuntu and Debian Linux distributions using default package manager.

Install Kernel Headers in Ubuntu and Debian

First check your installed kernel version as well as kernel header package that matches your kernel version using following commands.

Check Kernel Version and Kernel Headers in Ubuntu

On Debian, Ubuntu and their derivatives, all kernel header files can be found under /usr/src directory. You can check if the matching kernel headers for your kernel version are already installed on your system using the following command.

Check Kernel Headers in Ubuntu

From the above output, it’s clear that the matching kernel header directory doesn’t exist, meaning the package is not yet installed.

Before you can install the appropriate kernel headers, update your packages index, in order to grab information about the latest package releases, using the following command.

Читайте также:  Winrar для windows 10 x64 c ключом

Then run the following command that follows to install the Linux Kernel headers package for your kernel version.

Install Kernel Headers in Ubuntu

Next, check if the matching kernel headers have been installed on your system using the following command

Verify Installed Kernel Headers in Ubuntu

That’s all! In this article, we have explained how to install kernel headers in Ubuntu and Debian Linux and other distributions in the Debian family tree.

Always keep in mind that to compile a kernel module, you will need the Linux kernel headers. If you have any quires, or thoughts to share, use the comment form below to reach us.

If You Appreciate What We Do Here On TecMint, You Should Consider:

TecMint is the fastest growing and most trusted community site for any kind of Linux Articles, Guides and Books on the web. Millions of people visit TecMint! to search or browse the thousands of published articles available FREELY to all.

If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.

We are thankful for your never ending support.

Источник

Правильная инструкция по установке linux-headers в Debian Stretch. uname -r|sed ‘s/[^-]*-[^-]*-//’ — работает неправильно?

(uname -r|sed ‘s/[^-]*-[^-]*-//’) — что вот это вот делает?

Но почему apt-get устанавливает linux-headers откуда-то отсюда:

Или нужно при установке обязательно указывать часть backports?

apt-get install -t stretch-backports linux-headers-`uname -r`

Я читал это, но не понял что вот это делает: (uname -r|sed ‘s/[^-]*-[^-]*-//’)? uname -r — понятно, но sed.. ‘s/[^-]*-[^-]*-//’)?!

Заменяет последовательность «[не минусы]минус[не минусы]минус» на пустую строку

Кстати, можно было написать uname -r | cut -d- -f3 , но люди почему-то любят использовать sed для всего.

Можно, но пока нет

А как желательно писать при установку пакетов для архитектуры процессора amd64?

apt-get install linux-image-amd64

apt-get install linux-image-$(uname -r|sed ‘s/[^-]*-[^-]*-//’)

Зачем это всё, когда есть мета-пакеты? Поставил мета-пакет и у тебя всегда будет актуальная версия ядра и хедеров после обновления.

для amd64 одинаково, но это-то заклинание именно такое, чтобы не задавать новичку лишний раз вопрос об архитектуре системы, чтобы работало везде.

замудрено больно, мне проще посмотреть что там есть вкусного

и потом полностью указать желаемое

Зачем это всё, когда есть мета-пакеты?

И какой мета-пакет нужен мне?

мне проще посмотреть что там есть вкусного

Ещё есть apt-cache policy

uname -r | cut -d- -f3-

linux-image-amd64 linux-headers-amd64 — если для обоих указать backports, то так и поставятся.

Вместо того, чтобы в гугле на первой странице найти ответ на вопрос, ты лезешь на форум спрашивать. Нет предела тупости.

А ну я уже поставил этот мета-пакет. Осталось только найти 5 пакетов для 390 драйвера. А эта установка мета-пакетов тоже нужна из backpor’ов насколько я понял.

Такой подход не всегда нужен. Иногда надо установить определённую версию, а не последнюю в случае указания мета-пакета.

Так для меня актуально ядро 4.17, а не 4.18, на который указывает мета-пакет.

в таком случае проще поставить нужную версию, чем колупать sed.

Правильная инструкция по установке linux-headers

Источник

Сборка и установка ядра под Debian

Тут речь идти будет не просто про компиляцию ядра Linux, а про компиляцию ядра и его сборку в deb-пакет. Потом этим deb’ом можно будет поделиться с знакомыми, похвастаться перед любимой девушкой/парнем или просто, при необходимости, использовать повторно.

Для начала ставим пакеты fakeroot, kernel-package, libncurses5-dev:

Все зависимости будут подтянуты автоматом…
Затем берём нужный архив с kernel.org и сливаем и распаковываем его в /usr/src (берём для примера ядро 2.6.31.4).

Тут есть один момент. Так как у нас уже есть рабочее ядро в установленной системе то, если не хотим выставлять все галочки в конфигурации нового ядра с нуля, берём готовый config либо из /boot либо из /proc:

В итоге имеем предварительную заготовку к конфигурации нашего нового ядра.

Теперь конфигурируем ядро под специфические для нас цели, либо добавляем опции для новых модулей, либо… Одним словом — творчество:

Тут интересно будет отметить, что если мы сразу-же выйдем из меню, то можем увидеть что-то подобное этому:

имеет смысл найти эти опции при конфигурировании нового ядра и посмотреть что да к чему…
Или, как мне подсказали, использовать:

для компиляции новой версии, которая все совпадающие опции трогать не будет, а насчёт остальных, которые изменились, спросит.
Кстати, если кому интересно под X-ами заниматься конфигурированием, то может сделать так:

Читайте также:  Как включить ускорение direct3d windows

Важно! Не забываем сказать «Kernel module loader» в «Loadable module support», так как возможны варианты.
Ну всё. Пимпочки поотмечали, кнопочки понажимали, из окошек вышли, новый конфиг сохранили, теперь приступим к сборке. Для начала сделаем:

Увидим что-то наподобие этого:

Ну, а теперь, собственно, собираем ядро:

og.091015.00 — означает лишь ревизию нашей сборки (меньше букв, но больше цифр, иначе получите ошибку в под самый конц сборки и придётся всё повторять с самого начала), а в остальном может быть любой — у кого насколько фантазии хватит 🙂
После того как предыдущая команда нормально выполнится, можно также дать такой «джентельменский набор»:

После этого получим набор из следующих deb-пакетов:

  • linux-image-2.6.31.4_og.091015.00_i386.deb
  • linux-headers-2.6.31.4_og.091015.00_i386.deb
  • linux-manual-2.6.31.4_og.091015.00_all.deb
  • linux-doc-2.6.31.4_og.091015.00_all.deb
  • linux-source-2.6.31.4_og.091015.00_all.deb

располагаться они будут в /usr/src.
Нам остаётся их только установить через dpkg:

и т.д.
Конфигурация к GRUB’у должна будет выполниться автоматически, равно как и собраться initrd.
Финальный шаг:

Источник

Обновление ядра Linux до новой версии

В последнее время новые версии ядер выходят достаточно часто. Раз в несколько месяцев выходит стабильный релиз. Ну а нестабильные кандидаты в релизы выходят и того чаще. Линус Торвальдс и множество разработчиков по всему миру постоянно работают над улучшением новых ядер и добавлением в них все больше и больше функциональности.

С каждой новой версией в ядре Linux появляется поддержка нескольких новых устройств, например, новых процессоров, видеокарт или даже сенсорных экранов. За последнее время, поддержка нового оборудования очень сильно улучшилась. Также в ядро включаются новые файловые системы, улучшается работа сетевого стека, исправляются ошибки и баги.

Если вам нужна более подробная информация об изменениях в какой-то определенной версии ядра смотрите ее Changelog на kernel.org, а в этой статье мы рассмотрим обновление ядра Linux до самой новой версии. Я попытаюсь не привязывать инструкцию к определенной версии ядра, новые ядра выходят достаточно часто и она будет актуальна для каждого из них. Рассмотрим обновление ядра Ubuntu и CentOS. Сначала давайте рассмотрим как обновить ядро в Ubuntu.

Обновление ядра Ubuntu вручную

Давайте сначала посмотрим какое ядро у вас установлено. Для этого откройте терминал и выполните:

Например, у меня сейчас используется версия 5.4, и я могу обновиться к самой новой версии. Разработчики Ubuntu уже позаботились о том чтобы их пользователи не собирали ядро вручную и сделали deb пакеты новой версии ядра. Их можно скачать с официального сайта Canonical.

Я мог бы привести здесь команды wget для загрузки, если была бы известна версия ядра, но в нашем случае лучше будет использовать браузер. Откройте сайт http://kernel.ubuntu.com/

kernel-ppa/mainline/. Здесь находятся все, собираемые командой Ubuntu ядра.

Пролистайте вниз, именно там находятся более новые версии ядер:

Кроме того, в самом верху есть папка daily/current, в которой находятся самые свежие, ночные сборки ядер. Выберите нужную версию ядра, затем выберите архитектуру. Для 64-битных систем вам понадобится архитектура amd64:

Далее надо скачать четыре файла: два linux-headers, linux-image и linux-modules. Как видите, там есть несколько типов ядер: lowlatency и generic. Ядро lowlatency судя из названия имеет более низкие задержки при работе с прерываниями. Зато ядро generic имеет большую пропускную способность. В большинстве случаев достаточно ядра generic. Скачайте linux-headers для all и generic, а также linux-image-generic и linux-modules-generic:

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

dpkg -i linux-headers* linux-image* linux-modules*

Если эта команда не сработала, можно пойти другим путем. Установите утилиту gdebi:

sudo apt install gdebi

Затем с помощью нее установите ядро:

sudo gdebi linux-headers*.deb linux-image-*.deb linux-modules-*.deb

Ядро установлено, осталось обновить загрузчик:

Теперь можно перезагружать компьютер и смотреть что получилось. После перезагрузки убедимся, что обновление ядра Linux до самой новой версии прошло успешно:

Как видите ядро успешно установлено и работает. Но не спешите удалять старую версию ядра, рекомендуется иметь несколько версий ядра в системе, чтобы в случае неполадок иметь возможность загрузиться со старой рабочей версии. Если вы хотите настроить автоматическое обновление ядра в Ubuntu — используйте утилиту UKKU.

Если во время установки произошли какие-либо ошибки или ядро обновилось неправильно, и теперь система не загружается с новым ядром, вы можете использовать старое ядро. Также система может не запускаться, если вы используете проприетарный драйвер для видеокарты NVIDIA в таком случае не спешите качать самую новую версию ядра, используйте только стабильные ядра, в них, как правило, уже добавлена поддержка этого модуля.

Читайте также:  Код ошибки при активации windows 10 0x803fa067

А чтобы восстановить работу системы выберите пункт Advanced options for Ubuntu в меню Grub:

И запустите предыдущее работающее ядро:

После загрузки останется удалить неверно установленное ядро и еще раз обновить Grub. Найдите точное имя пакета ядра с помощью apt search. Например:

sudo apt search linux-headers-5.8

Затем удалите этот пакет:

sudo apt remove linux-headers-5.8-000055-generic

Аналогично надо поступить с ядром. После этого обновите конфигурацию Grub:

Теперь ваша система вернулась к прежнему состоянию. Вы можете попробовать устанавливать более старую версию ядра или попробовать еще раз.

Обновление ядра Linux до в CentOS

А теперь давайте рассмотрим как обновить ядро Linux самой новой версии в CentOS. Инструкция проверена на CentOS 8, но скорее всего, будет работать и на RHEL 8, Fedora и других подобных дистрибутивах.

Как правило, новые ядра не включены в официальные репозитории CentOS, поэтому чтобы получить последнюю стабильную версию нам необходимо будет добавить репозиторий ELRepo. Это репозиторий коммерческих пакетов (Enterprise Linux Packages) он также поддерживается в RHEL и Fedora.

Для добавления репозитория сначала необходимо импортировать ключ:

sudo rpm —import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

Для того чтобы добавить репозиторий и необходимые компоненты в RHEL 7 и CentOS 7 выполните:

sudo yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

В CentOS 8 выполните:

sudo dnf install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm

sudo yum install https://www.elrepo.org/elrepo-release-6.el6.elrepo.noarch.rpm

Готово, теперь посмотрим текущую версию ядра:

Можем устанавливать самую новую версию ядра Linux командой:

sudo yum —enablerepo=elrepo-kernel install kernel-ml

Пакет kernel-ml, это текущий стабильный mainline релиз, на данный момент, это 5.8. После того как установка нового ядра Linux завершена, обновите конфигурационный файл загрузчика:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Затем можете перезагружать систему. Обновление ядра в CentOS завершено.

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

yum remove kernel-ml -y

dnf remove kernel-ml -y

И перезагрузите компьютер, чтобы вернуть систему к прежнему состоянию.

Выводы

В этой инструкции мы рассмотрели как обновить ядро Linux до 4.4 в Ubuntu и CentOS, но мы говорили только об обновлении ядра из бинарников. Также можно собрать ядро из исходных кодов, которые доступны для загрузки на официальном сайте ядра. О сборке ядра Linux я писал в отдельной статье. Вроде все разобрали, если остались вопросы — пишите в комментариях.

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

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

21 комментарий

Спасибо за статью.
Подписан на вашу рассылку, так что в качестве обратной связи с читателями передаю вам привет!

Система Минт 17.3 Роза, ядро 3.16. Делаю все как описано в статье — после рестарта ядро 3.16. Иду в диспетчер обновлений, вижу предлагаемые ядра для обновления, 4-ки нет ни одной, рекомендуемое ядро 3.19, устанавливаю — работает, 3.16 убиваю. Ошибок нигде не выдавало. Остался пока без 4.4.

Выполните в место: sudo dpkg -i linux*.deb — sudo dpkg -i *.deb И выполнять команду обязательно в папке, в которую были загружены установочные пакеты.

Установил ядро 4.4, но слетел Вайфай, запустить не смог, пока откатился на старое ядро.

Да у меня такая же беда, обновился на 4.2 правда, было 3.19. Теперь вай фай с блютузом, не запускаются, пока остался на 3.19.

Подожду уже выхода Ubuntu 16.04 посмотрим, что будет в релизе, должны пофиксить по идее.

Ребзя а чего у меня не хочет обновлять? Сейчас стоит на VPS Ubuntu Xenial (16.04 LTS) (GNU/Linux 4.5.7-std-3 x86_64). Пробую обновить до 4.7.3 и ошибку пишет:

Selecting previously unselected package linux-headers-4.7.3-040703-generic.
(Reading database . 20139 files and directories currently installed.)
Preparing to unpack linux-headers-4.7.3-040703-generic_4.7.3-040703.201609070334_amd64.deb .
Unpacking linux-headers-4.7.3-040703-generic (4.7.3-040703.201609070334) .
Selecting previously unselected package linux-image-4.7.3-040703-generic.
Preparing to unpack linux-image-4.7.3-040703-generic_4.7.3-040703.201609070334_amd64.deb .
Done.
Unpacking linux-image-4.7.3-040703-generic (4.7.3-040703.201609070334) .
dpkg: dependency problems prevent configuration of linux-headers-4.7.3-040703-generic:
linux-headers-4.7.3-040703-generic depends on linux-headers-4.7.3-040703; however:
Package linux-headers-4.7.3-040703 is not installed.

dpkg: error processing package linux-headers-4.7.3-040703-generic (—install):
dependency problems — leaving unconfigured
dpkg: dependency problems prevent configuration of linux-image-4.7.3-040703-generic:
linux-image-4.7.3-040703-generic depends on initramfs-tools | linux-initramfs-tool; however:
Package initramfs-tools is not installed.
Package linux-initramfs-tool is not installed.

dpkg: error processing package linux-image-4.7.3-040703-generic (—install):
dependency problems — leaving unconfigured
Errors were encountered while processing:
linux-headers-4.7.3-040703-generic
linux-image-4.7.3-040703-generic

Источник

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