Fehler bei der Kompilierung des FreeBSD 8.0-Kernels

1545
JBirch

Beim Versuch, meinen eigenen Kernel für FreeBSD 8.0 zu kompilieren, treten Probleme auf. Ich kann den GENERIC-Kernel nicht einmal ohne Änderungen neu kompilieren!

Die letzten Zeilen, bevor ich Fehler bekomme, make dependsind ...

../../../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. 

Dies wiederum ohne Änderungen am GENERIC-Kernel. Mein benutzerdefinierter Kernel fügt nur VESA und SC_PIXEL_MODE hinzu, aber auf dieselbe Weise Fehler.

EDIT: Interessanterweise make cleandependbekomme ich beim Laufen die folgende Ausgabe, obwohl auf einem amd64-Computer kompiliert und FreeBSD installiert wurde.

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. 

Jeder Einblick wäre sehr dankbar :)

BEARBEITEN:

Ausgabe von uname -ais

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 

und ich habe Angst /usr/make.confund /usr/src.confexistiert nicht. Ich habe die relevanten Manpages aufgerufen, aus denen hervorgeht, dass sie sich normalerweise dort aufhalten /etc/, aber sie existierten dort auch nicht.

1

1 Antwort auf die Frage

0
BCran

Anscheinend versucht das System, einen i386-Kernel auf Ihrem amd64-System zu erstellen. Kannst du die Ausgabe von "uname -a", den Inhalt von /usr/make.conf und /usr/src.conf bitte posten?

Update :

Nachdem Sie die ursprüngliche Frage erneut gelesen haben, scheint es, als würden Sie den im Handbuch beschriebenen Standarderstellungsprozess nicht befolgen, was wahrscheinlich der Grund ist, warum Dinge schief laufen. Sie sollten make buildkerneleinen neuen Kernel erstellen und make installkernelinstallieren. make dependetc. werden intern als Teil des Builds ausgeführt, müssen jedoch seit den 4.x-Tagen nicht manuell ausgeführt werden.

Ich habe darüber nachgedacht, aber ich hätte gedacht, dass Sie einen 32-Bit-Kernel auf einem 64-Bit-System erstellen können. Na ja, ich werde meinen ursprünglichen Beitrag mit der Ausgabe und dem Inhalt oben bearbeiten. JBirch vor 13 Jahren 0
Ich habe meine Antwort auf der Grundlage der erneute Lektüre der Frage aktualisiert: Sie sollten "make depend" nicht ausführen - alles was Sie brauchen ist "make buildkernel". BCran vor 13 Jahren 0
Das scheint den Kernel zu kompilieren! Danke für die Klarstellung. JBirch vor 13 Jahren 0