5.5. Если, что-нибудь не получается

Существует четыре категории проблем, возникающих при построении ядра. Это следующие категории:

Не работает команда Config
Если команда config рушится когда вы даете ей описание ядра, то, скорее всего, у вас какая-нибудь простенькая ошибка. К счастью, config печатает номер строки, в которой что-то не так, поэтому при помощи текстового редактора, например vi, вы быстренько доберетесь до этого места в конфигурационном файле. Например, если вы увидите слелующее:
	config: line 17: syntax error
то вы сможете, в vi, добраться до этого места написав ``17G'' в командном режиме. Убедитесь в том, что ключевые слова написаны правильно, сверившись с файлом GENERIC или другим справочником.
Неудачно завершается команда make
Если рушится команда make, то чаще всего это говорит об ошибках в конфигурационном файле, которые не были обнаружены при выполнении команды config. Еще раз просмотрите файл конфигурации, и если не смогли обнаружить ошибку, то пошлите почту в список рассылки FreeBSD, в котором рассматриваются общие вопросы freebsd-questions@FreeBSD.ORG в письме изложите конфигурацию вашего ядра, обычно они отвечают достаточно быстро.
Ядро не загружается
Если ваше новое ядро не желает загружаться, или не распознает устройства, не паникуйте! К счастью, у BSD существует отличный механизм для возвращения работоспособности системы в случае неподходящих ядер. Просто, в приглашении загрузки FreeBSD, напишите название ядра, которое вы хотите загрузить (например ``kernel.old''), вместо того, чтобы просто нажать ``Enter''. При переконфигурировании ядра, неплохо сохранять работающее ядро.

После загрузки при помощи хорошего ядра, вы можете проверить конфигурационный файл и попробовать построить ядро заново. Наш очень хороший помощник файл /var/log/messages, в котром записываются, среди прочего, все сообщения ядра, при каждой удачной загрузке. Кроме того, команда dmesg(8) выводит все сообщения ядра текущей загрузки.

Замечание: если у вас проблемы с построением ядра, то обязательно сохраните ядро GENERIC, или какое-то другое ядро, про которое известно, что оно работает; причем это ядро стоить сохранить под названием, которое не забудется при следующих построениях. Вы не можете полагаться на kernel.old потому что при установке нового ядра, kernel.old становится копией последнего установленного ядра, которое могло быть нефункциональным. Кроме того, передвиньте работающее ядро в правильное место размещения ядер, иначе такие команды как ps(1) не будут работать правильно. Правильная команда ``разблокировки'' файла ядра, котоый команда make установила (для того, чтобы передвинуть другое ядро насовсем) это:

	# chflags noschg /kernel
И если вы хотите ``заблокировать'' ваше новое ядро, т.е. передвинуть его в другое место или в какой-нибудь файл, то это нельзя делать при помощи следующей команды:
	# chflags schg /kernel
Ядро работает, но не работает ps!
Если вы установили версию ядра, отличающуюся от той версии, с помощью которой были построены системные утилиты, например экспериментальное ядро ``2.2.0'' в системе 2.1.0-RELEASE, многие системные команды, как например ps(1) и vmstat(8) не будут работать совсем. Вы должны перекомпилировать библиотеку libkvm также, как и те утилиты. Это одна из причин почему плохо использовать версию ядра отличную от всей остальной операционной системы.

Назад | Содержание | Вперед

Обновлено: 13.03.2015