Форум программистов, компьютерный форум, киберфорум
Наши страницы
Linux
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.62/100: Рейтинг темы: голосов - 100, средняя оценка - 4.62
0xAX
2446 / 357 / 8
Регистрация: 27.06.2009
Сообщений: 880
1

Сборка и компилирование ядра Linux

02.10.2009, 17:21. Просмотров 18133. Ответов 0
Метки нет (Все метки)

Сборка и компилирования ядра Linux.
1. Приобретение исходников ядра:
Исходники нужной версии ядра можно найти найти на ftp://ftp.kernel.org. Для того что бы найти ядро нужной нам версии перейдем в каталог /pub/linux/.
Скачав нужное ядро поместим его в директорию /usr/src В той же директории нужно создать каталог для файлов ядра, обычно принято называть данный каталог: linux-2.X.X,
где X.X версия ядра. Если каталог предварительно существует то нужно его удалить.
2. Подготовка:
После того как успешно завершен этап приобретения исходников, нужно подготовить дерево каталогов для файлов ядра.
Если linux-2.X.X.tar.gz:
Bash
1
tar xzvf linux-2.X.X.tar.gz
Если linux-2.X.X.tar.bz2:
Bash
1
bzcat linux-2.X.X.tar.bz2 | tar xfv
При выполнении этих команд содержимое файлов развернется в наш каталог. После этого выполните команду cd, для перехода в каталог linux.
Для начала компиляции нового ядра нужно команду:
Bash
1
make mrproper
Теперь можно перейти к конфигурированию ядра для своих потребностей.

3.Настройка ядра
На данном этапе нам нужно выбрать опции ядра которые будут использоваться.

Для настройки ядра необходимо выполнить команду make config, которая запускает скрипт настройки, пытающийся в режиме диалога с пользователем настроить конфигурацию будущего ядра. Те, кто работает в системе X Window, могут использовать make xconfig, если у вас установлен интерпретатор Tk. В текстовой консоли можно использовать make menuconfig, обеспечивающий текстовый интерфейс конфигуратора.
При ответах на вопросы, задаваемых конфигуратором ядра, обычно используют `y' (да) или `n' (нет). Драйвера устройств могут также иметь опцию `m'. Это означает ``module (модуль)'', предполагая, что система будет компилировать этот драйвер, но не вставит его прямо в ядро, а сделает загружаемым модулем. Загружаемый модель - это часть кода ядра, которая не включена прямо в ядро. Такие модули компилируются отдельно и затем могут быть вставлены в запущенное ядро практически в любое время.

Основные параметры настройки ядра:

Эмуляция математических функций ядром:

Если в Вашем компьютере отсутствует математический сопроцессор (например, у Вас 386 или 486SX), то на этот вопрос необходимо ответить `y'. Если же у Вас есть математический сопроцессор, то он будет использоваться по умолчанию, то есть независимо от ответа эмуляция будет проигнорирована. Единственное следствие использования эмуляции в том, что размер ядра и использование памяти будут больше.
Эмуляция существенно отражается на производительности графики в X Window.

Поддержка обычных дисков (типа MFM/RLL) и дисков/cdrom IDE:

Наличие этой опции означает, что ядро будет поддерживать стандартные жесткие диски для PC, которые устанавливаются в большинстве компьютеров.
Соответствующий драйвер не включает поддержку SCSI дисков; для этого существует отдельная опция настройки.
Затем необходимо выбрать тип драйвера: ``old disk-only'' (поддержка только старых дисков типа MFM/RLL) и ``new IDE'' (новых дисков типа IDE).
Основное отличие в том, что драйвер старых дисков поддерживает только два диска на одном интерфейсе, а драйвер новых - поддерживает вторичный (secondary) интерфейс и накопители IDE/ATAPI cdrom. Новый драйвер на 4k больше старого, и он может существенно улучшить производительность вашего диска, особенно если у вас новое оборудование (типа EIDE).

Поддержка сети:

Вы должны ответить `y', если ваша машина подключена к локальной сети, или если вы хотите использовать пакеты SLIP, PPP, term и т.п. для доступа к сети internet по dialup. Кроме того, многие пакеты (например, оконная система X Window) требуют наличия поддержки сети, поэтому даже если вы не подключены ни к какой сети, вы должны ответить `y'. Далее будет задан вопрос о включении поддержки TCP/IP; отвечайте `y',если вы абсолютно уверены в своем выборе.

Ограничить память размером до 16MB:

Существуют контролеры DMA, работающие с ошибками на машинах с процессором 386. Проблема состоит в ошибках адресации ОЗУ больше 16 Мб; вы можете ответить `y', если у вас именно такой контроллер. System V IPC Данная опция включает в ядро средства IPC (Interprocess Communication). Эти средства предоставляют механизм, позволяющий процессу общаться с другими процессами, так что здесь рекомендуется ответить `y'. Тип процессора (386, 486, Pentium, PPro...) Эта опция позволяет внести некоторую оптимизацию ядра для выбранного типа процессора; ядра работают быстрее, но ядро может быть несколько больше. Современные ядра обязательно требуют определения типа процессора, для которого вы компилируете ядро. Ядро для Intel386 будет работать на всех машинах.

