WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
Пакет Linux содержит ядро и файлы заголовков. Расчетное время сборки 4.20 SBU Требуемое место на диске 181 MB Linux зависит от установки: Bash, Binutils, Coreutils, Findutils,
GCC, Glibc, Grep, Gzip, Make, Modutils, Perl и Sed. Сборка ядра разбита на несколько шагов:
конфигурация, компиляция и установка. Если Вам не нравится способ установки,
описанный в этой книге, то посмотрите файл README
в каталоге с исходниками ядра на предмет альтернативы. Подготовимся к компиляции запуском следующей команды: Это позволит убедиться, что дерево исходников будет абсолютно чистым.
Команда разработки ядра рекомендует запускать эту команду перед
каждой компиляцией ядра. Вы не можете быть абсолютно уверены в
отсутствии лишних файлов даже после распаковки исходников. Также убедимся, что ядро не пропускает события горячих подключений
устройств в пространстве пользователя, пока пространство пользователя
показывает, что оно готово: Если в разделе 7.6.
“Настройка консоли Linux” было решено вкомпилировать
раскладку клавиатуры в ядро, используйте следующую команду: Например для использования русской клавиатуры (один из вариантов),
используйте
/usr/share/kbd/keymaps/i386/qwerty/ru1.map.gz. Отконфигурируем ядро через меню-подобный интерфейс: Альтернативно, make oldconfig
может быть более подходящим в некоторых ситуациях.
Смотрите файл README для большей информации. При конфигурации ядра убедитесь, что включили опцию
“Support for hot-pluggable devices” в
меню “General Setup”.
Это разрешит события горячих подключений, которые используются
udev для заполнения /dev
нодами устройств. Если хотите, можете пропустить конфигурацию ядра копированием файла
конфигурации .config из основной системы
(если он доступен) в распакованный каталог
linux-2.6.8.1, хотя я это не рекомендую. Часто лучше пройтись по всему
меню конфигурации для создания нормального файла конфигурации ядра. Для поддержки POSIX-разделяемой памяти убедитесь, что опция
“Virtual memory file system support”
включена. Она расположена в меню “File systems
” и обычно включена по умолчанию. Скрипты загрузки LFS также предполагают, что обе опции
“Support for Host-side USB”
и “USB device filesystem”
были вкомпилированы непосредственно в ядро или они не
были скомпилированы вообще. Скрипты загрузки не будут работать правильно,
если эта поддержка выполнена в виде модуля (usbcore.ko). NPTL требует, чтобы ядро было скомпилировано GCC 3.x, в данном случае
3.4.1. Компиляция GCC 2.95.x известна некоторыми ошибками при тесте glibc,
поэтому не рекомендуется компилировать ядро gcc 2.95.x. Скомпилируем образ ядра и модули: Если Вы будете использовать модули, то может понадобиться файл
/etc/modprobe.conf. Информация по модулям и
конфигурации ядра находится в документации ядра в каталоге
linux-2.6.8.1/Documentation. Также может быть
интересна man-страница modprobe.conf.
Будьте осторожны при чтении другой документации, так как обычно она
применима только к ядрам 2.4.x. Как мы давно знаем, проблемы
конфигурации ядра, специфичные для Hotplug и Udev, не документированы.
Проблема в том, что Udev будет создавать ноды устройств только, если
Hotplug или созданный пользователем скрипт вставит соответствующий модуль в
ядро и не все модули определяются Hotplug. Заметьте, что утверждения, похожие
на указанное ниже, в файле /etc/modprobe.conf
не работают с Udev: Поскольку планируется компиляция с поддержкой Hotplug, Udev и модулей,
я рекомендую начинать с полностью монолитной конфигурацией ядра,
особенно при первом использовании Udev. Установим модули, если ядро их использует: Если имеется много модулей и очень мало свободного места на диске,
подумайте о компрессии модулей. Для большинства пользователей такая
компрессия не стоит затрат времени, но если система сжимается для
экономии места, смотрите
http://www.linux-mips.org/archives/linux-mips/2002-04/msg00031.html
. После завершения компиляции ядра требуются дополнительные шаги для
завершения установки. Некоторые файлы необходимо скопировать в каталог
/boot. Путь к образу ядра может отличаться для различных платформ.
Используйте следующую команду для установки ядра: System.map это файл карты символов для ядра.
Он содержит карту точек входа в каждую функцию API ядра.
Используйте следующую команду для установки этого файла: Файл конфигурации ядра .config, созданный
после выполнения команды make menuconfig,
содержит все выбранные опции конфигурации для только
что откомпилированного ядра. Хорошей идеей будет сохранение этого файла: Важно отметить, что файлы в каталоге исходников ядра не принадлежат
пользователю root.
Хотя пакет был распакован пользователем
root (так как мы находимся в
среде chroot), файлы имеют ID пользователя и группы, соответствующие
компьютеру, на котором проводилась упаковка. Обычно это не является
проблемой для остальных пакетов, поскольку дерево исходников удаляется
после установки ядра, хотя часто оно сохраняются очень долго.
В связи с этим имеется вероятность, что пользователь с таким же ID, как у
собранного пакета исходников ядра, получит права доступа на запись в
каталоге исходников ядра. Если дерево исходников ядра планируется сохранить, выполните
chown -R 0:0 на каталоге
linux-2.6.8.1 для передачи всех файлов
пользователю root. Установленные файлы: ядро, заголовки ядра и System.map. Это двигатель системы Linux. При включении компьютера ядро является
первой частью операционной системы, которая будет загружена.
Оно определяет и инициализирует все аппаратные компоненты компьютера,
после чего делает эти компоненты доступными для программ в виде дерева
файлов и включает одиночный процессор в многопроцессорной системе. Описывают интерфейс к предоставляемым ядром сервисам.
Заголовки в системном каталоге include
должны всегда быть теми же, что
использовались для компиляции Glibc и поэтому не
должны быть заменены при обновлении ядра. Список адресов и символов: карта точек входа и адреса каждой функции
API ядра и структур данных ядра.
Linux From Scratch. Версия 6.0
Глава 8. Обеспечение загрузки LFS системы
8.3. Linux-2.6.8.1
8.3.1. Установка ядра
make mrproper
sed -i 's@/sbin/hotplug@/bin/true@' kernel/kmod.c
loadkeys -m /usr/share/kbd/keymaps/[path tokeymap] > \
drivers/char/defkeymap.c
make menuconfig
Замечание
Замечание
make
alias char-major-XXX some-module
make modules_install
cp arch/i386/boot/bzImage /boot/lfskernel-2.6.8.1
cp System.map /boot/System.map-2.6.8.1
cp .config /boot/config-2.6.8.1
8.3.2. Содержимое Linux
Короткое описание
Найди своих коллег! |