From c4d43142181a45b849a15cf8ec5ebe61cea33897 Mon Sep 17 00:00:00 2001 From: Sn4il Date: Wed, 10 Jan 2024 16:57:29 +0300 Subject: LFS 12 mirror --- lfs-12.0-sysv/chapter10/chapter10.html | 101 ++++ lfs-12.0-sysv/chapter10/fstab.html | 191 ++++++++ lfs-12.0-sysv/chapter10/grub.html | 354 ++++++++++++++ lfs-12.0-sysv/chapter10/introduction.html | 87 ++++ lfs-12.0-sysv/chapter10/kernel.html | 752 ++++++++++++++++++++++++++++++ 5 files changed, 1485 insertions(+) create mode 100644 lfs-12.0-sysv/chapter10/chapter10.html create mode 100644 lfs-12.0-sysv/chapter10/fstab.html create mode 100644 lfs-12.0-sysv/chapter10/grub.html create mode 100644 lfs-12.0-sysv/chapter10/introduction.html create mode 100644 lfs-12.0-sysv/chapter10/kernel.html (limited to 'lfs-12.0-sysv/chapter10') diff --git a/lfs-12.0-sysv/chapter10/chapter10.html b/lfs-12.0-sysv/chapter10/chapter10.html new file mode 100644 index 0000000..d832222 --- /dev/null +++ b/lfs-12.0-sysv/chapter10/chapter10.html @@ -0,0 +1,101 @@ + + + + + + Глава 10. Делаем систему LFS загрузочной + + + + + + + + +
+

+ 10. Делаем + систему LFS загрузочной +

+ +
+ + + diff --git a/lfs-12.0-sysv/chapter10/fstab.html b/lfs-12.0-sysv/chapter10/fstab.html new file mode 100644 index 0000000..0bf2405 --- /dev/null +++ b/lfs-12.0-sysv/chapter10/fstab.html @@ -0,0 +1,191 @@ + + + + + + 10.2. Создание файла /etc/fstab + + + + + + + + +
+

+ 10.2. Создание + файла /etc/fstab +

+

+ Файл /etc/fstab используется некоторыми + программами для определения того, какие файловые системы должны + монтироваться по умолчанию, в каком порядке и какие из них должны + быть проверены (на наличие ошибок целостности) перед монтированием. + Создайте новую таблицу файловых систем следующим образом: +

+
cat > /etc/fstab << "EOF"
+# Begin /etc/fstab
+
+# file system  mount-point  type     options             dump  fsck
+#                                                              order
+
+/dev/<xxx>     /            <fff>    defaults            1     1
+/dev/<yyy>     swap         swap     pri=1               0     0
+proc           /proc        proc     nosuid,noexec,nodev 0     0
+sysfs          /sys         sysfs    nosuid,noexec,nodev 0     0
+devpts         /dev/pts     devpts   gid=5,mode=620      0     0
+tmpfs          /run         tmpfs    defaults            0     0
+devtmpfs       /dev         devtmpfs mode=0755,nosuid    0     0
+tmpfs          /dev/shm     tmpfs    nosuid,nodev        0     0
+cgroup2        /sys/fs/cgroup cgroup2  nosuid,noexec,nodev 0     0
+
+# End /etc/fstab
+EOF
+

+ Замените <xxx>, + <yyy>, и <fff> подходящими для системы + значениями, например, sda2, + sda5, и ext4. Для получения подробной информации о + параметрах в этом файле, смотрите man 5 + fstab. +

+

