Opensuse install linux headers

Step-by-step – Build Kernel openSUSE Easy Guide

GNU/Linux openSUSE Build Kernel from Source Code Guide

Hi! The Tutorial shows you Step-by-step How to Download, Build and Install a Custom New Vanilla Kernel from Source Code on openSUSE 42.x-Leap/15.x-Leap/Tumbleweed GNU/Linux Desktop.

Especially relevant: this openSUSE Kernel Setup make use of the original Linux Kernel Source Code.

Again this tutorial make it the Easy Way and so is intended especially for Beginners.

Important to know how this Setup does Not change your existing System and so in any case you will be able to startup with the current Kernel from the GRUB Splash Screen.

For further advanced Kernel Configuration instructions you may see the Linux Kernel Documentation.

Finally, for a Non Bootable System before see: How to chroot on openSUSE GNU/Linux Tutorial.

Step-by-step – Build Kernel openSUSE Easy Guide

1. Installing Requirements

Build Kernel openSUSE Linux Guide - Open Terminal

sudo zypper ref && sudo zypper update
sudo zypper in -t pattern devel_basis
sudo zypper in bc openssl openssl-devel dwarves rpm-build libelf-devel elfutils-libelf-devel

2. Making Target Directory

Источник

Opensuse install linux headers

14 пользователь(ей) активно (14 пользователь(ей) просматривают Open Форум)

Темы, озаглавленные бездумно и не ясно для кого, изобилующие БОЛЬШИМИ БУКВАМИ, «. » или «. «, нарушающие правила, написанные корявым русским языком, содержащие оскорбления, рекламу или клевету, написанные вне тематических разделах Форума, — будут закрываться или удаляться без специального предупреждения, а их Авторы будут удаляться или отправляться в бан! Надеемся на вашу сознательность и уважение к себе и ко всем участникам форума.
:: Правила Форума :: — — :: ББ-коды для использования на форуме ::

Open-SUSE.RU содержание форума — Пользовательский форум

Разработка и Программирование

Где взять linux-kernel-headers для opensuse 11.3?

Вниз Предыдущая тема Следующая тема Зарегистрируйтесь для создания

Источник

SDB:Сборка ядра Linux

Это руководство является почти полным переводом этого HowTo. Отступления от оригинала производились в случае необходимости внести ясность в документ с учетом сегодняшнего времени. Также некоторые изменения были внесены в связи с удалением «разъясняющих» скриншотов и необходимостью исправления устаревшей информации.

От автора

Каждый дистрибутив имеет свой, особенный набор инструментов для сборки ядра из исходных кодов. Эта небольшая инструкция о том, как собирать ядро в openSUSE. Далее я расскажу, как собрать ядро из немодифицированного исходного кода, взятого с сайта www.kernel.org (vanilla kernel). Это позволит вам не быть зависимым от ядер, подготавливаемых разработчиками дистрибутива. Я также покажу, как накладывать патчи на исходный код ядра, на случай если вам понадобится функциональность, не реализованная в официальном ядре.

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

Читайте также:  Deepin linux последняя версия

Введение

Задача этого руководства — собрать rpm-пакет, содержащий ядро, готовое для установки, и которое вы могли бы использовать в других дистрибутивах openSUSE. Это дает вам большие возможности по сравнению с «традиционным» путем получения и использования rpm-пакетов, содержащих ядро системы.

Установка пакетов, необходимых для компиляции ядра

Мы должны по крайней мере установить следующие пакеты, необходимые для выполнения команды make menuconfig, с которой мы будем работать позже:

# zypper in make gcc ncurses-devel rpm-build

Получение исходных кодов ядра

