is building kernel in /sys/amd64/conf depreciated in 11 ?
Manfred Antar
null at pozo.com
Wed Oct 21 05:20:10 UTC 2015
> On Oct 20, 2015, at 8:55 PM, Benjamin Kaduk <kaduk at 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
More information about the freebsd-current
mailing list