+ Файловым системам операционных систем MS DOS и Windows (таким как + vfat, ntfs, smbfs, cifs, iso9660, udf) требуется специальная опция + utf8, чтобы не-ASCII символы в именах файлов интерпретировались + правильно. Для локалей, отличных от UTF-8, значение iocharset должно быть таким же, как набор символов + локали и настроено так, чтобы ядро понимало его. Это будет работать, + если соответствующее определение набора символов (находится в разделе + File systems -> Native Language Support при настройке ядра) было + скомпилировано в ядро или собрано как модуль. Однако, если набор + символов локали — UTF-8, параметр iocharset=utf8 сделает файловую систему + чувствительной к регистру. Чтобы исправить это, используйте + специальную опцию utf8 вместо + iocharset=utf8 для локалей UTF-8. + Параметр «codepage» также необходим для файловых систем + vfat и smbfs. Он должен быть установлен на номер кодовой страницы, + используемый в MS-DOS в вашей стране. Например, для монтирования + флешек пользователь локали ru_RU.KOI8-R должен установить следующие + значения в группе параметров строки монтирования в /etc/fstab: +

+
noauto,user,quiet,showexec,codepage=866,iocharset=koi8r
+

+ Соответствующий фрагмент параметров для пользователей ru_RU.UTF-8 + выглядит следующим образом: +

+
noauto,user,quiet,showexec,codepage=866,utf8
+

+ Обратите внимание, что iocharset + используется по умолчанию для iso8859-1 + (которая сохраняет файловую систему нечувствительной к регистру), а + параметр utf8 указывает ядру, что нужно + преобразовать имена файлов с использованием UTF-8, чтобы их можно + было интерпретировать в локали UTF-8. +

+

+ Также возможно указать значения кодовой страницы по умолчанию и + iocharset для некоторых файловых систем во время настройки ядра. + Соответствующие параметры называются «Default NLS Option» + (CONFIG_NLS_DEFAULT), «Default Remote NLS Option» + (CONFIG_SMB_NLS_DEFAULT), «Default codepage for FAT» + (CONFIG_FAT_DEFAULT_CODEPAGE) и + «Default iocharset for + FAT» (CONFIG_FAT_DEFAULT_IOCHARSET). Нет возможности + указать эти параметры для файловой системы ntfs во время компиляции + ядра. +

+

+ Для некоторых типов жестких дисков можно сделать файловую систему + ext3 более устойчивой к сбоям питания. Чтобы сделать это, добавьте + параметр barrier=1 к соответствующей + записи в /etc/fstab. Чтобы проверить, + поддерживает ли диск эту опцию, запустите + hdparm на соответствуюшем разделе. Например, если: +

+
hdparm -I /dev/sda | grep NCQ
+

+ возвращает непустой вывод, опция поддерживается. +

+

+ Примечание: разделы на основе управления логическими томами (LVM) не + могут использовать параметр barrier. +

+
+ + + diff --git a/lfs-12.0-sysv/chapter10/grub.html b/lfs-12.0-sysv/chapter10/grub.html new file mode 100644 index 0000000..c41e3fa --- /dev/null +++ b/lfs-12.0-sysv/chapter10/grub.html @@ -0,0 +1,354 @@ + + + + + + 10.4. Использование GRUB для настройки процесса загрузки + + + + + + + + +
+

+ 10.4. + Использование GRUB для настройки процесса загрузки +

+
+ [Примечание] +

+ Примечание +

+

+ Если ваша система поддерживает UEFI и вы хотите загрузить LFS с + помощью UEFI, вам следует пропустить инструкции на этой странице, + но все равно изучить синтаксис grub.cfg и способ указания раздела в файле с этой + страницы, а также настроить GRUB с поддержкой UEFI используя + инструкции, приведенные на + странице BLFS. +

+
+
+

+ 10.4.1. Введение +

+
+ [Предупреждение] +

+ Предупреждение +

+

+ При неправильной настройке GRUB ваша система перестанет + загружаться без вспомогательно загрузочного CD-ROM или + USB-накопителя. Для загрузки системы LFS этот раздел + необязателен. Вы можете просто использовать существующий + загрузчик, например Grub-Legacy, GRUB2 или LILO. +

+
+

+ Убедитесь, что аварийный загрузочный диск готов к «спасению» компьютера, + если он перестанет загружаться. Если у вас еще нет загрузочного + диска, вы можете создать его. Для этого необходимо перейти в раздел + BLFS и установить программу xorriso из пакета + libisoburn. +

