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