Библиотека сайта rus-linux.net
Linux From Scratch (version 6.8) | ||
Назад | Глава 8. Делаем систему LFS загружаемой | Вперед |
8.3. Пакет Linux-2.6.37
В этом пакете находится ядро Linux.
Приблизительное время сборки: 1,0 – 5,0 SBU
Требуемое дисковое пространство: 540 - 800 MB
8.3.1. Установка ядра
Сборка ядра состоит из нескольких шагов - конфигурирования, компиляции и установки. О способах конфигурирования ядра, отличающихся от описываемого в настоящей книге, читайте в файле README в дереве исходных кодов ядра.
Подготовьтесь к компиляции, запустив для этого следующую команду:
make mrproper
Эта команда о обеспечивает, что дерево ядра будет абсолютно чистым (т. е. будет очищено от всяких предшествующих настроек — прим.пер.). Разработчики ядра рекомендуют выполнять эту команду перед каждой компиляцией ядра. Не полагайтесь на то, что дерево исходных кодов будет чистым после распаковывания архива tar.
Конфигурирование ядра осуществляется через интерфейс, имеющий меню. Для получения общей информации, связанной с конфигурированием ядра, смотрите http://www.linuxfromscratch.org/hints/downloads/files/kernel-configuration.txt. В BLFS есть некоторая информация, касающаяся конкретных требований к конфигурированию ядра для пакетов, которые не входят в проект LFS - смотрите http://www.linuxfromscratch.org/blfs/view/svn/longindex.html#kernel-config-index:
make LANG=<host_LANG_value> LC_ALL= menuconfig
Пояснение параметров make:
LANG=<host_LANG_value> LC_ALL= | |
Этот параметр задает настройку локали, совпадающей с одной из локалей, имеющихся на хост системе. Она нужна для правильного отображения в текстовой консоли UTF-8 linux интерфейсных строк, выдаваемых командой menuconfig ncurses. Не забудьте заменить |
Кроме того, в некоторых ситуациях более подходящей может оказаться команда make oldconfig. Дополнительную информацию смотрите в файле README.
При желании пропустите конфигурирование ядра, скопировав из хост-системы в распакованный директорий linux-2.6.37
конфигурационный файл ядра .config
(если он имеется). Однако, мы не рекомендуем использовать эту возможность. Часто лучше изучить все меню настройки и выполнить конфигурирование ядра с нуля.
Откомпилируйте образ ядра и модули:
make
Если используются модули ядра, то в /etc/modprobe.d
может потребоваться задать конфигурацию модулей. Информация, касающаяся конфигурации модулей и ядра, приведена в разделе 7.9
"Управление устройствами и модулями в системе LFS" и в документации ядра в директории linux-2.6.37/Documentation
. Также может быть интересна информация, выдаваемая командой modprobe.conf(5)
.
Установите модули, если они используются в конфигурации ядра
make modules_install
После того, как компиляции ядра будет завершена, для завершения установки ядра потребуются дополнительные шаги. В директорий /boot
нужно будет скопировать некоторые файлы.
Путь к образу ядра может варьироваться в зависимости от используемой платформы. Имя файла, приведенное ниже, можно изменить по вашему вкусу, но оно должно начинаться с vmlinux с тем, чтобы его можно было использовать для автоматической настройки процесса загрузки, который будет описан в следующем разделе. В следующей команде предполагается, что используется архитектура x86:
cp -v arch/x86/boot/bzImage /boot/vmlinux-2.6.37-lfs-6.8
Файл System.map
является файлом отображений символов ядра. В нем точки входа функций отображаются в API ядра, а для работающего ядра также отображаются адреса структур данных ядра. Файл используется при поиске проблем в ядре. Выполните следующую команду, чтобы установить файл отображения символов:
cp -v System.map /boot/System.map-2.6.37
Конфигурационный файл ядра .config
созданный на шаге make menuconfig, приведенном выше, содержит все конфигурационные параметры для только что собранного ядра. Было бы хорошо сохранить этот файл для последующего к нему обращения:
cp -v .config /boot/config-2.6.37
Установите документацию ядра Linux:
install -d /usr/share/doc/linux-2.6.37 cp -r Documentation/* /usr/share/doc/linux-2.6.37
Важно отметить, что файлы в директории с исходными кодами ядра не принадлежат пользователю root. Независимо от того, распаковывался ли пакет пользователем root (в той роли, что мы используем в среде chroot) или нет, файлы будут иметь идентификаторы пользователя и группы, какие у них были на компьютере, где собирался пакет. Обычно при установке любого другого пакета, это не будет проблемой, поскольку сразу после установки дерево с исходными кодами удаляется. Однако, дерево исходных кодов Linux часто хранится в течение длительного времени. Так что есть шанс, что независимо от того, какой идентификатор использовался при сборке пакета, он может быть присвоен одному из пользователей компьютера. Тогда это лицо будет иметь доступ к исходным кодам ядра.
Если дерево исходных кодов ядра будет сохранено, запустите в директории linux-2.6.37
команду chown -R 0:0 с тем, чтобы обеспечить, что у всех файлов владельцем будет пользователь root.
ПредупреждениеВ документации к некоторым ядрам рекомендуется создавать в |
Предупреждение
Заголовки в системном директории |
8.3.2. Конфигурирование порядка загрузки модулей Linux
Чтобы драйверы USB (ehci_hcd, ohci_hcd и uhci_hcd), если они собраны в виде модулей, загружались в правильном порядке, необходимо создать файл /etc/modprobe.d/usb.conf
; модуль 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
8.3.3. Описание пакета Linux
Установленные файлы: config-2.6.37, vmlinux-2.6.37-lfs-6.8-2.6.37 и System.map-2.6.37
Установленные директории: /lib/modules, /usr/share/doc/linux-2.6.37
Краткое описание
| Содержит все конфигурационные настройки ядра |
| Движок системы Linux. Когда компьютер включается, то первое, что загружается, это ядро операционной системы. Оно определяет и инициализирует все аппаратные компоненты компьютера, затем отображает все эти компоненты в виде дерева файлов, доступных для программного обеспечения, и превращает единственный имеющийся процессор в многозадачную машину, которая способна "одновременно" запускать множество программ. |
| Список адресов и символов; отображает точки входа и адреса всех функций и структур данных ядра |
Предыдущий раздел: | Оглавление | Следующий раздел: |
Создание файла /etc/fstab | Использование загрузчика GRUB для настройки процесса загрузки |