+
cd /tmp
+grub-mkrescue --output=grub-img.iso
+xorriso -as cdrecord -v dev=/dev/cdrw blank=as_needed grub-img.iso
+
+
+

+ 10.4.2. Соглашения об именовании GRUB +

+

+ GRUB использует собственную структуру именования дисков и разделов + в виде (hdn,m), где + n — номер жесткого диска, а + m — номер раздела. Номера + жестких дисков начинаются с нуля, а номера разделов начинаются с + единицы для обычных разделов (с пяти для расширенных разделов). + Обратите внимание, что это отличается от более ранних версий, где + оба номера начинались с нуля. Например, раздел sda1 это (hd0,1) в GRUB, а sdb3 (hd1,3). В отличие от Linux, GRUB не + считает приводы CD-ROM жесткими дисками. Например, если + используемый CD-привода определяется как hdb, а второй жесткий диск как hdc, этот второй жесткий диск все равно будет + (hd1). +

+
+
+

+ 10.4.3. Настройка +

+

+ GRUB записывает данные на первый физический сектор жесткого диска. + Эта область не является частью какой-либо файловой системы. + Программа в загрузочном разделе имеет доступ к модулям GRUB + расположенным по умолчанию в /boot/grub/. +

+

+ Расположение загрузочного раздела - это выбор пользователя, который + влияет на конфигурацию. Одна из рекомендаций заключается в том, + чтобы иметь отдельный небольшой раздел (примерно 200 МБ) + исключительно для загрузочной информации. В этом случае каждая + сборка, будь то LFS или другой дистрибутив, может обращаться к тем + же загрузочным файлам, а доступ может быть получен из любой + загруженной системы. Если вы решите так сделать, вам необходимо + примонтировать отдельный раздел, переместить все файлы из текущего + каталога /boot (например, ядро Linux, + которое вы создали на предыдущем этапе) в новый раздел. Затем нужно + отмонтировать раздел и примонтировать его заново в каталог + /boot. Когда вы это сделаете, + обязательно обновите данные в файле /etc/fstab. +

+

+ Оставить /boot на текущем разделе LFS + это тоже рабочее решение, но его настройка для загрузки нескольких + систем сложнее. +

+

+ Используя информацию выше, определите соответствующие точки + монтирования для корневого раздела (или загрузочного раздела, если + используется отдельный). В следующем примере предполагается, что + корневым (или отдельным загрузочным) разделом является sda2. +

+

+ Установите файлы GRUB в каталог /boot/grub и настройте загрузочный сектор: +

+
+ [Предупреждение] +

+ Предупреждение +

+

+ Следующая команда перезапишет текущий загрузчик. Не выполняйте + эту команду, если это не нужно, например, если вы используете + сторонний менеджер загрузки для управления главной загрузочной + записью (MBR). +

+
+
grub-install /dev/sda
+
+ [Примечание] +

+ Примечание +

+

+ Если система была загружена с использованием UEFI, grub-install попытается + установить файлы для x86_64-efi, но эти файлы не были + установлены в + Глава 8. Если это так, добавьте --target i386-pc к приведенной выше команде. +

+
+
+
+

+ 10.4.4. Создание файла + конфигурации GRUB +

+

+ Создайте файл /boot/grub/grub.cfg: +

+
cat > /boot/grub/grub.cfg << "EOF"
+# Begin /boot/grub/grub.cfg
+set default=0
+set timeout=5
+
+insmod part_gpt
+insmod ext2
+set root=(hd0,2)
+
+menuentry "GNU/Linux, Linux 6.4.12-lfs-12.0" {
+        linux   /boot/vmlinuz-6.4.12-lfs-12.0 root=/dev/sda2 ro
+}
+EOF
+

+ Команды insmod + загружают модули GRUB с именами + part_gpt и ext2. Несмотря на название, ext2 фактически поддерживаются файловые системы + ext2, ext3 и ext4. + Команда grub-install + встроила некоторые модули в основной образ GRUB (установленный в MBR или раздел GRUB + BIOS) для доступа к другим модулям (в /boot/grub/i386-pc), поэтому в стандартной + конфигурации эти два модуля уже встроены и эти две команды + insmod ничего не + будут делать. В любом случае, от них нет никакого вреда, но они + могут понадобиться в некоторых редких конфигурациях. +

