linux-elaina/6.8.7-1: new package
This commit is contained in:
parent
10a128c63a
commit
e819c284ed
45
packages/linux-elaina/.SRCINFO
Normal file
45
packages/linux-elaina/.SRCINFO
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
pkgbase = linux-elaina
|
||||||
|
pkgdesc = Linux kernel for Elaina, based on Xanmod stable and prune some config
|
||||||
|
pkgver = 6.8.7
|
||||||
|
pkgrel = 1
|
||||||
|
url = http://www.xanmod.org/
|
||||||
|
arch = x86_64
|
||||||
|
license = GPL-2.0-only
|
||||||
|
makedepends = bc
|
||||||
|
makedepends = cpio
|
||||||
|
makedepends = gettext
|
||||||
|
makedepends = libelf
|
||||||
|
makedepends = pahole
|
||||||
|
makedepends = perl
|
||||||
|
makedepends = python
|
||||||
|
makedepends = tar
|
||||||
|
makedepends = xz
|
||||||
|
options = !strip
|
||||||
|
source = https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.8.tar.xz
|
||||||
|
source = https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.8.tar.sign
|
||||||
|
source = patch-6.8.7-xanmod1.xz::https://sourceforge.net/projects/xanmod/files/releases/main/6.8.7-xanmod1/patch-6.8.7-xanmod1.xz/download
|
||||||
|
source = choose-gcc-optimization.sh
|
||||||
|
validpgpkeys = ABAF11C65A2970B130ABE3C479BE3E4300411886
|
||||||
|
validpgpkeys = 647F28654894E3BD457199BE38DBBDC86092693E
|
||||||
|
sha256sums = c969dea4e8bb6be991bbf7c010ba0e0a5643a3a8d8fb0a2aaa053406f1e965f3
|
||||||
|
sha256sums = SKIP
|
||||||
|
sha256sums = 415349ea19a09e64df31a7792b08df2465e79206441ff0af26cab81bf4486cfa
|
||||||
|
sha256sums = a8b38eb482eb685944757182c4886404abc12703e5e56ec39c7d61298d17d71f
|
||||||
|
|
||||||
|
pkgname = linux-elaina
|
||||||
|
pkgdesc = The Linux kernel and modules with Xanmod patches
|
||||||
|
depends = coreutils
|
||||||
|
depends = initramfs
|
||||||
|
depends = kmod
|
||||||
|
optdepends = wireless-regdb: to set the correct wireless channels of your country
|
||||||
|
optdepends = linux-firmware: firmware images needed for some devices
|
||||||
|
provides = KSMBD-MODULE
|
||||||
|
provides = VIRTUALBOX-GUEST-MODULES
|
||||||
|
provides = WIREGUARD-MODULE
|
||||||
|
provides = NTFS3-MODULE
|
||||||
|
replaces = virtualbox-guest-modules-arch
|
||||||
|
replaces = wireguard-arch
|
||||||
|
|
||||||
|
pkgname = linux-elaina-headers
|
||||||
|
pkgdesc = Headers and scripts for building modules for the Linux kernel for Elaina, based on Xanmod stable and prune some config kernel
|
||||||
|
depends = pahole
|
3
packages/linux-elaina/.gitignore
vendored
Normal file
3
packages/linux-elaina/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
*.sign
|
||||||
|
*.xz
|
||||||
|
config.last
|
377
packages/linux-elaina/PKGBUILD
Normal file
377
packages/linux-elaina/PKGBUILD
Normal file
@ -0,0 +1,377 @@
|
|||||||
|
# Maintainer: Puqns67 <me@puqns67.icu>
|
||||||
|
# Contributor: Joan Figueras <ffigue at gmail dot com>
|
||||||
|
# Contributor: Torge Matthies <openglfreak at googlemail dot com>
|
||||||
|
# Contributor: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
|
||||||
|
|
||||||
|
##
|
||||||
|
## The following variables can be customized at build time. Use env or export to change at your wish
|
||||||
|
##
|
||||||
|
## Example: env _microarchitecture=98 use_numa=n use_tracers=n makepkg -sc
|
||||||
|
##
|
||||||
|
## Look inside 'choose-gcc-optimization.sh' to choose your microarchitecture
|
||||||
|
## Valid numbers between: 0 to 99
|
||||||
|
## Default is: 0 => generic
|
||||||
|
## Good option if your package is for one machine: 98 (Intel native) or 99 (AMD native)
|
||||||
|
if [ -z ${_microarchitecture+x} ]; then
|
||||||
|
_microarchitecture=92
|
||||||
|
fi
|
||||||
|
|
||||||
|
## Disable NUMA since most users do not have multiple processors. Breaks CUDA/NvEnc.
|
||||||
|
## Archlinux and Xanmod enable it by default.
|
||||||
|
## Set variable "use_numa" to: n to disable (possibly increase performance)
|
||||||
|
## y to enable (stock default)
|
||||||
|
if [ -z ${use_numa+x} ]; then
|
||||||
|
use_numa=y
|
||||||
|
fi
|
||||||
|
|
||||||
|
## Since upstream disabled CONFIG_STACK_TRACER (limits debugging and analyzing of the kernel)
|
||||||
|
## you can enable them setting this option. Caution, because they have an impact in performance.
|
||||||
|
## Stock Archlinux has this enabled.
|
||||||
|
## Set variable "use_tracers" to: n to disable (possibly increase performance, XanMod default)
|
||||||
|
## y to enable (Archlinux default)
|
||||||
|
if [ -z ${use_tracers+x} ]; then
|
||||||
|
use_tracers=n
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Unique compiler supported upstream is GCC
|
||||||
|
## Choose between GCC and CLANG config (default is GCC)
|
||||||
|
## Use the environment variable "_compiler=clang"
|
||||||
|
if [ "${_compiler}" = "clang" ]; then
|
||||||
|
_compiler_flags="CC=clang HOSTCC=clang LLVM=1 LLVM_IAS=1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Choose between the 4 main configs for stable branch. Default x86-64-v1 which use CONFIG_GENERIC_CPU2:
|
||||||
|
# Possible values: config_x86-64-v1 / config_x86-64-v2 (default) / config_x86-64-v3 / config_x86-64-v4
|
||||||
|
# This will be overwritten by selecting any option in microarchitecture script
|
||||||
|
# Source files: https://github.com/xanmod/linux/tree/5.17/CONFIGS/xanmod/gcc
|
||||||
|
if [ -z ${_config+x} ]; then
|
||||||
|
_config=config_x86-64-v2
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Compress modules with ZSTD (to save disk space)
|
||||||
|
if [ -z ${_compress_modules+x} ]; then
|
||||||
|
_compress_modules=y
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Compile ONLY used modules to VASTLY reduce the number of modules built
|
||||||
|
# and the build time.
|
||||||
|
#
|
||||||
|
# To keep track of which modules are needed for your specific system/hardware,
|
||||||
|
# give module_db script a try: https://aur.archlinux.org/packages/modprobed-db
|
||||||
|
# This PKGBUILD read the database kept if it exists
|
||||||
|
#
|
||||||
|
# More at this wiki page ---> https://wiki.archlinux.org/index.php/Modprobed-db
|
||||||
|
if [ -z ${_localmodcfg} ]; then
|
||||||
|
_localmodcfg=n
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Tweak kernel options prior to a build via nconfig
|
||||||
|
if [ -z ${_makenconfig} ]; then
|
||||||
|
_makenconfig=n
|
||||||
|
fi
|
||||||
|
|
||||||
|
### IMPORTANT: Do no edit below this line unless you know what you're doing
|
||||||
|
|
||||||
|
pkgbase=linux-elaina
|
||||||
|
_major=6.8
|
||||||
|
pkgver=${_major}.7
|
||||||
|
_branch=6.x
|
||||||
|
xanmod=1
|
||||||
|
_revision=
|
||||||
|
_sf_branch=main
|
||||||
|
pkgrel=${xanmod}
|
||||||
|
pkgdesc='Linux kernel for Elaina, based on Xanmod stable and prune some config'
|
||||||
|
url="http://www.xanmod.org/"
|
||||||
|
arch=(x86_64)
|
||||||
|
license=(GPL-2.0-only)
|
||||||
|
makedepends=(
|
||||||
|
bc
|
||||||
|
cpio
|
||||||
|
gettext
|
||||||
|
libelf
|
||||||
|
pahole
|
||||||
|
perl
|
||||||
|
python
|
||||||
|
tar
|
||||||
|
xz
|
||||||
|
)
|
||||||
|
if [ "${_compiler}" = "clang" ]; then
|
||||||
|
makedepends+=(clang llvm lld)
|
||||||
|
fi
|
||||||
|
options=('!strip')
|
||||||
|
_srcname="linux-${pkgver}-xanmod${xanmod}"
|
||||||
|
|
||||||
|
source=("https://cdn.kernel.org/pub/linux/kernel/v${_branch}/linux-${_major}.tar."{xz,sign}
|
||||||
|
"patch-${pkgver}-xanmod${xanmod}${_revision}.xz::https://sourceforge.net/projects/xanmod/files/releases/${_sf_branch}/${pkgver}-xanmod${xanmod}/patch-${pkgver}-xanmod${xanmod}.xz/download"
|
||||||
|
choose-gcc-optimization.sh)
|
||||||
|
validpgpkeys=(
|
||||||
|
'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linux Torvalds
|
||||||
|
'647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman
|
||||||
|
)
|
||||||
|
|
||||||
|
# Archlinux patches
|
||||||
|
_commit="ec9e9a4219fe221dec93fa16fddbe44a34933d8d"
|
||||||
|
_patches=()
|
||||||
|
for _patch in ${_patches[@]}; do
|
||||||
|
source+=("${_patch}::https://raw.githubusercontent.com/archlinux/svntogit-packages/${_commit}/trunk/${_patch}")
|
||||||
|
done
|
||||||
|
|
||||||
|
sha256sums=('c969dea4e8bb6be991bbf7c010ba0e0a5643a3a8d8fb0a2aaa053406f1e965f3'
|
||||||
|
'SKIP'
|
||||||
|
'415349ea19a09e64df31a7792b08df2465e79206441ff0af26cab81bf4486cfa'
|
||||||
|
'a8b38eb482eb685944757182c4886404abc12703e5e56ec39c7d61298d17d71f')
|
||||||
|
|
||||||
|
export KBUILD_BUILD_HOST=${KBUILD_BUILD_HOST:-archlinux}
|
||||||
|
export KBUILD_BUILD_USER=${KBUILD_BUILD_USER:-makepkg}
|
||||||
|
export KBUILD_BUILD_TIMESTAMP=${KBUILD_BUILD_TIMESTAMP:-$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})}
|
||||||
|
|
||||||
|
prepare() {
|
||||||
|
cd linux-${_major}
|
||||||
|
|
||||||
|
# Apply Xanmod patch
|
||||||
|
patch -Np1 -i ../patch-${pkgver}-xanmod${xanmod}${_revision}
|
||||||
|
|
||||||
|
msg2 "Setting version..."
|
||||||
|
echo "-$pkgrel" > localversion.10-pkgrel
|
||||||
|
echo "${pkgbase#linux-elaina}" > localversion.20-pkgname
|
||||||
|
|
||||||
|
# Archlinux patches
|
||||||
|
local src
|
||||||
|
for src in "${source[@]}"; do
|
||||||
|
src="${src%%::*}"
|
||||||
|
src="${src##*/}"
|
||||||
|
[[ $src = *.patch ]] || continue
|
||||||
|
msg2 "Applying patch $src..."
|
||||||
|
patch -Np1 < "../$src"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Applying configuration
|
||||||
|
cp -vf CONFIGS/xanmod/gcc/${_config} .config
|
||||||
|
# enable LTO_CLANG_THIN
|
||||||
|
if [ "${_compiler}" = "clang" ]; then
|
||||||
|
scripts/config --disable LTO_CLANG_FULL
|
||||||
|
scripts/config --enable LTO_CLANG_THIN
|
||||||
|
fi
|
||||||
|
|
||||||
|
# CONFIG_STACK_VALIDATION gives better stack traces. Also is enabled in all official kernel packages by Archlinux team
|
||||||
|
scripts/config --enable CONFIG_STACK_VALIDATION
|
||||||
|
|
||||||
|
# Enable IKCONFIG following Arch's philosophy
|
||||||
|
scripts/config --enable CONFIG_IKCONFIG \
|
||||||
|
--enable CONFIG_IKCONFIG_PROC
|
||||||
|
|
||||||
|
# Requested by Alexandre Frade to fix issues in python-gbinder
|
||||||
|
scripts/config --enable CONFIG_ANDROID_BINDERFS
|
||||||
|
scripts/config --enable CONFIG_ANDROID_BINDER_IPC
|
||||||
|
|
||||||
|
# User set. See at the top of this file
|
||||||
|
if [ "$use_tracers" = "y" ]; then
|
||||||
|
msg2 "Enabling CONFIG_FTRACE only if we are not compiling with clang..."
|
||||||
|
if [ "${_compiler}" = "gcc" ] || [ "${_compiler}q" = "q" ]; then
|
||||||
|
scripts/config --enable CONFIG_FTRACE \
|
||||||
|
--enable CONFIG_FUNCTION_TRACER \
|
||||||
|
--enable CONFIG_STACK_TRACER
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$use_numa" = "n" ]; then
|
||||||
|
msg2 "Disabling NUMA..."
|
||||||
|
scripts/config --disable CONFIG_NUMA
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Compress modules by default (following Arch's kernel)
|
||||||
|
if [ "$_compress_modules" = "y" ]; then
|
||||||
|
scripts/config --enable CONFIG_MODULE_COMPRESS_ZSTD
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Let's user choose microarchitecture optimization in GCC
|
||||||
|
# Use default microarchitecture only if we have not choosen another microarchitecture
|
||||||
|
if [ "$_microarchitecture" -ne "0" ]; then
|
||||||
|
../choose-gcc-optimization.sh $_microarchitecture
|
||||||
|
fi
|
||||||
|
|
||||||
|
# This is intended for the people that want to build this package with their own config
|
||||||
|
# Put the file "myconfig" at the package folder (this will take preference) or "${XDG_CONFIG_HOME}/linux-xanmod/myconfig"
|
||||||
|
# If we detect partial file with scripts/config commands, we execute as a script
|
||||||
|
# If not, it's a full config, will be replaced
|
||||||
|
for _myconfig in "${SRCDEST}/myconfig" "${HOME}/.config/linux-xanmod/myconfig" "${XDG_CONFIG_HOME}/linux-xanmod/myconfig" ; do
|
||||||
|
if [ -f "${_myconfig}" ] && [ "$(wc -l <"${_myconfig}")" -gt "0" ]; then
|
||||||
|
if grep -q 'scripts/config' "${_myconfig}"; then
|
||||||
|
# myconfig is a partial file. Executing as a script
|
||||||
|
msg2 "Applying myconfig..."
|
||||||
|
bash "${_myconfig}"
|
||||||
|
else
|
||||||
|
# myconfig is a full config file. Replacing default .config
|
||||||
|
msg2 "Using user CUSTOM config..."
|
||||||
|
cp -f "${_myconfig}" .config
|
||||||
|
fi
|
||||||
|
echo
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
### Optionally load needed modules for the make localmodconfig
|
||||||
|
# See https://aur.archlinux.org/packages/modprobed-db
|
||||||
|
if [ "$_localmodcfg" = "y" ]; then
|
||||||
|
if [ -f $HOME/.config/modprobed.db ]; then
|
||||||
|
msg2 "Running Steven Rostedt's make localmodconfig now"
|
||||||
|
make ${_compiler_flags} LSMOD=$HOME/.config/modprobed.db localmodconfig
|
||||||
|
else
|
||||||
|
msg2 "No modprobed.db data found"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
msg2 "make ${_compiler_flags} olddefconfig"
|
||||||
|
make ${_compiler_flags} olddefconfig
|
||||||
|
#diff -u CONFIGS/xanmod/gcc/${_config} .config || :
|
||||||
|
|
||||||
|
make -s kernelrelease > version
|
||||||
|
msg2 "Prepared %s version %s" "$pkgbase" "$(<version)"
|
||||||
|
|
||||||
|
if [ "$_makenconfig" = "y" ]; then
|
||||||
|
make ${_compiler_flags} nconfig
|
||||||
|
fi
|
||||||
|
|
||||||
|
# save configuration for later reuse
|
||||||
|
cat .config > "${SRCDEST}/config.last"
|
||||||
|
}
|
||||||
|
|
||||||
|
build() {
|
||||||
|
cd linux-${_major}
|
||||||
|
make ${_compiler_flags} all
|
||||||
|
make -C tools/bpf/bpftool vmlinux.h feature-clang-bpf-co-re=1
|
||||||
|
}
|
||||||
|
|
||||||
|
_package() {
|
||||||
|
pkgdesc="The Linux kernel and modules with Xanmod patches"
|
||||||
|
depends=(
|
||||||
|
coreutils
|
||||||
|
initramfs
|
||||||
|
kmod
|
||||||
|
)
|
||||||
|
optdepends=(
|
||||||
|
'wireless-regdb: to set the correct wireless channels of your country'
|
||||||
|
'linux-firmware: firmware images needed for some devices'
|
||||||
|
)
|
||||||
|
provides=(
|
||||||
|
KSMBD-MODULE
|
||||||
|
VIRTUALBOX-GUEST-MODULES
|
||||||
|
WIREGUARD-MODULE
|
||||||
|
NTFS3-MODULE
|
||||||
|
)
|
||||||
|
replaces=(
|
||||||
|
virtualbox-guest-modules-arch
|
||||||
|
wireguard-arch
|
||||||
|
)
|
||||||
|
|
||||||
|
cd linux-${_major}
|
||||||
|
local modulesdir="$pkgdir/usr/lib/modules/$(<version)"
|
||||||
|
|
||||||
|
msg2 "Installing boot image..."
|
||||||
|
# systemd expects to find the kernel here to allow hibernation
|
||||||
|
# https://github.com/systemd/systemd/commit/edda44605f06a41fb86b7ab8128dcf99161d2344
|
||||||
|
install -Dm644 "$(make -s image_name)" "$modulesdir/vmlinuz"
|
||||||
|
|
||||||
|
# Used by mkinitcpio to name the kernel
|
||||||
|
echo "$pkgbase" | install -Dm644 /dev/stdin "$modulesdir/pkgbase"
|
||||||
|
|
||||||
|
msg2 "Installing modules..."
|
||||||
|
ZSTD_CLEVEL=19 make INSTALL_MOD_PATH="$pkgdir/usr" INSTALL_MOD_STRIP=1 \
|
||||||
|
DEPMOD=/doesnt/exist modules_install # Suppress depmod
|
||||||
|
|
||||||
|
# remove build link
|
||||||
|
rm "$modulesdir"/build
|
||||||
|
}
|
||||||
|
|
||||||
|
_package-headers() {
|
||||||
|
pkgdesc="Headers and scripts for building modules for the $pkgdesc kernel"
|
||||||
|
depends=(pahole)
|
||||||
|
|
||||||
|
cd linux-${_major}
|
||||||
|
local builddir="$pkgdir/usr/lib/modules/$(<version)/build"
|
||||||
|
|
||||||
|
msg2 "Installing build files..."
|
||||||
|
install -Dt "$builddir" -m644 .config Makefile Module.symvers System.map \
|
||||||
|
localversion.* version vmlinux tools/bpf/bpftool/vmlinux.h
|
||||||
|
install -Dt "$builddir/kernel" -m644 kernel/Makefile
|
||||||
|
install -Dt "$builddir/arch/x86" -m644 arch/x86/Makefile
|
||||||
|
cp -t "$builddir" -a scripts
|
||||||
|
|
||||||
|
# required when STACK_VALIDATION is enabled
|
||||||
|
install -Dt "$builddir/tools/objtool" tools/objtool/objtool
|
||||||
|
|
||||||
|
# required when DEBUG_INFO_BTF_MODULES is enabled
|
||||||
|
install -Dt "$builddir/tools/bpf/resolve_btfids" tools/bpf/resolve_btfids/resolve_btfids
|
||||||
|
|
||||||
|
msg2 "Installing headers..."
|
||||||
|
cp -t "$builddir" -a include
|
||||||
|
cp -t "$builddir/arch/x86" -a arch/x86/include
|
||||||
|
install -Dt "$builddir/arch/x86/kernel" -m644 arch/x86/kernel/asm-offsets.s
|
||||||
|
|
||||||
|
install -Dt "$builddir/drivers/md" -m644 drivers/md/*.h
|
||||||
|
install -Dt "$builddir/net/mac80211" -m644 net/mac80211/*.h
|
||||||
|
|
||||||
|
# https://bugs.archlinux.org/task/13146
|
||||||
|
install -Dt "$builddir/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h
|
||||||
|
|
||||||
|
# https://bugs.archlinux.org/task/20402
|
||||||
|
install -Dt "$builddir/drivers/media/usb/dvb-usb" -m644 drivers/media/usb/dvb-usb/*.h
|
||||||
|
install -Dt "$builddir/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/*.h
|
||||||
|
install -Dt "$builddir/drivers/media/tuners" -m644 drivers/media/tuners/*.h
|
||||||
|
|
||||||
|
# https://bugs.archlinux.org/task/71392
|
||||||
|
install -Dt "$builddir/drivers/iio/common/hid-sensors" -m644 drivers/iio/common/hid-sensors/*.h
|
||||||
|
|
||||||
|
echo "Installing KConfig files..."
|
||||||
|
find . -name 'Kconfig*' -exec install -Dm644 {} "$builddir/{}" \;
|
||||||
|
|
||||||
|
msg2 "Removing unneeded architectures..."
|
||||||
|
local arch
|
||||||
|
for arch in "$builddir"/arch/*/; do
|
||||||
|
[[ $arch = */x86/ ]] && continue
|
||||||
|
echo "Removing $(basename "$arch")"
|
||||||
|
rm -r "$arch"
|
||||||
|
done
|
||||||
|
|
||||||
|
msg2 "Removing documentation..."
|
||||||
|
rm -r "$builddir/Documentation"
|
||||||
|
|
||||||
|
msg2 "Removing broken symlinks..."
|
||||||
|
find -L "$builddir" -type l -printf 'Removing %P\n' -delete
|
||||||
|
|
||||||
|
msg2 "Removing loose objects..."
|
||||||
|
find "$builddir" -type f -name '*.o' -printf 'Removing %P\n' -delete
|
||||||
|
|
||||||
|
msg2 "Stripping build tools..."
|
||||||
|
local file
|
||||||
|
while read -rd '' file; do
|
||||||
|
case "$(file -Sib "$file")" in
|
||||||
|
application/x-sharedlib\;*) # Libraries (.so)
|
||||||
|
strip -v $STRIP_SHARED "$file" ;;
|
||||||
|
application/x-archive\;*) # Libraries (.a)
|
||||||
|
strip -v $STRIP_STATIC "$file" ;;
|
||||||
|
application/x-executable\;*) # Binaries
|
||||||
|
strip -v $STRIP_BINARIES "$file" ;;
|
||||||
|
application/x-pie-executable\;*) # Relocatable binaries
|
||||||
|
strip -v $STRIP_SHARED "$file" ;;
|
||||||
|
esac
|
||||||
|
done < <(find "$builddir" -type f -perm -u+x ! -name vmlinux -print0)
|
||||||
|
|
||||||
|
msg2 "Stripping vmlinux..."
|
||||||
|
strip -v $STRIP_STATIC "$builddir/vmlinux"
|
||||||
|
|
||||||
|
msg2 "Adding symlink..."
|
||||||
|
mkdir -p "$pkgdir/usr/src"
|
||||||
|
ln -sr "$builddir" "$pkgdir/usr/src/$pkgbase"
|
||||||
|
}
|
||||||
|
|
||||||
|
pkgname=("${pkgbase}" "${pkgbase}-headers")
|
||||||
|
for _p in "${pkgname[@]}"; do
|
||||||
|
eval "package_$_p() {
|
||||||
|
$(declare -f "_package${_p#$pkgbase}")
|
||||||
|
_package${_p#$pkgbase}
|
||||||
|
}"
|
||||||
|
done
|
||||||
|
|
||||||
|
# vim:set ts=8 sts=2 sw=2 et:
|
128
packages/linux-elaina/choose-gcc-optimization.sh
Executable file
128
packages/linux-elaina/choose-gcc-optimization.sh
Executable file
@ -0,0 +1,128 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
. /usr/share/makepkg/util/message.sh
|
||||||
|
colorize
|
||||||
|
|
||||||
|
Detect_CPU=$(gcc -c -Q -march=native --help=target | grep march | awk '{print $2}' | head -1)
|
||||||
|
|
||||||
|
msg "Detected CPU architecture: $Detect_CPU"
|
||||||
|
|
||||||
|
cat << EOF
|
||||||
|
|
||||||
|
Available CPU microarchitectures:
|
||||||
|
|
||||||
|
1) AMD Opteron/Athlon64/Hammer/K8
|
||||||
|
2) AMD Opteron/Athlon64/Hammer/K8 with SSE3
|
||||||
|
3) AMD 61xx/7x50/PhenomX3/X4/II/K10
|
||||||
|
4) AMD Family 10h (Barcelona)
|
||||||
|
5) AMD Family 14h (Bobcat)
|
||||||
|
6) AMD Family 16h (Jaguar)
|
||||||
|
7) AMD Family 15h (Bulldozer)
|
||||||
|
8) AMD Family 15h (Piledriver)
|
||||||
|
9) AMD Family 15h (Steamroller)
|
||||||
|
10) AMD Family 15h (Excavator)
|
||||||
|
11) AMD Family 17h (Zen)
|
||||||
|
12) AMD Family 17h (Zen 2)
|
||||||
|
13) AMD Family 19h (Zen 3)
|
||||||
|
14) AMD Family 19h (Zen 4)
|
||||||
|
15) Intel P4 / older Netburst based Xeon
|
||||||
|
16) Intel Core 2 and newer Core 2 Xeons (Xeon 51xx and 53xx)
|
||||||
|
17) Intel Atom
|
||||||
|
18) Intel 1st Gen Core i3/i5/i7-family (Nehalem)
|
||||||
|
19) Intel 1.5 Gen Core i3/i5/i7-family (Westmere)
|
||||||
|
20) Intel Silvermont
|
||||||
|
21) Intel Goldmont (Apollo Lake and Denverton)
|
||||||
|
22) Intel Goldmont Plus (Gemini Lake)
|
||||||
|
23) Intel 2nd Gen Core i3/i5/i7-family (Sandybridge)
|
||||||
|
24) Intel 3rd Gen Core i3/i5/i7-family (Ivybridge)
|
||||||
|
25) Intel 4th Gen Core i3/i5/i7-family (Haswell)
|
||||||
|
26) Intel 5th Gen Core i3/i5/i7-family (Broadwell)
|
||||||
|
27) Intel 6th Gen Core i3/i5/i7-family (Skylake)
|
||||||
|
28) Intel 6th Gen Core i7/i9-family (Skylake X)
|
||||||
|
29) Intel 8th Gen Core i3/i5/i7-family (Cannon Lake)
|
||||||
|
30) Intel 8th Gen Core i7/i9-family (Ice Lake)
|
||||||
|
31) Xeon processors in the Cascade Lake family
|
||||||
|
32) Intel Xeon (Cooper Lake)
|
||||||
|
33) Intel 3rd Gen 10nm++ i3/i5/i7/i9-family (Tiger Lake)
|
||||||
|
34) Intel Sapphire Rapids
|
||||||
|
35) Intel Rocket Lake
|
||||||
|
36) Intel Alder Lake
|
||||||
|
|
||||||
|
91) Generic-x86-64-v1 (LEGACY < 2003. Not supported by XanMod project)
|
||||||
|
92) Generic-x86-64-v2 (Nehalem and newer)
|
||||||
|
93) Generic-x86-64-v3 (Haswell and newer)
|
||||||
|
94) Generic-x86-64-v4 (AVX512 CPUs)
|
||||||
|
|
||||||
|
98) Intel-Native optimizations autodetected by GCC
|
||||||
|
99) AMD-Native optimizations autodetected by GCC
|
||||||
|
|
||||||
|
0) Generic x64-v2 (default)
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
sleep 1
|
||||||
|
answer=$1
|
||||||
|
|
||||||
|
case $answer in
|
||||||
|
1) Microarchitecture=CONFIG_MK8 ;;
|
||||||
|
2) Microarchitecture=CONFIG_MK8SSE3 ;;
|
||||||
|
3) Microarchitecture=CONFIG_MK10 ;;
|
||||||
|
4) Microarchitecture=CONFIG_MBARCELONA ;;
|
||||||
|
5) Microarchitecture=CONFIG_MBOBCAT ;;
|
||||||
|
6) Microarchitecture=CONFIG_MJAGUAR ;;
|
||||||
|
7) Microarchitecture=CONFIG_MBULLDOZER ;;
|
||||||
|
8) Microarchitecture=CONFIG_MPILEDRIVER ;;
|
||||||
|
9) Microarchitecture=CONFIG_MSTEAMROLLER ;;
|
||||||
|
10) Microarchitecture=CONFIG_MEXCAVATOR ;;
|
||||||
|
11) Microarchitecture=CONFIG_MZEN ;;
|
||||||
|
12) Microarchitecture=CONFIG_MZEN2 ;;
|
||||||
|
13) Microarchitecture=CONFIG_MZEN3 ;;
|
||||||
|
14) Microarchitecture=CONFIG_MZEN4 ;;
|
||||||
|
15) Microarchitecture=CONFIG_MPSC ;;
|
||||||
|
16) Microarchitecture=CONFIG_MCORE2 ;;
|
||||||
|
17) Microarchitecture=CONFIG_MATOM ;;
|
||||||
|
18) Microarchitecture=CONFIG_MNEHALEM ;;
|
||||||
|
19) Microarchitecture=CONFIG_MWESTMERE ;;
|
||||||
|
20) Microarchitecture=CONFIG_MSILVERMONT ;;
|
||||||
|
21) Microarchitecture=CONFIG_MGOLDMONT ;;
|
||||||
|
22) Microarchitecture=CONFIG_MGOLDMONTPLUS ;;
|
||||||
|
23) Microarchitecture=CONFIG_MSANDYBRIDGE ;;
|
||||||
|
24) Microarchitecture=CONFIG_MIVYBRIDGE ;;
|
||||||
|
25) Microarchitecture=CONFIG_MHASWELL ;;
|
||||||
|
26) Microarchitecture=CONFIG_MBROADWELL ;;
|
||||||
|
27) Microarchitecture=CONFIG_MSKYLAKE ;;
|
||||||
|
28) Microarchitecture=CONFIG_MSKYLAKEX ;;
|
||||||
|
29) Microarchitecture=CONFIG_MCANNONLAKE ;;
|
||||||
|
30) Microarchitecture=CONFIG_MICELAKE ;;
|
||||||
|
31) Microarchitecture=CONFIG_MCASCADELAKE ;;
|
||||||
|
32) Microarchitecture=CONFIG_MCOOPERLAKE ;;
|
||||||
|
33) Microarchitecture=CONFIG_MTIGERLAKE ;;
|
||||||
|
34) Microarchitecture=CONFIG_MSAPPHIRERAPIDS ;;
|
||||||
|
35) Microarchitecture=CONFIG_MROCKETLAKE ;;
|
||||||
|
36) Microarchitecture=CONFIG_MALDERLAKE ;;
|
||||||
|
91) Microarchitecture=CONFIG_GENERIC_CPU ;;
|
||||||
|
92) Microarchitecture=CONFIG_GENERIC_CPU2 ;;
|
||||||
|
93) Microarchitecture=CONFIG_GENERIC_CPU3 ;;
|
||||||
|
94) Microarchitecture=CONFIG_GENERIC_CPU4 ;;
|
||||||
|
98) Microarchitecture=CONFIG_MNATIVE_INTEL ;;
|
||||||
|
99) Microarchitecture=CONFIG_MNATIVE_AMD ;;
|
||||||
|
*) default=CONFIG_GENERIC_CPU2 ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
warning "According to PKGBUILD variable _microarchitecture, your choice is $answer"
|
||||||
|
msg "Building this package for microarchitecture: $Microarchitecture$default"
|
||||||
|
sleep 5
|
||||||
|
|
||||||
|
_defaultmicro=$(grep ^CONFIG_LOCALVERSION .config)
|
||||||
|
if [ -z "${default}" ]; then
|
||||||
|
_localversion=$(echo ${Microarchitecture,,} | sed -e 's/config_m/-/g' -e 's/config_generic_cpu/-x64v/g')
|
||||||
|
sed -e "s|^$_defaultmicro|CONFIG_LOCALVERSION=\"$_localversion\"|g" -i .config
|
||||||
|
fi
|
||||||
|
|
||||||
|
sed -e 's|^CONFIG_GENERIC_CPU=y|# CONFIG_GENERIC_CPU is not set|g' -i .config
|
||||||
|
sed -e 's|^CONFIG_GENERIC_CPU2=y|# CONFIG_GENERIC_CPU2 is not set|g' -i .config
|
||||||
|
sed -e 's|^CONFIG_GENERIC_CPU3=y|# CONFIG_GENERIC_CPU3 is not set|g' -i .config
|
||||||
|
sed -e 's|^CONFIG_GENERIC_CPU4=y|# CONFIG_GENERIC_CPU4 is not set|g' -i .config
|
||||||
|
sed -e "s|^# $Microarchitecture is not set|$Microarchitecture=y|g" -i .config
|
||||||
|
|
||||||
|
echo
|
170
packages/linux-elaina/myconfig
Normal file
170
packages/linux-elaina/myconfig
Normal file
@ -0,0 +1,170 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
disable() {
|
||||||
|
echo "disable: ${1}"
|
||||||
|
scripts/config --disable $1
|
||||||
|
}
|
||||||
|
|
||||||
|
enable() {
|
||||||
|
echo "enable: ${1}"
|
||||||
|
scripts/config --enable $1
|
||||||
|
}
|
||||||
|
|
||||||
|
setStr() {
|
||||||
|
echo "setStr: ${1} -> ${2}"
|
||||||
|
scripts/config --set-str $1 $2
|
||||||
|
}
|
||||||
|
|
||||||
|
disableAll() {
|
||||||
|
for i in $*; do
|
||||||
|
disable $i
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
enableAll() {
|
||||||
|
for i in $*; do
|
||||||
|
enable $i
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# Disable staging driver
|
||||||
|
disable CONFIG_STAGING
|
||||||
|
|
||||||
|
# Disable support for special cpu
|
||||||
|
disableAll \
|
||||||
|
CONFIG_CPU_SUP_HYGON \
|
||||||
|
CONFIG_CPU_SUP_CENTAUR \
|
||||||
|
CONFIG_CPU_SUP_ZHAOXIN
|
||||||
|
|
||||||
|
# Disable display and sound
|
||||||
|
disableAll \
|
||||||
|
CONFIG_AUXDISPLAY \
|
||||||
|
CONFIG_PANEL \
|
||||||
|
CONFIG_AGP \
|
||||||
|
CONFIG_VGA_SWITCHEROO \
|
||||||
|
CONFIG_DRM \
|
||||||
|
CONFIG_FB \
|
||||||
|
CONFIG_LCD_CLASS_DEVICE \
|
||||||
|
CONFIG_BACKLIGHT_CLASS_DEVICE \
|
||||||
|
CONFIG_USB_APPLEDISPLAY \
|
||||||
|
CONFIG_SAMSUNG_Q10 \
|
||||||
|
CONFIG_ACPI_CMPC \
|
||||||
|
CONFIG_SOUND
|
||||||
|
|
||||||
|
# Disable noneeded filesystems
|
||||||
|
disableAll \
|
||||||
|
CONFIG_TMPFS_QUOTA \
|
||||||
|
CONFIG_QUOTA \
|
||||||
|
CONFIG_REISERFS_FS \
|
||||||
|
CONFIG_JFS_FS \
|
||||||
|
CONFIG_XFS_FS \
|
||||||
|
CONFIG_GFS2_FS \
|
||||||
|
CONFIG_OCFS2_FS \
|
||||||
|
CONFIG_NILFS2_FS \
|
||||||
|
CONFIG_F2FS_FS \
|
||||||
|
CONFIG_BCACHEFS_FS \
|
||||||
|
CONFIG_ZONEFS_FS \
|
||||||
|
CONFIG_FUSE_FS \
|
||||||
|
CONFIG_OVERLAY_FS \
|
||||||
|
CONFIG_ISO9660_FS \
|
||||||
|
CONFIG_UDF_FS \
|
||||||
|
CONFIG_MSDOS_FS \
|
||||||
|
CONFIG_EXFAT_FS \
|
||||||
|
CONFIG_NTFS_FS \
|
||||||
|
CONFIG_NTFS3_FS \
|
||||||
|
CONFIG_ORANGEFS_FS \
|
||||||
|
CONFIG_ADFS_FS \
|
||||||
|
CONFIG_AFFS_FS \
|
||||||
|
CONFIG_ECRYPT_FS \
|
||||||
|
CONFIG_HFS_FS \
|
||||||
|
CONFIG_HFSPLUS_FS \
|
||||||
|
CONFIG_BEFS_FS \
|
||||||
|
CONFIG_JFFS2_FS \
|
||||||
|
CONFIG_UBIFS_FS \
|
||||||
|
CONFIG_SQUASHFS \
|
||||||
|
CONFIG_MINIX_FS \
|
||||||
|
CONFIG_EROFS_FS \
|
||||||
|
CONFIG_NETWORK_FILESYSTEMS
|
||||||
|
|
||||||
|
# Disable noneeded partition types
|
||||||
|
disableAll \
|
||||||
|
CONFIG_AIX_PARTITION \
|
||||||
|
CONFIG_OSF_PARTITION \
|
||||||
|
CONFIG_AMIGA_PARTITION \
|
||||||
|
CONFIG_ATARI_PARTITION \
|
||||||
|
CONFIG_MAC_PARTITION \
|
||||||
|
CONFIG_BSD_DISKLABEL \
|
||||||
|
CONFIG_MINIX_SUBPARTITION \
|
||||||
|
CONFIG_SOLARIS_X86_PARTITION \
|
||||||
|
CONFIG_UNIXWARE_DISKLABEL \
|
||||||
|
CONFIG_LDM_PARTITION \
|
||||||
|
CONFIG_SGI_PARTITION \
|
||||||
|
CONFIG_ULTRIX_PARTITION \
|
||||||
|
CONFIG_SUN_PARTITION \
|
||||||
|
CONFIG_KARMA_PARTITION \
|
||||||
|
CONFIG_SYSV68_PARTITION \
|
||||||
|
CONFIG_CMDLINE_PARTITION
|
||||||
|
|
||||||
|
# Disable noneeded drivers
|
||||||
|
disableAll \
|
||||||
|
CONFIG_PCCARD \
|
||||||
|
CONFIG_GNSS \
|
||||||
|
CONFIG_MD \
|
||||||
|
CONFIG_FIREWIRE \
|
||||||
|
CONFIG_FIREWIRE_NOSY \
|
||||||
|
CONFIG_MACINTOSH_DRIVERS \
|
||||||
|
CONFIG_ISDN \
|
||||||
|
CONFIG_MEMSTICK \
|
||||||
|
CONFIG_ACCESSIBILITY \
|
||||||
|
CONFIG_CHROME_PLATFORMS \
|
||||||
|
CONFIG_MELLANOX_PLATFORM \
|
||||||
|
CONFIG_SURFACE_PLATFORMS \
|
||||||
|
CONFIG_SOUNDWIRE \
|
||||||
|
CONFIG_FPGA \
|
||||||
|
CONFIG_ANDROID_BINDER_IPC \
|
||||||
|
CONFIG_ANDROID_BINDERFS
|
||||||
|
|
||||||
|
# Other
|
||||||
|
disableAll \
|
||||||
|
CONFIG_BT \
|
||||||
|
CONFIG_IPWIRELESS \
|
||||||
|
CONFIG_PPP \
|
||||||
|
CONFIG_WLAN \
|
||||||
|
CONFIG_WWAN \
|
||||||
|
CONFIG_WIRELESS \
|
||||||
|
CONFIG_NET_9P \
|
||||||
|
CONFIG_NFC \
|
||||||
|
CONFIG_INPUT_JOYSTICK \
|
||||||
|
CONFIG_INPUT_TABLET \
|
||||||
|
CONFIG_INPUT_TOUCHSCREEN \
|
||||||
|
CONFIG_SECURITY_SELINUX
|
||||||
|
|
||||||
|
# Zswap
|
||||||
|
enableAll \
|
||||||
|
CONFIG_ZSWAP_DEFAULT_ON \
|
||||||
|
CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD \
|
||||||
|
CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC \
|
||||||
|
CONFIG_ZSMALLOC
|
||||||
|
disableAll \
|
||||||
|
CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 \
|
||||||
|
CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD \
|
||||||
|
CONFIG_ZBUD \
|
||||||
|
CONFIG_Z3FOLD
|
||||||
|
|
||||||
|
# Codepage
|
||||||
|
enableAll \
|
||||||
|
CONFIG_NLS_ISO8859_1 \
|
||||||
|
CONFIG_NLS_UTF8 \
|
||||||
|
CONFIG_FAT_DEFAULT_UTF8
|
||||||
|
|
||||||
|
# Fix issue from systemd
|
||||||
|
# systemd[1]: Failed to find module 'autofs4'
|
||||||
|
enable CONFIG_AUTOFS_FS
|
||||||
|
|
||||||
|
# Fix warning from device-mapper
|
||||||
|
# kernel: device-mapper: core: CONFIG_IMA_DISABLE_HTABLE is disabled.
|
||||||
|
# Duplicate IMA measurements will not be recorded in the IMA log.
|
||||||
|
enable CONFIG_IMA_DISABLE_HTABLE
|
||||||
|
|
||||||
|
# Elaina kernel
|
||||||
|
setStr CONFIG_DEFAULT_HOSTNAME elaina
|
Loading…
x
Reference in New Issue
Block a user