FreeBSD 5 (CURRENT)
Hier moechte ich mal meine ersten Eindruecke von 5.2 beschreiben, und zur Diskussion freigeben. -- DaTa
Upgrade von 4.x auf RELENG_5_2
Frei nach /usr/src/UPDATING,
das sollte man trotzdem lesen, da kann sich ja was geaendert haben.
- Backup machen, wenn man seine Daten liebt.
- RELENG_5_2 cvsuppen
- cd /usr/src
- make buildworld
- make buildkernel KERNCONF=GENERIC
erstmal einen GENERIC, einen eigenen Kernel backe ich erst, wenn ich ein 5.2 habe, dass bootet, da sich in der KernelConfig einiges geaendert hat.
vergewissern, dass da options COMPAT_FREEBSD4 drinsteht
- cp /usr/src/sys/i386/conf/GENERIC.hints /boot/device.hints
- make installkernel KERNCONF=GENERIC
- cd /usr/src/sys/boot; make install
- Das installiert einen neuen Bootloader, der den Kernel in /boot/kernel/kernel sucht, und nicht mehr in /kernel
in den SingleUserMode booten
- mergemaster -p
- rm -rf /usr/include/g++
- make installworld
- mergemaster
- immer mit Bedacht i, m (und hier r oder l) oder ENTER druecken
- reboot
So hat das bei mir reibungslos funktioniert, d. h. ich hatte danach ein 5.2-RC das in den MultiUserMode gebootet hat. Es gab allerdings noch ein paar Dinge, die zu tun waren.
Sehr schoen ist auch devfs, kein bloedes MAKEDEV getue mehr.
Kernel Marke Eigenbau
$ cd /usr/src/sys/i386/conf $ ls -l total 79 -rw-r--r-- 1 root wheel 9854 Dec 8 00:52 GENERIC -rw-r--r-- 1 root wheel 2113 Dec 5 2002 GENERIC.hints -rw-r--r-- 1 root wheel 120 Feb 27 2003 Makefile -rw-r--r-- 1 root wheel 35040 Dec 4 20:57 NOTES -rw-r--r-- 1 root wheel 469 Feb 15 2003 OLDCARD -rw-r--r-- 1 root wheel 1728 Nov 3 23:49 PAE -rw-r--r-- 1 root wheel 3991 Jul 26 2002 gethints.awk -rw-r--r-- 1 root wheel 1510 Dec 16 18:21 tspc.log
Als erstes faellt auf, das es kein LINT mehr gibt, und stattdessen ein NOTES da ist. Ein Blick in das Makefile verraet mir, dass man das LINT erst selber machen muss.
# make LINT
Den Sinn dahinter hab ich noch nicht ganz verstanden. Vielleicht liegt dasan den verschiedenen RechnerArchitekturen die FreeBSD neuerdings unterstuetzt.
Wie dem auch sei, die 4.x KernelConfig funktioniert nicht mehr, also kopiert man sich GENERIC und merged die Kopie mit der alten Konfiguration. Der Kernel ist um einiges schlauer geworden, man muss ihm bei den devices zum Beispiel nicht mehr sagen, wieviele man hat, und wie sie zu finden sind, das erkennt er alles automatisch.
Da die Kernelmodule schon beim make buildkernel KERNCONF=GENERIC gebaut wurden, habe ich den neuen Kernel auf dem traditionellen Weg gebaut.
cd /usr/src/sys/i386/conf /usr/sbin/config EIGENBAU cd ../../compile/EIGENBAU make depend NO_MODULES=yes make NO_MODULES=yes make install NO_MODULES=yes
Das Dumme ist nur, dass sich die Module und der Kernel in /boot/kernel/ befinden, denn bei installkernel wird das Verzeichnis in /boot/kernel.old/ umbenannt und nur noch der kernel nach /boot/kernel/ gelegt. D. h. es fehlen einige wichtige Module. Also nach make install NO_MODULES=yes noch ein cp -p /boot/kernel.old/*.ko /boot/kernel und alles ist spitze.
/sys ist ein symlink auf /usr/src/sys, warum auch immer.
Probleme
Da sich in CURRENT ja einiges getan hat, ist es verstaendlich, dass das ein oder andere erst mal nicht mehr geht. Aufgefallen ist mir da bisher, dass das 4.x Binary von sudo nicht mehr wollte, und ich mich nicht mehr im xdm einloggen konnte. (Da hat sich scheinbar einiges in PAM getan). Nachdem ich X11 und sudo neu kompiliert hatte, haben diese auch wieder ihren Dienst getan.
Achja, und mein natd ist staendig gestorben, da kein options NETGRAPH im Kernel war, aber weder die manpage zu natd oder ipfw weisen auf NETGRAPH hin.