+
+ [Примечание] +

+ Примечание +

+

+ С точки зрения GRUB, файлы ядра + относятся к используемому разделу. Если вы используется отдельный + раздел /boot, удалите /boot из приведенной выше строки + linux. Вам также + потребуется изменить строку set + root так, чтобы она указывала на загрузочный раздел. +

+
+
+ [Примечание] +

+ Примечание +

+

+ Наименование раздела для GRUB может измениться, если вы добавили + или удалили некоторые диски (это могут быть как съемные диски, + так и USB-устройства). Изменение может привести к сбою загрузки, + потому что grub.cfg ссылается на + «старые» + указатели. Чтобы не столкнуться с этой проблемой, необходимо + использовать UUID раздела и файловой системы вместо указателя + GRUB для указания устройства. Запустите команду lsblk -o + UUID,PARTUUID,PATH,MOUNTPOINT, чтобы посмотреть + UUID ваших файловых систем (в столбце UUID) и разделов (в столбце PARTUUID). Затем замените set root=(hdx,y) на search + --set=root --fs-uuid <UUID + файловой системы, в которой установлено + ядро>, и замените root=/dev/sda2 на root=PARTUUID=<UUID + раздела, в котором собрана LFS>. +

+

+ Обратите внимание, что UUID раздела и UUID файловой системы на + этом разделе это совершенно разные вещи. Некоторые онлайн-ресурсы + могут предлагать вам использовать root=UUID=<UUID + файловой системы> вместо root=PARTUUID=<UUID + раздела>, но для этого требуется initramfs, + которая не рассматривается в LFS. +

+

+ Имя узла устройства для раздела в /dev также может измениться (хотя это менее + вероятно, чем изменение указателя GRUB). Вы можете заменить пути + к узлам устройств, таким как /dev/sda1 на PARTUUID=<UUID + раздела>, в /etc/fstab, чтобы избежать потенциального сбоя + загрузки в случае, если имя узла устройства изменилось. +

+
+

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

+
+ [Внимание] +

+ Внимание +

+

+ Существует команда grub-mkconfig, которая может автоматически + записывать файл конфигурации. Она использует набор скриптов из + каталога /etc/grub.d/ и уничтожит любые сделанные вами настройки. + Эти скрипты предназначены в первую очередь для обычных + дистрибутивов и не рекомендуются для LFS. Если вы устанавливаете + коммерческий дистрибутив Linux, есть вероятность, что эта + программа будет запущена. Обязательно создайте резервную копию + файла grub.cfg. +

+
+
+
+ + + diff --git a/lfs-12.0-sysv/chapter10/introduction.html b/lfs-12.0-sysv/chapter10/introduction.html new file mode 100644 index 0000000..5e04e74 --- /dev/null +++ b/lfs-12.0-sysv/chapter10/introduction.html @@ -0,0 +1,87 @@ + + + + + + 10.1. Введение + + + + + + + + +
+

+ 10.1. Введение +

+

+ Пришло время сделать систему LFS загрузочной. В этой главе + обсуждается создание файла /etc/fstab, + сборка ядра для новой системы и установка загрузчика GRUB, чтобы + система LFS могла быть выбрана для загрузки при запуске. +

+
+ + + diff --git a/lfs-12.0-sysv/chapter10/kernel.html b/lfs-12.0-sysv/chapter10/kernel.html new file mode 100644 index 0000000..ed8aeee --- /dev/null +++ b/lfs-12.0-sysv/chapter10/kernel.html @@ -0,0 +1,752 @@ + + + + + + 10.3. Linux-6.4.12 + + + + + + + + +
+

+ 10.3. + Linux-6.4.12 +

+
+

+ Этот пакет содержит ядро Linux. +

