Перейти к тексту

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

При первом входе в developerWorks для Вас будет создан профиль. Выберите информацию отображаемую в Вашем профиле — скрыть или отобразить поля можно в любой момент.

Вся введенная информация защищена.

  • Закрыть [x]

При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

Вся введенная информация защищена.

  • Закрыть [x]

Экзамен LPI 102: Ядро

Администрирование Linux для начинающих (LPIC-1) тема 105

Ян Шилдс , Старший программист, EMC
No bio.

Описание:  В этом учебном пособии Ян Шилдс начинает готовить вас к сдаче Экзамена 102 Linux Professional Institute® Администрирование Linux для начинающих (Junior Level Administration, LPIC-1). В этом первом в серии из девяти пособий Ян знакомит вас с ядром Linux. Прочтя это пособие, вы узнаете, как собрать и установить ядро Linux и его модули, а также получить информацию о ядре и его модулях.

Больше статей из этой серии

Дата:  21.03.2006
Уровень сложности:  средний

Активность:  5880 просмотров
Комментарии:  

Настройка и сборка ядра и его модулей

В этом разделе мы рассматриваем материал по теме 1.105.2 экзамена 102 Администрирование Linux для начинающих (LPIC-1). Рейтинг темы 3.

Из этого раздела вы узнаете, как:

  • Изменить текущую конфигурацию ядра
  • Собрать новое ядро и соответствующие модули
  • Установить новое ядро и любые модули
  • Гарантировать, что загрузчик системы сможет определить местоположение нового ядра и связанных с ним файлов

Как вы узнали из предыдущего раздела, Управление ядром в ходе работы системы, ядро обеспечивает поддержку низкого уровня для аппаратных средств и файловых систем. Современные образы ядра обычно обладают только необходимой минимальной функциональностью, но при необходимости могут быть настроены для поддержки дополнительных функций с помощью модулей ядра (kernel modules). Дополнительная поддержка включается только при необходимости, например, при подсоединении устройства или в других случаях.

Код модулей становится неотъемлемой частью ядра, динамично расширяя его функциональность. Если возможности загруженных модулей ядра в данное время не используется, ядро может самостоятельно отключить их от основной части и выгрузить из памяти при помощи процесса, известного как autocleaning.

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

Однако, вы не можете поместить в модули все. Для монтирования файловой системы необходим, как минимум, образ ядра. Но, как вы могли узнать из учебного пособия "Экзамен LPI 101 (тема 102): Инсталляция Linux и управление пакетами", загрузчик может загрузить стартовый RAM-диск (initial RAM disk или initrd), который может содержать необходимые для монтирования файловой системы модули. Тем не менее, образ ядра должен как минимум включать поддержку файловой системы RAM, используемой в initial RAM disk, иначе ваша система не сможет быть загружена.

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

Модульные ядра хорошо работают в современных системах с большим количеством RAM и дискового пространства. Однако, вы можете подключить новые аппаратные средства, например, видокарту или запоминающее устройство, которые не поддерживаются ядром, входящим в дистрибутив. Некоторые устройства содержат проприетарный код, который, как было сказано выше загрязняют чистое ядро Linux, поэтому некоторые дистрибутивы не включают их, даже если лицензия производителя позволяет это. В таких случаях необходимо по крайней мере собрать новые модули, а возможно, и пересобрать ядро.

Linux может использоваться как во встроенных системах, таких как мобильные телефоны, сетевых устройствах, таких как маршрутизаторы, и компьютерных приставках, так и в компьютерах большинства традиционных конфигураций. Некоторые из этих устройств используют ядра, настроенные на поддержку только тех функций, которые обеспечивают поддержку системы. Например, бездисковой системе, предназначенной для использования в качестве firewall, вероятно, не потребуется поддержка других типов файловых систем, кроме файловой системы read-only, с помощью которой она загружается, но может потребоваться поддержка продвинутых сетевых устройств, не входящая в стандартное ядро. К тому же потребуется специально настроенное ядро.

Пакеты с исходными кодами

