- Как установить заголовочные файлы ядра в Linux
- Установка заголовочных файлов ядра в Debian, Ubuntu или Linux Mint
- Установка заголовочных файлов ядра в Fedora, CentOS или RHEL
- Правильная инструкция по установке linux-headers в Debian Stretch. uname -r|sed ‘s/[^-]*-[^-]*-//’ — работает неправильно?
- Что делает linux-headers-`uname -r`?
- 1 ответ
- —reinstall install :
- linux-headers- :
- `uname -r` :
- Упрощенная версия:
- How to Install Kernel Headers in Ubuntu and Debian
- Install Kernel Headers in Ubuntu and Debian
- If You Appreciate What We Do Here On TecMint, You Should Consider:
- What does linux-headers-`uname -r` do?
- 1 Answer 1
- —reinstall install :
- linux-headers- :
- `uname -r` :
- Simplified version:
Как установить заголовочные файлы ядра в 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. Она автоматически найдет подходящий пакет.
Если заголовочные файлы ядра, установленные с помощью вышеприведенной команды, не соответствуют установленному в системе ядре, значит оно устарело. В этом случае обновите ядро системы до последней версии с помощью приведенной ниже команды. После обновления необходимо перезагрузить систему.
Теперь проверьте, что установлены заголовочные файлы соответствующей версии с помощью команды:
Источник
Правильная инструкция по установке 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
Источник
Что делает linux-headers-`uname -r`?
Что делает следующая команда?
sudo выполняет инструкцию с повышенными привилегиями. apt-get — это команда для извлечения определенного пакета / программы. Что делают остальные переключатели / флаги?
Я пытаюсь сбросить драйверы беспроводного адаптера до заводских настроек по умолчанию.
1 ответ
—reinstall install :
Обычно, это записано install —reinstall , но оба работают просто великолепно. Это просто говорит apt-get переустановить пакет (пакеты).
linux-headers- :
linux-headers- начало имени пакета. Если Вы работаете dpkg -l | grep linux-headers- Вы видите, что полный список любых пакетов установил, которые начинаются с этого:
Заголовочные файлы от сайта GNU:
Заголовочный файл является файлом, содержащим C объявления и макроопределения, которые будут совместно использованы несколькими исходными файлами. Вы запрашиваете использование заголовочного файла в Вашей программе включением его с C предварительная обработка директивы ‘#include’.
И, поскольку Вы видите от ответа от dpkg -l | grep linux-headers- , пакеты, которые запускаются с linux-headers- заголовочные файлы для ядра Linux.
`uname -r` :
Это — то, что известно как Замена Команды. (Ссылка к странице faqs.org о возможностях замены команды BASH.)
Это работает uname -r команда, которая возвращает текущую версию ядра:
и затем помещает то, что возвращается из uname -r команда в sudo apt-get —reinstall install linux-headers-`uname -r` команда.
От страницы faqs.org:
Замена команды позволяет выводу команды заменять саму команду. Замена команды происходит, когда команда включается следующим образом:
Bash выполняет расширение путем выполнения команды и замены замены команды стандартным выводом команды с любыми запаздывающими удаленными новыми строками.
Теперь, Вы не видите, что это происходит — Вы просто видите результаты. Однако, если Вы действительно видели команду после uname -r ответ был помещен в команду, это несколько, это было бы похоже (изменяющийся для Вашей текущей версии ядра, очевидно):
sudo apt-get —reinstall install linux-headers-3.16.0-31-generic
Упрощенная версия:
Вы говорите склонный — добираются для переустановки пакета заголовков Linux для текущей версии ядра.
Источник
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.
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.
Источник
What does linux-headers-`uname -r` do?
What does the following command do?
sudo executes the statement with elevated priviledges. apt-get is a command to retrieve a specific package/program. What does the rest of the switches/flags do?
I’m trying to reset my wireless adapter’s drivers to «factory default» settings.
1 Answer 1
—reinstall install :
Normally, this is written install —reinstall , but both work just fine. This simply is telling apt-get to reinstall the package(s).
linux-headers- :
linux-headers- is the beginning of a package name. If you run dpkg -l | grep linux-headers- you can see a full list of any packages installed that begin with that:
Header files are, from the GNU site:
A header file is a file containing C declarations and macro definitions to be shared between several source files. You request the use of a header file in your program by including it, with the C preprocessing directive ‘#include’.
And, as you can see from the response from dpkg -l | grep linux-headers- , the packages that start with linux-headers- are the header files for the Linux kernel.
`uname -r` :
This is what is known as Command Substitution. (The link is to the faqs.org page about the BASH command substitution capabilities.)
This runs the uname -r command, which returns the current kernel version:
and then puts what is returned from the uname -r command into the sudo apt-get —reinstall install linux-headers-`uname -r` command.
From the faqs.org page:
Command substitution allows the output of a command to replace the command itself. Command substitution occurs when a command is enclosed as follows:
Bash performs the expansion by executing command and replacing the command substitution with the standard output of the command, with any trailing newlines deleted.
Now, you don’t see this happen — you just see the results. However, if you did see the command after the uname -r response was put into the command, this is somewhat it would look like (changing for your current kernel version obviously):
sudo apt-get —reinstall install linux-headers-3.16.0-31-generic
Simplified version:
You’re telling apt-get to reinstall the linux-headers package for your current kernel version.
Источник