+
+
+
+ Приблизительное время сборки: + 1.5 - 130.0 SBU (обычно около 12 + SBU) +
+
+ Требуемое дисковое + пространство: 1200 - 8800 MB + (обычно около 1700 MB) +
+
+
+
+
+

+ 10.3.1. Установка ядра +

+

+ Сборка ядра состоит из нескольких этапов—настройка, компиляция и + установка. Ознакомьтесь с файлом README в дереве исходных текстов, чтобы узнать об + альтернативных способах настройки ядра. +

+
+ [Важно] +

+ Важно +

+

+ Сборка ядра Linux в первый раз — одна из самых сложных задач в + LFS. Правильный выбор параметров зависит от конкретного + оборудования для целевой системы и ваших потребностей. Для ядра + доступно почти 12 000 элементов конфигурации, хотя для + большинства компьютеров требуется только около трети из них. + Редакторы LFS рекомендуют пользователям, не знакомым с этим + процессом, внимательно следовать описанным ниже процедурам. + Главная цель сейчас состоит в том, чтобы довести первоначальную + систему до состояния, когда вы сможете войти в систему из + командной строки при последующей перезагрузке в Раздел 11.3, «Перезагрузка + системы». Вопросы оптимизация и кастомизация второстепенны. +

+

+ Для получения общей информации о конфигурации ядра смотрите + + https://mirror.linuxfromscratch.ru/hints/downloads/files/kernel-configuration.txt. + Дополнительную информацию о настройке и сборке ядра можно найти + по адресу https://anduin.linuxfromscratch.org/LFS/kernel-nutshell/. + Эти ссылки немного устарели, но все же дают разумное + представление о процессе. +

+

+ Если ничего не помогает, вы можете обратиться за помощью в список + рассылки lfs-support. + Обратите внимание, что подписка необходима для того, чтобы + рассылка не содержала спама. +

+
+

+ Подготовьте пакет к компиляции, выполнив следующую команду: +

+
make mrproper
+

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

+

+ Существует несколько способов настройки параметров ядра. Обычно это + делается с помощью псевдографического интерфейса, например так: +

+
make menuconfig
+
+

+ Значения необязательных переменных окружения + make: +

+
+
+ LANG=<переменная_LANG_хоста> + LC_ALL= +
+
+

+ Устанавливает значение локали на то, которое используется на + хосте. Это может понадобиться для правильного отображения + интерфейса menuconfig с помощью ncurses в текстовой консоли + Linux с UTF-8. +

+

+ Если это необходимо, обязательно замените значение <переменной_LANG> на + значение переменной $LANG вашего + хоста. В качестве альтернативы вы можете использовать + значения переменных $LC_ALL или + $LC_CTYPE. +

+
+
+ make + menuconfig +
+
+

+ Эта команда запускает интерфейс на основе ncurses. Для + использования других (графических) интерфейсов, выполните + make help. +

+
+
+
+
+ [Примечание] +

+ Примечание +

+

+ Хорошей отправной точкой для настройки ядра, может стать запуск + команды make + defconfig. В результате её выполнения будет + создана базовая конфигурация с учётом архитектуры системы. +

+

+ Обязательно включите/отключите/настройте следующие параметры, + иначе система может работать некорректно или вообще не + загружаться: +

+
General setup --->
+  [ ] Compile the kernel with warnings as errors                        [WERROR]
+  CPU/Task time and stats accounting --->
+    [*] Pressure stall information tracking                                [PSI]
+    [ ]   Require boot parameter to enable pressure stall information tracking
+                                                     ...  [PSI_DEFAULT_DISABLED]
+  < > Enable kernel headers through /sys/kernel/kheaders.tar.xz      [IKHEADERS]
+  [*] Control Group support --->                                       [CGROUPS]
+    [*] Memory controller                                                [MEMCG]
+  [ ] Configure standard kernel features (expert users) --->            [EXPERT]
+
+Processor type and features --->
+  [*] Build a relocatable kernel                                   [RELOCATABLE]
+  [*]   Randomize the address of the kernel image (KASLR)       [RANDOMIZE_BASE]
+
+General architecture-dependent options --->
+  [*] Stack Protector buffer overflow detection                 [STACKPROTECTOR]
+  [*]   Strong Stack Protector                           [STACKPROTECTOR_STRONG]
+
+Device Drivers --->
+  Generic Driver Options --->
+    [ ] Support for uevent helper                                [UEVENT_HELPER]
+    [*] Maintain a devtmpfs filesystem to mount at /dev               [DEVTMPFS]
+    [*]   Automount devtmpfs at /dev, after the kernel mounted the rootfs
+                                                           ...  [DEVTMPFS_MOUNT]
+  Graphics support --->
+    Frame buffer Devices --->
+      <*> Support for frame buffer devices --->                             [FB]
+    Console display driver support --->
+      [*] Framebuffer Console support                      [FRAMEBUFFER_CONSOLE]
+

