Package Details: linux-xanmod 6.8.7-2

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: 128
Popularity: 2.24
First Submitted: 2017-02-14 09:40 (UTC)
Last Updated: 2024-04-22 06:42 (UTC)

Dependencies (14)

Required by (5)

Sources (4)

Pinned Comments

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 .. 3 4 5 6 7 8 9 10 11 12 13 .. 51 Next › Last »

hydrocryo01 commented on 2023-01-17 05:44 (UTC)

@figue Later I found it was due to missing kernel modules. Some additional kernel modules were loaded after I switched to a pre-compiled xanmod kernel. Not sure why the same modules weren't loaded on the stock kernel. Plus, is there an ETA for kernel 6.1.6?

figue commented on 2022-12-31 17:07 (UTC)

@hydrocryo01 what are the parameters used to compile? If you want to see if the error is located in your config or another thing, you can try installing the binary xanmod packages:

https://aur.archlinux.org/packages?O=0&SeB=nd&K=linux-xanmod-linux-bin&outdated=&SB=p&SO=d&PP=50&submit=Go

If it boots, then it's something related to your config.

hydrocryo01 commented on 2022-12-29 17:27 (UTC) (edited on 2022-12-29 17:29 (UTC) by hydrocryo01)

Are there some additional kernel parameters required for this kernel? I booted a unified kernel image based on linux-xanmod and found it failed to mount /efi (my ESP). I'm not sure what the problem is since vfat kernel modules is compiled. My /etc/kernel/cmdline: rw quiet splash root=LABEL=LROOT rootfstype=ext4

My /etc/fstab: ``

Static information about the filesystems.
See fstab(5) for details.
<file system> <dir> <type> <options> <dump> <pass>
/dev/nvme0n1p4 UUID=21aaf8d4-59a8-438e-8aa1-d60ef83175bd

LABEL=LROOT / ext4 rw,relatime 0 1

/dev/nvme0n1p1 UUID=AC50-79AF

/dev/nvme0n1p1 /efi vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 2

LABEL=LGAMES /media/games f2fs rw,relatime,compress_algorithm=zstd:1,compress_chksum,atgc,gc_merge,lazytime,defaults 0 1 ``

figue commented on 2022-11-27 01:56 (UTC)

@Riedler flex is part of base-devel, you should have all packages of that group installed to use makepkg :)

Riedler commented on 2022-11-27 01:03 (UTC)

could you please add flex to the build dependencies? My build just failed because I cleaned up some unused dependencies from my installation.

figue commented on 2022-11-24 23:24 (UTC)

@Wrexes oh. Sorry about your time lost. But the package should create all mkinitcpios, yeah?? Well, I'm happy this package works for you.

Wrexes commented on 2022-11-24 18:04 (UTC) (edited on 2022-11-24 18:05 (UTC) by Wrexes)

Hello~ I can totally understand why you would not set a replaces for a kernel in such a case. That said, I've made the change to regular Xanmod and (after having to DL an Archiso because I'm a dummy and forgot to make the initcpios...) I'm back on. Thanks again for your fast reply, and also for your work maintaining the package !

figue commented on 2022-11-23 19:27 (UTC) (edited on 2022-11-23 19:30 (UTC) by figue)

@Wrexes indeed, -edge is not supported upstream anymore. You can find current maintained branches in upstream url:

https://xanmod.org/

Releases
Linux 6.0   Current Stable (MAIN)   6.0.9-xanmod1   2022-11-16  [ Tree ] [ Tarball ] [ Patch ] [ Changes ] [ Full ChangeLog ]
Linux 6.0-rt    Stable Real-time (RT)   6.0.7-rt14-xanmod1  2022-11-04  [ Tree ] [ Tarball ] [ Patch ] [ Changes ] [ Full ChangeLog ]
Linux 5.15  Long Term Support (LTS)     5.15.78-xanmod1     2022-11-10  [ Tree ] [ Tarball ] [ Patch ] [ Changes ] [ Full ChangeLog ]

Sorry to not add a replace, but I thought the simple deletion was the right choice.

Wrexes commented on 2022-11-23 17:43 (UTC)

Hi ! The edge version of the package has disappeared without notice, and I didn't get a "X replaces Y" notification. Is it intentional? And do I need to remove it and replace it manually with this one? Thanks in advance for your response.