Date: Fri, 21 Jan 2011 06:09:37 +0100 From: Polytropon <freebsd@edvax.de> To: "Michael D. Norwick" <mnorwick@centurytel.net> Cc: freebsd-questions@freebsd.org Subject: Re: Implications of missing this step? Message-ID: <20110121060937.b0bbc702.freebsd@edvax.de> In-Reply-To: <4D390080.7020604@centurytel.net> References: <4D390080.7020604@centurytel.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 20 Jan 2011 21:41:52 -0600, "Michael D. Norwick" <mnorwick@centurytel.net> wrote: > Good Day; > > Running PC-BSD 8.1 with a custom kernel and new world. I just finished > another custom kernel and rebuilt world according to the FreeBSD > handbook. While reading the docs again to find an answer to a question > about how upgraded ports are handled, I came across the following in 24.2.3; > > "If a custom kernel is in use, the upgrade process is slightly more > involved. A copy of the GENERIC kernel is needed, and it should be > placed in /boot/GENERIC. If the GENERIC kernel is not already present in > the system, it may be obtained using one of the following methods:" > > I am in the process of doing #>portupgrade -af with a new custom kernel > and stock (rebuilt) world i.e. buildkernel KERNCONF=KERNEL_011911, and > buildworld... (after upgrading src and ports with csup). Things seem to > be going ok but the statements about 'old object files and libraries' > being out of date for third party applications, make me feel as if I > have done something wrong. I blew away the GENERIC kernel several > iterations of kernel builds ago. I always start a build with #>make > clean. What can go wrong by not following the above step? See /usr/src/Makefile with those instructions: 1. `cd /usr/src' (or to the directory containing your source tree). 2. `make buildworld' 3. `make buildkernel KERNCONF=YOUR_KERNEL_HERE' (default is GENERIC). 4. `make installkernel KERNCONF=YOUR_KERNEL_HERE' (default is GENERIC). [steps 3. & 4. can be combined by using the "kernel" target] 5. `reboot' (in single user mode: boot -s from the loader prompt). 6. `mergemaster -p' 7. `make installworld' 8. `make delete-old' 9. `mergemaster' (you may wish to use -U or -ai). 10. `reboot' 11. `make delete-old-libs' (in case no 3rd party program uses them anymore) This is the recommended road map AFTER you've successfully updated your sorces. Rebuilding of ports MAY be needed after this step - when the new environment has been installed and you're running the new kernel and world. > Is a GENERIC > kernel always needed? The GENERIC kernel is a fail-safe mechanism. If your kernel won't boot, you can request booting GENERIC from the loader, because GENERIC *should* always boot. If your custom kernel runs fine, there's no need for the GENERIC kernel to be additionally built. You can make a copy of the initial (stock) GENERIC kernel as kernel.GENERIC. This should be a -RELEASE kernel of the release you're currently using (8.0, 8.1, 8.1), but can be any GENERIC kernel of a -STABLE version, too. The system will also automatically save the last kernal as kernel.old. Before installing world, this old kernel will match version with the installed world. But as I said, it's "only" a security mechanism to boot the system when the new kernel is not booting / running properly. -- Polytropon Magdeburg, Germany Happy FreeBSD user since 4.0 Andra moi ennepe, Mousa, ...
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110121060937.b0bbc702.freebsd>