+ Включите некоторые дополнительные функции, если вы собираете + 64-битную систему. Если вы используете menuconfig, включите их в + следующем порядке: сначала CONFIG_PCI_MSI, затем CONFIG_IRQ_REMAP, и, наконец, + CONFIG_X86_X2APIC, потому + что параметр отображается только после выбора его зависимости. +

+
Processor type and features --->
+  [*] Support x2apic                                                [X86_X2APIC]
+
+Device Drivers --->
+  [*] PCI support --->                                                     [PCI]
+    [*] Message Signaled Interrupts (MSI and MSI-X)                    [PCI_MSI]
+  [*] IOMMU Hardware Support --->                                [IOMMU_SUPPORT]
+    [*] Support for Interrupt Remapping                              [IRQ_REMAP]
+

+ Если вы создаете 32-разрядную систему, работающую на оборудовании + с объемом оперативной памяти более 4 ГБ, измените конфигурацию + таким образом, чтобы ядро могло использовать до 64 ГБ оперативной + памяти: +

+
Processor type and features --->
+  High Memory Support --->
+    (X) 64GB                                                        [HIGHMEM64G]
+

+ Если раздел для системы LFS находится на NVME SSD (то есть узлом + устройства для раздела является /dev/nvme*, а не /dev/sd*), включите параметр NVME support, + иначе система LFS не будет загружается: +

+
Device Drivers --->
+  NVME Support --->
+    <*> NVM Express block device                                  [BLK_DEV_NVME]
+
+

+ Есть несколько других параметров, которые могут понадобиться в + зависимости от особенностей системы. Для получения списка + необходимых опций для пакетов BLFS смотрите + Список опций ядра BLFS. +

+
+ [Примечание] +

+ Примечание +

+

+ Если ваша хост поддерживает UEFI и вы хотите загрузить LFS с + помощью него, вам необходимо настроить некоторые параметры ядра, + следуя инструкции + на странице BLFS, даже если вы + будете использовать загрузчик UEFI из основного + дистрибутива. +

+
+
+

+ Пояснения для выбранных выше параметров ядра: +

+
+
+ Randomize the + address of the kernel image (KASLR) +
+
+

+ Включите ASLR для образа ядра, чтобы уменьшить вероятность + некоторых атак, основанных на фиксированных адресах + конфиденциальных данных или кода в ядре. +

+
+
+ Compile the + kernel with warnings as errors +
+
+

+ Включение этого параметра может привести к сбою сборки, если + компилятор и/или конфигурация отличается от конфигурации ядра + разработчиков. +

+
+
+ Enable kernel + headers through /sys/kernel/kheaders.tar.xz +
+
+

+ Для сборки ядра с этим параметром необходим пакет + cpio. + cpio не + устанавливается в LFS. +

+
+
+ Configure + standard kernel features (expert users) +
+
+

+ Эта опция приведет к отображению некоторых параметров в + интерфейсе конфигурации, но изменение этих параметров может + быть опасным. Не используйте её, если вы не знаете, что + делаете. +

+
+
+ Strong Stack + Protector +
+
+

+ Включите SSP для ядра. Мы включили его для всего + пользовательского пространства с помощью --enable-default-ssp, настроив + GCC, но ядро не использует настройки GCC по умолчанию для + SSP. Мы включаем это явно здесь. +

