https://gitlab.com/CalcProgrammer1/OpenRGB
We'll get rid of the userpatches for it in community-patches in favor of this local option. It's been offered for a while, and our oldest "supported" kernel has it. Since there's no plan to drop it, it makes more sense to have it locally.
* prepare: remove prompt for modprobed.db
it's an advanced feature, we don't want to prompt it
just like with TCP congestion algos
* add "_kernel_on_diet" customization option
A little less sugar intake is always welcome
this option hopefully helps with building kernels in github ci
* prepare: fix typo in var name $_where
the underscore was forgotten all this time...
* ci: enable _kernel_on_diet
* ci: move away from deprecated feature
the new approach is better actually too
https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
* Remove anbox option
officially no longer active since months.
basically no longer active since ages.
an alternative is available and in active development (also recommended by anbox), no need to keep this here
* Add Waydroid support
---------
Co-authored-by: gituser <nore@nop.np>
changes that should bring clarity:
- rename toggle option for fsync backport patches that was adopted
in Linux 5.16. Keep enabled by default;
- rename toggle option and file name for fsync legacy patches,
known as "FUTEX_WAIT_MULTIPLE (opcode 31)";
- disable deprecated "futex2_interface" patches by default.
* customization.cfg: add new entries for kernel paths
Two choices:
- Where to put git bare repository,
- Will be implemented as a bare repository, the folder will have only
compressed blobs and will be around ~400MB. Should be good to have
even in HDDs
- This is meant to be in a permanent storage like HDD or SSD.
But some uses could have it on a tmpfs if the storage is very slow
when compared to a full git (shallow) clone
- Where to have the work/build folder
- This will be implemented through a git worktree,
where the bare repo will be decompressed. This is best on a tmpfs folder
but needs >=32GB for a full kernel build. Otherwise should be okay with
modprobed-db
* customization.cfg: remove obsolete entries
the tmpfs related entries can be set with the previously added entries,
i.e. _kernel_work_folder and _kernel_source_folder
* prepare: check if obsoleted vars get set, warn if so and exit
Like this users will get notified about the change and act accordingly
* prepare: remove unused kernel subver patching code
this used to bump from kernel x.y to x.y.z
* prepare: add func to define kernel abs paths
We will use these absolute paths to refer to kernel folders (work and source)
* prepare: rewrite git fetching code
- Rename to "_setup_kernel_work_folder"
- Now we simply fetch directly the "commit hash" / "git tag"
from the user chosen remote, no branches
- The source folder (the one that is preferably on disk) is only a bare repo
with a small size (~400MB)
- The work folder is then (re)created / updated (as need) as a git worktree
* prepare: tkg_patcher: embed patch name into the message
Otherwise it doesn't work on the install.sh approach,
which reimplements a simple msg2 function that doesn't support %s
replacement
* PKGBUILD: use new path variable for work folder
* install.sh: use new path variable for work folder
* CI: setup source and build folder in /tmp
* prepare: update diffconfig with new kernel work folder var
It'll require ~20GB of space by itself, so if your tmpfs is in RAM, make sure you have enough free, and it's definitely not recommended to use this on a <32GB RAM machine.
Reportedly, multiple games (mostly Unity based, but not only?) are seeing much higher CPU usage at lower tickrates resulting in degraded performance when CPU bound.
300 Hz and less are the worst offenders, but 500 and 750 Hz are also affected to some extent. CacULE is seemingly less efficient than everything else and needs 2000 Hz to keep up in those scenarios.
OS (kernel, CONFIG_HZ) Min Average Max
Arch Linux (linux, 300 Hz) 81% 91% 96%
Arch Linux (linux-zen, 1000 Hz) 21% 25% 42%
Fedora Linux (linux (Default), 1000 Hz) 20% 25% 53%
1000 Hz isn't an issue on modern systems, but older or very weak CPUs (like Atoms) which aren't used for gaming might want to use lower values. Since our main target audience is gamers, it only makes sense to change the defaults here.
* prepare: auto-fetch latest versions + harmonize kernel version var
- Latest version is fetched from git: this prepares the road to
moving to git cloning and fetching
- Introduce the $_kver variable that follows a three digit
convention (e.g. '600', '519', '504') to enable comparing
simply between kernel versions
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* All distros: use git to fetch/update kernel sources
- Force git cloning `linux-tkg` so the patches and config
files are automatically checksummed
- Arch: remove all the sha256sums and source files and automatically
populate them on script run.
- Move git cloning/fetching script to 'prepare' script file
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* accept customization.cfg vars as env vars
This makes CLI way easier by enabling e.g.
_version="5.19" makepkg or
_version="5.19" ./install.sh install
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* prepare: better handle git remotes
now there's a dictionary that gives the list of remotes
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* prepare: add default git remote if not set or not recognized
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* customization.cfg: allow specific kernel versions
e.g. "6.0-rc4" or "5.10.51"
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* ci: improved workflow
1. Check periodically for newer kernels with git
2. If a newer kernel exists, with respect to l
latest Github release:
1. Build for cfs, pds, bmq for Arch
2. Make release
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
Signed-off-by: Adel KARA SLIMANE <adel.ks@zegrapher.com>
* prepare: allow choosing oldconfig as the .config updating tool
Signed-off-by: Theo Anderson <telans@posteo.de>
* prepare: make oldconfig interactable
Signed-off-by: Theo Anderson <telans@posteo.de>