Исходные коды ядра Linux можно найти в Linux Kernel Archives (см. Ресурсы). Для начала воспользуйтесь пакетами для ядра, входящего в ваш дистрибутив Linux, так как производитель мог добавить в него индивидуальные патчи. Если вы уже умеете находить и извлекать исходные коды ядра, просмотрите учебное пособие "Экзамен LPI 101 (тема 102): Инсталляция Linux управление пакетами". Прежде чем вносить изменения, сделайте резервную копию системы, чтобы можно было восстановить ее, если что-то пойдет не так

Если вы загружаете исходники из публичных архивов ядра, вы получаете сжатые файлы, которые необходимо декомпрессировать с помощью команды gzip или bzip2, в случае, если вы получили исходники в формате .gz, или команды bzip2 для исходников в формате .bz2. Каталог pub/linux/kernel/ на сервере содержит каталоги с исходниками для ядра версий 2.4, 2.5 и 2.6. На время написания этого пособия последняя версия ядра 2.6 содержалась в linux-2.6.15.tar.bz2.

В каталоге с исходниками ядра также содержится соответствующий файл ChangeLog-2.6.15.6, в котором описаны все изменения для текущей версии, и patch-2.6.15.bz2, позволяющий внести изменения в исходники предыдущей версии, приведя их к версии 2.6.15. Также вы заметите файлы, содержацие подписи, которые могут быть использованы для того, чтобы убедиться, что загруженные файлы случайно или умышленно не были повреждены.

Распаковка сжатых исходников обычно производится в каталог /usr/src, при этом создается подкаталог для версии ядра, например linux-2.6.15, содержащий дерево файлов, необходимых для сборки ядра. Если у вас уже есть такой каталог, вы можете создать его резервную копию или переименовать его, прежде чем приступать к распаковыванию новых исходников ядра. Это позволит вам в случае необходимости вернуться назад, а также даст гарантию того, что в дереве исходников ядра не окажется случайных файлов. Вам понадобится приблизительно 40 Мбайт для архива tar и приблизительно 350 Мбайт для разворачивания исходных кодов.

В настоящее время некоторые производители, в особенности Red Hat, распространяют файлы заголовков (headers) ядра и исходники, необходимые для сборки модулей, в виде пакета kernel development. Документация может не входить в этот пакет. Это делается и этого достаточно для того, чтобы собирать отдельные модули, например модули для проприетарных графических карт, но недостаточно для пересборки ядра. Производитель вашего дистрибутива должен иметь информацию, о том, как пересобрать ядро, и о том, где получить исходники. Обратитесь к соответствующей документации, например, посмотрите замечания к выпуску.

Предположим, вы получили через FTP или HTTP с сервера download.fedora.redhat.com из каталога pub/fedora/linux/core/updates/4/SRPMS/ исходный пакет kernel-2.6.15-1.1833_FC4.src.rpm и поместили его в каталог /root. Номер версии ядра, используемый здесь для примера, может отличаться от номера версии в вашей системе. Если используется дистрибутив Fedora Core, необходимо устновить исходный пакет RPM, затем перейти в каталог /usr/src/redhat/SPECS и в заключение пересобрать исходный RPM, для того чтобы создать дерево исходников ядра Linux, как показано в Листинге 13.


Листинг 13. Создание дерева исходников ядра для Fedora Core
                    
[root@attic4 ~]# uname -r
2.6.15-1.1833_FC4
[root@attic4 ~]# rpm -Uvh kernel-2.6.15-1.1833_FC4.src.rpm
   1:kernel                 
   ########################################### [100%]
[root@attic4 ~]# cd /usr/src/redhat/SPECS
[root@attic4 SPECS]# rpmbuild -bp --target $(arch) kernel-2.6.spec
Building target platforms: x86_64
Building for target x86_64
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.23188
+ umask 022
+ cd /usr/src/redhat/BUILD
+ LANG=C
+ export LANG
+ unset DISPLAY
+ '[' '!' -d kernel-2.6.15/vanilla ']'
+ cd /usr/src/redhat/BUILD
+ rm -rf kernel-2.6.15
+ /bin/mkdir -p kernel-2.6.15
+ cd kernel-2.6.15
+ /usr/bin/bzip2 -dc /usr/src/redhat/
SOURCES/linux-2.6.15.tar.bz2
+ tar -xf -
...
+ echo '# x86_64'
+ cat .config
+ perl -p -i -e 's/^SUBLEVEL.*/SUBLEVEL = 15/' Makefile
+ perl -p -i -e 's/^EXTRAVERSION.*/EXTRAVERSION = -prep/' Makefile
+ find . -name '*.orig' -o -name '*~' -exec rm -f '{}' ';'
+ exit 0

