Журнал LinuxFormat - перейти на главную

LXF78:Конфигурация ядра: готовые рецепты

Материал из Linuxformat
(Различия между версиями)
Перейти к: навигация, поиск
(Новая: ''Потерялись в make menuconfig? '''Михаил Емельченков''' научит, как оптимизировать ядро под ваш процессор, наст...)

Версия 16:34, 20 марта 2008

Потерялись в make menuconfig? Михаил Емельченков научит, как оптимизировать ядро под ваш процессор, настроить USB и FireWire-устройства, Bluetooth, программный RAID...

Содержание


Ядро – центральный компонент любой операционной системы. Ядро управляет памятью, процессами, внешними и внутренними устройствами, сетевыми протоколами и многим другим. Ядро Linux было создано Линусом Торвальдсом в 1991 году и с тех пор успешно развивается, дополняясь поддержкой нового оборудования, новых технологий и исправлениями ошибок.

На сегодняшний день Linux – монолитное ядро с поддержкой модулей. Драйверы устройств и расширения ядра могут подгружаться и выгружаться непосредственно во время работы системы без необходимости её перезагрузки.

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

Способы настройки ядра

Для настройки ядра переключимся в режим суперпользователя и перейдём в директорию, содержащую его исходные тексты:

$ su -
# cd /usr/src/linux

Существует пять способов конфигурирования ядра:

1) # make config Самый примитивный и неудобный способ. Вам будут задаваться вопросы относительно настроек ядра строка за строкой, раздел за разделом. Отвечать нужно будет «y», «n» или «m», то есть «да», «нет» или «модуль».

2) # make oldconfig В новые релизы ядра часто включаются новые опции. make oldconfig похож на make config; он будет использовать ответы из прежнего файла конфигурации, но будет задавать вам вопросы только о вновь появившихся опциях.

3) # make menuconfig Конфигурация ядра с помощью псевдографической оболочки (интерфейс на базе ncurses). Наиболее широко используемый вариант при работе в консоли. Опции разделены иерархически на разделы и подразделы. Это самый универсальный способ настройки.

4) # make gconfig Графический интерфейс кофигурации ядра на базе библиотеки GTK+. Make gconfig использует GTK+ и, наверное, не нравится Линусу Торвальдсу.

5) # make xconfig Графический интерфейс конфигурации ядра на базе библиотеки Qt. Наиболее удобный из всех вышеперечисленных, т.к. отображает разделы и подразделы в виде дерева, а также показывает справку по каждому пункту.


Оптимизация

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

В разделе Processor type and features -> Processor family выберите тип вашего процессора. Каждый из типов включает в себя специфические инструкции, применение которых, соответственно, ускоряет работу. Но помните, что если вы неверно укажете тип процессора, ваш компьютер будет работать медленнее, если вообще загрузится. В зависимости от того, является ли ваш компьютер сервером или рабочей станцией, нужно выбрать требуемую опцию в разделе Processor type and features-> Preemption Model (модель вытеснения задач). Опция No Forced Preemption будет соответствовать серверному варианту, а Voluntary Kernel Preemption и Preemptible Kernel – настольным, причём последний позволяет работать приложениям более «гладко» даже тогда, когда система находится под высокой загрузкой. Также для более «гладкой» работы можно включить опцию Preempt The Big Kernel Lock.

В семействе процессоров Intel Pentium Pro, Pentium II и выше используются специальные регистры – MTTR (Memory Type Range Registers). Эти регистры используются для доступа процессора к различным диапазонам памяти. Включение этой опции позволит существенно повысить производительность системы, особенно если вы используете видеокарту PCI или AGP.

Про следующий, не менее важный параметр, следует вспомнить, когда вы решите увеличить оперативную память. Если у вас менее 1 Гб памяти, выбирайте опцию off в разделе Processor type and features -> High Memory Support. Владельцам 1 – 4Гб RAM подойдет 4 Gb, а самым счастливым – «64 Gb.

В случае с многопроцессорной системой (а также с системой, процессор который поддерживает Hyper Treading) следует включить опцию Symmetric Multi-Processing Support. После включения данной опции станет доступна опция Maximum number of CPUs (2 – 255). Укажите здесь реальное количество процессоров. На производительность она не влияет, но позволит сэкономить несколько килобайт на размере ядра. Также следует включить опцию Enhanced Real Time Clock Support раздела Device Drivers -> Character devices. Учтите, что в SMP-режиме не будет работать управление питанием «Advanced Power Management (APM)».

Программный RAID

Чем программный RAID лучше аппаратного? Аппаратный RAID, как правило, строится на недешёвых контроллерах и SCSI-дисках, дешёвые контроллеры для дисков IDE (и SATA) часто оказываются псевдоаппа ратными контроллерами, т.е. большинство их функций перекладывается на Windows-драйвер. Поэтому в случае невозможности использования аппаратного контроллера можно организовать программный RAID.

Для его поддержки необходимо включить опции ядра в разделе Device Drivers -> Multi-device support (RAID and LVM) -> Multiple devices driver support (RAID and LVM) -> RAID support. Здесь нужно выбрать опции в зависимости от потребностей (RAID-0, RAID-1, RAID-10 и т.д.). Одна из наиболее популярных утилит для работы с RAID называется mdadm. Более подробно о ней, а также вообще о программном RAID, можно узнать на http://www.tldp.org/HOWTO/Software-RAID-HOWTO.html