Поддержка SCSI:

Если у вас есть устройства с интерфейсом SCSI, ответьте `y'. Конфигуратор потребует дополнительную информацию о поддержке CD-ROM, дисков, а также о типе Вашего адаптера SCSI.

Поддержка сетевых адаптеров:

Если у вас есть сетевая карта, или вы хотите использовать SLIP, PPP, или адаптер параллельного порта для подключения к Internet, ответьте `y'.
Скрипт настройки запросит у вас тип карты и перечень протоколов, которые вам необходимы.

Файловые системы:

Конфигуратор спросит у вас, поддержку каких файловых систем вы хотите иметь в своей системе. Поддержка файловой системы позволит
Вам монтировать разделы диска с разными файловыми системами в единое дерево/ Поддерживаются следующие основные типы файловых систем:
  • Стандартная (minix)

Современные дистрибутивы не создают файловые системы типа minix, поэтому она не часто встречается, но ее полезно включить. Дело в том, что некоторые программы с ``дисками для восстановления (rescue disk)'' могут использовать ее, поскольку файловая система minix хорошо подходит для использования на гибких дисках.
  • Extended fs
Это первая версия расширенной файловой системы для Linux, которая сейчас уже не является широко используемой. Скорее всего она вам не понадобится.
  • Second extended и Third extended (ext2 и ext3)
Эти файловые системы широко используются в новых дистрибутивах. У вас скорее всего они есть и вам нужно ответить `y'.
  • Файловая система xiafs
Была достаточно широко распространена ранее, но сейчас практически не используется.
  • msdos
Если вы хотите использовать разделы вашего жесткого диска с MS-DOS, или монтировать гибкие диски, отформатированные под MS-DOS, то ответьте `y'.
  • umsdos
Эта файловая система расширяет возможности файловой системы MS-DOS обычными Unix-подобными возможностями, такими как длинные имена.
  • /proc