Исходники ядра Linux для Fedora теперь расположены в /usr/src/redhat/BUILD/kernel-2.6.15/linux-2.6.15. В соответствии с принятыми соглашениями дерево /linux-2.6.15 часто перемещают в каталог /usr/src и делают символьную ссылку в /usr/src/linux, как показано в Листинге 14. Это не обязательно, но когда исходники ядра находятся в /usr/src/linux, проще ориентироваться по ссылкам.


Листинг 14. Перемещение дерева исходников в /usr/src
                    
[root@attic4 SPECS]# mv ../BUILD/kernel-2.6.15/linux-2.6.15 /usr/src
[root@attic4 SPECS]# cd /usr/src
[root@attic4 src]# ln -s linux-2.6.15 linux
[root@attic4 src]# ls -ld lin*
lrwxrwxrwx   1 root root   12 Mar 20 18:23 linux -> linux-2.6.15
drwxr-xr-x  20 root root 4096 Mar 20 18:13 linux-2.6.15

Прежде чем попытаться что-нибудь пересобрать, просмотрите файл Changes, расположенный в каталоге Documentation. Он среди прочего содержит список пакетов, необходимых для сборки ядра, с указанием номеров версий. Убедитесь, что эти пакеты установлены.

В Листинге 13 вы могли заметить файлы Makefile и .config. make-файл содержит различные цели сборки для конфигурирования опций ядра, сборки ядра и его модулей, установки модулей и сборки пакетов RPM или deb. Наиболее свежие версии исходников ядра позволяют использовать make help для получения краткой справки для каждой цели. В более старых системах было необходимо обращаться к документации или просматривать make-файл. В Листинге 15 показана часть вывода make help.


Листинг 15. Справка по make-файлу для сборки ядра
                    
[ian@attic4 linux-2.6.15]$ make help
Cleaning targets:
  clean           - remove most generated files but keep the config
  mrproper        - remove all generated files + config + various backup files

Configuration targets:
  config          - Update current config utilising a line-oriented program
  menuconfig      - Update current config utilising a menu based program
  xconfig         - Update current config utilising a QT based front-end
  gconfig         - Update current config utilising a GTK based front-end
  oldconfig       - Update current config utilising a provided .config as base
  randconfig      - New config with random answer to all options
  defconfig       - New config with default answer to all options
  allmodconfig    - New config selecting modules when possible
  allyesconfig    - New config where all options are accepted with yes
  allnoconfig     - New minimal config

Other generic targets:
  all             - Build all targets marked with [*]
* vmlinux         - Build the bare kernel
* modules         - Build all modules
  modules_install - Install all modules
  dir/            - Build all files in dir and below
  dir/file.[ois]  - Build specified target only
...


Конфигурация

Файл .config содержит информацию о конфигурации ядра, включая конфигурацию целевой платформы, какие компоненты будут включены, и должны ли компоненты быть включены в ядро или собраны в виде модулей. Создание файла .config является первым шагом на пути сборки или пересборки ядра. Этот файл создается при помощи одной из конфигурационных целей make-файла.

Основные опции конфигурации:

config
Цель config использует интерфейс командной строки для получения ответов многие на вопросы, касающиеся создания или обновления файла .config. После появления конфигурационных целей, использующих меню, интерфейс командной строки используется редко.
menuconfig
Цель menuconfig использует программу с меню-интерфейсом, построенную на базе ncurses, для создания или обновления файла .config. Вы должны только ответить на вопросы для элементов, которые хотите изменить. Этот подход заменил старую цель config. Выполняется в окне терминала удаленно или локально.
xconfig
Цель xconfig использует систему графического меню, основанную на QT front-end, используемом в KDE desktop.
gconfig
Цель gconfig использует систему графического меню, основанную на QT front-end, используемом в GNOME desktop.
oldconfig
Цель oldconfig позволяет создать конфигурацию с использованием существующего файла .config, созданного ранее или взятого из другой системы. Например, если вы устанавливали исходники ядра для Fedora, как описано выше, вы можете скопировать конфигурационный файл для вашей системы из /lib/modules/$(uname -r)/build/.config в /usr/src/linux. Сделав это, можно использовать одну из целей меню конфигурации, чтобы при необходимости внести изменения.

