Date: Tue, 20 Oct 2015 22:05:47 -0700 From: Manfred Antar <null@pozo.com> To: Benjamin Kaduk <kaduk@MIT.EDU> Cc: freebsd-current@freebsd.org Subject: Re: is building kernel in /sys/amd64/conf depreciated in 11 ? Message-ID: <4ECDB52A-618B-450B-B12F-51B282425050@pozo.com> In-Reply-To: <alpine.GSO.1.10.1510202352060.26829@multics.mit.edu> References: <20151020164013.GA43495@potato.growveg.org> <alpine.GSO.1.10.1510202352060.26829@multics.mit.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
> On Oct 20, 2015, at 8:55 PM, Benjamin Kaduk <kaduk@MIT.EDU> wrote: > > On Tue, 20 Oct 2015, John wrote: > >> Hi, >> >> as subject - is building kernel in /sys/amd64/conf depreciated? >> >> I can get a modified kernel to build and install in /usr/src but not >> in /sys/amd64/conf. I always used to be able to do this in there, then >> again I either used -RELEASE or -STABLE. I used to do it like this: >> >> 1. cd /sys/amd64/conf >> 2. cp GENERIC MYKERNEL >> 3. [make changes to MYKERNEL and save] >> 4. config MYKERNEL >> 5. cd ../compile/MYKERNEL >> 6. make cleandepend && make depend && make >> >> This fails *every time* during make. It fails at this point: >> >> Make[1]: "/storage/usr/ports/Mk/bsd.port.mk" line 1204: UNAME_r > > Why is your kernel build pulling in bsd.port.mk? Please post src.conf and > make.conf. > >> (11.0-CURRENT) and OSVERSION () do not agree on major version number. >> *** [all] Error code 1 >> make: stopped in /storage/usr/src/sys/amd64/compile/PUMPKIN >> The error still happens if I refresh all my sources, build a new world >> with a generic kernel and reboot and then try the old method again. >> >> I *can* build a custom kernel if I cd into /usr/src and do >> >> 1. make buildkernel KERNCONF=MYKERNEL >> 2. make installkernel KERNCONF=MYKERNEL >> >> Basically I'm asking is this change of behaviour documented and/or am >> I doing it wrong? > > This is not exactly an answer to your question, but buildkernel has been > the preferred way to build a kernel for at least four major releases. The > manual-config method has limped along because enough of the old-guard of > committers has it in finger memory, but manual-config has been excised > from the handbook for quite some time. I Still do it the old way on current amd64: 1. cd /sys/amd64/conf 2. cp GENERIC MYKERNEL 3. [make changes to MYKERNEL and save] 4. config MYKERNEL 5. cd ../compile/MYKERNEL 6. make cleandepend && make depend && make Although i have a script that does all of the above. Works fine here. Must be something in you src.conf, make.conf or MYKERNEL Here is the script that works for me: #!/bin/sh cd /usr/src/usr.sbin/config make obj make clean cleandepend make obj make depend all install date > /tmp/date.txt doclean=true autoinstall=true kernelname=pozo for arg; do case $arg in -n*) doclean=false;; -i*) autoinstall=true;; -*) usage;; *) kernelname=$arg;; esac done if [ -z "$kernelname" ]; then kernelname=`hostname -s | tr a-z A-Z` fi cd /sys/`uname -m`/conf if [ ! -e $kernelname ]; then echo "$0: kernel configuration file $kernelname does not exist" echo -n 'Create one from GENERIC [n]?' if read ans && expr $ans : 'y*' >/dev/null; then sed '/^#SED0/,$d' < GENERIC > $kernelname lsdev -c >> $kernelname echo '#SED0' >> $kernelname sed '1,/^#SED0/d' < GENERIC >> $kernelname else exit 1 fi fi set -e rm -rf /sys/amd64/compile/pozo config $kernelname cd /sys/amd64/compile/$kernelname if $doclean; then make clean fi make depend make -j8 all if $autoinstall; then make install fi date >> /tmp/date.txt cat /tmp/date.txt rm /tmp/date.txt exit 0
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4ECDB52A-618B-450B-B12F-51B282425050>