Package Details: linux-xanmod-headers 5.12.2-1

Git Clone URL: https://aur.archlinux.org/linux-xanmod.git (read-only, click to copy)
Package Base: linux-xanmod
Description: Headers and scripts for building modules for the Linux Xanmod kernel
Upstream URL: http://www.xanmod.org/
Licenses: GPL2
Submitter: Yoshi2889
Maintainer: figue (figuepluto, jfigueras)
Last Packager: figue
Votes: 71
Popularity: 4.81
First Submitted: 2017-02-14 09:40
Last Updated: 2021-05-07 22:20

Pinned Comments

figue commented on 2018-12-14 00:50

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=99 use_numa=n use_tracers=n use_pds=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: 99 => 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

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

# Compile ONLY used modules to VASTLYreduce 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

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

env _microarchitecture=99 use_numa=n use_tracers=n use_ns=y _localmodcfg=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 "${startdir}/myconfig" "${XDG_CONFIG_HOME}/linux-xanmod/myconfig" ; do
    if [ -f "${_myconfig}" ]; 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
    fi
  done

Latest Comments

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

cartesius commented on 2021-05-08 08:08

I'd also vote for a non-colliding _microarchitecture value.

tam1m commented on 2021-05-08 00:30

@figue

Since 781eefb2ce30

_microarchitecture=98 sets CONFIG_MNATIVE_INTEL

and

_microarchitecture=99 sets CONFIG_MNATIVE_AMD

You should probably update the comments in the PKGBUILD since a lot of people might build for the wrong architecture by settings _microarchitecture=99 as suggested

figue commented on 2021-05-05 10:37

@arglebargle I was reading about $startdir but it looks like is deprecated and will be removed some day soon. So I have changed it to $SRCDEST...

If I list all variables that points to $startdir I see all these:

BUILDDIR=/home/figue/packages/test
BUILDFILE=/home/figue/packages/test/PKGBUILD
LOGDEST=/home/figue/packages/test
OLDPWD=/home/figue/packages/test
PWD=/home/figue/packages/test/src
SRCPKGDEST=/home/figue/packages/test
pkgdir=/home/figue/packages/test/pkg/test
pkgdirbase=/home/figue/packages/test/pkg
srcdir=/home/figue/packages/test/src
startdir=/home/figue/packages/test

Perhaps we can use $(dirname $BUILDFILE)?

arglebargle commented on 2021-05-05 03:50

It looks like there's a small error in the PKGBUILD re: user config (myconfig) handling. The way it's written right now 'myconfig' will never be pulled in from the PKGBUILD directory.

See here:

  # This is intended for the people that want to build this package with their own config
  # Put the file "myconfig" at the package folder (this will take preference) or "${XDG_CONFIG_HOME}/linux-xanmod/myconfig"
  # If we detect partial file with scripts/config commands, we execute as a script
  # If not, it's a full config, will be replaced
  for _myconfig in "${SRCDEST}/myconfig" "${XDG_CONFIG_HOME}/linux-xanmod/myconfig" ; do
    if [ -f "${_myconfig}" ]; then
      if grep -q 'scripts/config' "${_myconfig}"; then

'myconfig' is never included in the sources list, so it won't be picked up by makepkg and copied into $SRCDEST (meaning this will only ever pluck the file from the users homedir.)

You probably want "${startdir}/myconfig" here instead.

cartesius commented on 2021-05-04 13:35

@frostwork Very kind of you, thank you for the info.

frostwork commented on 2021-05-04 11:51

@cartesius, the reason for that specific bump was a new xanmod patch revision: https://aur.archlinux.org/cgit/aur.git/commit/?h=linux-xanmod&id=70971380dccb348b69ef8327ee60359d1d642c7a (changes link besides the PKGBUILD link on the top right) edit: sorry, typo in the nickname

cartesius commented on 2021-05-04 11:28

May I ask, sometimes, more than one aur package of a single kernel version is released, as linux-xanmod 5.12.1-2 a couple of hours ago. Just wondering, what is in general behind releasing more than one version of the same kernel? Thank you.

figue commented on 2021-05-02 18:50

@sshaikh I've never use aurutils to build this package. Maybe the better way you have is to edit variables in PKGBUILD... If chroot reads user skel, you can set in your .bashrc or other file.

figue commented on 2021-05-02 18:47

@alfzki happens to me too. If you don't need this directive, you can use an ugly workaround (pipe an echo :)

echo -e '\n' | env MAKEFLAGS="-j4" _microarchitecture=98 use_numa=n use_tracers=n use_ns=y _localmodcfg=y makepkg

If there is another better way, I'll be glad to accept my punishment :P

sshaikh commented on 2021-05-02 14:53

Would anyone happen to be using aurutils to build this? If so, how can you pass the variables if you build in chroot? In particular _localmodcfg=y

EDIT: I guess we'd also need $HOME too, or $XDG_CONFIG_HOME if we'd like to leverage myconfig