Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

Мини-HOWTO: Linux kerneld
Пред.След.

Устройства, требующие специальной настройки

Некоторые устройства требуют небольшой дополнительной настройки помимо обычных псевдонимов вида устройство-модуль.

Символьные устройства с главным номером 10: Мыши, сторожевые псы (watchdogs) и генераторы случайных чисел

Обычно периферийные устройства определяются при помощи их главных номеров, например ftape имеет главный номер (major) 27. Однако, если вы взглянете в каталог /dev, и поищете там символьные устройства с главным номером 10, вы увидите там набор абсолютно разных устройств, включая:

  • Мыши, подключенные к различным портам (шинная мышь (busmouse), PS/2-мыши)

  • Сторожевые псы (watchdog)

  • Генератор случайных чисел ядра random

  • Интерфейс расширенного управления питанием APM (Advanced Power Management)

Очевидно, что эти устройства контролируются несколькими различными модулями, а не одним. Поэтому, для настройки конфигурации kerneld для этих разнообразных устройств необходимо указать не только главное, но и дополнительное (minor) число:

        alias char-major-10-1 psaux     # Для мыши PS/2
        alias char-major-10-130 wdt     # Для сторожевого пса (watchdog) WDT

Для этого вам понадобится ядро версии не ранее 1.3.82; более ранние версии не передавали дополнительное число kerneld. Таким образом, kerneld не может выяснить, какому конкретно из подобных устройств понадобился соответствующий модуль.

Загрузка драйверов SCSI: Строка scsi_hostadapter

Драйвера SCSI-устройств состоят из двух частей: драйвера SCSI-адаптера (например, Adaptec 1542) и драйвера конкретного SCSI-устройства, которое вы используете, например, жесткий диск, CD-ROM или стриммер. Все это может быть загружено в виде модулей. Но при этом, если вы хотите обратиться, например, к CD-ROM-у, подключенному к SCSI-адаптеру Adaptec, ядро и kerneld знает лишь то, что необходимо загрузить модуль sr_mod для поддержки SCSI CD-ROM-ов - ему не известно, к какому SCSI-контроллеру подключен этот CD-ROM, и, соответственно, не известно какой модуль загружать для поддержки SCSI-контроллера.

Для разрешения этой проблемы можно добавить строку в /etc/conf.modules, в которой будет указано, который из многих доступных модулей драйверов SCSI-контроллеров надо загружать:

        alias scd0 sr_mod               # sr_mod для SCSI CD-ROM-а ...
        alias scsi_hostadapter aha1542  # ... требует драйвер SCSI Adaptec

Это работает только с ядрами версии 1.3.82 и выше.

Кроме того, это работает, если у вас только один SCSI-контроллер. Если у вас их несколько, то все немного усложняется.

В общем случае, нельзя заставить kerneld загрузить драйвер SCSI-адаптера, если драйвер для другого SCSI-адаптера уже загружен - вы должны либо встроить оба драйвера в ядро (не в модули), или загружать модули вручную.

Подсказка

Правда, существует способ заставить kerneld загружать несколько SCSI-драйверов. James Tsiao подсказал решение

Вы можете просто заставить kerneld загружать второй scsi-драйвер, установив зависимости в файле modules.dep вручную. Туда просто нужно добавить следующее:

      /lib/modules/2.0.30/scsi/st.o: /lib/modules/2.0.30/scsi/aha1542.o

Чтобы заставить kerneld загружать aha1542.o до загрузки st.o. Мой домашний компьютер настроен в точности так, как указано выше, и он прекрасно работает для всех моих дополнительных scsi-устройств, включая стриммер, cd-rom, и стандартные scsi-устройства. Трудность состоит в том, что команда depmod -a не может определить эти зависимости автоматически, поэтому необходимо добавлять их вручную, и при этом не запускать depmod -a при загрузке. Но после настройки kerneld прекрасно будет загружать aha1542.o.

Нужно помнить, что такой механизм работает, если у вас разные виды SCSI-устройств на разных SCSI-контроллерах, например, жесткие диски на одном, а CD-ROM-ы, стриммеры и прочие на другом.

Когда недостаточно просто загрузить модуль: Строка post-install

Иногда, простой загрузки модуля недостаточно для того, чтобы все нормально работало. Например, если у вас драйвер звуковой платы собран в виде модуля, то очень часто требуется установить необходимый уровень громкости звука. Только проблема состоит в том, что установки громкости обнуляются при следующей загрузке модуля. Ниже приведен способ решения от Ben Galliart ():

Конечное решение требует установки пакета setmix А затем добавим следующую строку к файлу /etc/conf.modules:

post-install sound /usr/local/bin/setmix -f /etc/volume.conf

Таким образом, после загрузки модуля звуковой платы, kerneld запускает команду, указанную в строке post-install sound. В результате звуковой модуль будет настроен командой /usr/local/bin/setmix -f /etc/volume.conf.

Этот путь можно использовать и для других модулей, например, модуль lp можно настроить программой tunelp, добавив строку

        post-install lp tunelp options

Для того, чтобы kerneld обработал эти опции, вам необходим kerneld версии 1.3.69f или выше.

Замечание

В более старых версиях этого мини-HOWTO упоминалась опция "pre-remove", которая могла использоваться для запуска команды до выгрузки модуля. Однако, она никогда не работала и ее использование вообще сомнительно - наиболее вероятно, что эта опция исчезнет из следующего релиза kerneld. Вся система "настроек" модулей сейчас претерпевает некоторые изменения, и поэтому могут появиться некоторые различия на момент чтения вами этого документа


Пред.НачалоСлед.
Как kerneld определяет, какой модуль загружать? Наблюдение за действиями kerneld
Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...