Железная сторона Linux Денис Колисниченко Спецвыпуск: Хакер, номер #051, стр. 051-024-3 Помощники Настройка устройства выполняется с помощью соответствующего конфигуратора. Например, printerdrake – настраивает принтеры в Mandrake, redhat-config-printer – творит то же самое с принтерами в Red Hat. Если ты забыл название конфигуратора, найти нужный конфигуратор очень просто: запусти терминал, введи redhat-config- (если у тебя Red Hat) или drak (если Mandrake) и нажми Tab: перед тобой предстанут почти все конфигураторы, доступные в твоей системе. Почему "почти"? Потому что имена некоторых конфигураторов не начинаются с redhat-config или с drak, например, harddrake. Основные конфигураторы перечислены ниже. Сначала идет название конфигуратора для Mandrake, через запятую - для Red Hat. Основные конфигураторы Mandrake и Red Hat Mandrake Red Hat Основной конфигуратор drakconf setup Настройка железа harddrake2 kudzu Настройка X Window (в том числе монитора и видеокарты) XFdrake redhat-config-xfree86 Настройка сети draknet redhat-config-network Настройка клавиатуры keyboarddrake redhat-config-keyboard Настройка мыши mousedrake redhat-config-mouse Настройка принтера printerdrake redhat-config- printer Модульные утилиты Как правило, в ядро включают только самый необходимый код - загрузочную часть, драйвера самых распространенных устройств и дополнительные пакеты. Поддержку остальных устройств обеспечивают модули, которые подгружаются или динамически, или при старте системы. В принципе, можно вкомпилировать в ядро все необходимые драйверы устройств и тем самым получить систему, не использующую модули, но такие системы - уже совсем другая история. С помощью пакета modutils можно добавить нужный модуль в ядро во время работы системы. При этом перезагружать систему не нужно - устройство начнет работать сразу же после загрузки модуля. В первых версиях ядра Linux механизм работы с модулями не был предусмотрен, и ядра тех незапамятных времен содержали в себе код драйверов для ВСЕХ поддерживаемых устройств. Такое решение рациональным не назовешь. Нельзя предусмотреть, какие устройства будут установлены у конечного пользователя, даже если включить в состав ядра драйверы всех возможных устройств. Предположим, что у пользователя Х установлена звуковая плата Yamaha, а ядро "знает" еще с десяток звуковых плат кроме этой. Один код будет работать всегда, а остальные десять драйверов будут просто занимать оперативную память. Кстати об оперативной памяти: ты можешь представит себе размер ядра, которое содержит драйверы всех устройств? Вот поэтому разработчики ядра Linux и изобрели механизм динамически загружаемых модулей. Модули хранятся на диске в виде объектных файлов (*.o). При необходимости ядро загружает необходимый ему модуль. Откуда ядро знает, какой модуль нужно загружать, а какой - нет? Списки модулей и передаваемых им параметров хранятся в файле /etc/modules.conf (или /etc/conf.modules - в зависимости от дистрибутива и версии ядра). Вот пример этого файла: |