Chapter 6. Конфигурирование ядра

Я хочу изменить настройки ядра. Это сложно?
Я не могу скомпилировать ядро. Отсутствует _hw_float.
Конфликты прерываний при включении поддержки многопортовыx коммуникационных адаптеров.
Как включить поддержку накопителей QIC-40/80?

Q: Я хочу изменить настройки ядра. Это сложно?

A: Вовсе нет! Обратитесь к соответствующему разделу Руководства, который посвящён этому вопросу.

ЗАМЕЧАНИЕ: Рекомендуем сохранить копию вашего ядра в файл kernel.YYMMDD после того, как вы получите рабочую версию, для того, чтобы в следующий раз, если вы испортите что-либо в вашем конфигурационном файле, вы смогли загрузить это ядро, вместо того, чтобы начинать снова с kernel.GENERIC. Это, в частности, имеет смысл, если вы производите загрузку системы с контроллера, который не поддерживается в стандартном ядре GENERIC (из моего личного опыта).

Q: Я не могу скомпилировать ядро. Отсутствует _hw_float.

A: Позвольте мне угадать. Вы, наверное, удалили npx0 из вашего файла конфигурации ядра, потому что у вас нет сопроцессора, да? А вот и неправильно! :-) Строка npx0 ОБЯЗАТЕЛЬНА. Даже если у вас нет математического сопроцессора, вы должны включить поддержку npx0.

Q: Конфликты прерываний при включении поддержки многопортовыx коммуникационных адаптеров.

A: Q. Когда я компилирую ядро с поддержкой многопортовых коммуникационных адаптеров, сообщается, что только первый порт будет тестироваться, а все остальные пропускаются из-за конфликтов прерываний. Как это исправить?

A. Проблема состоит в том, что во FreeBSD встроен код, предохраняющий ядро от аппаратных и программных конфликтов. Вам нужно убрать указания IRQ на всех портах, кроме одного. Например:

════════#
════════#═Высокоскоростной═коммуникационный═адаптер═-═16550═UARTS
════════#
════════device═sio2═at═isa?═port═0x2a0═tty═irq═5═flags═0x501═vector═siointr
════════device═sio3═at═isa?═port═0x2a8═tty═flags═0x501═vector═siointr
════════device═sio4═at═isa?═port═0x2b0═tty═flags═0x501═vector═siointr
════════device═sio5═at═isa?═port═0x2b8═tty═flags═0x501═vector═siointr
══════

Q: Как включить поддержку накопителей QIC-40/80?

A: Раскомментируйте следующую строку в файле конфигурации стандартного ядра (или добавьте ее в конфигурационный файл вашего ядра), добавьте ``flags 0x1'' к строке, содержащей fdc и перекомпилируйте ядро.

controller══fdc0══at═isa?═port═"IO_FD1"═bio═irq═6═drq═2═flags═0x1═vector═fdintr
disk════════fd0═══at═fdc0═drive═0═══════════════════════^^^^^^^^^
disk════════fd1═══at═fdc0═drive═1
#tape═══════ft0═══at═fdc0═drive═2
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
══════

Затем создайте устройство с именем /dev/ft0, перейдя в каталог /dev и запустив команду

════════sh═./MAKEDEV═ft0
══════

для первого устройства, ft1 для второго и так далее.

У вас появится устройство с именем /dev/ft0, на которое вы можете производить запись с помощью специальной программы управления, называющейся ``ft'' - за дополнительной информацией обратитесь к странице справочника по ft.

Версии операционной системы, предшествующие -CURRENT, имеют огрехи, связанные с качеством носителя. Если у вас появились проблема, когда ft прокручивает ленту туда-сюда на одном и том же месте, попробуйте взять последнюю версию программы ft с /usr/src/sbin/ft из -CURRENT и попробовать её.



Banner.Novgorod.Ru