Astra linux сборка ядра

Сборка модулей ядра

Сборка модуля ядра отдельно от дерева исходного ядра

1. Установить пакет с заголовочными файлами (linux-headers-. )
2. Создать рабочий каталог
3. Скопировать в него исходные коды модуля
4. Перейти в рабочий каталог
5. Создать Makefile вида:

obj-m = .o KVERSION = $(shell uname -r) all: make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules clean: make -C /lib/modules/$(KVERSION)/build M=$(PWD) clean

6. Выполнить команду make
7. Полученный файл .ko скопировать в /lib/modules//
8. Выполнить команду sudo depmod -a

Сборка модуля ядра с помощью dkms

1. Установить пакет dkms и пакет c заголовочными файлами ядра (linux-headers-. )
2. Создать рабочий каталог по пути /usr/src/-
3. Скопировать исходные коды в рабочий каталог
4. Создать в рабочем каталоге конфигурационный файл dkms.conf вида:

5. Создать в рабочем каталоге Makefile вида:

obj-m = .o KVERSION = $(shell uname -r) all: make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules clean: make -C /lib/modules/$(KVERSION)/build M=$(PWD) clean

6. Добавить исходный код данного модуля в дерево DKMS:

7. Собрать драйвер командой:

8. Проинсталлировать драйвер командой:

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

Источник

Пошаговое руководство как собрать ядро Linux с нуля

img

Ядро Linux является основой Unix-подобных операционных систем. Ядро отвечает за связь между оборудованием и программным обеспечением и за распределение доступных ресурсов.

Все дистрибутивы Linux основаны на предопределенном ядре. Но если вы хотите отключить несколько параметров и драйверов или попробовать экспериментальные исправления, вам необходимо собрать ядро Linux.

В этом пошаговом руководстве вы узнаете, как собрать и скомпилировать ядро Linux с нуля.

Пошаговое руководство как собрать ядро Linux с нуля

Сборка ядра Linux

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

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

Шаг 1. Загрузите исходный код

1. Посетите официальный сайт ядра www.kernel.org и загрузите последнюю версию. Загруженный файл содержит сжатый исходный код.

www.kernel.org

2. Откройте терминал и используйте команду wget для загрузки исходного кода ядра Linux:

wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.9.6.tar.xz

По завершении загрузки в выходных данных отображается сообщение «saved».

saved

Шаг 2: извлеките исходный код

Когда файл будет готов, запустите команду tar , чтобы извлечь исходный код:

Читайте также:  Добавить рут права линукс

Вывод отображает извлеченный исходный код ядра:

Извлеченный исходный код

Шаг 3: Установите необходимые пакеты

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

sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison

Команда, которую мы использовали выше, устанавливает следующие пакеты:

sudo apt-get install

  • git — отслеживает и записывает все изменения исходного кода во время разработки. Это также позволяет отменить изменения.
  • fakeroot — упаковочный инструмент, создающий фальшивую корневую среду.
  • build-essential — Устанавливает инструменты разработки, такие как C, C++, gcc и g++.
  • ncurses-dev — Библиотека программирования, предоставляющая API для текстовых терминалов.
  • xz-utils — обеспечивает быстрое сжатие и распаковку файлов.
  • libssl-dev — поддерживает SSL и TSL, которые шифруют данные и делают интернет-соединение безопасным.
  • bc (Basic Calculator) — математический язык сценариев, поддерживающий интерактивное выполнение операторов.
  • flex (Fast Lexical Analyzer Generator) — генерирует лексические анализаторы, преобразующие символы в токены.
  • libelf-dev — выдает общую библиотеку для управления файлами ELF (исполняемые файлы, дампы ядра и объектный код)
  • bison — генератор парсера GNU, который преобразует описание грамматики в программу на языке C.

Шаг 4: Настройте ядро

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

1. Перейдите к каталогу linux-5.9.6. с помощью команды cd :

2. Скопируйте существующий файл конфигурации с помощью команды cp :

cp -v /boot/config-$(uname -r) .config

3. Чтобы внести изменения в файл конфигурации, выполните команду make :

Команда запускает несколько скриптов, которые затем открывают меню конфигурации:

make menuconfig

4. Меню конфигурации включает в себя такие параметры, как прошивка, файловая система, сеть и параметры памяти. Используйте стрелки, чтобы сделать выбор, или выберите HELP, чтобы узнать больше о вариантах. Когда вы закончите вносить изменения, выберите SAVE, а затем выйдите из меню.

Save

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

Шаг 5: Соберите ядро

1. Начните сборку ядра, выполнив следующую команду:

Процесс сборки и компиляции ядра Linux занимает некоторое время.

Терминал перечисляет все компоненты ядра Linux: управление памятью, драйверы оборудования, драйверы файловой системы, сетевые драйверы и управление процессами.

make

2. Установите необходимые модули с помощью этой команды:

sudo make modules_install

sudo make modules_install

3. Наконец, установите ядро, набрав:

Вывод показывает готово, когда закончено:

sudo make install

Шаг 6. Обновите загрузчик (необязательно)

