1

Когда я пытаюсь скомпилировать свое собственное ядро для FreeBSD 8.0, у меня возникают некоторые проблемы. На самом деле, я даже не могу пересобрать ядро GENERIC без изменений!

Последние несколько строк перед тем, как я получаю сообщения об ошибках при запуске make depend :

../../../amd64/amd64/genassym.c:227: error: 'struct pcpu' has no member named 'pc_tss'
../../../amd64/amd64/genassym.c:241: error: 'GUCODE32_SEL' undeclared here (not in a function)
../../../amd64/amd64/genassym.c:242: error: 'GUFS32_SEL' undeclared here (not in a function)
../../../amd64/amd64/genassym.c:243: error: 'GUGS32_SEL' undeclared here (not in a function)
../../../amd64/amd64/genassym.c:246: error: 'SEL_RPL_MASK' undeclared here (not in a function)
*** Error code 1

Stop in /usr/src/sys/i386/compile/GENERIC.

Это, опять же, без изменений в ядре GENERIC. Мое собственное ядро добавляет только VESA и SC_PIXEL_MODE, но ошибки точно так же.

РЕДАКТИРОВАТЬ: Довольно интересно, что при запуске make cleandepend я получаю следующий вывод, несмотря на компиляцию на машине amd64 и установку FreeBSD.

rm -f .depend machine amd64 cd ../../../modules; MAKEOBJDIRPREFIX=/usr/src/sys/i386/compile/SANDERS/modules KMODDIR=/boot/kernel DEBUG_FLAGS="-g" MACHINE=i386 KERNBUILDDIR="/usr/src/sys/i386/compile/SANDERS" SYSDIR="/usr/src/sys/i386/compile/SANDERS/../../.." make  cleandepend
===> aac (cleandepend) rm -f @ machine amd64 rm -f .depend GPATH GRTAGS GSYMS GTAGS
===> accf_data (cleandepend) rm -f @ machine amd64 rm -f .depend GPATH GRTAGS GSYMS GTAGS
===> accf_dns (cleandepend) rm -f @ machine amd64 rm -f .depend GPATH GRTAGS GSYMS GTAGS
===> accf_http (cleandepend) rm -f @ machine amd64 rm -f .depend GPATH GRTAGS GSYMS GTAGS
===> acpi (cleandepend)
===> acpi/acpi (cleandepend) "Makefile", line 4: "ACPI can only be compiled into the kernel on the amd64 and ia64 platforms"
*** Error code 1

Stop in /usr/src/sys/modules/acpi.
*** Error code 1

Stop in /usr/src/sys/modules.
*** Error code 1

Stop in /usr/src/sys/i386/compile/SANDERS.

Любое понимание будет высоко ценится :)

РЕДАКТИРОВАТЬ:

Вывод uname -a есть

FreeBSD jbirch.net 8.0-RELEASE FreeBSD 8.0-RELEASE #0: Sat Nov 21 15:02:08 UTC 2009     root@mason.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  amd64

и я боюсь, что /usr/make.conf и /usr/src.conf не существует. Я поднял соответствующие справочные страницы, в которых говорилось, что они обычно находятся в /etc/ , но их там тоже не было.

1 ответ1

0

Похоже, система пытается собрать ядро i386 в вашей системе amd64. Можете ли вы опубликовать вывод "uname -a", содержимое /usr/make.conf и /usr/src.conf, пожалуйста?

Обновление:

Перечитав исходный вопрос, вы обнаружите, что вы не следуете стандартному процессу сборки, описанному в Руководстве, поэтому, вероятно, все идет не так. Вы должны запустить make buildkernel для сборки нового ядра и make installkernel для его установки; make depend и т. д. запускаются как часть внутренней сборки, но запускать их вручную с 4х дней не требуется.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .