kern.sched.quantum
?Вовсе нет! Обратитесь к соответствующему разделу Руководства, который посвящён этому вопросу.
Замечание: Новый файл kernel будет установлен в каталог /boot/kernel вместе со своими модулями, а старое ядро и его модули будут сдвинуты в каталог /boot/kernel.old, так что если вы допустите ошибку в следующей конфигурации, то сможете загрузить предыдущую версию вашего ядра.
Наверное, вы удалили npx0 (посмотрите справку по npx(4)) из вашего файла конфигурации ядра, потому что у вас нет математического сопроцессора. Устройство npx0 является ОБЯЗАТЕЛЬНЫМ. Где-то в вашем оборудовании всё же присутствует устройство, обеспечивающее поддержку вычислений с плавающей точкой, которое уже не является отдельной микросхемой, как это было в старые добрые времена 386 процессоров. Вы должны включить поддержку устройства npx0. Даже если вам удастся построить ядро без поддержки npx0, оно всё равно не загрузится.
Скорее всего, вы компилировали ядро в отладочном режиме. Ядра, построенные в этом режиме, содержат много символьной информации, которая используется для отладки и сильно увеличивает размер ядра. Заметьте, что уменьшения производительности при использовании отладочного ядра нет или оно незначительно, однако отладочное ядро полезно иметь под рукой на случай аварийного завершения работы системы.
Однако, если вы испытываете нехватку дискового пространства или просто не хотите использовать отладочное ядро, проверьте, что имеют место следующие две вещи:
В конфигурационном файле вашего ядра нет строчки, имеющей такой вид:
makeoptions DEBUG=-g
Вы не запускали утилиту config(8) с опцией
-g
.
В любой из вышеописанных ситуаций ядро будет построено с отладочным режимом. Если же вы точно следуете указанным шагам, то сможете построить обычное ядро и заметите значительное уменьшение его размера; большинство ядер имеют размер от 1.5 Мбайт до 2 Мбайт.
8.4. Почему появляются конфликты прерываний при включении поддержки многопортовых коммуникационных адаптеров.
Когда я компилирую ядро с поддержкой многопортовых коммуникационных адаптеров, сообщается, что только первый порт будет тестироваться, а все остальные пропускаются из-за конфликтов прерываний. Как это исправить?
Проблема состоит в том, что во 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
Есть несколько причин, приводящих к возникновению этой проблемы. Вот они, в случайном порядке:
Вы не используете цели make buildkernel и make installkernel, и ваше дерево исходных текстов отличается от того, которое использовалось для построения работающей в данный момент системы (например, вы выполняете построение 9.1-RELEASE на системе 8.3-RELEASE). Если вы пытаетесь выполнить обновление, то, пожалуйста, прочитайте файл /usr/src/UPDATING, обратив особое внимание на раздел ''COMMON ITEMS'' в его конце.
Вы используете цели make buildkernel и make installkernel, но выполнение цели make buildworld не было завершено. Полное и корректное выполнение цели make buildkernel зависит от файлов, генерирующихся при выполнении цели make buildworld.
Даже если вы пытаетесь построить FreeBSD-STABLE, возможно, что вы скачали дерево исходных текстов в момент, когда оно модифицировалось или было неработоспособно по другим причинам; абсолютно гарантируется построение только релизов, хотя в большинстве случаев FreeBSD-STABLE строится без проблем. Если вы ещё этого не сделали, попробуйте сгрузить дерево исходных текстов повторно и посмотреть, разрешилась ли проблема. Попробуйте использовать другой сервер в случае, если есть проблемы с тем, который вы используете сейчас.
Проверьте существование sysctl-переменной kern.sched.quantum
. Если она у вас есть, то вы должны
увидеть примерно такое сообщение:
% sysctl kern.sched.quantum kern.sched.quantum: 99960
Если sysctl-переменная kern.sched.quantum
существует, то у вас используется планировщик 4BSD (sched_4bsd(4)). Если
это не так, то вы получите сообщение об ошибке, которое выдаст sysctl(8), (и которое
вы можете проигнорировать):
% sysctl kern.sched.quantum sysctl: unknown oid 'kern.sched.quantum'
Название используемого планировщика доступно напрямую в виде значения
sysctl-параметра kern.sched.name
:
% sysctl kern.sched.name kern.sched.name: 4BSD
Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <[email protected]>.
По вопросам, связанным с этой документацией, пишите <[email protected]>.
По вопросам, связанным с русским переводом документации, пишите в рассылку <[email protected]>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.