Package Details: linux-xanmod 5.9.2-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
Conflicts: linux-xanmod-git
Provides: linux, linux-xanmod-git
Replaces: linux-xanmod-git
Submitter: Yoshi2889
Maintainer: figue (figuepluto, jfigueras)
Last Packager: figue
Votes: 56
Popularity: 7.23
First Submitted: 2017-02-14 09:40
Last Updated: 2020-10-29 21:19

Required by (188)

Sources (5)

Pinned Comments

figue commented on 2018-12-14 00:50

Please, check new release. You have now several variables to enable/disable features.

References:

## 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

## For performance you can disable FUNCTION_TRACER/GRAPH_TRACER. Limits debugging and analyzing of the kernel.
## Stock Archlinux and Xanmod have this enabled. 
## Set variable "use_tracers" to: n to disable (possibly increase performance)
##                                y to enable  (stock default)
if [ -z ${use_tracers+x} ]; then
  use_tracers=y
fi

## Enable Cachy CPU scheduler by default https://github.com/xanmod/linux/blob/5.8/Documentation/scheduler/sched-Cachy.rst
## Set variable "use_cachy" to: n to disable (stock Xanmod)
##                              y to enable
if [ -z ${use_cachy+x} ]; then
  use_cachy=n
fi

## Enable CONFIG_USER_NS_UNPRIVILEGED flag https://aur.archlinux.org/cgit/aur.git/tree/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch?h=linux-ck
## Set variable "use_ns" to: n to disable (stock Xanmod)
##                           y to enable (stock Archlinux)
if [ -z ${use_ns+x} ]; then
  use_ns=n
fi

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

env use_tracers=n use_numa=n use_cachy=y use_ns=y makepkg -si

Also, you can now put a file in your local repo to build this package with a custom config. You have to call this file myconfig.

Reference:

  # Put the file "myconfig" at the package folder to use this feature
  if [ -f "${startdir}/myconfig" ]; then
    msg2 "Using user CUSTOM config..."
    cp -f "${startdir}"/myconfig .config
  fi

Latest Comments

1 2 3 4 5 6 ... Next › Last »

figue commented on 2020-10-15 21:54

Then _microarchitecture=13

ANDRoid7890 commented on 2020-10-15 17:18

@figue

[android7890@komputator ~]$ gcc -march=native -Q --help=target | grep march | head -1
  -march=                               znver1

and it's 1300x, not 3100x

figue commented on 2020-10-13 17:55

@rayzorben seems ok to me... Can you apply and try in your system?

diff --git a/PKGBUILD b/PKGBUILD
index 91de11e..7351291 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -169,8 +169,8 @@ prepare() {
   # If it's a full config, will be replaced
   # If not, you should use scripts/config commands, one by line
   if [ -f "${startdir}/myconfig" ]; then
-    if [ $(wc -l < "${startdir}/myconfig") -gt 1000 ]; then
-      # myconfig is a full config file. Replace it
+    if ! grep -q 'scripts/config' "${startdir}/myconfig"; then
+      # myconfig is a full config file. Replacing default .config
       msg2 "Using user CUSTOM config..."
       cp -f "${startdir}"/myconfig .config
     else

rayzorben commented on 2020-10-13 04:04

@ThatOneCalculato import them manually:

gpg --receive-keys [KEY]

That1Calculator commented on 2020-10-13 03:42

I'm having trouble installing, it can't import the keys. I tried changing my keyserver to hkp://keyserver.ubuntu.com, but it didn't help.

rayzorben commented on 2020-10-12 21:15

@figue - I get that is the logic, I am asking for it to change if possible

 if (grep 'scripts/config' myconfig) then
     this is a partial file
 else
     this is a full file
 fi

A full file would never contain the text 'scripts/config' but a partial file would. This would allow more than 1000 partial lines.

I prefer to keep a partial so that way if the kernel adds a new option I don't have to go back and update mine, it will just automatically get the default value.

Also I am very comfortable removing hardware that I don't need that is compiled in as a module, but I want to retain defaults for everything else. There are 3500 modules I can remove via scripts/config --disable CONFIG_MODULE_I_DONT_NEED

Also thanks for maintaining this package, linux-xanmod is the only kernel that makes me happy to use my system.

figue commented on 2020-10-12 20:30

@nTia89 see official linux package: https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/linux

@ANDRoid7890 "gcc -march=native -Q --help=target | grep march | head -1"

According to wikipedia your CPU is a zen2 microarchitecture. Use _microarchitecture=14 or native _microarchitecture=42

@rayzorben the logic of myconfig is exactly as you describe. If file has more that 1000 lines it's considered a full kernel config file and it's replaced as the ".config". If not, the file is considered a "partial file" wchich contains only what should be enabled/disabled/module with builtin scripts/config command.

rayzorben commented on 2020-10-12 18:27

Can the logic for myconfig be changed to be a 'full config' if there are more than 1000 lines AND it does not contain scripts/config

I want to be able to have more than 1000 lines, and it seems that the determining factor is if myconfig contains text string('scripts/config') then partial else full

  # This is intended for the people that want to build this package with their own config
  # Put the file "myconfig" at the package folder to use this feature
  # If it's a full config, will be replaced
  # If not, you should use scripts/config commands, one by line
  if [ -f "${startdir}/myconfig" ]; then
    if [ $(wc -l < "${startdir}/myconfig") -gt 1000 ]; then
      # myconfig is a full config file. Replace it
      msg2 "Using user CUSTOM config..."
      cp -f "${startdir}"/myconfig .config
    else
      # myconfig is a partial file. Applying every line
      msg2 "Applying configs..."
      cat "${startdir}"/myconfig | while read -r _linec ; do
        if echo "$_linec" | grep "scripts/config" ; then
          set -- $_linec
          "$@"
        else
          warning "Line format incorrect, ignoring..."
        fi
      done
    fi
    echo
  fi

ANDRoid7890 commented on 2020-10-11 12:58

Please change the choose-gcc-optimisation.sh On my computer in the output of gcc -c -Q -march=native --help=target I can see this:

  Known valid arguments for -march= option:
    i386 i486 i586 pentium lakemont pentium-mmx winchip-c6 winchip2 c3 samuel-2
c3-2 nehemiah c7 esther i686 pentiumpro pentium2 pentium3 pentium3m pentium-m
pentium4 pentium4m prescott nocona core2 nehalem corei7 westmere sandybridge
corei7-avx ivybridge core-avx-i haswell core-avx2 broadwell skylake skylake-avx512
cannonlake icelake-client icelake-server cascadelake tigerlake cooperlake bonnell
atom silvermont slm goldmont goldmont-plus tremont knl knm intel geode k6 k6-2 k6-3
athlon athlon-tbird athlon-4 athlon-xp athlon-mp x86-64 eden-x2 nano nano-1000
nano-2000 nano-3000 nano-x2 eden-x4 nano-x4 k8 k8-sse3 opteron opteron-sse3 athlon64
athlon64-sse3 athlon-fx amdfam10 barcelona bdver1 bdver2 bdver3 bdver4 znver1 znver2
btver1 btver2 generic native

so microarchitecture of my ryzen 3 1300x is named as znver1

nTia89 commented on 2020-10-11 11:10

Why do we have so many makedeps? python-sphinx firstly.