+
+
+ Support for + uevent helper +
+
+

+ Включение этого параметра может вызвать сбои при управление + устройствами через Udev. +

+
+
+ Maintain a + devtmpfs +
+
+

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

+
+
+ Automount + devtmpfs at /dev +
+
+

+ Этот параметр позволит смонтировать представление ядра + устройств в /dev при переключении на корневую файловую + систему непосредственно перед запуском init. +

+
+
+ Framebuffer + Console support +
+
+

+ Это параметр необходим для отображения консоли Linux на + устройстве с фреймбуфером. Чтобы ядро могло печатать + отладочные сообщения на ранней стадии загрузки, его не + следует собирать как модуль (если только не будет + использоваться initramfs). И, если CONFIG_DRM (Direct Rendering Manager - + Диспетчер прямого рендеринга) включен, скорее всего, также + должен быть включен CONFIG_DRM_FBDEV_EMULATION (включить + устаревшую поддержку fbdev для вашего modesetting драйвера). +

+
+
+ Support + x2apic +
+
+

+ Поддержка запуска 64-разрядного контроллера прерываний для + x86 процессоров в режиме x2APIC. x2APIC может быть включен в + BIOS на системах x86 и у ядра собранного без этой опции будет + kernel panic при загрузке. Эта опция не окажет никакого + эффекта, но и не причиняет вреда, если x2APIC отключен в + BIOS. +

+
+
+
+

+ В качестве альтернативы, в некоторых ситуациях может быть уместно + использование команды make + oldconfig. Смотрите файл README для получения дополнительной информации. +

+

+ По желанию, вы можете пропустить настройку ядра, скопировав + конфигурационный файл ядра .config, + из хост системы(если он доступен) в каталог куда было распаковано + ядро linux-6.4.12. Однако, мы не + рекомендуем этот вариант. Намного лучше изучить все параметры меню + и создать конфигурацию ядра с нуля. +

+

+ Скомпилируйте образ ядра и модули: +

+
make
+

+ При использовании модулей, могут потребоваться файлы конфигурации, + которые расположены в каталоге /etc/modprobe.d. Информация о модулях и + конфигурации ядра находится в Раздел 9.3, + «Взаимодействие с устройствами и модулями» и в документации к + ядру linux-6.4.12/Documentation. + Кроме этого, стоит ознакомиться с руководством modprobe.d(5). +

+

+ Если поддержка модулей не была отключена в параметрах ядра, + установите модули с помощью: +

+
make modules_install
+

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

+
+ [Внимание] +

+ Внимание +

+

+ Если вы решили использовать отдельный /boot раздел для системы LFS (возможно, общий + раздел /boot с хост-дистрибутивом), + скопированные ниже файлы должны быть помещены туда. Самый простой + способ сделать это — сначала создать запись для /boot в /etc/fstab (подробности читайте в предыдущем + разделе), затем выполните следующую команду от имени пользователя + root в среде chroot: +

+
mount /boot
+

+ Путь к узлу устройства в команде опущен, поскольку mount может прочитать его из + /etc/fstab. +

+
+

+ Путь к образу ядра может различаться в зависимости от используемой + платформы. Имя файла, может быть произвольным, но начинаться должно + с vmlinuz для обеспечения + совместимости с автоматической настройкой процесса загрузки, + описанного в следующем разделе. Следующая команда предполагает + архитектуру x86: +

+
cp -iv arch/x86/boot/bzImage /boot/vmlinuz-6.4.12-lfs-12.0
+

+ System.map - это символьный файл для + ядра. Он содержит точки входа каждой функции в API ядра, а также + адреса структур данных для запущенного ядро. Он используется в + качестве ресурса при исследовании проблем с ядром. Выполните + следующую команду для установки файла: +

+
cp -iv System.map /boot/System.map-6.4.12
+

+ Файл конфигурации ядра .config + создается на шаге make + menuconfig и содержит все параметры ядра, которое + было скомпилировано только что. Рекомендуется сохранить этот файл + на будущее: +

