1
1
Fork 0
misc-tools/gentoo/kernbuild/kernbuild_w_zfs

91 lines
1.7 KiB
Bash
Executable File

#!/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