Опции ядра
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 будут полезны большинству современных машин. Если ваша материнская плата имеет биос с поддержкой 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 переводится как "мыши".
Watchdog Cards позволяют вам нажимать на кнопку Reset, даже когда вас нет рядом с этой кнопкой.
Video for Linux, очень странная опция. Всегда ставьте SVGA support, остальное скачивается с сайта производителя и ставится модулем, даже если вашей карты нет в списке. Хотя есть самодельные драйвера для Radeon которые можно вкомпилировать непосредственно в ядро.
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.) Если вам требуется (обычно требуется) поддержка псевдотерминалов стандарта 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 437 (US, Canada), Codepage 866 (Cyrillic/Russian) для разделов FAT/NTFS и NLS ISO 8859-1 (Latin 1), 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, имеющие ошибки реализации.
Я собирался коротко рассказать о настройках ядра Linux, не получилось. Теперь коротко расскажу о его компиляции и установке. Компиляция производится командами:
make dep make clean make zdisk или make zlilo или make bzImage
Первый вариант требуется для установки на загрузочную дискету, второй для установки через lilo, третий для ручной установки. Рекомендую третий вариант. В последнем случае, откомпилированное ядро вручную копируется в директорию /boot, а затем настраивается загрузчик. Для lilo требуется добавить строку в файл /etc/lilo.conf с положением и названием ядра (подробности ниже). И запустить загрузчик командой lilo. Настоятельно советую не стирать старое ядро, а оставить его в качестве еще одного варианта загрузки.
После этого устанавливаются модули командами:
make modules make modules_install
Перезагрузитесь и работайте. Если сможете.