Home Map Index Search News Archives Links About LF
[Top bar]
[Bottom bar]
эта страница доступна на следующих языках: English  Castellano  Deutsch  Francais  Italiano  Nederlands  Portugues  Russian  Turkce  Korean  


автор Subhasish Ghosh

Об авторе:

Меня зовут Subhasish Ghosh, мне 20 лет и в настоящее время я проживаю в Индии. Я студент, предмет моего изучения - информационные технологии. Я обладаю шестью сертификатами Microsoft Certified Professional(MCP), а также сертификатом Microsoft по NT 4.0 Track. Также давно работаю с Red Hat Linux и готовлюсь сдать экзамен Red Hat Linux Certified Engineer(RHCE) и планирую в основном работать с этой ОС в будущем.


Содержание:

Компиляция, настройка и инсталляция ядра Linux.

[illustration]

Резюме:

Привет всем - эта заметка проведет вас по ступенькам компиляции, настройки и инсталляции ядра ОС Red Hat Linux. Как мы все знаем, очень часто возникает потребность в ядре, скомпилированном для выполнения специфических задач - не будем углубляться в этот вопрос. Я только изложу сам процесс в соответствии с заголовком заметки. Хочу предупредить, что заметка направлена в первую очередь пользователям дистрибутива Red Hat, хотя в основном все эти шаги примерно одинаковы для всех дистрибутивов Linux, естественно с небольшими изменениями.



 

Введение

Представляю вашему вниманию инструкцию в 27 шагов для компиляции ядра Linux. Я компилировал ядро по этой схеме на компьютере следующей конфигурации: Compaq Presario 4010 Series computer system, 15.5 GB Hard Disk Space, 96 MB RAM, 400 MHz Intel Celeron Processor, Red Hat Linux 7.0 с версией ядра: 2.2.16-22
Целью этой последовательности шагов будет получение работоспособного ядра - например ядро собранное мной называется "2.2.16-22ghosh" (работает в моей системе - поэтому такое имя получило). Итак начинаем, желаю вам удачной компиляции.

 

Процесс

Шаг 1: Войдите в систему "root"'ом и продолжайте дальше.

Шаг 2: В командной строке наберите: rpm -q kernel-headers kernel-source make dev86

Шаг 3: Если эти RPM'ы уже установлены - переходите к шагу 4. В противном случае примонтируйте диск с дистрибутивом Red Hat Linux 7.0 и наберите rpm -Uvh для инсталляции этих пакетов.

Шаг 4: Если у вас настроены X Window - наберите startx. Если Х не установлены - я вам рекомендую их все же установить и настроить, потому что процесс тогда будет намного проще. Но если вы не хотите их устанавливать - набирайте make config или make menuconfig. Но не забывайте, что я подразумеваю, что у вас установлены Х.

Шаг 5: Затем, если вы используете GNOME - откройте терминал GNOME, наберите : cd /usr/src/linux и жмите enter.

Шаг 6: Находясь в каталоге /usr/src/linux - наберите make xconfig.

Шаг 7: Графическая версия make config появится на вашем экране.

Шаг 8: Сейчас рекомендую оставить опции как есть - ничего не менять.

Стандартная конфигурация достаточно объемная, но с другой стороны - она сконфигурирована для работы на большинстве компьютеров. Предлагаю вам для начала пройти полностью весь процесс, чтобы понять его смысл. Позже узнав точную конфигурацию вашего компьютера - вы будете собирать компактные и оптимально сконфигурированные ядра. В первую очередь для изучения начинки своего компьютера - исследуйте /proc/pci, /proc/interrupts, /proc/modules etc ...

1.Тип процессора: сделайте корректный выбор - Pentium 2, 3, или Intel Celeron (как у меня). Например я выбрал так: Processor Family: PPro/686MX, Maximum Physical Memory: 1 GB, Math Emulation: Yes, MTRR: Yes, SMP: Yes.

2.Откройте окно выбора поддерживаемых файловых систем и внесите изменения: я сделал такие: DOS FAT fs support: Yes(y), MSDOS fs support: Yes(y), UMSDOS: m, VFAT(Windows 95) support: Yes(y), NTFS filesystem support (read-only): Yes(y), NTFS read-write support(DANGEROUS): No(n). После выбора убедитесь, что вы не поменяли случайно другие. Эти все изменения достаточно безобидны для системы.

3.Сохраните изменения и выйдите из меню.

Шаг 9: Наберите ls -al в каталоге: /usr/src/linux.

Шаг 10: Уверен там присутствует файл: "Makefile". Это очень важный файл для осуществления процесса компиляции. Рекомендую сделать его копию: cp Makefile Makefile.bak

Шаг 11: Теперь наберите: (в каталоге /usr/src/linux) vi Makefile.

