#!/bin/sh LOCALVERSION="-x86_64" if [ "$1" != "" ]; then LOCALVERSION="-eo${1}" fi echo "Going after kernel with localversion ${LOCALVERSION}" sleep 2 PARAM="--no-clean --no-save-config --no-clean --mountboot \ --no-lvm \ --busybox \ --mdadm \ --no-iscsi \ --e2fsprogs \ --disklabel \ --hyperv \ --virtio \ --zfs \ --install \ --microcode \ --kernel-localversion=${LOCALVERSION} " genkernel $PARAM all || exit 1 emerge @module-rebuild || exit 1 genkernel $PARAM initramfs || exit 1 ########### ShiftFS echo "Now rebuilding shiftfs" S=`dirname $0` T="/usr/src/shiftfs" mkdir -p $T echo "LOCALVERSION=${LOCALVERSION}" > $T/Makefile cat >>$T/Makefile <<'EOF' modname := shiftfs obj-m := $(modname).o KVERSION := $(shell readlink /usr/src/linux | tr -d '/' | cut -b 7- ) KDIR := /lib/modules/$(KVERSION)$(LOCALVERSION) PWD := "$$(pwd)" ifdef DEBUG CFLAGS_$(obj-m) := -DDEBUG endif EXTRA_CFLAGS := -DSHIFTFS_MAGIC=0x6a656a62 default: $(MAKE) -C $(KDIR)/build M=$(PWD) EXTRA_CFLAGS="${EXTRA_CFLAGS}" modules clean: $(MAKE) O=$(PWD) -C $(KDIR)/build M=$(PWD) clean load: -rmmod $(modname) insmod $(modname).ko install: install -m 0755 -o root -g root -d $(KDIR)/extra/fs install -m 0755 -o root -g root $(modname).ko $(KDIR)/extra/fs/ depmod -a $(KVERSION)$(LOCALVERSION) uninstall: rm $(KDIR)/extra/fs/$(modname).ko depmod -a $(KVERSION)$(LOCALVERSION) EOF #cp ${S}/Makefile.shiftfs $T/Makefile || exit 1 mv -f $T/shiftfs.c $T/shiftfs.c.bak 2> /dev/null wget -O $T/shiftfs.c https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/focal/plain/fs/shiftfs.c make -C $T clean && make -C $T && make -C $T install || exit 1 echo Complete with success