FAQ FreeBSD
Страница 31. Ядро


 

6. Ядро

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

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

6.3. Почему моё ядро такое большое (больше 10МБ)?

Скорее всего, вы компилировали ядро в отладочном режиме. Ядра, построенные в
этом режиме, содержат много символьной информации, которая используется для
отладки и сильно увеличивает размер ядра. Заметьте, что, если вы работаете с
FreeBSD версии 3.0 и старше, то уменьшения производительности при использовании
отладочного ядра нет или оно незначительно, однако отладочное ядро полезно
иметь под рукой на случай аварийного завершения работы системы.
Однако, если вы испытываете нехватку дискового пространства или просто не
хотите использовать отладочное ядро, проверьте, что имеют место следующие две в
ещи:
  * В конфигурационном файле вашего ядра нет строчки, имеющей такой вид:
        makeoptions DEBUG=-g
  * Вы не запускали утилиту config с опцией -g.

Обе из вышеперечисленных ситуаций приведут к построению ядра в отладочном
режиме. Если же вы точно следуете указанным шагам, то сможете построить обычное
ядро и заметите значительное уменьшение его размера; большинство ядер имеют
размер от 1.5МБ до 2МБ.

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

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

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

Раскомментируйте следующую строку в файле конфигурации стандартного ядра (или
добавьте ее в конфигурационный файл вашего ядра), добавьте 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 и попробовать её.

 
« Предыдущая статья