| ||||||||||
|
| ||||||||||
|
![]() |
| 1. |
Если у Вас есть удаленный доступ к мощной машине с установленной операционной системой Linux
то выполните этот пункт. В моем случае мощный компьютер это P4 2.8GHz с установленной Fedora Core 3.
Удаленно зайдите в систему Linux. Если Вы работаете на десктопе Windows то Вам для удаленного доступа
к Unix/Linux потребуется SSH клиент. Для этих целей мне понравились две програмки под Windows: PuTTY – для работы с терминалом Linux WinSCP – для обмена файлами между Linux и Windows При работе с програмой PuTTY есть одна неприятная особенность, которая заключается в том, что при работе с файловым менеджером Midnight Commander ( mc ) вместо прямых линий будет всякий мусор (garbige) как то квадратики или твердый знак ъ ъъ и так далее. Для того что бы линии в mc оставались линиями, а не квадратики или знак ъ ъъ (это зависист от выбранной кодироввки в PuTTY) необходимо после входа в систему запустить Midnight Commander командой: # LANG=c mc |
| 2. |
Скачать "The latest stable version of the Linux kernel" последнее стабильное ядро
с ближайшего зеркала http://www.kernel.org/mirrors/ , например команда: # wget http://www.lv.kernel.org/pub/linux/kernel/v2.6/linux-2.6.12.4.tar.bz2 |
| 3. |
После того как kernel скачан, необходимо его разархивировать. Конечно Midnight Commander
может это сделать, однако времени на это уйдет больше, чем выполнив в консоли команду разархивации: # tar -xjf linux-2.6.12.4.tar.bz2 |
| 4. |
Зайдем в разархивированную директорию, и запустим программу конфигурации ядра: # make menuconfig ![]() Сразу обратим внимание на предпоследнюю опцию: Load an Alternate Configuration File которая позволяет загрузить ранее созданный конфигурационный. Это очень удобно когда Вы уже однажды создали для своей системы конфигурацию для данной версии ядра, иначе файл конфигурации может "поплыть". Для того чтобы воспользоваться файлом конфигурации доставшимся от старого ядра надо выполнить следующие команды: # make oldconfig # make menuconfig при этом у Вас появится возможность включить новые опции входящие в новое ядро. |
| 5. |
Рассмотрим кратко основные моменты конфигурации ядра 2.6 без которых не загрузится система.
Раз написали “без которых не загрузится система” то рассмотрим кратко этапы загрузки Linux.
Вернемся к основным моментам конфигурации которые связаны с поддержкой устройств в Linux, как было ранее написано kernel 2.6 модульный, образно говоря ядро может быть представлено в виде вешалки с крючками, где крючечки создаются в самом ядре, а то что на них вешается – module (смотри рисунок). ![]() Если крючечек не будет создан в ядре, то ядро не сможет использовать модуль. При конфигурации ядра есть выбор: встроить опцию в ядро или создать в ядре соответвующий “крючочек” для того чтобы на него можно было при необходимости подвесить соответствующий модуль. Важно отметить, что поддержку жесткого диска можно тоже сделать в качестве модуля.... однако в этом случае есть вероятность что может не включиться DMA для винтов. Поэтому поддержку такого оборудования компьютера как контролер жестких дисков, сетевой карты и так далее желательно непосредственно встривать в ядро 2.6 Linux. После того как в ядро встроена поддержка устройств компьютера, необходимо включить опции отвечающие за работу с файловой системы, поддержку сетевых протоколов и так далее. Опять из кучи опций раздела “File systems” необходимо включить в ядро те которые используются системой, то что вам надо можно увидеть при загрузки системы см. пункт “d” данного параграфа: работу с сжатым диском RAM, ext2fs, ext3fs; более подробно остановимся в следующем пункте. |
| 6. | Осуществим непосредственное, практическое, конфигурирование ядра. Поскольку лучше один раз увидеть, чем сто раз услышать далее конфигурация kernel 2.6.12 ( 2.6.12.1. 2.6.12.2 2.6.12.3 2.6.12.4 ) будет последовательно продемонсрирована на картинках. Ниже картинок которые специфичные для Вашей конфигурации будут коментарии. |
| Code maturity level options |
| General Setup | В первой опции можно написать некоторое название, которое будет доавлено к концу названия ядра, в даном примере окончание “-L7” |
| Loadable module support |
| Processor type and features | Для определения типа процессора выполните команду: # cat /proc/cpuinfo |
| Firmware Drivers |
| Power management options (ACPI, APM) | Без поддержки ACPI придется выключать питание компьютера, как это деллось лет 10 назад: нажатием на кнопку питание на корпусе компьютера |
| ACPI (Advanced Configuration and Power Interface) Support |
| CPU Frequency scaling |
| Bus options (PCI, PCMCIA, EISA, MCA, ISA) |
| PCCARD (PCMCIA/CardBus) support |
| PCI Hotplug Support |
| Executable file formats |
| Device Drivers |
| Generic Driver Options |
| Memory Technology Devices (MTD) |
| Parallel port support | Не включаем поддержку паралельного порта (обычно к этому порту подключается принтер) |
| Block devices | RAM-disk support: позволяет работать с диском в оперативной памяти Initial RAM disk (initrd.img) support: initrd - это образ, который используется при загрузке ядра. Default RAM disk size: установите значение 16384, если размер мал, то при загрузке системы может быть выдано сообщение: RAMDISK: incomplete write |
| IO Schedulers |
| ATA/ATAPI/MFM/RLL support | Здесь важно выбрать именно те опции, которые соответсвуют Вашему компьютеру. Для того что бы узнать что у Вас установлено наберите команду
# lspci |grep IDE В моем случае это “Intell PIIXn chipset support” |
| SCSI device support | Нету SCSI устройств |
| Multi-device support (RAID and LVM) |
| IEEE 1394 (FireWire) support |
| I2O device support |
| Networking support |
| Networking options |
| IP: Virtual Server Configuration |
| Network packet filtering (replaces ipchains) |
| IP: Netfilter Configuration |
| QoS and/or fair queueing |
| ARCnet devices |
| Ethernet (10 or 100Mbit) | Выберете свой тип сетевой карты, для определения сетевой карты используйте команду: # lspci |grep Ethernet |
| Ethernet (1000 Mbit) |
| Ethernet (10000 Mbit) |
| Token Ring devices |
| Wireless LAN (non-hamradio) |
| Wan interfaces |
| Telephony Support |
| Input device support |
| Hardware I/O ports |
| Character devices |
| Serial drivers |
| IPM |
| Watchdog Cards |
| Ftape, the floppy tape device driver |
| TPM devices |
| I2C support |
| Dallas's 1-wire bus |
| Misc devices |
| Multimedia devices |
| Digital Video Broadcasting Devices |
| Graphics support |
| Console display driver support |
| Sound |
| USB support |
| USB Gadget Support |
| MMC/SD Card support |
| InfiniBand support |
| File systems | ext2fs –если не отметить, то Fedora Core 2 при загрузке выдаст сообщение VFS: Unable to mount root fs on unknown-block(0,0) ext3fs – файловая система используемая Fedora Core 2 ROM file system support – для работы initrd |
| XFS support |
| CD-ROM/DVD Filesystems |
| DOS/FAT/NT Filesystems |
| Pseudo filesystems | Virtual memory file system support – необходима для работы Fedora Core 2, FC-3 |
| Miscellaneous filesystems |
| Network File Systems |
| Partition Types |
| Native Language Support |
| Profiling support |
| Kernel hacking |
| Security options |
| Cryptographic options |
| Library routines |
| 7. |
Завершив процесс конфигурации необходимо собрать ядро. Сборка ядра состоит их компиляции
ядра и компиляции моделей # make bzImage # make modules |
| 8. |
Создадим архив содержащий файлы которые будут установлены на слабую машину Создадим директорию которая будет содержать результаты сборки ядра, например: # mkdir /KERN Установим откомпелированные модули в созданную директорию, командой: # make modules_install INSTALL_MOD_PATH=/KERN Скопируем файл Sysmap: # cp System.map /KERN Скопируем файл bzImage: # cp arch/i386/boot/bzImage /KERN Заархивируем директорию содержащую результат сборки ядра и по сети скопируем на слабый компьютер: # tar -cjf KERN.tar.bz2 KERN |
| 9. | Установка ядра Разархивируем созданный архив: # tar -xjf KERN.tar.bz2 Копируем модули: # cp -R lib/modules/2.6.12.4-L7/ /lib/modules/ Интслалируем ядро: # installkernel 2.6.12.4-L7 bzImage System.map |
| 10. | Перезапускаем компьютер и имеем простейшее работающее ядро :) |