![]() | |||||
Глава 8. Конфигурирование ядра
Вовсе нет! Обратитесь к соответствующему разделу Руководства, который посвящён этому вопросу.
Наверное, вы удалили npx0 (посмотрите справку по npx(4)) из вашего файла конфигурации ядра, потому что у вас нет математического сопроцессора. Устройство npx0 является ОБЯЗАТЕЛЬНЫМ. Где-то в вашем оборудовании всё же присутствует устройство, обеспечивающее поддержку вычислений с плавающей точкой, которое уже не является отдельной микросхемой, как это было в старые добрые времена 386 процессоров. Вы должны включить поддержку устройства npx0. Даже если вам удастся построить ядро без поддержки npx0, оно всё равно не загрузится. Скорее всего, вы компилировали ядро в отладочном режиме. Ядра, построенные в этом режиме, содержат много символьной информации, которая используется для отладки и сильно увеличивает размер ядра. Заметьте, что уменьшения производительности при использовании отладочного ядра нет или оно незначительно, однако отладочное ядро полезно иметь под рукой на случай аварийного завершения работы системы. Однако, если вы испытываете нехватку дискового пространства или просто не хотите использовать отладочное ядро, проверьте, что имеют место следующие две вещи:
В любой из вышеописанных ситуаций ядро будет построено с отладочным режимом. Если же вы точно следуете указанным шагам, то сможете построить обычное ядро и заметите значительное уменьшение его размера; большинство ядер имеют размер от 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 Есть несколько причин, приводящих к возникновению этой проблемы. Вот они, в случайном порядке:
Если вы работаете с FreeBSD версии 5.2.1 или более ранней, проверьте существование sysctl-переменной kern.quantum. Если она у вас есть, то вы должны увидеть примерно такое сообщение: % sysctl kern.quantum kern.sched.quantum: 99960 Если sysctl-переменная kern.quantum существует, то у вас используется планировщик 4BSD. Если это не так, то вы получите сообщение об ошибке, которое выдаст sysctl(8), (и которое вы можете проигнорировать): % sysctl kern.sched.quantum sysctl: unknown oid 'kern.sched.quantum' Во FreeBSD версий 5.3-RELEASE и выше название используемого планировщика доступно напрямую в виде значения sysctl-параметра kern.sched.name: % sysctl kern.sched.name kern.sched.name: 4BSD kern.quantum определяет максимальное количество тактов, которое процесс может выполняться, не будучи прерванным. Этот параметр специфичен для планировщика 4BSD, так что вы можете использовать его наличие для определения типа используемого планировщика. Во FreeBSD версий 5.X и выше параметр kern.quantum был переименован в kern.sched.quantum. Обратитесь к В: 8.7. Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ | |||||
2008 © osinf.ru, при публикации активная ссылка обязательна. |