91 lines
1.7 KiB
Bash
Executable File
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
|