На Рисунке 1 показан пример того, что вы можете увидеть, запустив make menuconfig для ядра 2.4. Используйте Enter, чтобы перейти к меню ниже уровнем и Esc для возврата. Для каждого элемента можно получить справку. Для этого выберите < Help > и нажмите Enter или просто введите h. Нажмите Esc для возврата.


Рисунок 1. Выполнение make menuconfig для ядра 2.4
Выполнение make menuconfig для ядра 2.4

В Таблице 4 показаны различные опции, позволяющие включать компоненты в ядро или создавать специальные модули. Когда опция подсвечена, при помощи клавиши пробела можно перемещаться между возможными вариантами для данного компонента. Чтобы активировать опцию, нажмите y, чтобы отключить -- n, чтобы создать, если это возможно, модуль, нажмите m.

Таблица 4. Опции menuconfig
ОпцияОписание
[*]Компонент будет включен в ядро.
[ ]Компонент не будет включен в ядро.
<M>Компонент будет оформлен в виде модуля.
< >Компонент не будет включен в ядро, но может быть оформлен в виде модуля.

На Рисунке 2 показан пример того, что вы можете увидеть, запустив make gconfig для ядра 2.6. Щелчком по стрелкам можно развернуть или свернуть элемент меню. На нижней панели отображается справочная информация.


Рисунок 2. Выполнение make gconfig для ядра 2.6
Выполнение make gconfig для ядра 2.6

Ниже дается описание главных конфигурационных разделов для ядра 2.6. В ядре 2.4 и более ранних версиях могут присутствовать не все эти разделы. Этот список дает краткий обзор того, где и что расположено.

