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.27
First Submitted: 2017-02-14 09:40 (UTC)
Last Updated: 2024-05-04 08:02 (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 .. 44 45 46 47 48 49 50 51 Next › Last »

QDesjardin commented on 2018-01-01 20:24 (UTC)

It works absolutely fine =)

figue commented on 2018-01-01 19:10 (UTC)

@QDesjardin check the new version. All should be fine now.

QDesjardin commented on 2017-12-28 23:50 (UTC)

I don't understand, I thought we just had to update the checksum for the config file.. which is the same one I just downloaded when attempting to update through yaourt.

figue commented on 2017-12-28 17:23 (UTC) (edited on 2017-12-28 17:28 (UTC) by figue)

@QDesjardin the file "config" is Arch kernel config. If it change in Arch repos, you probably have to delete your local file, if not you have an old version and checksum will not be the same.

So, try to: rm config && makepkg

QDesjardin commented on 2017-12-27 23:49 (UTC) (edited on 2017-12-27 23:50 (UTC) by QDesjardin)

For 4.14.9-1, it says this while building it:

==> Validating source_x86_64 files with sha256sums...

config ... FAILED

==> ERROR: One or more files did not pass the validity check!

==> ERROR: Makepkg was unable to build linux-xanmod.

figue commented on 2017-12-07 19:49 (UTC)

@ScarecrowDM ok. I'll report upstream.

ScarecrowDM commented on 2017-12-06 15:04 (UTC)

@figue: Yes, upstream patch does support newer CPUs.

https://github.com/graysky2/kernel_gcc_patch

figue commented on 2017-12-03 23:44 (UTC) (edited on 2017-12-04 00:02 (UTC) by figue)

@ScarecrowDM do you know if there are more patches for newer CPU's? And, yes, they include only a few CPU architectures...

AMD Opteron/Athlon64/Hammer/K8
AMD Opteron/Athlon64/Hammer/K8 with SSE3 
AMD 61xx/7x50/PhenomX3/X4/II/K10 
AMD Barcelona 
AMD Bobcat 
AMD Bulldozer
AMD Piledriver 
AMD Jaguar 
Intel P4 / older Netburst based Xeon 
Intel Atom 
Intel Core 2 
Intel Nehalem
Intel Westmere 
Intel Silvermont 
Intel Sandy Bridge 
Intel Ivy Bridge 
Intel Haswell 
Intel Broadwell
Generic-x86-64 
Native optimizations autodetected by GCC

Maybe I report upstream next week. Thank you for the interest.

ScarecrowDM commented on 2017-12-03 18:37 (UTC) (edited on 2017-12-03 18:42 (UTC) by ScarecrowDM)

Hey figue, great work managing this package!

The gcc optimization patch merged on xanmod is outdated though, newer CPUs (like ryzen) aren't on the list when you enter nconfig for further tweaks. I think you should let them know, so it can be fixed upstream.

figue commented on 2017-11-19 02:19 (UTC)

Updated to 4.14.0-xanmod2. There were some changes in PKGBUILD and hooks. Please, check that all is OK.