- Установка Linux-2.4.19
- Установка заголовочных файлов ядра
- Пояснения команд
- Почему мы копируем заголовки ядра, а не создаем для них символические ссылки?
- Содержимое Linux
- Файлы поддержки
- Описания
- Ядро Linux
- linux kernel headers
- Зависимости Linux
- Как установить заголовочные файлы ядра в Linux
- Установка заголовочных файлов ядра в Debian, Ubuntu или Linux Mint
- Установка заголовочных файлов ядра в Fedora, CentOS или RHEL
- Linux.yaroslavl.ru
- Установка заголовков Linux-2.4.22
- Описание Linux
- Зависимости установки Linux
- Установка заголовков ядра
- Почему мы копируем заголовки ядра, а не создаем для них символические ссылки?
- Что такое заголовки ядра Linux? [Дубликат]
- 3 ответа
- Как установить Linux Kernel Headers на Kali Linux 2.0 (Kali Sana)
- Как установить Linux Kernel Headers на Kali Linux 2.0 (Kali Sana)
- Нужны заголовки для Linux
- Как установить заголовки ядра Linux на Kali Linux 2.0
- Изменить репозитории
- Обновите apt-cache и обновите:
- Установить заголовки ядра
Установка Linux-2.4.19
Установка заголовочных файлов ядра
На данном этапе мы не будем компилировать ядро — мы сделаем это после установки всех пакетов. Однако, в связи с тем, что некоторые пакеты требуют заголовочных файлов ядра, мы распакуем ядро, настроим его и скопируем заголовки туда, где их будут искать пакеты при компиляции.
Скопируем заголовки ядра, выполнив следующие команды:
Пояснения команд
ln -s /static/bin/pwd /bin/pwd: В исходных кодах ядра путь к программе pwd прописан как /bin/pwd, поэтому создадим временную символическую ссылку, а в конце удалим ее.
make mrproper: Выполнение данной команды обеспечивает чистое дерево исходников ядра. Команда разработчиков ядра рекомендует выполнять эту команду перед каждой компиляцией ядра, даже если вы только что распаковали исходные коды из tar-архива.
make include/linux/version.h и make symlinks: Создадим файл include/linux/version.h file и символическую ссылку include/asm для конкретной платформы.
mkdir /usr/include/asm , cp include/asm/* /usr/include/asm и cp -R include/asm-generic /usr/include: Эти команды копируют заголовочные файлы ядра ассемблера для конкретной платформы в /usr/include/asm и /usr/include/asm-generic.
cp -R include/linux /usr/include: Эта команда копирует кросс-платформенные файлы заголовков в /usr/include.
touch /usr/include/linux/autoconf.h: Создаем пустой файл autoconf.h. Так как на данном этапе мы не конфигурируем ядро, необходимо вручную создать этот файл для некоторых заголовочных файлов ядра, использующих его, чтобы избежать ошибок при компиляции.
Почему мы копируем заголовки ядра, а не создаем для них символические ссылки?
Раньше было принято создавать символические ссылки директорий /usr/include/ на /usr/src/linux/include/ . Однако, это была плохая идея, как объясняет Линус Торвальдс в списке рассылки ядра Linux (Linux Kernel Mailing List, отрывок):
Наиболее важная часть сообщения Линуса заключается в том, что файлы заголовков должны быть именно теми, с которыми компилировался пакет glibc. Это те заголовки, которые следует использовать в будущем при компиляции других пакетов, т.к. именно они соответствуют файлам библиотек объектного кода. Копируя заголовки, мы удостоверяемся, что они останутся доступными, если позже мы решим обновить ядро.
Заметьте, что нет ничего страшного в том, что исходные коды ядра находятся в директории /usr/src/linux. Главное, чтобы у вас не было символических ссылок /usr/include/ .
Содержимое Linux
Последняя проверка: версия 2.4.18.
Файлы поддержки
Ядро Linuxи и его заголовочные файлы
Описания
Ядро Linux
Ядро — основа любой системы Linux. Когда компьютер включается и загружает Linux, первое, что загружается — ядро. Ядро инициализирует аппаратные компоненты системы: последовательные и параллельные порты, звуковые и сетевые карты, контроллеры IDE и SCSI и многое другое. In a nutshell the kernel makes the hardware available so that the software can run.
linux kernel headers
Это файлы, которые мы копируем в /usr/include/ в 5-й главе. Они должны соответствовать тем, с которым был скомпилирован glibc, и поэтому не должны быть заменены при смене ядра. Они имеют ключевое значение для компиляции многих программ.
Зависимости Linux
Последняя проверка: версия 2.4.17.
Bash: sh
Binutils: ar, as, ld, nm, objcopy
Fileutils: cp, ln, mkdir, mv, rm, touch
Findutils: find, xargs
Gcc: cc1, collect2, cpp0, gcc
Grep: grep
Gzip: gzip
Make: make
Gawk: awk
Modutils: depmod, genksyms
Net-tools: dnsdomainname, hostname
Sed: sed
Sh-utils: basename, date, expr, pwd, stty, uname, whoami, yes
Textutils: cat, md5sum, sort, tail
Источник
Как установить заголовочные файлы ядра в 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.yaroslavl.ru
Linux From Scratch: Версия 5.0 | ||
---|---|---|
Назад | Глава 6. Установка основных системных программ | Далее |
Установка заголовков Linux-2.4.22
Описание Linux
Ядро Linux — это основа любой Linux системы. Это то, что делает Linux собой. Когда компьютер включается и загружает систему Linux, самым первым загружается ядро. Ядро инициализирует аппаратные компоненты: последовательные и параллельные порты, звуковые карты, сетевые карты, контролеры IDE, контролеры SCSI и много чего еще. Собственно, ядро делает доступным аппаратные элементы cbcntvs и позволяет запускаться программам.
Устанавливаемые файлы: ядро и заголовки ядра
Зависимости установки Linux
Linux зависит от: Bash, Binutils, Coreutils, Findutils, GCC, Glibc, Grep, Gzip, Make, Modutils, Perl, Sed.
Установка заголовков ядра
На данном этапе мы не будем компилировать ядро — мы сделаем это после установки всех пакетов. Однако, в связи с тем, что некоторые пакеты требуют заголовочных файлов ядра, мы распакуем ядро, настроим его и скопируем заголовки туда, где их будут искать пакеты при компиляции.
Важно отметить. что файлы в директории с исходниками ядра не являются файлами с владельцем root. Когда вы распакуете пакет как пользователь root (как это происходит здесь, в среде chroot), конечные файлы будут иметь ID владельца и группы как на компьютере, где создавался пакет. Это обычно не создает проблемы для любых других пакетов потому, что вы обычно удаляете директорию с исходниками после установки. Но директории с исходниками ядра Linux будут еще нужны очень долго, и может получиться, что какой-либо пользователь вашей системы получит доступ к исходникам ядра.
Чтобы исправить это, запустите команду chown -R 0:0 в директории linux-2.4.22 чтобы убедиться, что владельцем всех файлов оттуда будет root.
Подготовим заголовки к установке:
Это гарантирует нам, что дерево с исходниками ядра будет абсолютно «чистым». Команда разработчиков ядра рекомендует выполнять эту команду перед каждой компиляцией ядра. Вы не можете быть абсолютно уверены в чистоте дерева исходников ядра даже после распаковки.
Создадим файл include/linux/version.h:
Создадим платформо-зависимую ссылку include/asm:
Установим платформо-зависимые файлы заголовков:
Установим кросс-платформенные файлы заголовков:
Некоторые из заголовков ядра используют файл заголовков autoconf.h. Поскольку мы пока не сконфигурировали ядро, нам надо создать этот файл для того, чтобы компиляция следующих пакетов не закончилась ошибкой. Создадим пустой файл autoconf.h:
Почему мы копируем заголовки ядра, а не создаем для них символические ссылки?
Раньше было принято создавать символические ссылки директорий /usr/include/
Наиболее важная часть сообщения Линуса заключается в том, что файлы заголовков должны быть именно теми, с которыми компилировался пакет glibc. Это те заголовки, которые следует использовать в будущем при компиляции других пакетов, т.к. именно они соответствуют файлам библиотек объектного кода. Копируя заголовки, мы удостоверяемся, что они останутся доступными, если позже мы решим обновить ядро.
Заметьте, что не страшно если исходники ядра находятся в /usr/src/linux, главное, чтобы у вас не было ссылок на /usr/include/ .
Источник
Что такое заголовки ядра Linux? [Дубликат]
Я знаю, что если я хочу скомпилировать свое собственное ядро Linux, мне нужны заголовки ядра Linux, но для чего они хороши?
Я узнал, что в /usr/src/ , похоже, есть десятки файлов заголовков C. Но какова их цель, они напрямую не включены в источники ядра?
3 ответа
Файлы заголовков определяют интерфейс: они определяют способ определения функций в исходном файле.
Они используются таким образом, чтобы компилятор мог проверить правильность использования функции в качестве сигнатуры функции (возвращаемое значение и параметры) в файле заголовка. Для этой задачи фактическая реализация функции не требуется.
Вы можете сделать то же самое со всеми исходными файлами ядра, но вы установите много ненужных файлов.
Пример: если я хочу использовать функцию
в программе мне не нужно знать, как реализована реализация foo , мне просто нужно знать, что она принимает один param ( double ) и возвращает целое число.
Как указано, файлы заголовков определяют интерфейсы для функций, а также структуры, используемые программами.
В случае файлов заголовков ядра эти функции и структуры находятся внутри самого ядра.
Если вы создаете полное ядро, то, очевидно, вам нужны полные исходные файлы, а не только заголовки. Однако, если вы компилируете драйвер устройства или другой загружаемый модуль, который подключается к ядру, вам нужны только файлы заголовков, поэтому вы можете сэкономить место, не устанавливая полные источники.
Разделение пакетов так, что вы можете установить только файлы заголовков, частично исторически, поскольку разница в использовании диска была существенной, когда диски были меньше. В наши дни весь источник на диске (без необходимости) не будет основным соображением на диске.
Термированные заголовочные файлы происходят из языка программирования C , используемого при написании ядра Linux.
Чтобы объяснить это с очень высокого уровня .
В C перед использованием необходимо иметь декларацию вперед функции. Другими словами, описание функции, ее параметров и возвращаемых данных. Общепринятой практикой является включение всех форвардных деклараций в один файл с заголовком . Файлы исходного кода для других программ могут затем include этот заголовок и иметь доступ ко всем функциям исполняемого исполняемого файла программы после его компиляции .
Файлы заголовков Linux являются файлами .h , которые содержат функции, которые предоставляет ядро Linux, которые могут быть вызваны из других программ .
Источник
Как установить Linux Kernel Headers на Kali Linux 2.0 (Kali Sana)
Как установить Linux Kernel Headers на Kali Linux 2.0 (Kali Sana)
Добро пожаловать в нашу статью «Как установить заголовки ядра Linux на Kali Linux 2.0». Только что установили Kali Linux 2.0 или обновили до Kali Linux 2.0, и вам нужно установить заголовки ядра ?.Когда вы устанавливаете новую Kali Linux, она не поставляется с заголовками ядра Linux из коробки и вам придется установить их вручную, самый простой способ сделать это будет объяснен в ближайшее время.
Нужны заголовки для Linux
Заголовочные файлы ядра в ядре Linux используются для двух целей:
- Чтобы определить интерфейсы между компонентами ядра, и
- Чтобы определить интерфейсы между ядром и пользовательским пространством
Заголовки Linux необходимы для сборки модулей, которые загружаются в ядро, предоставляемое ядром Linux. Когда вам нужно запустить виртуальные машины с использованием гипервизоров, таких как Virtualbox и Vmware Workstation, в Kali Linux , вам потребуется установить заголовки ядра Linux.
Как установить заголовки ядра Linux на Kali Linux 2.0
Следуйте следующему короткому руководству по установке заголовков ядра Linux . Если вы используете Kali Linux 2.0, убедитесь, что в вашем файле sources.list есть следующие репозитории:
Изменить репозитории
Если следующие репозитории не существуют, замените старые на те, что указаны ниже.
Обновите apt-cache и обновите:
После этого проверьте версию своего ядра, набрав:
Установить заголовки ядра
Чтобы установить заголовки ядра, выполните команду:
Вы также можете добавить версию ядра к команде Linux-заголовки. Например
Смотрите скриншот ниже для более подробной информации
Для вашей версии Kali Linux 1.x просто выполните:
Вы можете прочитать мою статью о том, как добавить стандартные репозитории Kali для Kali Linux 1.x. Это все о том, как установить заголовки ядра Linux на Kali Linux 2.0.
Источник