Package Base Details: linux-xanmod

Git Clone URL: https://aur.archlinux.org/linux-xanmod.git (read-only, click to copy)
Submitter: Yoshi2889
Maintainer: figue (figuepluto, jfigueras)
Last Packager: figue
Votes: 127
Popularity: 1.60
First Submitted: 2017-02-14 09:40 (UTC)
Last Updated: 2024-03-28 19:28 (UTC)

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 .. 50 Next › Last »

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.

figue commented on 2022-11-15 19:23 (UTC)

@Grimish try to launch makepkg with -C to clean your sources. Also check you don't have any patch file in srcdir.

Grimish commented on 2022-11-15 18:26 (UTC)

Getting already patched kickbacks when I try to build. Anyone else experiencing this? Done a couple hard resets over the past 2 weeks and have only had 1 successful build at the beginning of that.

figue commented on 2022-11-02 19:01 (UTC)

@j1simon pinned message updated. use_ns is not in PKGBUILD anymore.

For the Task Type scheduler, it's in a separated package:

https://aur.archlinux.org/pkgbase/linux-xanmod-tt

j1simon commented on 2022-11-02 15:23 (UTC) (edited on 2022-11-02 15:23 (UTC) by j1simon)

Can someone explain me why the main page (https://xanmod.org/) talks about the Task Type CPU Scheduler if it is not in the patch?

j1simon commented on 2022-11-02 10:05 (UTC) (edited on 2022-11-02 10:08 (UTC) by j1simon)

I have several questions about pinned comments and PKGBUILD:

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

I don't see use_ns anywhere.

In PKGBUILD:

# 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
# Source files: https://github.com/xanmod/linux/tree/5.17/CONFIGS/xanmod/gcc

In that link doesn't exist config_x86-64-v4
On the main page (https://xanmod.org/) there is a link to a script (https://dl.xanmod.org/check_x86-64_psabi.sh) that detects the appropriate value for the CPU where it is compiled.

xpamych commented on 2022-10-16 19:08 (UTC)

@figue thx for quick fix)