Драйверы аппаратных RAID-контроллеров находятся в разделах Device Drivers -> Block devices, Device Drivers -> ATA/ATAPI/MFM/ RLL support, Device Drivers -> SCSI device support -> SCSI low-level drivers, Device Drivers -> SCSI device support -> SCSI low-level drivers -> Serial ATA (SATA) support. USB За поддержку USB отвечает раздел «Device Drivers» -> «USB support». В подразделе «Support for Host-side USB» производится основная кон фигурация USB, обычно тут следует выбирать «EHCI HCD (USB 2.0)

support» для поддержки USB 2.0 и «UHCI HCD (most Intel and VIA)
support» для поддержки USB 1.1.

Поддержка USB-принтеров включается через «USB Printer support». После компилирования ядра с этой опцией и установки драйверов принтера (при необходимости) с принтером можно работать как обычно, например, с помощью CUPS.

Особый интерес представляют так называемые «USB Storage» – всевозможные накопители, подключаемые через USB. Одной из наиболее полезных разновидностей таких накопителей являются флеш-карты, например, карты SD, используемые в фотоаппаратах, плейерах, прин- терах и прочей микропроцессорной технике. Считывание и записывание данных с таких карт происходит с помощью адаптера карт памяти (кард-ридера).

Для включения поддержки «USB Storage» отметьте опцию SCSI disk support раздела Device Drivers -> SCSI device support, а также опцию USB Mass Storage support из раздела Device Drivers -> USB support. Если у вас какой-то специфичный кард-ридер, здесь можно найти набор подопций для конкретных моделей, но в большинстве случаев должно работать и так.

Если с опцией USB Mass Storage support всё понятно, то необходимость включения SCSI disk support требует некоторой аргументации. Так вот, это делается потому, что взаимодействие с USB-накопителем происходит посредством эмуляции SCSI, а соответствующие дисковые разделы имеют названия /dev/sda1, /dev/sdb1 и т.д.

Работа с устройствами происходит обычным образом. Сначала создаётся точка монтирования, затем монтируется само устройство:

# mkdir /mnt/flash
# mount /dev/sda1 /mnt/flash
# ls /mnt/flash
# umount /mnt/flash

Также существует альтернативный драйвер для USB-накопителей. Называется он Low Performance USB Block driver и находится в разделе Device Drivers -> Block devices. При его использовании разделы именуются не /dev/sda1, /dev/sdb1 и т. д., а /dev/uba1, /dev/ubb1 и т. д. Это низкопроизводительный драйвер. Он медленнее «USB Mass Storage support», но более надёжный. Этот драйвер работает в обход эмуляции SCSI. Благодаря тому, что он реализует только самые необходимые для работы функции, с его помощью можно заставить работать более широкий спектр устройств. Поэтому, если ваше устройство не работает с «USB Mass Storage support», попробуйте этот драйвер.

FireWire

FireWire (она же IEEE 1394, она же i.Link) – шина, по которой происходит обмен данными внешних устройств и компьютера со скоростью до 400 Мбит/с. Наболее распространённое её применение – это передача видео с цифровой (DV) видеокамеры и организация сети Ethernet.

Поддержка этой шины включается в разделе Device Drivers -> IEEE 1394 (FireWire) support -> IEEE 1394 (FireWire) support. Большинство карт соответствует спецификации OHCI-1394, поэтому включите опцию «OHCI-1394 support».

Для работы с DV-камерами нужно также включить опции «OHCI-1394 Video support», «OHCI-1394 I/O support» и «Raw IEEE1394 I/O support». После этого можно будет воспользоваться такими программами для захвата и редактирования видео, как Kino (http://www.kinodv.org), Cinelerra (http://heroinewarrior.com/cinelerra.php3), MainActor (http://www.mainconcept.com/mainactor.shtml) и другими. Не забудьте сделать деинтерлейсинг изображения, полученного с DV-камеры (что такое деинтерлейсинг, можно прочитать в энциклопедии – http://en.wikipedia.org/wiki/Deinterlacing).

С помощью FireWire можно также организовать сеть Ethernet. Для этого нужно включить опцию Ethernet over 1394. В таком случае можно будет соединить две Linux-станции посредством FireWire. Для работы с системами Windows XP и Mac OS X необходимо также включить опцию Build in extra config rom entries for certain functionality -> IP-1394 Entry (NEW)». По стандарту длина кабеля не должна превышать 4.5 м. С помощью удлинителей можно довести длину кабеля до 10 м, но это уже нестандартное решение, поэтому с ним возможны проблемы. Хотя FireWire и выигрывает в скорости у стандарта 100BaseT (100 Мбит/с, длина кабеля до 100 метров), он проигрывает в расстоянии, а с появлением Gigabit Ethernet соединение посредством FireWire проигрывает во всём. Одним из наиболее оправданных случаев применения Ethernet-сети на базе FireWire является соединение ноутбука с настольным компьютером, т.к. современные ноутбуки обычно комплектуются портом FireWire.

Персональные инструменты
купить
подписаться
Яндекс.Метрика