Это интерфейс в виде файловой системы к ядру и процессам. Много программ, выдающих список процессов (таких как `ps') используют эту систему. Некоторые командные процессоры (в частности rc) используют /proc/self/fd (известный как /dev/fd в других системах) для ввода/вывода. Вы должны ответить `y' на этот вопрос;
много важных утилит для Linux зависят от этого выбора.
  • NFS(Network File System)
Если ваша машина работает в локальной сети и вы хотите использовать файловые системы, находящиеся на других машинах с помощью средств NFS, то ответьте `y'.
  • ISO9660
Эта файловая система создается на большинстве CD-ROM. Если у вас есть привод CD-ROM и вы хотите использовать его в Linux, то ответьте `y'.

Кроме этого, в ядро постоянно добавляются драйвера для других файловых систем, так что список может быть расширен. Включайте поддержку только для тех систем, вероятность использования которых достаточно велика.

Символьные устройства:

В этом разделе вы выбираете драйвера для вашего принтера (параллельного принтера), мыши (многие ноутбуки используют протокол мыши PS/2 для своих встроенных трекболов),
некоторых накопителей на магнитной ленте и других ``символьных'' устройств. Ответьте `y', в тех позициях, где это необходимо.

Звуковые карты:

Если у вас установлена звуковая карта, то ответьте `y', и далее другая программа настройки будет задавать вам вопросы о вашей звуковой карте (ее тип, параметры настройки и т. д.).

Количество пунктов в конфигураторе также может меняться в зависимости от версии ядра и наличия драйверов различных устройств в его исходном коде.

4.Очистка и создание зависимостей

Когда скрипт конфигурирования закончит свою работу, он сообщит вам, что необходимо выполнить действия:
Bash
1
make dep
и
Bash
1
make clean
Выполните `make dep'. Это действие обеспечит проверку того, что все зависимости для ядра, такие как файлы заголовков (header files) соответствующие всем выбранным драйверам,
находятся на месте. Эта процедура завершается достаточно быстро. После ее окончания Вы можете выполнить `make clean'. Эта процедура удаляет все объектные файлы и некоторые другие вещи, оставшиеся от предыдущей компиляции ядра. Не забывайте выполнить этот шаг до начала перекомпиляции ядра.

5. Этап компиляции:

После выполнения dep и clean, вы можете выполнять `make zImage' или `make zdisk' (эта часть процесса занимает длительное время). make bzImage скомпилирует ядро и оставит в директории arch/i386/boot файл, названный `bzImage'. Это новое сжатое ядро. make zdisk делает тоже самое, но помещает новый файл zImage на гибкий диск, который вы должны вставить в устройство ``A:''. `zdisk' является довольно удобной опцией
для тестирования новых ядер; если новое ядро не загружается (или просто работает неправильно), то просто вытащите дискету из дисковода и загрузитесь со старым ядром. Это может пригодиться и в том случае, если вы случайно удалили ядро.

Все ядра обычно являются сжатыми, поэтому они имеют букву `z' в начале имени. Сжатое ядро автоматически разжимается при выполнении.

6.Перемещение ядра:

После завершения процесса сборки тебе необходимо инсталлировать как ядро, так и его map-файл в каталог, где они будут постоянно находиться (/boot). Скопируйте файл System.map в каталог /boot, добавив номер версии ядра в конец строки:
Bash
1
cp System.map /boot/System.map-2.X.X
Затем точно так-же скопируйте и само ядро:
Bash
1
cp /arch/i386/boot/bzImage /boot/bzImage-2.X.X
Когда ядро и map-файл будут на своем новом месте жительства тебе останется только настроить загрузчик.

7.Обновление конфигурации загрузчика:

Если в качестве загрузчика системы был выбран GRUB, вы должны изменить файл /boot/grub/menu.lst:

Конфиг старого ядра:
title OS Title
root (hd0,0)
kernel /boot/vmlinux-2.6.30... rott=/dev/sda3
initrd /boot/initrd.img-2.6.30
Добавить такую же секцию, но с новым ядром:
title OS Title
root (hd0,0)
kernel /boot/vmlinux-X.X rott=/dev/sda3
initrd /boot/initrd.img-2.X.X
где X.X версия нового ядра.

Вот в принципе и все. Теперь можно перезагружать машину и загружать Linux уже с новым ядром.

p.s. Все выше описанное происходило в Debian Lenny
28
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2009, 17:21
Ответы с готовыми решениями:

Сборка ядра с нуля и запись Linux на флешку в виде iso-образа
Добрый день, друзья! Не подскажите по такому вопросику: Необходимо...

Програмирования ядра Linux 2.6
Добрый день Мне нужно записать драйвер у ядро ОС Linux 2.6 Команды insmod и...

Вышло обновление Linux ядра
Вышло крупное (по размеру и значимости) обновление текущего "стабильного" ядра...

Состоялся релиз Linux-ядра 2.6.35
Разработчики ядра операционной системы Linux сегодня сообщили о выпуске новой...

Вышла обновленная версия ядра Linux 2.4.37.10
Увидела свет очередная версия ядра открытой операционной системы Linux,...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2009, 17:21

Компиляция ядра linux из-под Windows
Можно ли как-то компилировать ядро linux на Windows XP? :scratch: Система стоит...

Проверка ядра и системных файлов Linux на наличие изменений
Добрый день! Я начинающий в Линуксе, поставил себе Debian 8 с KDE...

Компилирование библиотек
Добрый день! Никогда раньше не программировал на linux. Возникла проблема. Не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru