Package Details: linux-xanmod 6.8.9-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: 127
Popularity: 1.22
First Submitted: 2017-02-14 09:40 (UTC)
Last Updated: 2024-05-04 08:02 (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 .. 10 11 12 13 14 15 16 17 18 19 20 .. 51 Next › Last »

patlefort commented on 2021-07-29 03:59 (UTC)

I'm getting some compile errors:

kernel/time/hrtimer.c:2244:14: error: redefinition of ‘schedule_msec_hrtimeout’
 2244 | long __sched schedule_msec_hrtimeout(long timeout)

...

enihcam commented on 2021-07-27 10:49 (UTC)

@figue perfect. thx.

figue commented on 2021-07-26 14:02 (UTC)

@enihcam yes, xmlto probably can be removed (I tried in a clean chroot and kernel builds fine without it).

For pahole, check https://github.com/archlinux/svntogit-packages/blob/a9139b232f517a0e3f90542650c7dd5ba0201e68/linux/trunk/PKGBUILD#L95 headers only depends on pahole. Docs nothing. In any case, namcap says: "linux-xanmod-headers W: Dependency included and not needed ('pahole')"

enihcam commented on 2021-07-26 02:35 (UTC) (edited on 2021-07-26 02:39 (UTC) by enihcam)

@figue xmlto is maybe required for docs or header, but not making the kernel. everything else looks good to me. :)

in PKGBUILD i see:

  msg2 "Removing documentation..."
  rm -r "$builddir/Documentation"

figue commented on 2021-07-25 20:14 (UTC)

@enihcam ok fine... So the makedepends array could be: bc cpio kmod libelf perl tar xmlto xz

Is it ok?

enihcam commented on 2021-07-25 02:29 (UTC) (edited on 2021-07-25 02:35 (UTC) by enihcam)

@figue perl is fine, it's a hard dependency.

inetutils it totally unnecessary, because 'hostname'(inetutils) is only used in the script 'mkdebian', see https://github.com/xanmod/linux/blob/60fc05ca606199dc68d8a0340208c7d81fb0a2bb/scripts/package/mkdebian

which is never used in PKGBUILD.

BTW: systemd supports getting hostname via 'hostnamectl'. That inetutils is a dependency of archboot does not mean it is a clean chroot. The chroot in my thin-device is far cleaner than archboot. :)

figue commented on 2021-07-24 21:21 (UTC)

@enihcam seems that inetutils and perl are installed anyway in a clean chroot, so the compilation will not fail. Anybody knows in what cases the other makedependencies are needed?

enihcam commented on 2021-07-24 12:27 (UTC)

@figue, pahole & perl are not needed either.

figue commented on 2021-07-24 00:47 (UTC)

@MithicSpirit thanks! Fixed in 558990efc1d1

MithicSpirit commented on 2021-07-23 21:27 (UTC)

In line 187 of the PKGBUILD it exits the prepare() function if modprobed.db does not exit. However, since no error code is set, makepkg keeps running and the build proceeds until line 229 in _package(), where it attempts to rm nonexistent files due to a cascading error from the version file not being created. This is especially annoying since it build()s the entire package before getting the error, including potentially unwanted modules (since modprobed didn't work), which wastes a lot of time. This could be fixed by changing the exit in line 187 to set a non-zero error code (which makepkg will interpret as an error and also exit immediately).