+
cp -iv .config /boot/config-6.4.12
+

+ Установите документацию ядра: +

+
cp -r Documentation -T /usr/share/doc/linux-6.4.12
+

+ Важно отметить, что файлы в каталоге исходных кодов ядра не + принадлежат пользователю root. Всякий раз, когда пакет + распаковывается от пользователя root (как это и выполнялось внутри среды + chroot), файлы имеют те идентификаторы пользователя и группы, + которые были присвоены при распаковке. Обычно это не вызывает + проблем для других устанавливаемых пакетов, так как каталог с + исходными кодами удаляется после установки пакета. Однако исходный + код ядра Linux часто сохраняется в течение длительного времени. + Из-за этого существует вероятность того, что идентификатор + пользователя, используемый при распаковке, будет назначен другому + пользователю. В таком случае, этот пользователь будет иметь доступ + на запись в этот каталог. +

+
+ [Примечание] +

+ Примечание +

+

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

+

+ Если вы планируете оставить каталог с исходным кодом ядра, + выполните команду chown -R + 0:0 в каталоге linux-6.4.12, чтобы все файлы принадлежали + пользователю root. +

+
+
+ [Предупреждение] +

+ Предупреждение +

+

+ В некоторой документации по ядру рекомендуется создать + символическую ссылку /usr/src/linux + указывающую на каталог с исходниками ядра. Эта рекомендация + относится к ядрам до версии 2.6 и не + должна выполняться в системе LFS, так как это может + вызвать проблемы с пакетами, которые вы, возможно, захотите + собрать, когда ваша базовая система LFS будет готова. +

+
+
+ [Предупреждение] +

+ Предупреждение +

+

+ Заголовочные файлы в системном каталоге include (/usr/include) всегда используются те, которые + применялись при компиляции Glibc, то есть подготовленные + заголовочные файлы, установленные в Раздел 5.4, + «Заголовочные файлы Linux-6.4.12 API». Поэтому их + никогда не следует + заменять на чистые заголовочные файлы ядра или любые другие + подготовленные заголовочные файлы. +

+
+
+
+

+ 10.3.2. Настройка + порядка загрузки модулей Linux +

+

+ В большинстве случаев модули Linux загружаются автоматически, но + иногда требуется определенный порядок. Программа, которая загружает + модули, modprobe или + insmod, использует + файл /etc/modprobe.d/usb.conf как раз + для этой цели. Этот файл должен быть заполнен таким образом, что + если USB-драйверы (ehci_hcd, ohci_hcd и uhci_hcd) были собраны в + виде модулей, то они будут загружены в правильном порядке; ehci_hcd + должен быть загружен до ohci_hcd и uhci_hcd для того, чтобы + избежать предупреждений во время загрузки. +

+

+ Создайте новый файл /etc/modprobe.d/usb.conf, выполнив следующую + команду: +

+
install -v -m755 -d /etc/modprobe.d
+cat > /etc/modprobe.d/usb.conf << "EOF"
+# Begin /etc/modprobe.d/usb.conf
+
+install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i ohci_hcd ; true
+install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i uhci_hcd ; true
+
+# End /etc/modprobe.d/usb.conf
+EOF
+
+
+

+ 10.3.3. + Содержимое пакета Linux +

+
+
+
+ Установленные файлы: + config-6.4.12, vmlinuz-6.4.12-lfs-12.0, и + System.map-6.4.12 +
+
+ Созданные каталоги: + /lib/modules, + /usr/share/doc/linux-6.4.12 +
+
+
+
+

+ Краткое описание +

+ + + + + + + + + + + + + + + + + + + +
+

+ config-6.4.12 +

+
+

+ Содержит в себе все параметры конфигурации ядра +

+
+

+ vmlinuz-6.4.12-lfs-12.0 +

+
+

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

+
+

+ System.map-6.4.12 +

+
+

+ Список адресов и символов; файл содержит точки входа и + адреса всех функций и структур данных в ядре +

+
+
+
+
+ + + -- cgit v1.2.3