Шаг 12: Найдите строку EXTRAVERSION и измените ее значение - я сделал так - поменял EXTRAVERSION=-22 на EXTRAVERSION="-22ghosh". Вы можете поменять на любое.

Шаг 13: Сохраните изменения и закройте файл.

Шаг 14: Все вышеперечисленные шаги надо выполнять из каталога /usr/src/linux. Наберите make dep clean, и жмите enter.

Шаг 15: Наберите make bzImage modules. Этот шаг займет некоторое время - можете пока пойти что-нибудь попить. Я обычно успеваю немного вздремнуть потому, что занимаюсь этим обычно ночью.

Шаг 16: В результате должен создастся файл "bzImage" в каталоге /usr/src/linux/arch/i386/boot - просто зайдите в этот каталог и посмотрите есть он там или нет. ТОГДА И ТОЛЬКО ТОГДА когда весь процесс компиляции пройдет до конца - этот файл создастся. Если этот файл создан, а я надеюсь что это так, можете уже ликовать потому, что 75% сражения вы уже выиграли. Если же его нет - сожалею, вы где-то допустили ошибку, сделайте паузу, подумайте и начните сначала. надеюсь у вас все получится.

Шаг 17: Наберите (в каталоге /usr/src/linux): cp ./arch/i386/boot/bzImage /boot/vmlinuz-2.2.16-22ghosh и жмите enter.

Шаг 18: Наберите cp System.map /boot/System.map-2.2.16-22ghosh
Следующий совет не обязателен для выполнения - сохраните предыдущий конфигурационный файл (/usr/src/linux/.config), чтобы в будущем можно было построить такое ядро без конфигурирования. Графическая версия настройки позволяет загрузить конфигурационный файл. Для его сохранения выполните следующую команду:
cp /usr/src/linux/.config /boot/Config-2.2.16-22ghosh

Шаг 19: Наберите make modules_install и жмите enter. Вы увидите названия всех устанавливаемых модулей.

Шаг 20: Наберите mkinitrd /boot/initrd-2.2.16-22ghosh.img 2.2.16-22ghosh

Шаг 21: Наберите vi /etc/lilo.conf и добавьте следующие строки:

image=/boot/vmlinuz-2.2.16-22ghosh

label=GhoshKernel
initrd=/boot/initrd-2.2.16-22ghosh.img
root=/dev/hdc5
read-only

Шаг 22: Сохраните изменения и закройте файл. Обратите внимание, что изменения должны быть внесены в соответствии с вашей системой - например корневой раздел в моей машине /dev/hdc5. Команда
df | grep '/$' расскажет вам, где расположен корневой раздел в вашей системе. Обратите внимание на одинарные кавычки выражения за командой grep.

Шаг 23: Наберите /sbin/lilo -v -v

Шаг 24: Прочитайте информацию, выводимую на экран. Если нет ошибок - цель достигнута. Примите поздравления!!!!

Шаг 25: Перезагрузите систему командой /sbin/reboot или /sbin/shutdown -r now.

Шаг 26: При загрузке жмите Tab (или Control-X если вы используете LILO) и вы увидите "GhoshKernel" и другую информацию.

Шаг 27: Наберите GhoshKernel и жмите enter. Загружается ваше ядро - поставленная задача выполнена.

 

Вывод

Понаблюдайте за процессом загрузки - почитайте сообщения и проверьте нет ли ошибок. Также информацию, выводимую при загрузке, можно потом найти в файле /var/log/boot.log или выполнив команду dmesg. Если ошибок нет - значит ядро собрано правильно - очень хороший результат!!!

После входа в систему наберите uname -a и жмите Enter - на экране вы увидите 2.2.16-22ghosh, время компиляции и еще кое-какую информацию. Это подтверждает, что в систему загружено скомпилированное вами ядро. Вот вообщем и все. В случае возникновения проблем - пишите сюда - auspicious_blessingsindia@hotmail.com, задавайте вопросы. Мне действительно будет интересно получить ваши письма, помочь вам и я надеюсь, что эта заметка поможет всем, кто хочет самостоятельно скомпилировать ядро.
Берегите себя.
Subhasish Ghosh

 

Страница отзывов

У каждой заметки есть страница отзывов. На этой странице вы можете оставить свой комментарий или просмотреть комментарии других читателей.
 talkback page 

Webpages maintained by the LinuxFocus Editor team
© Subhasish Ghosh, FDL
LinuxFocus.org

Click here to report a fault or send a comment to LinuxFocus
Translation information:
en -> -- Subhasish Ghosh
en -> ru Poukhliakov Kirill

2001-07-03, generated by lfparser version 2.8

mirror server hosted at Truenetwork, Russian Federation.