Сейчас мы скачаем нужное нам ядро и положим его в каталог /usr/src. Зайдите на www.kernel.org и выберите ядро, которое вы хотите установить, например linux-3.4.6.tar.bz2 (все ядра ветки 3.x вы можете найти здесь http://www.kernel.org/pub/linux/kernel/v3.x/). Теперь скачайте его в /usr/src так, как показано ниже.

$ cd /usr/src/ # wget http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.4.6.tar.bz2

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

# tar xjf linux-3.4.6.tar.bz2 # ln -s linux-3.4.6 linux $ cd /usr/src/linux

Наложение патчей на исходный код ядра

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

Полагаю, нужный патч у вас уже имеется (далее я буду называть его patch.bz2) и сохранен в каталоге /usr/src. Ниже показано, как его наложить на исходный код ядра (вы должны находится в каталоге /usr/src/linux).

# bzip2 -c /usr/src/patch.bz2 | patch -p1 --dry-run # bzip2 -dc /usr/src/patch.bz2 | patch -p1

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

Если при выполнении первой команды вы видите строчку на подобии этой: Hunk #1 succeeded at. , то это означает, что накладываемый патч будет сдвинут на некоторое количество строк, но при этом он будет наложен успешно.

Если ваш патч сжат архиватором gzip(gz) вместо bzip2(bz2) в этом случае ваши действия будут такими:

# gunzip -c /usr/src/patch.gz | patch -p1 --dry-run # gunzip -c /usr/src/patch.gz | patch -p1

Точно так же накладываются так называемые препатчи (prepatches) ядра. Например, если вам нужны какие-либо возможности, уже реализованные в ядре patch-3.6-rc6, а полный исходный код этой версии еще недоступен, кроме как в виде патча patch-3.6-rc6.bz2, то вы можете накладывать этот патч на ядро 3.5, но не на ядро 3.5.1, 3.5.2 и т.д.

Препатчи — это альфа-версии ядра Linux; они находятся в архиве в каталоге для тестируемых версий. Они накладываются при помощи утилиты patch(1) на исходный код предыдущей версии ядра, номер которой состоит из двух частей (например, препатч patch-3.x-rcx накладывается на ядро 3.x, но не на ядро версии 3.x.y).

Читайте также:  Установка линукса разбивка разделов

Таким образом, если вы хотите собрать ядро 3.6-rc6, вы должны скачать ядро версии linux-3.5.tar.bz2 вместо linux-3.4.6.tar.bz2. Ниже приведен пример, как накладывать патч 3.6-rc6 на ядро 3.5.

$ cd /usr/src # wget http://www.kernel.org/pub/linux/kernel/v3.x/testing/patch-3.6-rc6.bz2 $ cd /usr/src/linux # bzip2 -c /usr/src/patch-3.6-rc6.bz2 | patch -p1 --dry-run # bzip2 -dc /usr/src/patch-3.6-rc6.bz2| patch -p1

Обратите внимание, что патчи для ядра 3.x.y из стабильной ветки (-stable), применяются аналогичным образом, т.е. непосредственно к ядру 3.x, а не 3.x.y. Более подробную информацию можно найти здесь.

Конфигурирование ядра

Хорошим подспорьем будет возможность использовать конфигурационный файл текущего рабочего ядра как основу для нового ядра.

# make mrproper # cp /boot/config-`uname -r` ./.config

Вместо menuconfig, вы можете использовать: xconfig, gconfig, config, oldconfig. Более подробную информацию Вы можете узнать, выполнив: make help.

Данная команда запустит интерфейс конфигурирования ядра. Выберите Load an Alternate Configuration File и введите .config в качестве имени конфигурационного файла.

Теперь пройдитесь по всему меню конфигурирования ядра и выберите те опции, которые вам понадобятся. Я советую вам обязательно изменить строку с идентификатором версии General Setup —> (. default) Local version-. . По умолчанию значение этого параметра выставлено в -defaul. Если оставить его, то rpm-пакет с ядром будет назван kernel-3.4.6-*-default-1.i386.rpm. Вы вольны менять это значение по своему усмотрению.

В этом руководстве я буду использовать обычное значение -default.

После того как вы установите ядро из пакета kernel-3.4.6-*-default-1.i386.rpm, а позже захотите пересобрать его, то не забудьте изменить строку с идентификатором версии, иначе вы не сможете установить его, т. к. данный пакет уже установлен в системе.

Когда закончите с настройкой, выберите «Exit«, и ответьте на вопрос (Do you wish to save your new kernel configuration) Yes.

Сборка ядра

Чтобы собрать ядро, просто выполните эту команду:

Обратите внимание, что используя параметр «-j» вы можете существенно повысить скорость сборки ядра, используя несколько одновременных потоков компиляции. Существует вероятность того, что данный способ компиляции может вызвать некоторые ошибки. Вы действуете на свой страх и риск.

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

Установка ядра

В результате успешной сборки ядра будут созданы два RPM пакета src.rpm и .rpm. Пакет src.rpm будет находится в директории /usr/src/packages/SRPMS:

В моей системе он называется kernel-3.4.6-2.10-default-1.i386.rpm.

RPM пакет с двоичными данными (собственно то, что мы компилировали) находится в директории /usr/src/packages/RPMS/i386, /usr/src/packages/RPMS/i586, /usr/src/packages/RPMS/i686 и т.д. в зависимости от архитектуры вашей машины. В моей системе это была директория /usr/src/packages/RPMS/i386, а сам пакет назывался kernel-3.4.6-2.10-default-1.i386.rpm.

Теперь мы можем установить наш rpm пакет.

$ cd /usr/src/packages/RPMS/i386 # rpm -ivh kernel-3.4.6-2.10-default-1.i386.rpm

Вы можете устанавливать этот rpm пакет в любой другой системе openSUSE точно так же как это было описано выше. Это избавит вас от необходимости компилировать ядро.

Следующим этапом будет создание RAM-диска для нашего ядра. Иначе наше ядро скорее всего просто не загрузится:

Обычно результатом выполнения команды является создание RAM-диска для каждого ядра в директории /boot.

Читайте также:  Crypto pro для linux

Настройка загрузчика Grub

Нам осталось только настроить загрузчик Grub, чтобы после перезагрузки система грузилась уже с нашим новым ядром. В место редактирования файла /boot/grub/menu.lst руками мы с делаем это с помощью центра управления YaST2:

Если у вас помимо openSuSE и Windows установлена еще пара-тройка операционных систем, то лучше всё же править конфигурационный файл напрямую из текстового редактора. Возможно openSUSE некорректно определило другие дистрибутивы Linux.

  • Выберите из списка: «Cистема -> Загрузчик«
  • Перед вами появится текущий список выбора загрузчика Grub, нажмите «Добавить» для создания новой записи
  • На следующем экране выберите: «Клонировать выбранную секцию«, чтобы сделать копию рабочей загрузочной записи Grub и нажмите «Далее«
  • Теперь введите имя для вашего ядра, например, openSUSE-12.2 — 3.4.6 и нажмите «Образ ядра -> Обзор«
  • Вы увидите список файлов директории /boot, в которой и находится ваше ядро. Выберите ваше недавно созданное ядро, обычно его название начинается с vmlinuz.
  • Далее точно так же выбираем «Начальный RAM-диск«. Это файл с названием initrd-версия.вашего.ядра
  • Нажимаем «ОК» и возвращаемся в главное меню.
  • Если все сделано правильно, вы увидите новую запись для вашего ядра. Кнопками «Вверх» и «Вниз» переместите эту запись на необходимую вам позицию и нажмите «Установить по умолчанию«
  • Далее «OK«.

Все, настройка закончена! Для верности вы можете открыть файл /boot/grub/menu.lst в текстовом редакторе (именно его мы редактировали с помощью Yast) и проверить наличие новой секции с нашим ядром в ней. Сделать это можно, набрав:

Заодно проверьте, правильно ли вы написали название ядра и RAM-диска. Сравните с тем, что показывает:

Осталось перегрузить систему:

Если вы всё сделали правильно, система загрузится с новым ядом. Проверить это можно, набрав

В ответ вы увидите что-то вроде этого:

Если система не загрузилась, перезапустите её, и в меню Grub выберите ваше предыдущее рабочее ядро. Вы сможете загрузить систему и исправить ошибки, или пересобрать ядро, но при этом не забудьте удалить неработающую загрузочную запись из /boot/grub/menu.lst.

Заключение

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

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

Для сборки дистрибутивного ядра Вам сначала необходимо установить его исходники, выполнив:

Далее Вы можете приступить к наложению патчей и конфигурированию ядра согласно вышеприведенным действиям.

Также смотрите

Источник

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