Package Details: linux-xanmod 6.13.11-1

Git Clone URL: https://aur.archlinux.org/linux-xanmod.git (read-only, click to copy)
Package Base: linux-xanmod
Description: The Linux kernel and modules with Xanmod patches
Upstream URL: http://www.xanmod.org/
Licenses: GPL2
Provides: KSMBD-MODULE, NTFS3-MODULE, VIRTUALBOX-GUEST-MODULES, WIREGUARD-MODULE
Replaces: virtualbox-guest-modules-arch, wireguard-arch
Submitter: Yoshi2889
Maintainer: figue (figuepluto, jfigueras)
Last Packager: figue
Votes: 133
Popularity: 1.60
First Submitted: 2017-02-14 09:40 (UTC)
Last Updated: 2025-04-15 16:58 (UTC)

Dependencies (15)

Required by (6)

Sources (4)

Pinned Comments

anlorsp commented on 2024-07-13 17:07 (UTC) (edited on 2024-07-15 04:53 (UTC) by anlorsp)

Adding

scripts/config --disable CONFIG_IMA_ARCH_POLICY

to myconfig does solve the "Failed to insert module 'nvidia': Key was rejected by service" problem.

Anyone who configured secure boot using sbctl and want to load dkms modules can try this solution.

figue commented on 2018-12-14 00:50 (UTC) (edited on 2023-02-27 20:00 (UTC) by figue)

This package have several variables to enable/disable features.

##
## 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=0
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 (default) / config_x86-64-v2 / 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-v1
fi

# Compress modules with ZSTD (to save disk space)
if [ -z ${_compress_modules+x} ]; then
  _compress_modules=n
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

Personally I'm running now xanmod kernel compiled with this:

env _microarchitecture=98 use_tracers=n use_numa=n _localmodcfg=y _compress_modules=y makepkg -sic

Also, you can now create the file myconfig in your local repo to build this package with a custom config or use ${XDG_CONFIG_HOME}/linux-xanmod/myconfig. This file can be a full kernel config or be a script with several entries to add/remove options (you have several examples in PKGBUILD by using scripts/config):

Code involved:

  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 -x "${_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

Latest Comments

« First ‹ Previous 1 .. 19 20 21 22 23 24 25 26 27 28 29 .. 52 Next › Last »

figue commented on 2021-03-07 22:05 (UTC)

@dmshimself as you post, your myconfig is executing this:

scripts/config --enable CONFIG_SATA_AHCI

so the final .config should have it. I'm not an expert, but in my case I have CONFIG_SATA_AHCI as module, maybe this is the issue here, and you need to put in your myconfig scripts/config --module CONFIG_SATA_AHCI

dmshimself commented on 2021-03-07 20:45 (UTC)

It must be me then :-) In order to simpify, I've deleted the old directory as suggested (many thanks), done a fresh git clone and then moved a myconfig file into the folder. I need to have SATA_AHCI enabled.

I've then run:

env _microarchitecture=30 use_numa=n use_tracers=n use_ns=y _localmodcfg=y makepkg -sri

It's building now. I note that the first part shows the following if it's of any interest .....

patching file tools/testing/selftests/seccomp/seccomp_bpf.c patching file tools/testing/selftests/wireguard/netns.sh patching file virt/kvm/kvm_main.c -> Setting version... -> Applying patch sphinx-workaround.patch... patching file Documentation/conf.py -> Disabling FUNCTION_TRACER/GRAPH_TRACER... -> Disabling NUMA... ==> Detected CPU architecture: silvermont

I then see ....

==> Building this package for microarchitecture: CONFIG_MSILVERMONT

-> Applying myconfig... + scripts/config --enable CONFIG_SATA_AHCI

HOSTCC scripts/basic/fixdep HOSTCC scripts/kconfig/conf.o HOSTCC scripts/kconfig/confdata.o

and it's off and running. As this is a clean build, I expect it to work. Perhaps when the next version of this kernel is issued, I'll revisit and report back.

figue commented on 2021-03-07 19:54 (UTC)

@dmshimself seems you are patching tools/testing/selftests/wireguard/netns.sh but I don't merge any patch right now. Are you sure you are compiling linux-xanmod package? Why don't you erase the entire local repo and download it again? This package is working fine.