Загрузчик GRUB — это первая программа, которая запускается при включении системы.

Команда make install выполняет этот процесс автоматически, но вы также можете сделать это вручную.

1. Обновите initramfs до установленной версии ядра:

sudo update-initramfs -c -k 5.9.6

2. Обновите загрузчик GRUB с помощью этой команды:

Терминал выведет процесс и подтверждающее сообщение:

sudo update-grub

Шаг 7: перезагрузите и проверьте версию ядра

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

Читайте также:  Задать размер файла linux

Когда система загрузится, проверьте версию ядра с помощью команды uname :

Терминал покажет текущую версию ядра Linux.

uname -mrs

Итог

В этом пошаговом руководстве вы узнали, как собрать ядро Linux с нуля и установить необходимые пакеты.

Источник

как собрать ведро астры из исходников?

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

Astra это скопипи^^Wенный дебиан. Который к тому же еще и протух

а что дальше, как правильно поступать?

Линукс — это свободная система. Можешь сделать например cat linux.tar.gz > /dev/dsp, можешь редактировать его в блокноте.
Никаких ограничений, никто тебя не отругает.

Можно, конечно, тупо распаковать сырцы, накатить дифф и сконпелять, но это же такая скукотища.

Вероятно как обычно, т.е. распаковать архив, сделать симлинк на /usr/src/linux, далее cd /usr/src/linux, make menuconfig, make, make modules_install, make install, сделать initrd если нужен (например, с помощью dracut), настроить загрузчик

а как собрать ядро к скопищеному дебиану из папки linux-3.2 и громадного diff файла?

Наложить diff, а дальше читать как собирают ядра в дебаине. Ваш Кэп.

я как-то с diff не дружу, и с гуглом похоже тоже. есть папка, есть diff, и я тупой сижу.

я знаю как наложить patch. а как быть с diff файлом?

также как и с patch файлом, никакой разницы.

P.S. а ядро у них скопировано из ubuntu.

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

штука в том, что мне нужно собрать ядро от астры, а там diff который не накладывается вообще.

Источник

Отчет по лабораторной работе №7

Для выполнения лабораторной работы используется установленный дистрибутив ОС Linux.

Задание на лабораторную работу

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

В ходе лабораторной работы необходимо:

Войдите в систему как администратор или выполните команду «sudo -i», и скопируйте архив в директорию /usr/src. Распакуйте в /usr/src исходные тексты, пользуясь командой «tar xvfJj *.tar.xz» (если вы получили «*.tar.bz2», то работает команда «tar xvjf *.tar.bz2»). Содержимое архива будет распаковано. В процессе распаковки будет открыта новая директория «linux-X.Y.Z» в «/usr/src». Перейдите в директорию «linux-X.Y.Z» и прочитайте файл README. Там будет раздел с заголовком «INSTALLING the kernel source(Установка ядра)», изучите его.

Делаем как нормальные пацаны, без работы под root и на другой системе:

sudo mv linux-5.8.10.tar.xz /urs/src

Запустите команду «make mrproper». Эта команда нужна для удаления временных файлов, созданных при предыдущей сборке. Она удаляет также все настройки, которые вы сделали во время прошлой сборки. Команда «make config» выполненная в «/usr/src/linux-X.Y.Z» запускает скрипт настройки, который задаст вам много вопросов. Скрипт требует наличия bash, так что проверьте, чтобы bash находился в директории «/bin/bash, /bin/sh», или $BASH.

Читайте также:  What is kali linux mini

Спрашиваем, что делать у преподавателя!

Существуют некоторые альтернативы команде «make config» и вы можете найти их более удобными и легкими для использования. Те, кто работает в графической оболочке, могут попробовать «make xconfig», возможно потребуется установка дополнительных библиотек.

Устанавливаем, часть пакетов для выполнения лабораторной:

sudo apt-get install pkg-config

sudo apt install qt5-default

Если установлен «(n)curses» и вы предпочитаете текстовые меню – «make menuconfig». Эти интерфейсы имеют одно явное преимущество: если вы сделали неправильный выбор в течение настройки, то очень легко вернуться и исправить ее.

Теперь вы готовы отвечать на вопросы, ответы на которые обычно выглядят как «y» (да) или «n» (нет). xвать этот драйвер, но не вставит его прямо в ядро, а сделает загружаемым модулем. Некоторые более ясные и некритичные опции здесь не описаны.

В версиях 2.0.x и более поздних, существует опция «?», которая обеспечивает краткое описание параметра настройки.

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

Поставив, все нужные пакеты

Открывается GUI, в котором мы произведем настройку нового ядра.

Скомпилированное ядро должно обеспечивать работу в сети и поддерживать firewall

,

а также поддержку SCSI.

Протыкали, сохраняем, закрываем.

Выполнять «make bzImage modules modules_install install». Процесс в зависимости от мощности процессора и количества выбранных модулей может занимать много времени. Когда ядро будет собрано, у вас должны появиться следующие файлы:

6 часов собираем ядро!

Проверяем наличие файлов:

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

Источник

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