Ключевые слова:linux, kernel, install, (найти похожие документы)
From: Соколов Роман <romanso@rt.mipt.ru.>
Date: Mon, 20 Sep 2004 18:21:07 +0000 (UTC)
Subject: Конфигурирование и установка 2.4.x ядра Linux
Оригинал: http://www.rt.mipt.ru/~romanso/ker_inst.html
Конфигурирование и установка ядра Linux
0. Введение.
1. Подготовка исходных текстов ядра Linux и сопутствующих подсистем.
2. Конфигурирование ядра.
3. Компиляция ядра.
4. Установка ядра.
5. Редактирование и установка lilo.
Подготовка исходных текстов ядра Linux и сопутствующих подсистем
В дальнейшем предполагается, что все действия по компиляции и
установке нового ядра выполняются с правами суперпользователя root, и
что домашним каталогом суперпользователя является каталог /root.
Войдите в систему как суперпользователя root или выполните команду su
c 3-x виртуальных терминалов (клавиши Alt-1, Alt-2, Alt-3).
login: root
password: xxxxxx
Определите какая версия ядра запущена командой
[root@tty5]# puname -r
если команда выдала "2.1.12", то вы должны переименовать (с помощью
mv) каталог /usr/src/linux в /usr/src/linux-2.1.12. Можно просто
удалить всю директорию. В любом случае убедитесь, что нет никакой
директории ./linux в /usr/src/ до распаковки полного исходного кода
ядра.
Загрузили файл исходных текстов ядра linux-2.4.X.tar.gz
какую-нибудь директорию (каталог). Так как вошли в систему как
суперпользователь root, то домашней директорией будет /root.
Распакуйте архивный файл linux-2.4.X.tar.gz в каталог /usr/src, где
обычно располагают исходные тексты ядра, командой:
[root@tty5]# pcd /usr/src
[root@tty5]# tar zxvf /root/linux/2.4.X.tar.gz
Исходники будут установлены в /usr/src/linux. Переименуйте (с помощью
mv) каталог /usr/src/linux в /usr/src/linux-2.4.X
[root@tty5]# pcd /usr/src/linux /usr/src/linux-2.4.X
Создайте каталог/usr/src/linux - это символьная связь с
/usr/src/linux-2.4.X. командой :
[root@tty5]# ln -s /usr/src/linux-2.4.X linux
В результате cоздалась новая директория ./linux в /usr/src директории.
1. Проверяем наличие вспомогательных пакетов/подсистем, необходимых
для сборки и установки ядра Linux (без ссылок, только имена
необходимых файлов с проверкой текущей версии). Находить проще
всего через ftp-поисковики (для России лучше пользовать
http://ftpsearch.city.ru ).
A.
НЕОБХОДИМЫЕ ЧАСТИ:
1. Kernel modules 2.1.121 (modutils-2.1.121.tar.bz2)
tty1 root:~% insmod -V
Ядро некорректно работает с более старыми версиями.
Также предупреждается, что после установки этого пакета
нельзя грузить ядра 2.0.*, так как существует очень
большая вероятность того, что все модули окажутся
безнадежно испорченными.
2. Компилятор языка С - GNU C 2.7.2.3 (gcc-2.8.1.tar.gz)
tty1 root:~% gcc -v
Необходим для компиляции текстов ядра
3. Binutils 2.8.1.0.23 (binutils-2.9.1.0.19a.tar.gz)
tty1 root:~% ld -v
это те файлы, которые лежат у вас в /usr/bin или /usr/local.
4. Libc 5.4.46
tty1 root:~% ls -l /lib/libc.so.*
"Не делайте этого, Даже не думайте о них. Даже если вы
не пускаете libc6, вы должны иметь их ... Лучше убейте
их !" ;-) это в моем вольном переводе, естественно ...Но
я их удалять не стал - вдруг пригодятся ;-)
5. Libc 6 "2.0.7"
[root@tty5]# ls -l /lib/libc.so.*
???
6. Linker ld.so 1.9.9 (ld.so-1.9.9.tar.gz)
[root@tty5]# ldd -v
Динамический линковщик.
B. HE ОБЯЗАТЕЛЬНЫЕ ЧАСТИ:
1. Linux C++ library 2.7.2.8 (ftp://ftp.gnu.org/pub/gnu/libg++/)
tty1 root:~%ls -l /usr/lib/libg++.so.*
Это библиотеки для C++. Если у Вас их нет, то и
апгрейдить их вам не надо. ;-)
2. Procps 1.2.9 (procps-1.2.9.tar.gz)
tty1 root:~%ps --version
Но будьте осторожны, без перекомпиляции версия 1.2.9
выдает в ответ 1.2.7, это утилита предназначена для
поддержки /proc
3. Procinfo 1.5 (procinfo-16.tar.gz)
tty1 root:~%procinfo -v
Procinfo is a small program that gathers some system
information from diverse files under /proc and prints it
to the screen. It duplicates some of the functionality
of free(1) and uptime(1).)
4. Psmisc 1.7 (psmisc-18.tar.gz)
tty1 root:~%pstree -V
5. Net-tools 1.49 (net-tools-1.50.tar.bz2)
tty1 root:~%hostname -V
6. Loadlin 1.6a (loadlin16.tgz)
предназначен для загрузки linux из DOS.
7. Sh-utils 1.16 (sh-utils-1.16.tar.gz)
tty1 root:~%basename --v
это утилиты из /usr/bin
8. Autofs 3.1.1 (autofs-3.1.3.tar.gz)
tty1 root:~%automount --version
Авто моунтер/демоунтер файловых систем - если вы
используете NFS, то проверьте версию
9. NFS 2.2beta37 (nfs-server-2.2beta37.tar.gz)
tty1 root:~%showmount --version
Для использовании автоматического подключения NFS
10. Bash 1.14.7 (bash-2.02.1.tar.gz)
tty1 root:~%bash --version
Желательно, но не обязательно, чтобы у вас стояла именно
эта версия командного процессора bash, тем более, если
вы пользуетесь не им
11. Ncpfs 2.2.0 (ncpfs-2.2.0.tgz)
tty1 root:~%ncpmount -v
Для работы с Novell-серверами
12. Pcmcia-cs 3.0.6 (pcmcia-cs-3.0.7.tar.gz)
tty1 root:~%cardmgr -V
Для работы с лаптоп - менеджер PCMCIA-слотов в
машине.
13. PPP 2.3.5 (ppp-2.3.5.tar.gz)
tty1 root:~%pppd -v
PPP демон для Linux. - обеспечивает связь через модемы.
14. Util-linux 2.9 (util-linux-2.9i.tar.gz)
tty1 root:~%chsh -v
Это утилиты обслуживания пользователей и их окружения.
Конфигурирование ядра
1. Первый этап заключается в конфигурировании будущего ядра. Если Вы
при установке обновленных версий ПО покинули каталог
/usr/src/linux, то вернитесь в него.
* В некоторых случаях перед началом конфигурирования ядра необходимо
выполнить команду make mrproper. Необходимо это бывает тогда, когда
этот каталог уже использовался для компиляции ядра и надо удалить следы былых,
может быть ошибочных, действий, в частности, ранее созданные файлы "*.o.
tty1 root:/usr/src% cd linux
tty1 root:/usr/src/linux% make mproper
Для конфигурирования ядра переходим в /usr/src/linux. И выбираем
одно из трех:
- "make config" (самый сложный вариант);
- "make xconfig" (X интерфейс),
- "make menuconfig" (консоль).
Вариант "make config" - самый неудобный - придется ответить на
полсотни вопросов с ответами типа "да/нет". Если при первом
конфигурировании надо ответить на все вопросы, то при повторных
хотелось бы отвечать только на те, ответы на которые нужно
поменять.
* Суть всех трех способов состоит в том, чтобы ответить на вопросы
о включении того или иного свойства в состав ядра. Включение дает какие-либо
функциональные возможности, но! слишком большое ядро -- тоже плохо. Помимо
непосредственного включения в состав ядра, тот или иной драйвер можно включить
как подгружаемый модуль. Тогда он не будет загромождать память все время,
а будет вызываться определенной командой.
tty1 root:/usr/src/linux% make menuconfig <- в консоли и X Window
или
tty1 root:/usr/src/linux% make xconfig <- только в X Window
Если через некоторое время после команды make menuconfig - make
провалился - значит, скорее всего, не установлены библиотеки
curses или ncurses, необходимые для отрисовки меню.
Если через некоторое время после команды make xconfig - make
провалился - значит, скорее всего, не установлены библиотеки
tcl/tk, необходимые для отрисовки меню в графическом режиме.
Немного про обозначения: если вы напротив пункта меню видите:
- пустое место [ ] - значит соответствующий пункт не включен;
- звездочку [*] - включен и будет вкомпилирован в ядро;
- буква [m] - будет модулем
некоторые пункты не могут быть модулями, и используются только в ядре
Сделаем новое ядро компактнее и более оптимизированным. Для этого
освободим его от всего что нам не требуется.
* Разработчики ядер не рекомендуют делать загружаемыми модулями следующие драйверы:
- Поддержку файловой системы корневого раздела (как правило, ext2fs);
- Драйвер жесткого диска (IDE или SCSI), с которого производится загрузка;
- Поддержку обычных жестких дисков;
- Поддержку сети;
- Поддержку TCP/IP;
2. Основные шаги выбора:
Code maturity level options. На уровень завершенности кода
обращать внимание не следует, поскольку большинство компонентов
ядра относятся к категории "бета" уже много лет. Ответ "да" на
единственный вопрос Prompt for development and/or incomplete
code/driver.
Processor type and features определяет тип процессора. Для
правильных ответов следует знать, какой у вас процессор. Я
полагаю, что это вы знаете. Тогда сообщите об этом ядру. В
Processor family выберите свой процессор, правда, учтите, что ядро
для Athlon не будет работать на 386ом процессоре. Math emulation
предназначено для процессоров 386 и 486sx без математического
сопроцессора и бессмысленно для любого другого. MTRR support
включает дополнительные регистры памяти для процессоров семейства
Pentium, практически обязательно. SMP support обязательно для
включения на многопроцессорных машинах, если же у вас только один
процессор, то второй при включении SMP не появится.
Loadable module support включает поддержку загружаемых модулей.
Отказываться имеет смысл только для ядер бездисковых компьютеров.
В противном случае отвечайте Yes на все вопросы,
кроме второго!!!.
General setup. Следующее по значимости меню после Processor type.
Network support, PCI support, Kernel support for ELF binaries,
Kernel support for MISC binaries, System V IPC, BSD Process
Accounting, PCI bridge optimization и Sysctl support обязательны
всегда! Все это необходимо для простой работы программ. Поддержка
сети необходима, поскольку многие программы, например графическая
оболочка X Window или консоль, открывают виртуальные сетевые
соединения даже в отсутствии локальной сети или модема. Шина PCI
встречается на 99.9% всех компьютеров, даже если на них нет ее
слотов. Поддержка исполняемых файлов в формате ELF позволяет
запускать программы. А MISC означает возможность запуска
большинства эмуляторов и виртуальной машины Java. Кстати этот
пункт полностью содержит последующий Kernel support for JAVA
binaries, который в скором времени исчезнет. Пункты Kernel support
for a.out binaries и Backward-compatible /proc/pci предназначены
для программной совместимости и, на сегодня устарели. Пункты
Parallel port support и PC-style hardware необходимы для работы
параллельного порта. Support foreign hardware предназначен не для
компьютеров "желтой сборки", а просто подключает некоторые
варианты устаревших параллельных портов, сегодня не нужен. Пункты
для APM/ACPI будут полезны большинству современных машин. Если
ваша материнская плата имеет BIOS с поддержкой APM (
Расширенное упроавление питанием), то следует ответить Yes на
вопросы Advanced Power Management BIOS support, Enable APM at boot
time, Power off on shutdown. Так же для управления APM служат
опции Ignore USER SUSPEND (полезно ответить No), Enable console
blanking using APM (обычно ответ No, ответ Yes только для
некоторых моделей laptop). Так же устаревшими являются PCI quirks,
которые позволяют устранять некоторые ошибки реализации шины PCI
на некоторых чипсетах. Несколько последующих опций снова
предназначены для APM, а опция RTC stores time in GMT позволяет
выставлять каждому пользователю собственное время.
Plug and Play support нужен практически всегда. В то время как PnP
on ISA bus и Auto-Probe for parallel port вполне можно сделать
модулями.
Block devices это также нужная и полезная вещь, даже если на вашем
компьютере их нет. Главное требование здесь: ВСЕ установки
загрузочного и корневого дисков (или иных загрузочных устройств)
не должны быть модульными. Если вы умудритесь нарушить это
правило, то просто не сможете загрузиться. Название опций Normal
PC floppy disk support (очень приятно, что его можно отключить),
Enhanced IDE/MFM/RLL disk/cdrom/floppy support, Include IDE/ATA-2
DISK support, Include IDE/ATAPI CD-ROM support, Include IDE/ATAPI
TAPE support, Include IDE/ATAPI FLOPPY support (последнее
предназначено для ZIP и магнитооптики) понятно. Опция SCSI
emulation необходима для CD-R и CD-RW устройств, а так же для
некоторых устаревших моделей 4х CD-ROM. Несколько настроек DMA
выведены сюда из-за ошибок реализаций на старых чипсетах, это
Generic PCI IDE chipset support, Generic PCI bus-master DMA
support, на новых моделях включайте спокойно. Опция Use old
disk-only driver on primary interface также устарела. Boot
off-board chipsets first support включайте только в том случае,
когда твердо знаете, что делаете. А Loopback device support
необходим всегда. Network block device support это редко
встречающийся случай сетевых устройств. RAM disk support необходим
для файловой системы /proc. А Initial RAM disk (initrd) support
это виртуальное устройство, пожалуй, основной задачей которого
являются заделывание дыр загрузочных дисков. Multiple device
driver support служит для создания программного RAID-контроллера,
т.е. для ненужного развлечения программистов. Опции XT hard drive
support и Parallel port IDE support дают последний шанс динозаврам
от дискостроения.
Networking options представляют собой самую запутанную часть ядра.
Фактически к ним так же относится и несколько последующих
разделов. Обязательно, даже при отсутствии сети и модема, следует
включать (и не модулем) Packet socket, Kernel/User netlink socket,
Routing messages, Network firewalls, Socket filtering, Unix domain
sockets, TCP/IP networking. А так же для работы в сети IP, вам
потребуются IP Multicasting, IP Firewalling, IP Virtual hosting и
IP Accounting. Опция IP Forwarding/Gatewaying необходима для
роутера, но КРАЙНЕ ВРЕДНА для файервалла. Следующий большой набор
опций, название которых начинается с IP, представляет собой
огромный простор для творчества. Их вполне можно сделать модулями,
а потом развлекаться уже с работающим компьютером. После "новой"
опции The IPv6 protocol (она уже более 10 лет как "новая", и еще
лет 10 такой будет), которую можно ставить по желанию, поскольку
она ни на что не влияет, идут разнообразные не-TCP/IP протоколы.
Их вполне можно включать модулями, если в вашей сети эти протоколы
поддерживаются. Опасной тут является только опция Fast switching,
включение ее может повлечь спонтанное отключение остальных сетевых
опций.
QoS and/or fair queuering (система очередей для сетевых протоколов
и сокетов) абсолютно необходима для компьютеров, работающих в
кластере, бывает очень полезна для маршрутизатора, моста или
роутера большой (>200 комп.) сети. В остальных 99.9% случаях
только тормозит работу сети. Кстати владельцам Windows XP (Home и
Pro) на заметку: этот протокол там ВКЛЮЧЕН, резервирует 20%
трафика (Владельцы медленных модемов, привет!) и не отключается
даже после удаления этого протокола.
SCSI support необходимы для SCSI устройств (это очевидно) и для
пишущих IDE CD-R и CD-RW (очевидно не всегда). Счастливые
владельцы SCSI устройств как правило сами знают, что следует
включить. А обладатели "писАлок" как правило - нет. Им следует
включить SCSI support, SCSI CD-ROM support и SCSI generic support.
SCSI low-level drivers для работы IDE CD-RW не нужны, остальное по
необходимости.
Network device support не требуется, если вы не имеете ни сетевых
устройств (адаптеров, модемов и т.д.), ни желания их подключать.
Например, вы входите в секту, запрещающую использование Интернета,
или просто страдаете тяжелой формой вирусофобии, в связи, с чем у
вас нет ни сети, ни дисковода, а есть веселая колония антивирусов
(штук 10-20). Остальным следует найти свою сетевую карту или
драйвер PPP для модема, и установить их. Разъяснения требуют
только некоторые опции. Dummy net driver support это пустое
устройство необходимое для работы PPP. EQL support позволяет
нескольким модемам работать как один (этакий модемный RAID).
Ethertab network tab программный контроллер Ethernet'а, иногда
бывает полезен. Keepalive and linefill требуется для устаревшего
протокола SLIP. А Traffic Shaper позволяет ограничить трафик
младшему брату, не используя неудобный QoS.
Amateur Radio AX.25 level 2 protocol используется для передачи
данных по каналам любительского радио. Для работы требуется не
сетевая карта, а любительский радиопередатчик.
Страстные радиолюбители, его используют.
IrDA subsystem support требуется для работы устройств связи через
инфракрасный порт. Можно включить модулями, а потом выяснить что
требуется для вашего ИК-порта, а что нет.
Infrared-port device drivers представляет собой конкретный набор
драйверов для этих устройств. Требуется только знать матчасть.
ISDN subsystem. выключить.
Old CD-ROM drivers (not SCSI, not IDE). Название говорит само за себя.
Character devices это
- самая интересная часть. Собранная здесь коллекция впечатляет: от
программного терминала до синтезатора речи. Необходимейшей вещью
здесь является Virtual terminal. Если вы не включите его, то у
компьютера не будут работать устройства ввода и вывода, как то
клавиатура, мышь, монитор, и т.д, и т.п. Для работы
последовательных портов и модемов (в т.ч. внутренних) необходимы
Standard/generic (dumb) serial support, Support for console on
serial port. Остальные опции включаемые через Extended dumb serial
driver support сегодня требуются обычно только для внутренних
модемов (им следует включить Support special multiport boards), а
в неумелых руках могут быть небезопасны. А для параллельного порта
и принтера на нем требуются Parallel printer support и Support
IEEE1284 status readback. Необходимыми являются Unix98 PTY support
(поддержка псевдо-терминалов в SysV стиле), Mouse support (not
serial mouse), /dev/nvram support и Enhanced Real Time Clock
(вообще-то для многопроцессорных машин это просто необходимо).
Включение Watchdog Timer Support позволит вам использовать
устройства аварийного отключения и аппаратные средства
безопасности (они конфигурируются далее). Остальные опции это
специфические драйверы к довольно редким устройствам.
Mice переводится как "мыши". Выключите все non-essential serial
and mouse device support.
Watchdog Cards позволяют вам нажимать на кнопку Reset, даже когда
вас нет рядом с этой кнопкой.
Video for Linux, очень странная опция. Всегда ставьте SVGA
support, остальное скачивается с сайта производителя и ставится
модулем, даже если вашей карты нет в списке. Хотя есть самодельные
драйвера для Radeon которые можно вкомпилировать непосредственно в
ядро. Выключите все Video for Linux.
Joystick support первая, полностью игровая опцию в ядре. Будем
надеяться, что не последняя.
Ftape, the floppy tape device support. Когда-то не было не только
рабочего стола с иконками, но и винчестеров. Это опция из тех
времен.
Filesystems имеет такие же требования, что и Block Devices, т.е.
корневая и загрузочная файловые системы, а так же файловая система
/proc,
ОБЯЗАТЕЛЬНО должны быть включены в ядро. Остальное можно сделать
при желании модулем. Quota support включает поддержку квот, что
очень полезно для дискриминации женщин, расовых и сексуальных
меньшинств, а так же младших братьев. Kernel automounter support
включает систему автоматического монтирования съемных носителей
(подробнее в следующей главе). Здесь обычно требуются следующие
файловые системы семейства FAT MSDOS fs support, UMSDOS: Unix-like
filesystem on top of standard и VFAT (Windows 95) fs support.
Система NTFS так же поддерживается, чтение налажено нормально на
ядрах серии 2.4, а вот с записью пока проблемы. Хотя иногда
работает. Системы для CD-ROM это ISO 9660 filesystem и Microsoft
Joliet CD-ROM extentions, их вполне можно сделать модулями если
они НЕ предназначены для CD-R/CD-RW устройств. По поводу /proc
filesystem и Second extended fs смотри выше. (Подсказка: название
second extended имеет основная файловая система Linux - ext2.)
Если вам требуется (обычно требуется) поддержка псевдотерминалов
стандарта Unix98, то включите /dev/pts filesystem for Unix98 PTYs.
Остальные файловые системы можно включать, если есть
необходимость, но они встречаются очень редко, как правило на
очень больших или на очень старых машинах.
Network filesystems требуются для работы с каталогами на удаленных
компьютерах. NFS filesystem это стандартная сетевая файловая
система, она распространена в сети UNIX и имеет гораздо больше
возможностей, чем аналоги от Microsoft (например, монтирование по
Интернету и система шифрования). Root filesystem on NFS требуется
для бездисковых рабочих станций, остальным не требуется. SMB
filesystem это сетевая файловая система для Microsoft Workgroups.
А SMB Win95 bug work-around требуется для корректной работы Самбы
с Windows 95. NCP filesystem - стандартная файловая система для
Novell NetWare. А Coda filesystem это преемник NFS, который пока
встречается редко.
Partition Types служат для взаимодействия с дисками неродных для
Linux'а файловых систем, и в общем случае включения не требуют.
Native language support служит для работы с файлами и
директориями, в названии которых имеются неанглийские буквы. Вам
потребуются Codepage 866 (Cyrillic/Russian) для разделов FAT/NTFS
и NLS ISO 8859-5 , NLS KOI8-R (Russian) для разделов Ext2fs.
Console drivers. VGA text console и Support for frame buffer
devices не требуется только если вы даже в мыслях не собираетесь
устанавливать на ваш компьютер монитор. Остальные опции служат для
развлечения уставших от работы глаз. Попробуйте, может
понравиться.
Sound. Звук, и этим все сказано. Если вашей карточки здесь нет, то
либо стоит поискать в Интернете, либо скачать более новую версию
ядра.
Kernel hacking. Тоже говорящее название. Позволяет вытворять
практически немыслимы штуки с ядром. Например, правильно выключить
"мертвую" систему. Но эти функции работают с любого эккаунта, а не
только от root'а. Так что включать полезно и интересно, но число
доморощенных хацкеров младшего школьного возраста вырастает больше
любого приличия.
Прим: Обратите особое внимание, что в некоторых местах (General
setup и др.) есть пункты, которые предлагают скомпилировать ядро
для конкретного компьютера или процессора. Перед выбором этих
пунктов следует обязательно убедиться, что у вас именно ЭТОТ
компьютер. (Учтите, что эти компьютеры большая редкость в домашних
условиях!) Если вы ошибетесь, и скомпилируете ядро для другой
системы, оно с 99.99999% вероятностью работать на вашей не будет!
На чипсеты, упомянутые в настройках, такие жесткие ограничения не
распространяются. Как правило, это либо чипсеты для не-х86
процессоров, либо старые чипсеты для процессоров 486 и Pentium,
имеющие ошибки реализации.
Отредактируйте файл /usr/src/linux/Makefile. Найдите строку:
MAKE = make
и измените ее на
MAKE = make -j5
таким образом, будет стартовать несколько копий программы make, с
которыми на некоторых системах будет быстрей компилироваться
программы. Потом измените строку:
CFLAGS = -Wall -Wstrict-prototypes -O7 -fomit-frame-pointer
на
CFLAGS = -Wall -Wstrict-prototypes -O7 -fomit-frame-pointer -fno-exceptions
Что включит использование оптимизирующих свойств компилятора,
которые могут работать или не работать со всеми ядрами.
(оптимизация кода при компиляции) Вы можете попробовать подобные
значения для HOSTFLAGS.
В подменю "Networking" включите все опции firewall, даже если ваш
компьютер не firewall иначе система не получит достаточный уровень
безопасности. В файле /usr/src/linux/.config это будет выглядеть
как:
CONFIG_FIREWALL=y
CONFIG_NET_ALIAS=y
CONFIG_INET=y
# CONFIG_IP_FORWARD is not set
# CONFIG_IP_MULTICAST is not set
CONFIG_SYN_COOKIES=y
CONFIG_RST_COOKIES=y
CONFIG_IP_FIREWALL=y
CONFIG_IP_FIREWALL_VERBOSE=y
# CONFIG_IP_MASQUERADE is not set
# CONFIG_IP_TRANSPARENT_PROXY is not set
CONFIG_IP_ALWAYS_DEFRAG=y
CONFIG_IP_ACCT=y
# CONFIG_IP_ROUTER is not set
# CONFIG_NET_IPIP is not set
CONFIG_IP_ALIAS=m
Компиляция ядра
1. Очистка и создание зависимостей
Когда настроечный скрипт закончит свою работу, он также скажет
вам, чтобы вы выполнили make dep. Так что выполните make dep. Этот
этап обеспечит, чтобы все зависимости, такие как файлы заголовков,
находятся на месте. Эта процедура не длится долго, если у вас не
медленный компьютер. Для более старых версий ядер, при окончании
вы должны выполнить make clean. Эта процедура удаляет все
объектные файлы и некоторые другие вещи оставшиеся от предыдущей
компиляции. В любом случае, не забывайте выполнить этот шаг до
начала перекомпиляции ядра.
tty1 root:/usr/src/linux% make dep
tty1 root:/usr/src/linux% make clean <- Не обязательно, но рекомендуется выполнить.
2. Непосредственно компиляция ядра
tty1 root:/usr/src/linux% make -j3 bzImage <- получим сжатое ядро bzImage.
tty2 root:/usr/src/linux% make modules <- Компиляция модулей (если сконфигурировали
что-либо модулями)
3. Если процесс завершился, сообщений об ошибках не видно; даем
команду
tty1 root:/usr/src/linux% cd arc/i386/boot
и ищем там только что созданный файл с именем bzImage.
tty1 root:/usr/src/linux/arc/i386/boot%ls -l bzImage
-rw-r--r-- 1 root root 661953 Июн 30 22:51 bzImage
tty1 root:/usr/src/linux/arc/i386/boot% _
Установка ядра
1. Устанавливаем новый набор модулей в /lib/modules/2.4.X (если этой
директории нет - она будет вновь создана, или, передозаписана -
если уже существует)
tty1 root:/usr/src/linux/arch/i386/boot%cd /usr/src/linux
tty1 root:/usr/src/linux%make modules_install
2. Копируем получившийся arch/i386/boot/bzImage в /boot/bzImage-2.4.X
(переименовав старый, если надо)
tty1 root:/usr/src/linux%cp arc/i386/boot/bzImage /boot/bzImage-2.4.X
Редактирование и установка lilo.
1. Сконфигурировать lilo, сделав копию ядра, и инсталлировать новое
ядро:
Загрузчик lilo управляется конфигурационным файлом lilo.conf.
Поскольку lilo умеет загружать не только Linux, но и другие
операционные системы вроде Windows, DOS, OS/2 и т.д., то его
конфигурация должна учитывать и их особенности. Файл lilo.conf
имеет заголовок, который описывает общую работу загрузчика и
секции по каждой операционной системе.
#Файл lilo.conf
#Заголовок
#
#Положение загрузчика, в данном случае в начале диска
boot=/dev/hda1
#Положение корневой файловой системы (не путать с администратором)
root=/dev/hda2
#map-файл, создается автоматически
map=/boot/map
#Графический режим загрузки
vga=normal
#Задержка для выбора
delay=30
#Секции
#Linux
image=/boot/bzImage-2.4.4
label=linux-2.4.4
#Не забудьте указать следующую строку
read-only
#Команда, подаваемая ядру Linux
append="ether=10,300,eth0"
#Windows, содержит указатель на загрузчик и таблицу разделов
other=/dev/hda3
table=/dev/hda
label=win
#Old Linux kernel
image=/boot/oldkernel
label=oldkernel
read-only
append="ether=10,300,eth0"
После того, как вы внесли какие-нибудь изменения в lilo.conf,
следует их активизировать, запустив загрузчик командой lilo или
/sbin/lilo. В команде,подаваемой ядру, обычно содержится
информация об активных сетевых интерфейсах. Обратите особое
внимание, на то что в этой строке запрещены пробелы. Если в ней
присутствует пробел, то ядро воспримет это как следующую строку!
2. Загрузиться и убедиться, что все работает (выполнить /sbin/ping на
serv).
3. Далее до конца занятия -- читать Help'ы ко всем пунктам
конфигурации.