dmshimself commented on 2021-03-07 19:41 (UTC)

Advice on building

For a while now I've failed to get a makepkg to work with the following:

env XDG_CONFIG_HOME=/mnt/data/AUR/linux-xanmod _microarchitecture=30 use_numa=n use_tracers=n use_ns=y _localmodcfg=y makepkg -sri

I get an error after the patches are applied:

patching file tools/testing/selftests/wireguard/netns.sh patching file virt/kvm/kvm_main.c ==> ERROR: A failure occurred in prepare(). Aborting...

I've tried many combinations of flags to makepkg, but the only one I've found tht works is to do a clean build with a makepkg -C

Now there sn't anything wrong with that, but it takes a long time on my machine to do the build from scratch and I wondered if there might be a way to avoid this failure in prepare?

figue commented on 2021-03-03 07:35 (UTC)

@simona linux-xanmod-anbox is not maintained by me. Please, leave a comment in its web.

simona commented on 2021-03-03 00:14 (UTC)

linux-xanmod-anbox is more slow? someone can explain me why '-anbox' is not the standard default config for kernel?

figue commented on 2021-03-02 23:24 (UTC)

@xuanruiqi solved in 3de884c332a5

xuanruiqi commented on 2021-03-02 19:54 (UTC)

FWIW, my config is also quite small.

xuanrui@xuanrui-desktop:~ % zgrep '=y' /proc/config.gz| wc -l
1682
xuanrui@xuanrui-desktop:~ % zgrep '=m' /proc/config.gz| wc -l
303

My vmlinuz is smaller than the Arch default one as well, but still:

xuanrui@xuanrui-desktop:~ % du -sh /usr/lib/modules/*                           
805M    /usr/lib/modules/5.11.1-xanmod2-cacule-2-cacule
272M    /usr/lib/modules/5.11.2-arch1-1

Again this is all due to build/vmlinux. Could you do du -sh /usr/lib/modules/* as well?

I don't think this is a bug or problem, but I'd be interested to know why. I also opened an issue on GitHub and hope the maintainers have some insight.

figue commented on 2021-02-27 09:05 (UTC)

@xuanruiqi probably is an addition of some optimizations and some additional options enabled in XanMod that are not in Arch. Also XanMod bzImage is compressed with lz4 and Arch with zstd. In my case I compile XanMod with modprobed-db and the result is less than Arch:

figue on pluto /tmp ➜  ls -lh vmlinuz-linux.uncompressed vmlinuz-linux-xanmod.uncompressed
-rw-r--r-- 1 figue users 45M feb 27 09:54 vmlinuz-linux-xanmod.uncompressed
-rw-r--r-- 1 figue users 49M feb 27 09:55 vmlinuz-linux.uncompressed

Of course, my configs and modules enabled are less than Arch:

figue on pluto /tmp ✗  zgrep '=y' /proc/config.gz | wc -l
1941
figue on pluto /tmp ➜  zgrep '=m' /proc/config.gz | wc -l
242
figue on pluto /tmp ➜  grep '=y' arch.config | wc -l
2522
figue on pluto /tmp ➜  grep '=m' arch.config | wc -l 
5167

If we compare it with XanMod's default config:

figue on pluto /tmp ➜  grep '=y' xanmod.config | wc -l 
2637
figue on pluto /tmp ➜  grep '=m' xanmod.config | wc -l 
5618

Cheers

xuanruiqi commented on 2021-02-26 10:20 (UTC) (edited on 2021-02-26 10:21 (UTC) by xuanruiqi)

Xanmod kernel is very large for me as well. It's not a problem, but I'm curious why:

$ du -sh /usr/lib/modules/5.11.1-arch1-1 
272M    /usr/lib/modules/5.11.1-arch1-1

$ du -sh /usr/lib/modules/5.11.1-xanmod2-cacule-2-cacule 
805M    /usr/lib/modules/5.11.1-xanmod2-cacule-2-cacule

It seems that build/vmlinux (the uncompressed kernel image) is the one guilty. (I'm on the cacule branch but same follows for the main branch)

At first I thought it was related to using -O3 because it performs function inlining, but -O2 didn't make it any better either. I was wondering if some XanMod patch causes this.