Компилируем ядро
Вот мы поставили линукс, прикрутили к нему
поддержку русского языка ... давайте его немного пооптимизируем, чтобы он
быстрее работал и меньше памяти занимал ...давайте перекомпилируем ядро
... это не так страшно, как кажется, да и рано или поздно Вам придеться
это делать - ведь новые версии ядра появляются довольно часто ...Итак,
если у вас свежепоставленный линукс и вы не забыли поставить
полностью комплекты A,AP,D,К из дистрибутива или скачать
linux-x.x.x.tar.gz c ftp.kernel.org (напомню, что речь идет о slackware,
хотя другие дистрибутивы можно точно так же апгрейдить ...)
Копируем
полученный файл (в случае апгрейда) в /usr/src и говорим gzip -d
linux-x.x.x.tar.gz;tar xvf linux-x.x.x.tar .....говорим cd
/usr/src/linux если не получилось - значит либо вы не поставили
исходники, либо их не развернули. теперь проверим символьные ссылки на
нужные для сборки каталоги ... быстренько делаем так
cd /usr/include
rm -rf asm linux scsi
ln -s /usr/src/linux/include/asm-i386 asm
ln -s /usr/src/linux/include/linux linux
ln -s /usr/src/linux/include/scsi scsi
cd /usr/src/linux
make mrproper
Этими командами мы удалили и заново создали нужные ссылки, а также
удалили старые объектные модули, которые могли остаться в системе ...
теперь даем команду
make menuconfig - если через некоторое время
система обругалась - значит скорее всего вы не поставили библиотеки
curses, которые необходимы для отрисовки красивых менюшек.
Немного про
обозначения - если вы напротив пункта меню видите пустое место - значит
соответствующий пункт не включен ... звездочку - включен и будет
вкомпилирован в ядро .. буква
М - будет модулем ...но некоторые
пункты не могут быть модулями, их можно только в ядро вкомпилировать ... Пойдем по порядку.
Code maturity
level options --->
- если у вас есть нестандартные драйверы в исходных
текстах, то при установке * вам в последствии предложать их включить. Сам
я этот пункт не пробовал, поэтому результатов рассказать не могу.
Processor type and features --->
- Установка типа вашего процессора
и некоторых особенностей.
Processor family - тип процессора
Math
emulation - включать эмуляцию матсопроцессора.(надо для процессоров sx)
MTRR (Memory Type Range Register) support - поддержка спец.регистров
на процессорах Pentium Pro и Pentium II.
Symmetric multi-processing
support - поддержка многопроцессорных машин
Loadable module
support --->
- поддержка загружаемых в качестве модулей драйверов.
Enable loadable module support - включить поддержку модулей.
Set
version information on all symbols for modules - устанавливать в модуль
информацию о том, для какой версии ядра он скомпилирован. Если вы
установите этот пункт и перекомпилируете модули, а потом перейдете на
другую версию ядра, модули откажутся загружаться.
Kernel module loader
- поместить автозагрузчик модулей в ядро ? Если нет, то надо будет пускать
kerneld.
General setup --->
- основные установки
Networking
support - поддержка сети
PCI support - поддержка шины PCI. Если ее
включите, то появится следующие три пункта
PCI access mode - режим
(BIOS, Direct, Any) доступа до функций PCI.
PCI quirks - я не знаю,
что это значит, но по умолчанию у меня это стоит.
Backward-compatible
/proc/pci - Обратная совместимость с /proc/pci, по крайней мере это так
переводится, но на самом деле это включает отображение информации о PCI
устройствах в каталоге /proc/pci.
MCA support - поддержка старой шины
MCA
SGI Visual Workstation support - У вас ядро компилируется на
Silicon Graphics ?
System V IPC - поддержка System V IPC - у меня
выключено
BSD Process Accounting - Поддержка суммирования информации о
процесах в стиле BSD - у меня тоже выключена
Sysctl support -
Поддержка системных вызовов.
Kernel support for a.out binaries -
поддержка ядром старого формата исполнимый файлов.Хоть таких файлов и
осталось мало, но все-таки они встречаются, поэтому лучше оставить ее
включенной.
Kernel support for ELF binaries --->
- поддержка ядром нового
формата исполнимых файлов. Эту опцию обязательно включите.
Kernel
support for MISC binaries - поддержка других форматов исполняемых файлов.
То есть вы сможете исполнять программы, скомпилированные для BSD,Solaric и
так далее, естественно при наличии всех необходимый библиотек и программ.
Parallel port support - поддержка параллельного порта. Зачем эта опция
здесь - я не знаю.
Advanced Power Management BIOS support - поддержка
APM. То есть линукс научиться сам останавливать винты, засыпать, а при
наличии ATX и выключать компьютер.
Plug and Play support --->
-
Поддержка стандарта PNP.
Block devices --->
- поддержка флопиков,
винтов и прочего.
Floppy, IDE, and other block
devices - Здесь мы укажем ядру, что у нас на машине есть в наличии из
средств хранения информации.
Normal floppy disk support - У вас
флопики в наличии ?
Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy
support - Расширенная поддержка новых и не очень контроллеров.
Use old
disk-only driver on primary interface - Использовать старые драйвера
,которые поддерживают только винты на первичном IDE канале. Это опять же
для старых IDE контроллеров, которые при попытке ядра пробежаться по всем
подключенным к нему устройствам вешают машину (я толко один раз видел
такую машину ;-)
Include IDE/ATAPI CDROM support - У нас CD-ROM
подключен к IDE ?
Include IDE/ATAPI TAPE support - Накопители на
магнитной ленте есть на IDE ?
Include IDE/ATAPI FLOPPY support -
Флоппи (ZIP,JAZ, etc)на IDE есть ?
SCSI emulation support - Это надо,
если у вас что-то из устройств висит на LPT порту - линукс будет
эмулировать их, как SCSI устройства ...
Support removable IDE
interfaces (PCMCIA) - Мы на ноутбуке или где ? PCMCIA поддерживать надо ?
CMD640 chipset bugfix/support - Если у Вас этот чипсет на материнской
плате, то включите его в конфигурации .. а остальные выключите ...
RZ1000 chipset bugfix/support Intel 82371 PIIX (Triton I/II) DMA
support - то же самое для соответствующих чипсетов ...
Other IDE
chipset support - Поддержка других чипсетов (ALI,DTC,Holtek,QDI,UMC) ...
Loopback device support - Поддержка "пустых" устройств. Очень хорошая
опция. Она позволит вам монтировать диски сами на себя, монтировать образы
дисков, иметь "локальную" сеть при отсутствии настоящей сети. и много
другое ...
Multiple devices driver support - Поддержка RAID
R
AM
disk support - Поддержка виртуально диска в памяти ... Оно Вам это надо ?
XT harddisk support - Поддержка старых дисковых контроллеров.
Parallel port IDE device support - Есть переносные винчестеры, которые
подключаются к параллельному порту машины ... они у вас есть ?
Networking
options --->
- поддержка и конфигурирование сетевых опций ядра.
Packet
socket - я не знаю, для чего эта опция, но она у меня включена по
умолчанию.
Kernel/User netlink socket - поддержка сокетов для связи в
пределах одной машины.
Network firewalls - если вы планируете
использовать машину в качестве файрволла, включите эту опцию.
Network
aliasing - нужна для обеспечения подвешивания нескольких адресов(алиасов)
на одну физическую карточку.
Socket Filtering - поддержка фильтрации
TCP/IP потока.
Unix domain sockets - поддержка сщкетов в формате UNIX
- включите ее !!
TCP/IP networking - вообще, поддерживаем TCP/IP ?
IP: multicasting - поддержка широковещетельного формата протокола
TCP/IP. То есть машина будет рассылать одинаковый пакеты не каждому хосту
отдельно, а всем сразу. Это может понадобиться для RealAudio сервера,
например ...
IP: advanced router - улучшенные опции роутинга.
IP:
kernel level autoconfiguration - не знаю, что это.
IP: optimize as
router not host - оптимизация функция для использования машины больше в
качестве роутера, а не обычного сервера.
IP: tunneling - обеспечение
IP-туннеллинга.
IP: GRE tunnels over IP - GRE - туннелинг.
IP:
aliasing support - поддержка алиасов.
IP: TCP syncookie support (not
enabled per default) - не знаю, что это, у меня выключено.
IP:
Reverse ARP - обеспечение реверсного ARP. То есть машина не будет
принимать пакеты да тех пор, пока не проверит, что заголовок пакета
совпадает с MAC-адресом пославшего.
IP: Drop source routed frames -
сброс кадров с информацией о роутинге. В этом случае машина сама должна
собирать информацию о роутинге с помощью других средств.
IP: Allow
large windows (not recommended if <16Mb of memory) - принимать большие
кадры. Не рекомендуется для машин с малым объемом памяти.
The IPX
protocol IPX: Full internal IPX network - включите эти два пункта,
если вы собираетесь устанавливать Novell - эмулятор или соединяться с
новелл-серверами.
Appletalk DDP - поддержка протоколов Macintosh'ей
....
SCSI support --->
- Поддержка SCSI устройств. К сожалению, у
меня на машине нет ни одного SCSI устройства, по этому я не буду описывать
этот пункт. Но он по содержанию аналогичен пункту Block Devices.
Network device support --->
- поддержка сетевых карточек.
Network device support - вообще поддержка сетевых карточек
ARCnet
support - поддержка ARCnet карточек.
Dummy net driver support -
поддержка "тупых" сетевых устройств. Используется редко.
EQL (serial
line load balancing) support - поддержка балансировки при подключении 2 и
более одновременно модемов.
Ethernet (10 or 100Mbit) - поддержка
Ethernet - карточек. При этом открываются следующие пункты.
3COM cards
-карточки от 3COM
AMD LANCE and PCnet (AT1500 and NE2100) support - от
AMD
Western Digital/SMC cards - от SMC
Racal-Interlan (Micom) NI
cards - от Racal.
Other ISA cards - другие ISA карточки.
EISA,
VLB, PCI and on board controllers - карточки, которые сидят на EISA, VLB,
PCI или вмонтированы прямо на матплату машины. Ниже откроется список
поддерживаемых чипсетов для этих карточек - выберите тот, который у вас.
Pocket and portable adaptors - Портативные адаптеры.
FDDI driver
support - поддержка FDDI
Frame relay DLCI support - поддержка Frame
Relay
PPP (point-to-point) support - Поддержка PPP - протокола
SLIP (serial line) support - Поддержка SLIP - старый формат для
подключению в инет.
Wireless LAN (non-hamradio) - Радио-карточки.
Token Ring driver support - Tocen Ring карточки.
Control Hostess
SV-11 support COSA/SRP sync serial boards support Red Creek
Hardware VPN (EXPERIMENTAL) - Что из себя представляют эти 3 пункта, я не
знаю ....
WAN drivers - поддержка WAN карточек ( это те, которые
работают с потоками E1 и подобными им ;-)))
Amateur Radio
support --->
- Поддержка карточек, которые работают через X.25, поддержка
SoundModem и прочей бяки. У меня ничего подобного нет, поэтому я опускаю
этот пункт.
ISDN subsystem --->
- Поддержка ISDN - у меня ее нет.
CD-ROM drivers (not for SCSI or IDE/ATAPI drives) --->
- поддержка
старых приводов CD-ROM, которые подключаются не через IDE или SCSI,
например через звуковую карточку.
Character devices --->
- поддержка
остальных устройств ввода.
Virtual terminal - поддержка виртуальных
терминалов на одном физическом.
Support for console on virtual
terminal - поддержка косоли на виртуальных терминалах.
Standard/generic (dumb) serial support - поддержка стандартных
последовательных портов.
Support for console on serial port -
поддержка консоли, которая подключена через последовательный порт.
Extended dumb serial driver options - расширенная поддержка
последовательных портов, в чем заключается конкретно - я не знаю.
Non-standard serial port support - поддержка нестандартных
последовательных портов.
Unix98 PTY support - поддержка нового
стандарта на консоли.
Maximum number of Unix98 PTYs in use (0-2048) -
их число.
Mouse Support (not serial mice) - поддержка мышек, которые
висят не на последовательном порту.
QIC-02 tape support - поддержка
стандарта QIC-02 (это старый формат для накопителей на магнитной ленте)
Watchdog Timer Support - поддержка аппаратного устройства, которое
следит за работоспособностью системы.
/dev/nvram support - я не знаю,
что это ...у меня включено.
Enhanced Real Time Clock Support -
расширенная поддержка RTC.
Video For Linux ---> поддержка карточек
с видео вводом/выводом. У меня их нет.
Joystick support --->
поддержка джойстиков. У меня их тоже нет ;-)
Ftape, the floppy tape
device driver --->
поддержка накопителей на магнитной ленте, которые
подключаются на floppy-шлейф.
Filesystems --->
- Поддержка файловых
систем. К этому пункту следует отнестись с большим вниманием ....
Quota support - поддержка дисковых квот для пользователей.
Kernel
automounter support - встраивание автоматического
монтировщика/демонтировщика дисковых разделов.
Amiga FFS filesystem
support - поддержка файловой системы Амиги.
Apple Macintosh filesystem
support (experimental) - поддержка макинтошевских разделов.
DOS FAT fs
support - поддержка DOS - разделов, обязательно включите MSDOS,UMSDOS,VFAT
опции ...
ISO 9660 CDROM filesystem support - поддержка файловой
системы компакт-дисков.
Microsoft Joliet CDROM extensions - поддержка
расширений микрософт для компакт-дисков.
Minix fs support - поддержка
minix системы. очень старая система, я не знаю, где она применяется.
NTFS filesystem support (read only) - поддержка на чтение NTFS
разделов.
OS/2 HPFS filesystem support (read only) - аналогично для
HPFS.
/proc filesystem support - поддержка /proc. Здесь можно будет
найти всю информацию о системе. утилиты ps,free и прочие пользуются ей,
потому включите ее.
/dev/pts filesystem for Unix98 PTYs - поддержка
новых стандартов.
ROM filesystem support - поддержка файловых систем,
размещенных в ПЗУ.
Second extended fs support - поддержка родной для
линукса фаловой системы.
System V and Coherent filesystem support -
поддержка файловой системы для System V
UFS filesystem support -
поддержка UFS системы. Применяется на коммерческих версиях Unix.
Network File Systems ---> поддержка сетевых файловых систем
Coda filesystem support (advanced network fs) - файловая система,
предназначенная для динамического подключения/отключения клиентов.
Навороченная до безобразия. Я пока не смог найти ей более-менее разумного
применения, кроме кластеров. ;-))).
NFS filesystem support - поддержка
NFS - родной для юниксов сетевой файловой системы.
SMB filesystem
support (to mount WfW shares etc.) - поддержка файловой системы, по
которой общаются представители windows - мира.
NCP filesystem support
(to mount NetWare volumes) - то же самое, но для мира новелл.
я
советую включить все дополнительные опции - по моему, более безглючная
работа вам будет гарантирована ;-)))).
Partition Types --->
Поддержка форматов разбивок дисков для BSD, Macintosh, Sun, Solaris.
Native Language Support ---> Подержка национальных языков на
разделах. Здесь включите поддержку Codepage 437 (United States, Canada),
Codepage 866 (Cyrillic/Russian), NLS ISO 8859-5 (Cyrillic), NLS KOI8-R
(Russian) и вы сможете нормально видеть русские буквы в именах файлов.
Console drivers --->
Поддержка аппаратной консоли.
VGA
text console - поддержка VGA - консолей.
Video mode selection support
- поддержка выбора видеорежима на этапе загрузки. То есть вы можете
загрузить линукс не 25х80, а например 50х80. Если честно, то эта поддержка
была и в самых старых версиях ядра, но она устанавливалась вручную
спец.командами.
Sound --->
- Поддержка звуковых карт. Здесь опять же
просто выберите тот чипсет, на основе которого собрана ваша звуковая
карточка. Если вы не нашли ее, попробуйте включить модуль OSS - там
наверняка найдете то, что вам надо. Там же указываются порты и прерывания
для вашей звуковой карточки.
Kernel hacking --->
- "ломка" ядра. Я
ни разу не использовал этой опции.
Вот и все, что необходимо для
конфигурации ядра под ваши требования. Единственное, что я вам посоветую -
как можно больше вынести в модули, так как объем ядра увеличился и при
включении джентельменского набора опции для компиляции в ядро оно просто
получится очень большим. Теперь делайте make zlilo - ядро начнется
компилироваться и если оно скомпилировалось без ошибок, вызоветься lilo,
который подготовит загрузчик для ядра. Если компиляция прошла с ошибками,
то смотрите на то, какие ошибки и думайте, что их могло вызвать. У меня
единственнное что было - так это для ядра не хватило памяти и пресловутый
signal 11 из-за разогнанного процессора. Потом сделайте make modules;make
modules_install для компилирования и установки модулей, только не забудьте
удалить все из каталога /lib/modules/2.2.1 (если вы компилируете 2.2.1
версию, для 2.2.0 сами понимаете какой каталог должен быть ;-))
[email protected] ...
С уважением,
Вячеслав Калошин