software:linux_server:lfs:chapter10.3
Различия
Показаны различия между двумя версиями страницы.
| software:linux_server:lfs:chapter10.3 [2025/02/22 21:04] – создано vladpolskiy | software:linux_server:lfs:chapter10.3 [Дата неизвестна] (текущий) – удалено - внешнее изменение (Дата неизвестна) 127.0.0.1 | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | <note blue> | ||
| - | <wrap left>← [[software: | ||
| - | <wrap right> | ||
| - | </ | ||
| - | ====== 10.3.Linux-6.13.2 ====== | ||
| - | |Пакет Linux содержит ядро Linux.|| | ||
| - | |Приблизительное время сборки: | ||
| - | |Требуемое дисковое пространство: | ||
| - | =====10.3.1 Установка ядра===== | ||
| - | Сборка ядра включает несколько шагов — настройка, | ||
| - | <note red> | ||
| - | **Важный**\\ | ||
| - | Первая сборка ядра Linux — одна из самых сложных задач в LFS. Правильное выполнение зависит от конкретного оборудования целевой системы и ваших конкретных потребностей. Для ядра доступно почти 12 000 элементов конфигурации, | ||
| - | Для получения общей информации о настройке ядра см. https:// | ||
| - | |||
| - | Если все остальное не помогает, | ||
| - | </ | ||
| - | Подготовьтесь к компиляции, | ||
| - | < | ||
| - | make mrproper | ||
| - | </ | ||
| - | Это гарантирует, | ||
| - | |||
| - | Существует несколько способов настройки параметров ядра. Обычно это делается через интерфейс на основе меню, например: | ||
| - | < | ||
| - | make menuconfig | ||
| - | </ | ||
| - | ====Значение необязательных переменных окружения make:==== | ||
| - | // | ||
| - | Это устанавливает настройку локали на ту, которая используется на хосте. Это может быть необходимо для правильного рисования линий интерфейса menuconfig ncurses на текстовой консоли UTF-8 linux. | ||
| - | |||
| - | Если используется, | ||
| - | |||
| - | //**make menuconfig**// | ||
| - | Это запускает интерфейс ncurses, управляемый меню. Для других (графических) интерфейсов введите make help . | ||
| - | <note blue> | ||
| - | **Примечание**\\ | ||
| - | Хорошей отправной точкой для настройки конфигурации ядра является запуск make defconfig . Это установит базовую конфигурацию в хорошее состояние, | ||
| - | |||
| - | Обязательно включите/ | ||
| - | < | ||
| - | General setup ---> | ||
| - | [ ] Compile the kernel with warnings as errors | ||
| - | CPU/Task time and stats accounting ---> | ||
| - | [*] Pressure stall information tracking | ||
| - | [ ] | ||
| - | | ||
| - | < > Enable kernel headers through / | ||
| - | [*] Control Group support ---> | ||
| - | [*] | ||
| - | [ /*] CPU controller ---> | ||
| - | # This may cause some systemd features malfunction: | ||
| - | [ ] Group scheduling for SCHED_RR/ | ||
| - | [ ] Configure standard kernel features (expert users) ---> | ||
| - | |||
| - | Processor type and features ---> | ||
| - | [*] Build a relocatable kernel | ||
| - | [*] | ||
| - | |||
| - | General architecture-dependent options ---> | ||
| - | [*] Stack Protector buffer overflow detection | ||
| - | [*] | ||
| - | |||
| - | [*] Networking support ---> | ||
| - | Networking options ---> | ||
| - | [*] TCP/IP networking | ||
| - | < | ||
| - | |||
| - | Device Drivers ---> | ||
| - | Generic Driver Options ---> | ||
| - | [ ] Support for uevent helper | ||
| - | [*] Maintain a devtmpfs filesystem to mount at /dev | ||
| - | [*] | ||
| - | | ||
| - | Firmware loader ---> | ||
| - | < /*> Firmware loading facility | ||
| - | [ ] | ||
| - | ... [FW_LOADER_USER_HELPER] | ||
| - | Firmware Drivers ---> | ||
| - | [*] Export DMI identification via sysfs to userspace | ||
| - | [*] Mark VGA/VBE/EFI FB as generic system framebuffer | ||
| - | Graphics support ---> | ||
| - | <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) ---> | ||
| - | ... [DRM] | ||
| - | [*] Display a user-friendly message when a kernel panic occurs | ||
| - | ... [DRM_PANIC] | ||
| - | (kmsg) | ||
| - | [*] Enable legacy fbdev support for your modesetting driver | ||
| - | ... [DRM_FBDEV_EMULATION] | ||
| - | < | ||
| - | Console display driver support ---> | ||
| - | [*] Framebuffer Console support | ||
| - | |||
| - | File systems ---> | ||
| - | [*] Inotify support for userspace | ||
| - | Pseudo filesystems ---> | ||
| - | [*] Tmpfs virtual memory file system support (former shm fs) | ||
| - | [*] Tmpfs POSIX Access Control Lists | ||
| - | </ | ||
| - | Включите некоторые дополнительные функции, | ||
| - | < | ||
| - | Processor type and features ---> | ||
| - | [*] Support x2apic | ||
| - | |||
| - | Device Drivers ---> | ||
| - | [*] PCI support ---> | ||
| - | [*] Message Signaled Interrupts (MSI and MSI-X) | ||
| - | [*] IOMMU Hardware Support ---> | ||
| - | [*] Support for Interrupt Remapping | ||
| - | </ | ||
| - | Если вы создаете 32-разрядную систему, | ||
| - | < | ||
| - | Processor type and features ---> | ||
| - | High Memory Support ---> | ||
| - | (X) 64GB [HIGHMEM64G] | ||
| - | </ | ||
| - | Если раздел для системы LFS находится на SSD-накопителе NVME (т.е. узел устройства для раздела — /// | ||
| - | < | ||
| - | Device Drivers ---> | ||
| - | NVME Support ---> | ||
| - | <*> NVM Express block device | ||
| - | </ | ||
| - | </ | ||
| - | <note blue> | ||
| - | **Примечание**\\ | ||
| - | Хотя «Протокол IPv6» не является строго обязательным, | ||
| - | </ | ||
| - | Есть несколько других опций, которые могут быть желательны в зависимости от требований к системе. Список опций, необходимых для пакетов BLFS, см. в [[software: | ||
| - | <note blue> | ||
| - | **Примечание**\\ | ||
| - | Если ваше хостовое оборудование использует UEFI и вы хотите загрузить систему LFS с его помощью, | ||
| - | </ | ||
| - | Обоснование вышеуказанных элементов конфигурации: | ||
| - | |||
| - | //Randomize the address of the kernel image (KASLR)// | ||
| - | Включите ASLR для образа ядра, чтобы смягчить некоторые атаки, основанные на фиксированных адресах конфиденциальных данных или кода в ядре. | ||
| - | |||
| - | //Compile the kernel with warnings as errors// | ||
| - | Это может привести к сбою сборки, | ||
| - | |||
| - | //Enable kernel headers through / | ||
| - | Для этого потребуется 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// | ||
| - | Это создаст автоматизированные узлы устройств, | ||
| - | |||
| - | //Automount devtmpfs at/ | ||
| - | Это позволит смонтировать представление ядра устройств в /dev при переключении на корневую файловую систему непосредственно перед запуском init. | ||
| - | |||
| - | //Display a user-friendly message when a kernel panic occurs// | ||
| - | Это заставит ядро правильно отображать сообщение в случае возникновения паники ядра, а работающий драйвер DRM поддерживает это. Без этого было бы сложнее диагностировать панику: | ||
| - | |||
| - | //Panic screen formatter// | ||
| - | Установите это kmsg, чтобы убедиться, | ||
| - | |||
| - | //Mark VGA/VBE/EFI FB as generic system framebuffer иSimple framebuffer driver// | ||
| - | Они позволяют использовать буфер кадра VESA (или буфер кадра EFI, если загрузка системы LFS осуществляется через UEFI) в качестве устройства DRM. Буфер кадра VESA будет настроен GRUB (или буфер кадра EFI будет настроен прошивкой UEFI), поэтому обработчик паники DRM может работать до загрузки драйвера DRM, специфичного для GPU. | ||
| - | |||
| - | //Enable legacy fbdev support for your modesetting driverиFramebuffer Console support// | ||
| - | Они необходимы для отображения консоли Linux на GPU, управляемом драйвером DRI (Direct Rendering Infrastructure). Поскольку CONFIG_DRM (Direct Rendering Manager) включен, | ||
| - | |||
| - | //Support x2apic// | ||
| - | Поддержка работы контроллера прерываний 64-битных процессоров x86 в режиме x2APIC. x2APIC может быть включен прошивкой на 64-битных системах x86, и ядро без этой опции будет паниковать при загрузке, | ||
| - | |||
| - | В качестве альтернативы, | ||
| - | |||
| - | При желании пропустите настройку ядра, скопировав файл конфигурации ядра, '' | ||
| - | |||
| - | Скомпилируйте образ ядра и модули: | ||
| - | < | ||
| - | make | ||
| - | </ | ||
| - | При использовании модулей ядра может потребоваться настройка модуля / | ||
| - | |||
| - | Если поддержка модулей не отключена в конфигурации ядра, установите модули с помощью: | ||
| - | < | ||
| - | make modules_install | ||
| - | </ | ||
| - | После завершения компиляции ядра требуются дополнительные шаги для завершения установки. Некоторые файлы необходимо скопировать в ''/ | ||
| - | <note yellow> | ||
| - | **Осторожность**\\ | ||
| - | Если вы решили использовать отдельный ''/ | ||
| - | < | ||
| - | mount /boot | ||
| - | </ | ||
| - | Путь к узлу устройства в команде опущен, | ||
| - | </ | ||
| - | Путь к образу ядра может различаться в зависимости от используемой платформы. Имя файла ниже можно изменить по своему вкусу, но основа имени файла должна быть vmlinuz , чтобы быть совместимой с автоматической настройкой процесса загрузки, | ||
| - | < | ||
| - | cp -iv arch/ | ||
| - | </ | ||
| - | '' | ||
| - | < | ||
| - | cp -iv System.map / | ||
| - | </ | ||
| - | Файл конфигурации ядра, '' | ||
| - | < | ||
| - | cp -iv .config / | ||
| - | </ | ||
| - | Установите документацию для ядра Linux: | ||
| - | < | ||
| - | cp -r Documentation -T / | ||
| - | </ | ||
| - | Важно отметить, | ||
| - | <note blue> | ||
| - | **Примечание**\\ | ||
| - | Во многих случаях конфигурацию ядра необходимо будет обновить для пакетов, | ||
| - | |||
| - | Если планируется сохранить исходное дерево ядра, запустите chown -R 0:0 в '' | ||
| - | |||
| - | Если вы обновляете конфигурацию и перестраиваете ядро из сохраненного исходного дерева ядра, обычно вам не следует запускать команду '' | ||
| - | |||
| - | С другой стороны, | ||
| - | </ | ||
| - | <note yellow> | ||
| - | **Предупреждение**\\ | ||
| - | В некоторых документах ядра рекомендуется создать символическую ссылку, | ||
| - | </ | ||
| - | =====10.3.2 Настройка порядка загрузки модулей Linux===== | ||
| - | Большую часть времени модули Linux загружаются автоматически, | ||
| - | |||
| - | Создайте новый файл ''/ | ||
| - | < | ||
| - | install -v -m755 -d / | ||
| - | cat > / | ||
| - | # Begin / | ||
| - | |||
| - | install ohci_hcd / | ||
| - | install uhci_hcd / | ||
| - | |||
| - | # End / | ||
| - | EOF | ||
| - | </ | ||
| - | =====10.3.3 Содержимое Linux===== | ||
| - | |Установленные файлы: | ||
| - | |Установленные каталоги: | ||
| - | ===Краткие описания=== | ||
| - | |config-6.13.2|Содержит все параметры конфигурации ядра.| | ||
| - | |vmlinuz-6.13.2-lfs-12.3-systemd-rc1|Движок системы Linux. При включении компьютера ядро — это первая часть операционной системы, | ||
| - | |System.map-6.13.2|Список адресов и символов; | ||
| - | <note blue> | ||
| - | <wrap left>← [[software: | ||
| - | <wrap right> | ||
| - | </ | ||
software/linux_server/lfs/chapter10.3.1740247467.txt.gz · Последнее изменение: — vladpolskiy
