Выдача указаний драйверам устройств

Многие драйверы устройств требуют, чтобы флаги sysctl были установлены во время начальной загрузки. Узнать о них можно из страниц руководства, из этой книги и из другой документации. Несмотря на то, что эти параметры отсутствуют в файле по умолчанию loader.conf, тем не менее их можно добавлять в локальный loader.conf, чтобы автоматически задавать необходимые значения во время начальной загрузки. Например, чтобы отключить DMA для устройств ATAPI (которые будут рассматриваться в главе 8), достаточно просто поместить требуемое значение параметра sysctl в файл loader.conf:

hw.ata.atapi_dma="0"

Ядро установит этот флаг во время загрузки, и тем самым будет обеспечено желаемое поведение драйвера устройства.

Дополнительно многие устаревшие аппаратные устройства требуют, чтобы ядро обращалось к ним по сигналу прерывания, с четко определенным номером IRQ и по определенным адресам памяти. Если вам достаточно лет, вы должны помнить дискеты для «настройки устройств» и специальные разъемы для подключения плат расширения шин, вы знаете, о чем я говорю, и, возможно, одна из таких систем даже сейчас валяется у вас на заднем дворе. (Если же вы слишком молоды, купите выпить для одного из нас, старикашек, и слушайте1 наши

В действительности, слушать совершенно необязательно.

рассказы, наполненные ужасами.) Можно указать системе FreeBSD на необходимость опробовать все номера IRQ или указанные адреса памяти для работы с этими устройствами, что очень удобно, если имеется карта с известными параметрами настройки, но дискета с ними давно уже превратилась в прах. Загляните в файл /boot/device.hints, где можно увидеть массу записей, таких как показано ниже:

hint. Oed. ©0. ©disabled="1" О hint.ed.0.port="0x280" © hint.ed.0.irq="10" © hint.ed.0.maddr="0xd8000"

Данные записи – это указания для драйвера ed О. Запись предназначена для драйвера ed с номером 0 ©. Ключевое слово disabled © означает, что FreeBSD не будет выполнять проверку этого устройств автоматически, во время загрузки. Если будет найдена другая карта ed, ей может быть присвоен номер устройства 0. Если это устройство будет активировано, FreeBSD попробует обратиться к нему через порт с номером 0x280 ©, по номеру IRQ 10 © и по адресу памяти 0xd8000 ©, и если карта будет обнаружена по указанным адресам, она получит имя устройства edO. Конечно, если карта не поддерживается драйвером сетевых карт ed(4), у вас появятся другие проблемы!

Команда sysctl(8) дает вам власть выполнять настройку ядра, но настройка – это только начало пути. Следующий шаг – управление модулями ядра.

Тестирование настроек, выполняемых во время загрузки

Все эти указания драйверам и настройки, выполняемые во время загрузки, можно производить в интерактивном режиме, в командной строке загрузчика, о которой рассказывалось в главе 3. Вы можете протестировать настройки без редактирования файла loader.conf, отыскать правильное значение и только после этого сохранить его в файле.

Источник: ЛукасМ. FreeBSD. Подробное руководство, 2-е издание. – Пер. с англ. – СПб.: Символ- Плюс, 2009. – 864 е., ил.

Похожие посты:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий