#!/bin/bash set -e # # just the minimum: stock + XEN + UFS # reiser4 patch optional # need to grab config first # [[ -z $2 ]] && echo "usage: ${0##*/} [patch.gz]" && exit 1 linux=$1 baseconfig=$2 patch=$3 [[ ! -d $linux ]] && echo cannot find folder $linux && exit 1 [[ ! -f $baseconfig ]] && echo cannot find file $baseconfig && exit 1 [[ -n $patch && ! -f $patch ]] && echo cannot find file $patch && exit 1 #[[ ! -x `which lscpu` ]] && echo missing lspcu && exit 1 #cpu=$((`grep ^processor /proc/cpuinfo | tail -1 | awk '{print $3}'` + 1)) #echo cpu is $cpu #lscpu | grep Thread # TODO take threads into account #export MAKEFLAGS=-j$cpu [[ -z $MAKEFLAGS ]] && echo MAKEFLAGS not defined && exit 1 echo MAKEFLAGS is $MAKEFLAGS cp -fv $baseconfig $linux/.config cd $linux/ echo CONFIG #mirror=`grep -vE '^#|^$' /etc/slackpkg/mirrors` #echo mirror is $mirror #echo ready? #read -r #wget -q -O - $mirror/kernels/VERSIONS.TXT #wget -qO - $mirror/kernels/huge.s/config > .config make olddefconfig >/dev/null && echo DONE echo if [[ -n $patch ]]; then echo PATCH FOR REISER4 zcat ../$patch | patch -p1 > ../build0.log && echo DONE echo echo REISER4 CONFIG cat >> .config <<-EOF CONFIG_REISER4_FS=y EOF make olddefconfig >/dev/null grep REISER4_FS .config echo fi echo XEN CONFIG make xen.config >/dev/null make olddefconfig >/dev/null && echo DONE echo echo UFS WRITE cat >> .config </dev/null && echo DONE echo # warning: override: reassigning to symbol X86_X32 # https://forums.gentoo.org/viewtopic-p-8686301.html?sid=0bbd138e7fedcec48fe7d6c5e06abbd6 echo DISABLE X86_X32 echo CONFIG_X86_X32=n >> .config make olddefconfig >/dev/null && echo DONE echo echo BUILD KERNEL echo tail -F /usr/src/build0.log time nice make >> ../build0.log && echo DONE echo echo DEPLOY MODULES nice make modules_install >> ../build0.log && echo DONE echo file arch/x86/boot/bzImage ver=`file arch/x86/boot/bzImage | awk '{print $9}'` cat <