in welcher Reihenfolge "installieren"

karme

Well-Known Member
Moin Community,
bitte nicht gleich zerreissen, falls schon mal irgendwo gefragt (ich finde leider nix dazu)
Ich möchte die 5.1 inst., danach auf 5.2 upgraden (keine Gelegenheit jetzt die 5.2 auf CD zu ziehen) und irgendwie komme ich mit der Reihenfolge nicht ganz klar.

Hier mal meine geplante und auch schon begonnene Vorgehensweise:
1. Minimalinstallation
2. cvs inst. mit: pkg_add -r cvsup-without-gui
3. ports inst. mit: cvsup -g -L 2 /root/sys/ports-supfile
4. System von 5.1 auf 5.2 ziehen bzw. die Sourcen ziehen
dazu im cvs-supfile festlegen: *default release=cvs tag=RELENG_5_2 dann ein: cvsup -g -L 2 /root/sys/cvs-supfile

soweit sogut, das ist klar, wobei ich nicht genau weiß ob das die optimale Reihenfolge ist???

Aber wie weiter, da bin ich etwas verwirrt.
Folgendes habe ich unter anderm gefunden:

1. /usr/src/less UPDATING (LESEN ob sich was grundlegendes verändert hat)
2. cp -Rp etc/ etc.OLD/
3. cp -Rp /var/db/ /var/db.OLD/
3. cd /usr/obj
--> chflags -R noschg *
--> rm -rf *
4. cd /usr/src
--> make buildworld
--> make buildkernel KERNCONF=$wie_immer_Deine_kernconf_unter_/usr/src/sys/i386/conf_auch_heisst
--> make installkernel KERNCONF=$wie_bei_buildkernel
--> make installworld
--> cd usr.sbin/sysinstall
--> make install clean
--> mergemaster (AUFPASSEN!)
--> /usr/src/make clean
5. reboot

Im Handbuch ist die Reihenfolge etwas anders beschrieben

Fragen:
1. In welchen Leveln soll das ablaufen, ich finde unterschiedliche Aussagen... SingleUser oder MultiUser??
2. Welche Dateien muss ich für make buildworld, make buildkernel bearbeiten (soweit ich verstanden habe für install.. nicht)
3. Im Handbuch steht unter Pkt. 21.4.7, das man den Generic Kernel bauen soll, dann in SingleUser, dann neuen Kernel bauen - wie ist denn das zu verstehen??? Bau ich den hier nochmal oder den angepassten?? Wenn ja, wie baue ich den Generic und dann den angepassten?? Was heißt eigentlich Generic?

Soweit erstmal, ich hoffe die Fragen sind nicht allzu blöd, aber ich finde oder verstehe das Gefundene nicht richtig.

Danke, schon mal im voraus
 
Wenn du die UPDATING liest, wirst du lesen das du einen Kernel von 5.2-rc1 bauen, danach damit starten und erst dann ein make installworld beginnen sollst.
zu Frage 1: Bis auf make installworld kann alles im Multiuser-Level stattfinden, man sollte aber nach Handbuch schon für das "chflags -R noschg *" in den Singleuser gehen.
zu Frage 3: Generic bezeichnet den Kernel der standardmäßig installiert wird, darin sind keine Optimierungen oder spezielle Hardwareanpassungen enthalten - der sollte immer zum laufen zu bringen sein. Dashalb auch der zwischen Schritt. Generic bauen und installieren, booten, angepassten Kernel bauen und installieren und booten.
 
Zuletzt bearbeitet:
Danke erstmal für Deine Antwort

Im UPDATING steht, das man zuerst build world, dann Kernel.. machen soll??
Muß ich vor build world irgendwelche Dateien bearbeiten?
Wie baue ich Generic..., der 5.1 ist ja da, aber wie mache ich jetzt einen 5.2???
Bei mir ist in /usr/obj gar nix drin, ist das richtig?
 
Das in /usr/obj nichts ist, liegt vermutlich daran, das du noch nichts mit dem System gebau hast.
Normalerweise sollte ein Vorgehen nach Handbuch ausreichen, da müssen keine Dateien bearbeitet werden.
einen Generic-Kernel baust du (sofern du nichts in /usr/src/sys/${architektur}/conf/GENERIC geändert hast) mit "make buildkernel KERNCONF=GENERIC" da du das ja machst nachdem du die Sourcen von 5.2-rc1 gezogen hast, wirst du damit einen Kernel für 5.2-rc1 bauen.
In UPDATING steht, das du erst einen Kernel von 5.2 bauen und booten sollst bevor du eine 5.2-welt installierst. Die binarys die es in der 5.2er-Welt gibt verursachen Probleme wenn du von einem 5.1er-Kernel bootest. Deshalb erst den neuen Kernel booten und dann die Welt installieren.
Und UPDATING genau(!) lesen.
 
Also bei mir steht da:
You should build world, then build and boot the new kernel BEFORE doing a 'installworld' ....

Hab jetzt ein "make buildkernel KERNCONF=GENERIC" in /usr/ncvs/src gemacht, da kommen ein Haufen warnings, dann bricht er ab.
Ich seh mal zu, das ich die Meldungen auf die Maschine bekomme.
 
Hier die Fehlermeldung:
# make buildkernel KERNCONF=GENERIC
"Makefile.inc1", line 745: warning: String comparison operator should be either == or !=
"Makefile.inc1", line 745: Malformed conditional ((!defined(NO_RESCUE) || defined(RELEASEDIR)) &&
(${TARGET_ARCH} != ${MACHINE_ARCH} || ${BOOTSTRAPPING} < 501101))
"Makefile.inc1", line 745: Missing dependency operator
"Makefile.inc1", line 747: if-less endif
"Makefile.inc1", line 747: Need an operator
make: fatal errors encountered -- cannot continue
*** Error code 1

