На главную. |
Linux. Компиляция и настройка ядра |
|
Данная статья содержит описание действий, необходимых для успешной настройки и компиляции ядра системы Linux. Все рассматриваемые далее операции проводились под Red Hat 9.0, версия ядра 2.4.20-8, загрузчик LILO. Впрочем, рекомендации будут вполне корректны для всех Linux-систем. Как всегда, в начале несколько соглашений: 1. Все действия проводятся с правами root. 2. Знак "%" не является частью ниже представленных команд, а лишь указывает на начало строки с командой. Итак, представим себе, что вы захотели смонтировать NTFS-раздел, но система почему-то отказывается это делать, говоря: "fs type ntfs not supported by kernel" (рис. 1). О, ужас! Ведь именно в этом разделе хранятся важные документы, а получить к ним доступ можно только из-под Linux, по причине того, что Windows "умерла", как всегда, в самый неподходящий момент. Что делать? Наверное, переставить Windows. Но форматировать NTFS-раздел нельзя из-за того, что он один и именно на нем хранятся так нужные нам документы. Можно взять дискетку и попробовать с помощью специальных утилит проникнуть в раздел средствами DOS. Но нужные файлы слишком велики и не помещаются на дискету. Страшно? Можно рвать на себе волосы, а можно, перекомпилировав ядро Linux-системы, с легкостью достать нужные документы и потом спокойно переставить Windows, отформатировав локальный диск. Итак, нам надо перекомпилировать ядро, включив поддержку файловой системы NTFS. Потом прописать в терминале: % mount -t ntfs /dev/hda10 /mnt/hard или что-то похожее, а затем с довольным видом отправиться на работу или отдыхать. Не бойтесь, если у вас не получится настроить все как надо с первого раза, и компиляция завершится ошибкой. Вы не убьете систему, вам просто надо будет повторить все шаги заново и исправить допущенные ошибки. Оболочка X-Windows наиболее всего подойдет для выполнения нашей задачи, потому как наглядность и удобство в процессе обучения превыше всего.
1. Для начала запускаем терминал и переходим в папку, в которой лежит стандартное ядро системы: % cd /usr/src/linux-version где version - это версия вашего стандартного ядра.
2. Стартуем программу конфигурации ядра: % make xconfig Перед нами появится что-то, похожее на картинку под номером один (рис. 2). Это и есть отправная точка. Здесь будут производиться все предкомпиляционные изменения в ядре. Советую запастись терпением, так как полная настройка ядра под себя - процесс очень трудоемкий и длительный. Но результат оправдает все усилия и ожидания. Во всяком случае, на это надо надеяться. Помимо всего прочего, я бы рекомендовал вести записи всех изменений, вносимых в ядро. Дело в том, что очень часто люди ставят или убирают галки, не будучи уверенными в правильности своих действий, после этого они начинают спрашивать: "А у меня звук не работает, что я сделал не так?" или "Почему у меня не компилируется ядро?" и прочее. Поэтому читайте help- и man-страницы, ставьте галки только там, где уверены, документируйте все изменения и, наконец, не забывайте делать backup документа Makefile, тогда проблем будет гораздо меньше. 3. Перейдем непосредственно к настройке ядра. Одной из наиболее интересующих нас вкладок является General setup (рис. 3). Здесь обязательно надо поставить галки рядом с Networking support и PCI support. Первое нам просто необходимо по той причине, что даже если ваш компьютер не подключен к сети, некоторые программы нуждаются в том, чтобы ядро поддерживало эту опцию. Второе же можете не включать, если вы обладаете ЭВМ, в котором нет PCI-слотов. Также важны пункты Power Management support и Advanced Power Management BIOS support. В первом случае советую поставить -да-. Это поможет избежать ошибок при включении и выключении компьютера под руководством нашего нового ядра. Во втором случае делайте как хотите, но если вам не нравится вместо ОС вручную выключать питание ПК, ставьте -да-. Следующая полезная вкладка - Network device support. Тут у пользователя есть возможность включить поддержку своей сетевой карты, попутно отметив требующиеся дополнительные возможности ядра, например, такие как PPP(point-ot-point protocol) support. Теперь несколько слов о файловых ситемах (File systems). Вспомним про наш несчастный NTFS раздел. В этой вкладке имеется все, что душе угодно: от NTFS до UDF. Единственно, что я бы отметил особо, это то, что большинство конфигураций ядра нуждаются в proc filesystem support. Не забывайте про звук (Sound). Выберите тут свою или наиболее близкую к имеющейся модель звуковой карты. Впрочем, кроме внутреннего динамика, серверу больше ничего не надо. Если вам не хватило времени, чтобы настроить все за один присест, - просто сохраните получившееся с помощью кнопки Store Configuration to File и вернитесь к настройке, когда вам заблагорассудится (Load Configuration from File).
4. Готово. Все настроено, как того требует суровая действительность. Остается лишь скомпилировать новое ядро и связать его с существующей системой. Для этого нажимаем на кнопку Save and Exit. В папке /usr/src/linux-version должен появиться Makefile (рис. 4). Проверить это из терминала можно командой % ls -al Если в списке документов он есть - это хорошо, можно продолжать. 5. Далее надо будет несколько изменить содержание нашего Makefile. По сему сделаем backup: % cp Makefile Makefile.bak
6. Теперь со спокойной душой начинаем редактировать (рис. 5): % vi Makefile В случае, если vi "не ваш" редактор, воспользуйтесь каким-нибудь блокнотом из иксов. Итак, в самом начале файла есть строка, начинающаяся с фразы EXTRAVERSION=-8. То, что следует за последним знаком версии ядра, меняем на то, что нам захочется, например: EXTRAVERSION = -8xmine. Советую не использовать заглавных букв, это может привести к появлению ошибок в дальнейшем. 7. Начинаем компилировать: % make dep clean Если все прошло без проблем, создаем bzImage, в противном случае надо проверить конфигурацию ядра и то, как был отредактирован Makefile. % make bzImage modules Это самый долгий этап компиляции, он может занять минут десять (на производительной машине), если, конечно, не прервется сообщением об ошибке. При появлении ошибки, вернитесь на n-ное количество строк вверх и проверьте, на каком этапе компиляции произошел сбой, это поможет быстрее отыскать ту вкладку, где было неправильно настроено ядро. После вышеописанных действий в папке по адресу /usr/src/linux-vesion/arch/i386/boot должен появиться файл bzImage. В случае, если его нет, начинайте все заново, где-то что-то было сделано не так, как надо. Ну а если bzImage на месте, то успех предприятия близок.
8. Остается только "рассовать" некоторые полезные файлы по папкам и отредактировать lilo.conf, чтобы LILO знал о существовании нового ядра. % cp ./arch/i386/boot/bzImage /boot/vmlinuz-2.4.20-8xmine Копируем bzImage в папку, которую использует система при своей загрузке. % cp System.map /boot/System.map-2.4.20-8xmine Некоторые спорят о том, нужен ли файл System.map вообще. Советую не рисковать. И коль скоро вы не профессиональный системный администратор и не сможете решить всех возможных проблем, связанных с его отсутствием, выполните все команды, приведенные в статье.
% make
modules_install
9. С файлами ядра покончено. Lilo.conf - единственное, что стоит между нами и системой под управлением нового ядра. % vi /etc/lilo.conf
В файл настройки LILO надо добавить следующие строки:
image=/boot/vmlinuz-2.4.20-8xmine Вместо /dev/hda1 укажите корневой раздел вашей операционной системы (рис. 6). Далее применяем изменения: % /sbin/lilo -v -v И, наконец, перезагружаем компьютер: % /sbin/reboot После перезагрузки компьютера, если все было сделано корректно, вы увидите наше творение (mykernel) в списке доступных систем LILO. Поздравляю, теперь вы обладатель ядра, настроенного и скомпилированного специально под ваши потребности. Проверить это можно, введя в терминале команду % uname -r Вы увидите что-то вроде: "2.4.20-8xmine" (рис. 7). Я искренне надеюсь, что данная статья поможет читателю в освоении операционных систем семейства Linux. Удачи вам в действительно увлекательном пути познания Unix и Linux!
Автор:
Владимир Царьков |
||
|
|
|
|