Code maturity level options
Этот раздел содержит опцию, определяющую, будет ли вам предоставляться возможность выбирать код, имеющий статус экспериментального. Если вы не выберете эту опцию, выбирать можно будет только опции, имеющие стабильный статус. Имейте в виду, что функции, которые вы выбрали, могут работать, а могут и нет в текущей версии ядра, так что у вас есть шанс помочь в его отладке.
General setup
Этот раздел позволяет добавить идентификационную строку к вашему ядру, а также ряд атрибутов, которые не имеют отношения к каким-либо разделам, но тем не менее должны быть описаны.
Loadable module support
Этот раздел содержит опции, определяющие, будет ли ваше ядро поддерживать модули и будут ли они подгружаться и выгружаться автоматически. Опцию "Enable loadable module support" следует включть.
Block layer
Этот раздел управляет поддержкой дисков размером более 2TB и позволяет выбирать режимы обслуживания дисковых устройств.
Processor type and features
Этот раздел содержит специфичные для данного типа процессора конфигурационные опции. Здесь вы можете выбрать процессор и семейство процессора, которые будут поддерживаться вашим ядром. Вы можете включать или отключать поддержку ядром различных возможностей, предоставляемых данным процессором. Убедитесь, что вы включили поддержку многопроцессорных систем (symmetric multi-processing support), если в вашем системе установлено более одного процессора или процессор поддерживает технологию hyperthreading. Кроме того, для получения большей производительности графической подсистемы в системах с AGP или PCI видеокартами следует включить поддержку MTRR.
Power management options
В этом разделе помещены опции, касающиеся управления питанием. Особенно они важны для ноутбуков. Кроме контроля состояния питания, вы сможете найти там средства для контроля и мониторинга таких параметров как температура или состояние охлаждающего вентилятора.
Bus options (PCI etc.)
Этот раздел содержит опции для компьютерных шин, поддерживаемых вашей системой, таких как PCI, PCI Express и PC Card. Здесь вы можете включить поддержку файловой системы /proc/pci, которой можно пользоваться вместе с обычно используемой командой lspci.
Executable file formats / Emulations
Этот раздел содержит опции, касающиеся поддержки различных форматов бинарных файлов. Следует включить поддержку "ELF binary". Кроме того, можно включить поддержку DOS binaries для запуска их под DOSEMU, также как и других поддерживаемых соответствующими wrapper'ами бинарных файлов, таких как Java™, Python, Emacs-Lisp и т.д. Наконец, для 64-битных систем, поддерживающих 32-битную эмуляцию, вы, возможно, захотите включить поддержку 32-битных приложений.
Networking
Секция, касающаяся настроек сети, довольно велика. Здесь вы можете включить базовую поддержку сокетов, сетей TCP/IP, фильтрацию, маршрутизацию и bridging сетевых пакетов, а также поддержку различных протоколов, таких как IPV6, IPX, Appletalk и X.25. Кроме того, вы можете включить поддержку wireless, infrared и amateur radio.
Device drivers
Этот раздел также очень велик. Здесь вы можете включить поддержку большого числа аппаратных устройств, включая IDE/ATAPI или SCSI диски, или flash-диски. Включите DMA для ваших IDE устройств; иначе они будут работать в более медленной PIO-моде. Если вы хотите иметь поддержку multiple devices, таких как RAID или LVM, соответсвующие опции также надо включить. Здесь вы также можете включить поддержку параллельного порта для работы с принтером через этот интерфейс. Здесь происходит конфигурирование широкого набора поддерживаемых сетевых устройств для различных сетевых протоколов, которые мы конфигурировали ранее. Кроме того, здесь вы найдете опции поддержки устройств аудио- и видео-захвата, устройств USB и IEEE 1384 (Firewire), а также различного рода устройств аппартного мониторинга. В разделе управления символьными устройствами (Character Devices) вы, возможно, захотите включить поддержку печати через параллельный порт и поддержку direct rendering.
Firmware drivers
Этот раздел содержит несколько опций, относящихся к установке и обновлению BIOS, таких как использование функций Dell System Management на некоторых системах производства компании Dell.
File systems
Этот раздел предназначен для конфигурирования файловых систем, поддержку которых вы хотите иметь в вашем ядре, скомпилированных в виде модулей или нет. Также вы сможете найти здесь файловые системы для съемных дисковых устройств (дискеты, CD и DVD устройства), а также сетевых файловых систем, таких как NFS, SMB или CIFS. Поддержка различных типов разделов и национальных кодировок Native Language Support также располагаются в этом разделе.
Instrumentation support
Этот раздел позволяет вам включать экспериментальную поддержку профайлинга для профилирования работы вашей системы.
Kernel hacking
Этот раздел позволяет включать режим отладки ядра и выбирать, какие дополнительные функции будут включены.
Security options
Этот раздел предназанчен для конфигурирования опций защиты, а также включения и конфигурирования SELinux (Security Enhanced Linux).
Cryptographic options
В это разделе можно сконфигурировать поддержку различных алгоритмов шифорования, таких как MD4, DES и SHA256.
Library routines
Здесь вы можете указать ряд алгоритмов вычисления контрольных сумм (CRC), которые будут включены в ядро или собраны как модули.

Сборка

Теперь, когда вы ознакомились с главными аспектами конфигурации ядра, вы готовы к его сборке. Если вы не знаете, каково состояние дерева для сборки, прежде чем приступать к конфигурированию нового ядра выполните make clean. Для более полной очистки выполните make mrproper. При этом будет удален файл .config, а также некоторые другие файлы, используемые в процессе сборки. Если вы сделаете это и затем захотите восстановить файл .config из резервной копии, вам надо будет выполнить make oldconfig, прежде чем приступить к конфигурированию.

В ходе эксперимента вы должны дать новому ядру специальное название, которое позволит вам легко его идентифицировать. Чтобы сделать это, установите значение Local version и активируйте опцию Automatically append version information to the version string в соответствующей строке раздела General setup, как показано на Рисунке 3.


Рисунок 3. Конфигурирование собственного ядра
Конфигурирование собственного ядра

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

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

Чтобы начать сборку ядра 2.6, выполните make.

