#!/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 tarball=$1 baseconfig=$2 patch=$3 if [[ -f $1 ]]; then linux=${tarball%\.tar} rm -rf $linux/ echo -n extracting $linux/ ... tar xf $tarball && echo done echo else echo tarball $tarball not found exit 1 fi [[ ! -f $baseconfig ]] && echo $baseconfig not found && exit 1 [[ -n $patch && ! -f $patch ]] && echo $patch nof tound && 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 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 cp -f ../$baseconfig .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 <