Linux: Полное руководство
Шрифт:
7.4. Подключение и конфигурирование аппаратных устройств
7.4.1. Ядро и поддержка устройств
Ядро ОС Linux может быть собрано как монолитное или модульное. Монолитное ядро — это один большой файл, в который включены сразу все возможности, заложенные в данную версию ядра. Оно без всяких изменений находится в оперативной памяти от запуска до остановки системы.
В модульном же варианте
Раньше, в первых версиях ядра Linux, механизм работы с модулями не был предусмотрен, и ядра тех времен содержали в себе код драйверов для всех поддерживаемых устройств. Такое решение нельзя было назвать рациональным: невозможно предусмотреть, какие устройства будут установлены у конечного пользователя, даже если включить в состав ядра драйверы всех известных устройств. Кроме того, даже если нужное устройство (скажем, звуковая плата Yamaha) ядром распознается, то драйверы остальных устройств того же назначения будут впустую занимать оперативную память. Поэтому, начиная с версии 2.0, ядро Linux поддерживает модульную организацию и из дистрибутива, основанного на ядре 2.x, ставится в модульном виде.
При этом, кроме файла образа ядра
Перед тем, как устанавливать новое оборудование, нужно убедиться, что ядро поддерживает ваше устройство. Если это не так, нужно пересобрать ядро, включив поддержку нового устройства. Можно со стопроцентной уверенностью сказать, что ваше ядро будет поддерживать вашу сетевую плату RTL8139 или любую другую, совместимую с NE2K PCI. А вот о поддержке USB-модема или принтера заранее ничего сказать нельзя: пользуйтесь диалоговым конфигуратором ядра (п.7.2.3.1) или загляните в базу поддерживаемого оборудования по адресу
1. Win-модемы, то есть программные модемы, часть функций которых выполняет сама ОС Windows. Я не говорю, что под Linux они вообще не работают, но, потратив уйму времени, даже если вы и настроите этот модем, удовольствия от его работы вы не получите.
2. Win-принтеры — комментарии те же, что и для Win-модемов. Разработчики дешевых устройств, как правило, стараются сэкономить на драйверах для менее распространенных ОС.
3. Экзотические TV- и FM-тюнеры.
7.4.2. Утилиты для работы с модулями
Основу модульной организации ядра составляет возможность динамической загрузки и выгрузки модулей. Обеспечивается эта возможность тем, что, в отличие от обычного приложения, модуль имеет несколько точек входа, исполняемых при установке и удалении модуля из ядра, а также при обработке поступающих от пользователя запросов (рис. 7.6).
Рис. 7.6.
Утилиты, обеспечивающие загрузку, выгрузку и просмотр загруженных модулей, собраны в пакет, который для ядер 2.4.x называется modutils, а для ядер 2.6.x — module-init-tools. Не смешивайте эти пакеты: одноименные утилиты из них конфликтуют друг с другом.
Выполнять эти утилиты может только суперпользователь. В состав обоих пакетов входят:
♦ lsmod — просмотр списка загруженных модулей;
♦ modinfo <имя_модуля> — получение информации о загруженном модуле;
♦ insmod <имя_модуля> — загрузка модуля;
♦ rmmod <имя_модуля> — выгрузка модуля;
♦ depmod — нахождение зависимостей между модулями;
♦ modprobe — загрузка модуля с аргументами и теми модулями, от которых он зависит.
Из сценария инициализации системы вызывается именно modprobe. Эта команда руководствуется конфигурационным файлом
7.4.3. Kudzu — утилита для автоматического определения устройств
В Linux для автоматического определения устройств используется специальная утилита kudzu, названная в честь китайской лианы — злостного сорняка. В дистрибутивы, основанные на Linux Mandrake, вместо нее может входить утилита harddrake. Задача этой утилиты состоит в том, чтобы определить, какие устройства установлены, и добавить в файл
Обычно kudzu запускается при каждом запуске системы из сценария загрузки. Ее работа занимает довольно заметное время, поэтому я рекомендую сразу после установки дистрибутива, когда все устройства уже определены и настроены, отключить ее автоматический запуск. Если вы установите новое устройство, что случается не каждый день, запустите kudzu вручную от имени суперпользователя.
Напоминаю, что отключить автоматический запуск служб можно с помощью диалогового конфигуратора (см.п.7.1) system-config-services или drakxservices, в зависимости от дистрибутива.
Если нужно передать драйверу нового устройства дополнительные параметры, отредактируйте вручную файл
7.4.4. Настройка установленных устройств
Настройка устройства обычно выполняется с помощью диалогового конфигуратора устройств соответствующего типа. Например, для настройки принтера можно запустить system-config-printer в дистрибутивах Fedora, redhat-config-printer в дистрибутивах Red Hat, printerdrake в дистрибутиве Mandrake.