Чтобы начать сборку ядра 2.4, выполните эти три команды:
make dep
make bzImage
make modules
Первая создает файлы необходимых зависимостей. Вторая собирает ядро. И последняя собирает модули.

Выполнение make на моей системе AMD Athlon 3500+ с целью полностью собрать ядро с нуля заняло около получаса. На более медленных системах выполнение этой задачи может занять до двух часов, так что сделайте перерыв или займитесь чем-нибудь другим. После запуска процесса сборки будут появляться сообщения подобные приведенным в Листинге 16.


Листинг 16. Выполнение make
                    
[root@attic4 linux]# make
  CHK     include/linux/version.h
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/basic/split-include
  HOSTCC  scripts/basic/docproc
  SPLIT   include/linux/autoconf.h -> include/config/*
  CC      arch/x86_64/kernel/asm-offsets.s
  GEN     include/asm-x86_64/asm-offsets.h
...
  LD [M]  sound/usb/snd-usb-lib.ko
  CC      sound/usb/usx2y/snd-usb-usx2y.mod.o
  LD [M]  sound/usb/usx2y/snd-usb-usx2y.ko


Инсталляция

После того как у вас будет полностью собранное ядро, вы должны выполнить еще два действия. Сначала вам необходимо выполнить make modules_install для установки модулей ядра в новый подкаталог /lib/modules.

Если вам необходимы проприетарные модули для видеокарты или сетевой карты, как это понадобилось мне для графической карты nVidia и для чипсета материнской платы nForce 4, сейчас подходящее время для того, чтобы собрать эти модули, используя предоставленные производителем средства.

И в заключение, вам необходимо выполнить make install для установки нового ядра и стартового RAM-диска (initial RAM disk) в каталог /boot и обновления конфигурации загрузчика. Листинг 17 иллюстрирует эти действия.


Листинг 17. Инсталляция ядра и модулей
                    
[root@attic4 linux]# make modules_install
  INSTALL arch/x86_64/crypto/aes-x86_64.ko
  INSTALL arch/x86_64/kernel/cpufreq/acpi-cpufreq.ko
  INSTALL arch/x86_64/kernel/microcode.ko
  INSTALL arch/x86_64/oprofile/oprofile.ko
  INSTALL crypto/aes.ko
  INSTALL crypto/anubis.ko
  INSTALL crypto/arc4.ko
...
[root@attic4 linux]# ls -lrt /lib/modules | tail -n 3
drwxr-xr-x  5 root root 4096 Mar  4 14:48 2.6.15-1.1831_FC4
drwxr-xr-x  5 root root 4096 Mar 20 18:52 2.6.15-1.1833_FC4
drwxr-xr-x  3 root root 4096 Mar 20 21:38 2.6.15-prep-Topic105
[root@attic4 linux]# sh  /root/NFORCE-Linux-x86_64-1.0-0310-pkg1.run -a \
>  -n -K -k 2.6.15-prep-Topic105
Verifying archive integrity...OK
Uncompressing NVIDIA nForce drivers for 
Linux-x86_64 1.0-0310...................
[root@attic4 linux]# sh  /root/NVIDIA-Linux-x86_64-1.0-8178-pkg2.run -a \
> -n -K -k 2.6.15-prep-Topic105
Verifying archive integrity... OK
Uncompressing NVIDIA Accelerated Graphics Driver for Linux-x86_64 1.0-8178..
[root@attic4 linux]# make install
  CHK     include/linux/version.h
  CHK     include/linux/compile.h
  CHK     usr/initramfs_list
Kernel: arch/x86_64/boot/bzImage is ready  (#2)
sh /usr/src/linux-2.6.15/arch/x86_64/boot/install.sh 2.6.15-prep-Topic105 
arch/x86_64/boot/bzImage System.map "/boot"
[root@attic4 linux]# ls -lrt /boot | tail -n 6
-rw-r--r--  1 root root 1743149 Mar 20 21:45 vmlinuz-2.6.15-prep-Topic105
lrwxrwxrwx  1 root root      28 Mar 20 21:45 vmlinuz -> vmlinuz-2.6.15-prep-Topic105
-rw-r--r--  1 root root  980796 Mar 20 21:45 System.map-2.6.15-prep-Topic105
lrwxrwxrwx  1 root root      31 Mar 20 21:45 System.map
 -> System.map-2.6.15-prep-Topic105
-rw-r--r--  1 root root 1318741 Mar 20 21:45 initrd-2.6.15-prep-Topic105.img
drwxr-xr-x  2 root root    4096 Mar 20 21:45 grub

Стартовый RAM-диск

Обратите внимание, что в процессе сборки автоматически создается необходимый стартовый RAM-диск (initial RAM disk или initrd). Если у вас возникнет необходимость создать его вручную, это можно сделать при помощи команды mkinitrd. Подробную информацию вы найдете в странице man для этой команды.


Загрузчики

Если процесс идет без сбоев, в ходе выполнения make install будет также обновлена конфигурация загрузчика. В Листинге 18 приведены несколько строк из моего загрузчика.


Листинг 18. Обновленный конфигурационный файл GRUB
                    
default=1
timeout=10
splashimage=(hd0,5)/boot/grub/splash.xpm.gz
password --md5 $1$y.uQRs1W$Sqs30hDB3GtE957PoiDWO.
title Fedora Core (2.6.15-prep-Topic105)
        root (hd0,11)
        kernel /boot/vmlinuz-2.6.15-prep-Topic105 ro root=LABEL=FC4-64 rhgb quiet
        initrd /boot/initrd-2.6.15-prep-Topic105.img
title Fedora Core -x86-64 (2.6.15-1.1833_FC4)

Запись для нового ядра расположена самой первой, но в качестве записи по умолчанию осталась та, которая была выбрана ранее. Если вы используете не GRUB, а LILO, выполните команду grubby, которая используется в скрипте, осуществляющем сборку ядра, для обновления конфигурации загрузчика LILO. Если по какой-то причине обновление конфигурации прошло некорректно обратитесь к учебному пособию "Экзамен LPI 101 (тема 102): Инсталляция Linux и управление пакетами". Там вы можете найти подробные инструкции по настройке загрузчика.

В заключение одно замечание. Вас могло удивить, что в примере конфигурации была использована запись -Topic105, а в результате все созданные файлы содержали вместо нее -prep-Topic105. Это одна из применяемых в дистрибутивах Fedora мер по обеспечению безопасности, которая предотвращает неумышленное разрушение имеющегося ядра. Контроль осуществляется путем установки переменной EXTRAVERSION в начальной части главного make-файла, как показано в Листинге 19. Если вы хотите отменить эту возможность, отредактируйте make-файл.


Листинг 19. Начало главного make-файла
                    
[root@attic4 linux]# head -n 6 Makefile
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 15
EXTRAVERSION = -prep
NAME=Sliding Snow Leopard


Перезагрузка

Если все прошло успешно, теперь вы сможете загрузить вашу новую систему. Вы должны выбрать конфигурационную запись для нового ядра, поскольку она не является (еще) записью по умолчанию. Если вас все устроит, можно будет сделать ее записью по умолчанию. После перезагрузки, чтобы проверить, какое загружено ядро, выполните команду uname, как показано в Листинге 20.


Листинг 20. Проверка новой системы
                    
[ian@attic4 ~]$ uname -rv
2.6.15-prep-Topic105 #2 Mon Mar 20 21:13:20 EST 2006

3 из 5 | предыдущая | следующая

Комментарии



static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux, Open source
ArticleID=175886
TutorialTitle=Экзамен LPI 102: Ядро
publish-date=03212006
author1-email=ishields@us.ibm.com
author1-email-cc=

Теги

Help
Используйте форму поиска, чтобы найти любой контент с данным тегом в My developerWorks. Используйте ползунок, чтобы отразить больше или меньше тегов.

КнопкаПопулярные теги отображает самые распространенные теги для данной области контента (например: Java, Linux, WebSphere).

Кнопка Мои теги отображает Ваши теги для данной области контента (например: Java, Linux, WebSphere).

Используйте форму поиска, чтобы найти любой контент с данным тегом в My developerWorks. Кнопка Популярные теги отображает самые распространенные теги для данной области контента (например: Java, Linux, WebSphere). Кнопка Мои теги отображает Ваши теги для данной области контента (например: Java, Linux, WebSphere).