summaryrefslogtreecommitdiff
path: root/lfs-12.1-sysv/chapter10/kernel.html
diff options
context:
space:
mode:
Diffstat (limited to 'lfs-12.1-sysv/chapter10/kernel.html')
-rw-r--r--lfs-12.1-sysv/chapter10/kernel.html756
1 files changed, 0 insertions, 756 deletions
diff --git a/lfs-12.1-sysv/chapter10/kernel.html b/lfs-12.1-sysv/chapter10/kernel.html
deleted file mode 100644
index bb6908f..0000000
--- a/lfs-12.1-sysv/chapter10/kernel.html
+++ /dev/null
@@ -1,756 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
- <title>
- 10.3. Linux-6.7.4
- </title>
- <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" />
- <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" />
- <link rel="stylesheet" href="../stylesheets/lfs-print.css" type=
- "text/css" media="print" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
- </head>
- <body class="lfs" id="lfs-12.1">
- <div class="navheader">
- <h4>
- Линукс с нуля - Версия 12.1
- </h4>
- <h3>
- Глава 10. Делаем систему LFS загрузочной
- </h3>
- <ul>
- <li class="prev">
- <a accesskey="p" href="fstab.html" title=
- "Создание файла /etc/fstab">Пред.</a>
- <p>
- Создание файла /etc/fstab
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="grub.html" title=
- "Использование GRUB для настройки процесса загрузки">След.</a>
- <p>
- Использование GRUB для настройки процесса загрузки
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter10.html" title=
- "Глава 10. Делаем систему LFS загрузочной">Наверх</a>
- </li>
- <li class="home">
- <a accesskey="h" href="../index.html" title=
- "Линукс с нуля - Версия 12.1">Начало</a>
- </li>
- </ul>
- </div>
- <h1 class="sect1">
- <a id="ch-bootable-kernel" name="ch-bootable-kernel"></a>10.3.
- Linux-6.7.4
- </h1>
- <div class="wrap" lang="ru" xml:lang="ru">
- <div class="package" lang="ru" xml:lang="ru">
- <p>
- Этот пакет содержит ядро Linux.
- </p>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Приблизительное время сборки:</strong>
- <span class="segbody">0.6 - 20.4 SBU (обычно около 1.4
- SBU)</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Требуемое дисковое
- пространство:</strong> <span class="segbody">1.8 - 10.6 GB
- (обычно около 2 GB)</span>
- </div>
- </div>
- </div>
- </div>
- <div class="installation" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- 10.3.1. Установка ядра
- </h2>
- <p>
- Сборка ядра состоит из нескольких этапов—настройка, компиляция и
- установка. Ознакомьтесь с файлом <code class=
- "filename">README</code> в дереве исходных текстов, чтобы узнать об
- альтернативных способах настройки ядра.
- </p>
- <div class="admon important">
- <img alt="[Важно]" src="../images/important.png" />
- <h3>
- Важно
- </h3>
- <p>
- Сборка ядра Linux в первый раз — одна из самых сложных задач в
- LFS. Правильный выбор параметров зависит от конкретного
- оборудования для целевой системы и ваших потребностей. Для ядра
- доступно почти 12 000 элементов конфигурации, хотя для
- большинства компьютеров требуется только около трети из них.
- Редакторы LFS рекомендуют пользователям, не знакомым с этим
- процессом, внимательно следовать описанным ниже процедурам.
- Главная цель сейчас состоит в том, чтобы довести первоначальную
- систему до состояния, когда вы сможете войти в систему из
- командной строки при последующей перезагрузке в <a class="xref"
- href="../chapter11/reboot.html" title=
- "11.3. Перезагрузка системы">Раздел&nbsp;11.3, «Перезагрузка
- системы»</a>. Вопросы оптимизация и кастомизация второстепенны.
- </p>
- <p>
- Для получения общей информации о конфигурации ядра смотрите
- <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/hints/downloads/files/kernel-configuration.txt">
- https://mirror.linuxfromscratch.ru/hints/downloads/files/kernel-configuration.txt</a>.
- Дополнительную информацию о настройке и сборке ядра можно найти
- по адресу <a class="ulink" href=
- "https://anduin.linuxfromscratch.org/LFS/kernel-nutshell/">https://anduin.linuxfromscratch.org/LFS/kernel-nutshell/</a>.
- Эти ссылки немного устарели, но все же дают разумное
- представление о процессе.
- </p>
- <p>
- Если ничего не помогает, вы можете обратиться за помощью в список
- рассылки <a class="ulink" href=
- "https://www.linuxfromscratch.org/mail.html">lfs-support</a>.
- Обратите внимание, что подписка необходима для того, чтобы
- рассылка не содержала спама.
- </p>
- </div>
- <p>
- Подготовьте пакет к компиляции, выполнив следующую команду:
- </p>
- <pre class="userinput"><kbd class="command">make mrproper</kbd></pre>
- <p>
- Выполнение этой команды гарантирует, что дерево исходников будет
- абсолютно чистым. Разработчики ядра рекомендуют запускать эту
- команду перед каждой компиляцией. Не следует полагаться на то, что
- дерево исходных текстов ядра будет чистым после распаковки.
- </p>
- <p>
- Существует несколько способов настройки параметров ядра. Обычно это
- делается с помощью псевдографического интерфейса, например так:
- </p>
- <pre class="userinput"><kbd class=
- "command">make menuconfig</kbd></pre>
- <div class="variablelist">
- <p class="title">
- <strong>Значения необязательных переменных окружения
- make:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class=
- "parameter"><code>LANG=&lt;переменная_LANG_хоста&gt;
- LC_ALL=</code></em></span>
- </dt>
- <dd>
- <p>
- Устанавливает значение локали на то, которое используется на
- хосте. Это может понадобиться для правильного отображения
- интерфейса menuconfig с помощью ncurses в текстовой консоли
- Linux с UTF-8.
- </p>
- <p>
- Если это необходимо, обязательно замените значение <em class=
- "replaceable"><code>&lt;переменной_LANG&gt;</code></em> на
- значение переменной <code class="envar">$LANG</code> вашего
- хоста. В качестве альтернативы вы можете использовать
- значения переменных <code class="envar">$LC_ALL</code> или
- <code class="envar">$LC_CTYPE</code>.
- </p>
- </dd>
- <dt>
- <span class="term"><span class="command"><strong>make
- menuconfig</strong></span></span>
- </dt>
- <dd>
- <p>
- Эта команда запускает интерфейс на основе ncurses. Для
- использования других (графических) интерфейсов, выполните
- <span class="command"><strong>make help</strong></span>.
- </p>
- </dd>
- </dl>
- </div>
- <div class="admon note">
- <img alt="[Примечание]" src="../images/note.png" />
- <h3>
- Примечание
- </h3>
- <p>
- Хорошей отправной точкой для настройки ядра, может стать запуск
- команды <span class="command"><strong>make
- defconfig</strong></span>. В результате её выполнения будет
- создана базовая конфигурация с учётом архитектуры системы.
- </p>
- <p>
- Обязательно включите/отключите/настройте следующие параметры,
- иначе система может работать некорректно или вообще не
- загружаться:
- </p>
- <pre class="screen"><span class="blue">G</span>eneral setup ---&gt;
- [ ] <span class=
-"blue">C</span>ompile the kernel with warnings as errors [WERROR]
- <span class="blue">C</span>PU/Task time and stats accounting ---&gt;
- [*] <span class=
-"blue">P</span>ressure stall information tracking [PSI]
- [ ] <span class=
-"blue">R</span>equire boot parameter to enable pressure stall information tracking
- ... [PSI_DEFAULT_DISABLED]
- &lt; &gt; <span class=
-"blue">E</span>nable kernel headers through /sys/kernel/kheaders.tar.xz [IKHEADERS]
- [*] <span class=
-"blue">C</span>ontrol Group support ---&gt; [CGROUPS]
- [*] M<span class=
-"blue">e</span>mory controller [MEMCG]
- [ ] <span class=
-"blue">C</span>onfigure standard kernel features (expert users) ---&gt; [EXPERT]
-
-<span class="blue">P</span>rocessor type and features ---&gt;
- [*] <span class=
-"blue">B</span>uild a relocatable kernel [RELOCATABLE]
- [*] <span class=
-"blue">R</span>andomize the address of the kernel image (KASLR) [RANDOMIZE_BASE]
-
-<span class="blue">G</span>eneral architecture-dependent options ---&gt;
- [*] <span class=
-"blue">S</span>tack Protector buffer overflow detection [STACKPROTECTOR]
- [*] <span class=
-"blue">S</span>trong Stack Protector [STACKPROTECTOR_STRONG]
-
-<span class="blue">D</span>evice Drivers ---&gt;
- <span class="blue">G</span>eneric Driver Options ---&gt;
- [ ] <span class=
-"blue">S</span>upport for uevent helper [UEVENT_HELPER]
- [*] M<span class=
-"blue">a</span>intain a devtmpfs filesystem to mount at /dev [DEVTMPFS]
- [*] <span class=
-"blue">A</span>utomount devtmpfs at /dev, after the kernel mounted the rootfs
- ... [DEVTMPFS_MOUNT]
- <span class="blue">G</span>raphics support ---&gt;
- &lt; /*/M&gt; <span class=
-"blue">D</span>irect Rendering Manager (XFree86 4.1.0 and higher DRI support) ---&gt;
- ... [DRM]
- # If [DRM] is selected as * or M, this must be selected:
- [ /*] <span class=
-"blue">E</span>nable legacy fbdev support for your modesetting driver
- ... [DRM_FBDEV_EMULATION]
- <span class="blue">C</span>onsole display driver support ---&gt;
- # If [DRM] is selected as * or M, this must be selected:
- [ /*] <span class=
-"blue">F</span>ramebuffer Console support [FRAMEBUFFER_CONSOLE]</pre>
- <p>
- Включите некоторые дополнительные функции, если вы собираете
- 64-битную систему. Если вы используете menuconfig, включите их в
- следующем порядке: сначала <em class=
- "parameter"><code>CONFIG_PCI_MSI</code></em>, затем <em class=
- "parameter"><code>CONFIG_IRQ_REMAP</code></em>, и, наконец,
- <em class="parameter"><code>CONFIG_X86_X2APIC</code></em>, потому
- что параметр отображается только после выбора его зависимости.
- </p>
- <pre class="screen"><span class=
- "blue">P</span>rocessor type and features ---&gt;
- [*] <span class=
-"blue">S</span>upport x2apic [X86_X2APIC]
-
-<span class="blue">D</span>evice Drivers ---&gt;
- [*] <span class=
-"blue">P</span>CI support ---&gt; [PCI]
- [*] M<span class=
-"blue">e</span>ssage Signaled Interrupts (MSI and MSI-X) [PCI_MSI]
- [*] <span class=
-"blue">I</span>OMMU Hardware Support ---&gt; [IOMMU_SUPPORT]
- [*] <span class=
-"blue">S</span>upport for Interrupt Remapping [IRQ_REMAP]</pre>
- <p>
- Если вы создаете 32-разрядную систему, работающую на оборудовании
- с объемом оперативной памяти более 4 ГБ, измените конфигурацию
- таким образом, чтобы ядро могло использовать до 64 ГБ оперативной
- памяти:
- </p>
- <pre class="screen"><span class=
- "blue">P</span>rocessor type and features ---&gt;
- H<span class="blue">i</span>gh Memory Support ---&gt;
- (X) <span class=
-"blue">6</span>4GB [HIGHMEM64G]</pre>
- <p>
- Если раздел для системы LFS находится на NVME SSD (то есть узлом
- устройства для раздела является <code class=
- "filename">/dev/nvme*</code>, а не <code class=
- "filename">/dev/sd*</code>), включите параметр NVME support,
- иначе система LFS не будет загружаться:
- </p>
- <pre class="screen"><span class=
- "blue">D</span>evice Drivers ---&gt;
- N<span class="blue">V</span>ME Support ---&gt;
- &lt;*&gt; N<span class=
-"blue">V</span>M Express block device [BLK_DEV_NVME]</pre>
- </div>
- <p>
- Есть несколько других параметров, которые могут понадобиться в
- зависимости от особенностей системы. Для получения списка
- необходимых опций для пакетов BLFS смотрите <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/longindex.html#kernel-config-index">
- Список опций ядра BLFS</a>.
- </p>
- <div class="admon note">
- <img alt="[Примечание]" src="../images/note.png" />
- <h3>
- Примечание
- </h3>
- <p>
- Если ваша хост поддерживает UEFI и вы хотите загрузить LFS с
- помощью него, вам необходимо настроить некоторые параметры ядра,
- следуя инструкции <a class="ulink" href=
- "https://mirror.linuxfromscratch.ru/blfs/view/12.1/postlfs/grub-setup.html#uefi-kernel">
- на странице BLFS</a>, <span class="bold"><strong>даже если вы
- будете использовать загрузчик UEFI из основного
- дистрибутива</strong></span>.
- </p>
- </div>
- <div class="variablelist">
- <p class="title">
- <strong>Пояснения для выбранных выше параметров ядра:</strong>
- </p>
- <dl class="variablelist">
- <dt>
- <span class="term"><em class="parameter"><code>Randomize the
- address of the kernel image (KASLR)</code></em></span>
- </dt>
- <dd>
- <p>
- Включите ASLR для образа ядра, чтобы уменьшить вероятность
- некоторых атак, основанных на фиксированных адресах
- конфиденциальных данных или кода в ядре.
- </p>
- </dd>
- <dt>
- <span class="term"><em class="parameter"><code>Compile the
- kernel with warnings as errors</code></em></span>
- </dt>
- <dd>
- <p>
- Включение этого параметра может привести к сбою сборки, если
- компилятор и/или конфигурация отличается от конфигурации ядра
- разработчиков.
- </p>
- </dd>
- <dt>
- <span class="term"><em class="parameter"><code>Enable kernel
- headers through /sys/kernel/kheaders.tar.xz</code></em></span>
- </dt>
- <dd>
- <p>
- Для сборки ядра с этим параметром необходим пакет
- <span class="command"><strong>cpio</strong></span>.
- <span class="command"><strong>cpio</strong></span> не
- устанавливается в LFS.
- </p>
- </dd>
- <dt>
- <span class="term"><em class="parameter"><code>Configure
- standard kernel features (expert users)</code></em></span>
- </dt>
- <dd>
- <p>
- Эта опция приведет к отображению некоторых параметров в
- интерфейсе конфигурации, но изменение этих параметров может
- быть опасным. Не используйте её, если вы не знаете, что
- делаете.
- </p>
- </dd>
- <dt>
- <span class="term"><em class="parameter"><code>Strong Stack
- Protector</code></em></span>
- </dt>
- <dd>
- <p>
- Включите SSP для ядра. Мы включили его для всего
- пользовательского пространства с помощью <em class=
- "parameter"><code>--enable-default-ssp</code></em>, настроив
- GCC, но ядро не использует настройки GCC по умолчанию для
- SSP. Мы включаем это явно здесь.
- </p>
- </dd>
- <dt>
- <span class="term"><em class="parameter"><code>Support for
- uevent helper</code></em></span>
- </dt>
- <dd>
- <p>
- Включение этого параметра может вызвать сбои при управление
- устройствами через Udev.
- </p>
- </dd>
- <dt>
- <span class="term"><em class="parameter"><code>Maintain a
- devtmpfs</code></em></span>
- </dt>
- <dd>
- <p>
- С помощью этого параметра узлы устройств создаются
- автоматически и заполняются самим ядром, даже без запуска
- Udev. Udev будет работать поверх, управляя разрешениями и
- добавляя необходимые символические ссылки. Этот элемент
- конфигурации необходим всем пользователям Udev.
- </p>
- </dd>
- <dt>
- <span class="term"><em class="parameter"><code>Automount
- devtmpfs at /dev</code></em></span>
- </dt>
- <dd>
- <p>
- Этот параметр позволит смонтировать представление ядра
- устройств в /dev при переключении на корневую файловую
- систему непосредственно перед запуском init.
- </p>
- </dd>
- <dt>
- <span class="term"><em class="parameter"><code>Enable legacy
- fbdev support for your modesetting driver</code></em> и
- <em class="parameter"><code>Framebuffer Console
- support</code></em></span>
- </dt>
- <dd>
- <p>
- Они необходимы для отображения консоли Linux на графическом
- процессоре, управляемом драйвером DRI (Direct Rendering
- Infrastructure - инфраструктура прямого рендеринга). Если
- <code class="option">CONFIG_DRM</code> (Direct Rendering
- Manager - диспетчер прямого рендеринга) включен, вам также
- следует включить эти две опции, иначе вы увидите пустой экран
- после загрузки драйвера DRI.
- </p>
- </dd>
- <dt>
- <span class="term"><em class="parameter"><code>Support
- x2apic</code></em></span>
- </dt>
- <dd>
- <p>
- Поддержка запуска 64-разрядного контроллера прерываний для
- x86 процессоров в режиме x2APIC. x2APIC может быть включен в
- BIOS на системах x86 и у ядра собранного без этой опции будет
- kernel panic при загрузке. Эта опция не окажет никакого
- эффекта, но и не причиняет вреда, если x2APIC отключен в
- BIOS.
- </p>
- </dd>
- </dl>
- </div>
- <p>
- В качестве альтернативы, в некоторых ситуациях может быть уместно
- использование команды <span class="command"><strong>make
- oldconfig</strong></span>. Смотрите файл <code class=
- "filename">README</code> для получения дополнительной информации.
- </p>
- <p>
- По желанию, вы можете пропустить настройку ядра, скопировав
- конфигурационный файл ядра <code class="filename">.config</code>,
- из хост системы(если он доступен) в каталог куда было распаковано
- ядро <code class="filename">linux-6.7.4</code>. Однако, мы не
- рекомендуем этот вариант. Намного лучше изучить все параметры меню
- и создать конфигурацию ядра с нуля.
- </p>
- <p>
- Скомпилируйте образ ядра и модули:
- </p>
- <pre class="userinput"><kbd class="command">make</kbd></pre>
- <p>
- При использовании модулей, могут потребоваться файлы конфигурации,
- которые расположены в каталоге <code class=
- "filename">/etc/modprobe.d</code>. Информация о модулях и
- конфигурации ядра находится в <a class="xref" href=
- "../chapter09/udev.html" title=
- "9.3. Взаимодействие с устройствами и модулями">Раздел&nbsp;9.3,
- «Взаимодействие с устройствами и модулями»</a> и в документации к
- ядру <code class="filename">linux-6.7.4/Documentation</code>. Кроме
- этого, стоит ознакомиться с руководством <a class="ulink" href=
- "https://man.archlinux.org/man/modprobe.d.5">modprobe.d(5)</a>.
- </p>
- <p>
- Если поддержка модулей не была отключена в параметрах ядра,
- установите модули с помощью:
- </p>
- <pre class="userinput"><kbd class=
- "command">make modules_install</kbd></pre>
- <p>
- После окончания компиляции, необходимо выполнить еще несколько
- шагов для завершения установки ядра. Некоторые файлы должны быть
- скопированы в каталог <code class="filename">/boot</code>.
- </p>
- <div class="admon caution">
- <img alt="[Внимание]" src="../images/caution.png" />
- <h3>
- Внимание
- </h3>
- <p>
- Если вы решили использовать отдельный <code class=
- "filename">/boot</code> раздел для системы LFS (возможно, общий
- раздел <code class="filename">/boot</code> с хост-дистрибутивом),
- скопированные ниже файлы должны быть помещены туда. Самый простой
- способ сделать это — сначала создать запись для <code class=
- "filename">/boot</code> в <code class=
- "filename">/etc/fstab</code> (подробности читайте в предыдущем
- разделе), затем выполните следующую команду от имени пользователя
- <code class="systemitem">root</code> в среде <span class=
- "emphasis"><em>chroot</em></span>:
- </p>
- <pre class="userinput"><kbd class="command">mount /boot</kbd></pre>
- <p>
- Путь к узлу устройства в команде опущен, поскольку <span class=
- "command"><strong>mount</strong></span> может прочитать его из
- <code class="filename">/etc/fstab</code>.
- </p>
- </div>
- <p>
- Путь к образу ядра может различаться в зависимости от используемой
- платформы. Имя файла, может быть произвольным, но начинаться должно
- с <span class="emphasis"><em>vmlinuz</em></span> для обеспечения
- совместимости с автоматической настройкой процесса загрузки,
- описанного в следующем разделе. Следующая команда предполагает
- архитектуру x86:
- </p>
- <pre class="userinput"><kbd class=
- "command">cp -iv arch/x86/boot/bzImage /boot/vmlinuz-6.7.4-lfs-12.1</kbd></pre>
- <p>
- <code class="filename">System.map</code> - это символьный файл для
- ядра. Он содержит точки входа каждой функции в API ядра, а также
- адреса структур данных для запущенного ядра. Он используется в
- качестве ресурса при исследовании проблем с ядром. Выполните
- следующую команду для установки файла:
- </p>
- <pre class="userinput"><kbd class=
- "command">cp -iv System.map /boot/System.map-6.7.4</kbd></pre>
- <p>
- Файл конфигурации ядра <code class="filename">.config</code>
- создается на шаге <span class="command"><strong>make
- menuconfig</strong></span> и содержит все параметры ядра, которое
- было скомпилировано только что. Рекомендуется сохранить этот файл
- на будущее:
- </p>
- <pre class="userinput"><kbd class=
- "command">cp -iv .config /boot/config-6.7.4</kbd></pre>
- <p>
- Установите документацию ядра:
- </p>
- <pre class="userinput"><kbd class=
- "command">cp -r Documentation -T /usr/share/doc/linux-6.7.4</kbd></pre>
- <p>
- Важно отметить, что файлы в каталоге с исходным кодом ядра не
- принадлежат пользователю <span class=
- "emphasis"><em>root</em></span>. Всякий раз, когда пакет
- распаковывается от имени пользователя <span class=
- "emphasis"><em>root</em></span> (как это и выполнялось внутри среды
- chroot), файлы имеют те идентификаторы пользователя и группы,
- которые были присвоены при распаковке. Обычно это не вызывает
- проблем для других устанавливаемых пакетов, так как каталог с
- исходниками удаляется после установки пакета. Однако исходный код
- ядра Linux часто сохраняется в течение длительного времени. Из-за
- этого существует вероятность того, что идентификатор пользователя,
- используемый при распаковке, будет назначен другому пользователю. В
- таком случае, этот пользователь будет иметь доступ на запись в этот
- каталог.
- </p>
- <div class="admon note">
- <img alt="[Примечание]" src="../images/note.png" />
- <h3>
- Примечание
- </h3>
- <p>
- В ряде случаев требуется обновить конфигурацию ядра для пакетов,
- которые будут установлены позже в BLFS. В отличии от других
- пакетов, нет необходимости удалять дерево исходного кода ядра
- после установки только что собранного ядра.
- </p>
- <p>
- Если вы планируете оставить каталог с исходным кодом ядра,
- выполните команду <span class="command"><strong>chown -R 0:0
- *</strong></span> находясь в каталоге <code class=
- "filename">linux-6.7.4</code>, чтобы все файлы принадлежали
- пользователю <span class="emphasis"><em>root</em></span>.
- </p>
- </div>
- <div class="admon warning">
- <img alt="[Предупреждение]" src="../images/warning.png" />
- <h3>
- Предупреждение
- </h3>
- <p>
- Иногда, в документации к ядру, рекомендуют создать символическую
- ссылку <code class="filename">/usr/src/linux</code> указывающую
- на каталог с исходниками ядра. Эта рекомендация относится к ядрам
- до версии 2.6 и <span class="emphasis"><em>не должна</em></span>
- выполняться в системе LFS, так как это может вызвать проблемы с
- пакетами, которые вы, возможно, захотите собрать, когда ваша
- базовая система LFS будет готова.
- </p>
- </div>
- <div class="admon warning">
- <img alt="[Предупреждение]" src="../images/warning.png" />
- <h3>
- Предупреждение
- </h3>
- <p>
- Заголовочные файлы в системном каталоге <code class=
- "filename">include</code> (<code class=
- "filename">/usr/include</code>) <span class=
- "emphasis"><em>всегда</em></span> используются те, которые
- применялись при компиляции Glibc, то есть подготовленные
- заголовочные файлы, установленные в <a class="xref" href=
- "../chapter05/linux-headers.html" title=
- "5.4. Заголовочные файлы Linux-6.7.4 API">Раздел&nbsp;5.4,
- «Заголовочные файлы Linux-6.7.4 API»</a>. Поэтому их <span class=
- "emphasis"><em>никогда</em></span> не следует заменять на чистые
- заголовочные файлы ядра или любые другие подготовленные
- заголовочные файлы.
- </p>
- </div>
- </div>
- <div class="configuration" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- <a id="conf-modprobe" name="conf-modprobe"></a>10.3.2. Настройка
- порядка загрузки модулей Linux
- </h2>
- <p>
- В большинстве случаев модули Linux загружаются автоматически, но
- иногда требуется определенный порядок. Программа, которая загружает
- модули, <span class="command"><strong>modprobe</strong></span> или
- <span class="command"><strong>insmod</strong></span>, использует
- файл <code class="filename">/etc/modprobe.d/usb.conf</code> как раз
- для этой цели. Этот файл должен быть заполнен таким образом, что
- если USB-драйверы (ehci_hcd, ohci_hcd и uhci_hcd) были собраны в
- виде модулей, то они будут загружены в правильном порядке; ehci_hcd
- должен быть загружен до ohci_hcd и uhci_hcd для того, чтобы
- избежать предупреждений во время загрузки.
- </p>
- <p>
- Создайте новый файл <code class=
- "filename">/etc/modprobe.d/usb.conf</code>, выполнив следующую
- команду:
- </p>
- <pre class="userinput"><kbd class=
- "command">install -v -m755 -d /etc/modprobe.d
-cat &gt; /etc/modprobe.d/usb.conf &lt;&lt; "EOF"
-<code class="literal"># 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</code>
-EOF</kbd></pre>
- </div>
- <div class="content" lang="ru" xml:lang="ru">
- <h2 class="sect2">
- <a id="contents-kernel" name="contents-kernel"></a>10.3.3.
- Содержимое пакета Linux
- </h2>
- <div class="segmentedlist">
- <div class="seglistitem">
- <div class="seg">
- <strong class="segtitle">Установленные файлы:</strong>
- <span class="segbody">config-6.7.4, vmlinuz-6.7.4-lfs-12.1, и
- System.map-6.7.4</span>
- </div>
- <div class="seg">
- <strong class="segtitle">Созданные каталоги:</strong>
- <span class="segbody">/lib/modules,
- /usr/share/doc/linux-6.7.4</span>
- </div>
- </div>
- </div>
- <div class="variablelist">
- <h3>
- Краткое описание
- </h3>
- <table border="0" class="variablelist">
- <colgroup>
- <col align="left" valign="top" />
- <col />
- </colgroup>
- <tbody>
- <tr>
- <td>
- <p>
- <a id="config" name="config"></a><span class=
- "term"><code class="filename">config-6.7.4</code></span>
- </p>
- </td>
- <td>
- <p>
- Содержит в себе все параметры конфигурации ядра
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="lfskernel" name="lfskernel"></a><span class=
- "term"><code class=
- "filename">vmlinuz-6.7.4-lfs-12.1</code></span>
- </p>
- </td>
- <td>
- <p>
- Ядро системы Linux. При включении компьютера ядро — это
- первая загружаемая часть операционной системы. Оно
- обнаруживает и инициализирует все компоненты аппаратного
- обеспечения компьютера, делает их доступными в виде
- дерева каталогов с файлами для доступа к ним программ и
- превращает один процессор в мультизадачную машину,
- способную выполнять множество программ как будто
- одновременно.
- </p>
- </td>
- </tr>
- <tr>
- <td>
- <p>
- <a id="System.map" name="System.map"></a><span class=
- "term"><code class=
- "filename">System.map-6.7.4</code></span>
- </p>
- </td>
- <td>
- <p>
- Список адресов и символов; файл содержит точки входа и
- адреса всех функций и структур данных в ядре
- </p>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- </div>
- </div>
- <div class="navfooter">
- <ul>
- <li class="prev">
- <a accesskey="p" href="fstab.html" title=
- "Создание файла /etc/fstab">Пред.</a>
- <p>
- Создание файла /etc/fstab
- </p>
- </li>
- <li class="next">
- <a accesskey="n" href="grub.html" title=
- "Использование GRUB для настройки процесса загрузки">След.</a>
- <p>
- Использование GRUB для настройки процесса загрузки
- </p>
- </li>
- <li class="up">
- <a accesskey="u" href="chapter10.html" title=
- "Глава 10. Делаем систему LFS загрузочной">Наверх</a>
- </li>
- <li class="home">
- <a accesskey="h" href="../index.html" title=
- "Линукс с нуля - Версия 12.1">Начало</a>
- </li>
- </ul>
- </div>
- </body>
-</html>