Stop in /usr/ncvs/src.
 
hab das cvsup nochmal gemacht und alles dahin verschoben, wo es in den Beschreibungen steht.
Also nicht mehr /usr/ncvs/src sondern /usr/src

Geht aber trotzdem nicht
 
gestern habe ich nochmals alles aktualisiert und ein make buildworld gemacht, danach einen angepassten Kernel, der auch nach mehrmaligen Versuchen abgebrochen ist. Z.Z. lasse ich ein GENERIC laufen, mal sehen was da raus kommt.
Hier erstmal, die Sequenz, mit der er abgebrochen hat:

cc -shared -nostdlib hack.c -o hack.So
rm -f hack.c
sh /usr/src/sys/conf/newvers.sh VINESMB
cc -c -O -pipe -march=pentium2 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -fformat-extensions -std=c99 -nostdinc -I- -I. -I/usr/src/sys -I/usr/src/sys/contrib/dev/acpica -I/usr/src/sys/contrib/ipfilter -I/usr/src/sys/contrib/dev/ath -I/usr/src/sys/contrib/dev/ath/freebsd -I/usr/src/sys/contrib/ngatm -D_KERNEL -include opt_global.h -fno-common -finline-limit=15000 -fno-strict-aliasing -mno-align-long-strings -mpreferred-stack-boundary=2 -ffreestanding -Werror vers.c
linking kernel
umass.o: In function `umass_cam_attach_sim':
umass.o(.text+0x17f3): undefined reference to `cam_simq_alloc'
umass.o(.text+0x1844): undefined reference to `cam_sim_alloc'
umass.o(.text+0x1853): undefined reference to `cam_simq_free'
umass.o(.text+0x1875): undefined reference to `xpt_bus_register'
umass.o: In function `umass_cam_rescan_callback':
umass.o(.text+0x18a3): undefined reference to `xpt_free_path'
umass.o: In function `umass_cam_rescan':
umass.o(.text+0x1918): undefined reference to `xpt_periph'
umass.o(.text+0x1927): undefined reference to `xpt_create_path'
umass.o(.text+0x1943): undefined reference to `xpt_setup_ccb'
umass.o(.text+0x1960): undefined reference to `xpt_action'
umass.o: In function `umass_cam_detach_sim':
umass.o(.text+0x1a6c): undefined reference to `xpt_bus_deregister'
umass.o(.text+0x1a88): undefined reference to `cam_sim_free'
umass.o: In function `umass_cam_action':
umass.o(.text+0x1e6c): undefined reference to `cam_calc_geometry'
umass.o(.text+0x1e7d): undefined reference to `xpt_done'
umass.o: In function `umass_cam_cb':
umass.o(.text+0x1feb): undefined reference to `xpt_done'
umass.o: In function `umass_cam_sense_cb':
umass.o(.text+0x2154): undefined reference to `xpt_done'
umass.o: In function `umass_cam_quirk_cb':
umass.o(.text+0x218b): undefined reference to `xpt_done'
*** Error code 1

Stop in /usr/obj/usr/src/sys/VINESMB.
*** Error code 1

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

Hat da jemand eine Idee??
 
also weiss nicht so recht ob das die antwort auf die frage ist aber prinzipiell kann man sagen:

1. cvsup -g -L 2 stable-supfile
1.b (optional gleich die ports auschecken cvsup -g -L 2 ports-supfile)
2. cd /usr/src && make buildworld
3. cp /usr/src/sys/i386/conf/GENERIC /usr/src/sys/i386/conf/HOSTNAME
4. vi /usr/src/sys/i386/conf/HOSTNAME alles rausschmeissen was nicht gebraucht wird und evtl. optionen aus LINT (/usr/src/sys/i386/conf/LINT) eintragen (bsw. fuer IPFW)
5. make buildkernel KERNCONF=GENERIC
6. make installkernel KERNCONF=GENERIC (zu 5. u 6. Das ist nur noetig wenn Ihr noch keinen GENERIC kernel fuer den RELEASE gebaut habt um im Notfall ein bootfaehiges backup zu haben.)
7. make buildkernel KERNCONF=HOSTNAME
8. make installkernel KERNCONF=HOSTNAME
9. shutdown -r now
10. am bootpromt eine taste ausser ENTER druecken und boot -s ENTER eingeben.
11. mount -a
12. swapon -a
13. im singleusermode mergemaster -v(p) ausfuehren und sorgfaeltig durcharbeiten.
14. make installworld
15. reboot und anschliessend seit Ihr fertig.

p.s. Erfahrungsgemaess lassen sich die Schritte 10 - 15 auch im normalen Systemzustand (nicht single usermode) machen was insbesondere auf remotesystem anders auch schwer moeglich ist... da es jedoch ausdruecklich in /usr/src/UPDATING steht, braucht man sich nicht wundern wenn es mal bei einem fruehen RC oder alpha aerger gibt wenn man sich nicht daran haelt.
prinzipiell gilt: less /usr/src/UPDATING (denn lesen bildet)

gruss,
elk
 
Zuletzt bearbeitet:
danke Spaceelk,
ich hatte für 5.2 noch keinen Kernel, hab ich dann gemacht, danach den angepassten und es geht - find ich echt supa.

Bin bisher ja schon an Pkt. 5 gescheitert, also gar nicht bis 10 gekommen.

Hat wohl dann an den Sourcen gelegen?
 
Zurück
Oben