linux-tkg/linux57-tkg/README.md

70 lines
2.9 KiB
Markdown

2020-04-15 08:05:07 +07:00
**Due to intel_pstate poor performances as of late, I have decided to set it to passive mode to make use of the acpi_cpufreq governors passthrough, keeping full support for turbo frequencies.**
A custom Linux kernel 5.7.y with specific PDS, MuQSS and Project C / BMQ CPU schedulers related patchsets selector (stock CFS is also an option) and added tweaks for a nice interactivity/performance balance, aiming for the best gaming experience.
Various personalization options available and userpatches support (put your own patches in the same dir as the PKGBUILD, with the ".mypatch" extension.
MuQSS : http://ck-hack.blogspot.com/
Project C / BMQ : http://cchalpha.blogspot.com/
PDS-mq was originally created by Alfred Chen : http://cchalpha.blogspot.com/
While he dropped it with kernel 5.1 in favor of its BMQ evolution/rework, my pretty bad gaming experiences with BMQ up to this point convinced me to keep PDS afloat for as long as it'll make sense/I'll be able to.
2020-04-15 08:05:07 +07:00
Various personalization options available and userpatches support (put your own patches in the same dir as the PKGBUILD, with the ".mypatch" extension.
Comes with a slightly modified Arch config asking for a few core personalization settings at compilation time.
If you want to streamline your kernel config for lower footprint and faster compilations : https://wiki.archlinux.org/index.php/Modprobed-db
You can enable support for it at the beginning of the PKGBUILD file. Make sure to read everything you need to know about it.
## Other stuff included:
- Graysky's per-CPU-arch native optimizations - https://github.com/graysky2/kernel_gcc_patch
2020-04-15 08:05:07 +07:00
- memory management and swapping tweaks
- scheduling tweaks
- optional "Zenify" patchset using core blk, mm and scheduler tweaks from Zen
- CFS tweaks
- using yeah TCP congestion algo by default
- using cake network queue management system
- using vm.max_map_count=262144 by default
- cherry-picked clear linux patches
- **optional** overrides for missing ACS capabilities
- **optional** ZFS fpu symbols
- **optional** Fsync support (proton)
Add Ubuntu install script + general-ish .config&patching script (#26) * linux57: Add make xconfig option * Linux57: copy PKGBUILD initial commands to _tkg_initscript() * linux57: Update _tkg_initscript() in "tkg-config/prepare" * linux57: Add _define_vars() function in tkg-config/prepare * linux57: Prepend "$_where" to patch paths, in _tkg_srcprep() This is done to be able to change the $_where in the non-Arch install script * linux57: Add distro choice config in customization.cfg, enable "Ubuntu" as option Show options that won't apply when target distro is Ubuntu * linux57: Isolate Arch specific commands in _tkg_srcprep() * linux57: make _tkg_initscript() more verbose * WIP: linux57: Add install.sh script The script downloads linux's source code, applies patches, and handles the .config file after copying the one from the distribution it's running on. TODO: Implement install (and maybe uninstall) * linux57: Add make xconfig option description in customization.cfg * linux57: Fix _EXT_CONFIG_PATH usage and variable sourcing * linux57: Add missing space in condition * linux57: Make _EXT_CONFIG_PATH description as usable by Ubuntu install script * linux57: Add LOCALVERSION kernel choice variable in customization.cfg For now it won't apply for Arch, but can be implemented * linux57: Properly delete linux source folder * linux57: Add progress message when doing make oldconfig * linux57: Add kernel compilation for Ubuntu * linux57: Fix warning in if condition * linux57: Add message when downloading CPU opt patch * linux57: Make script exit at any error * linux57: Move to linux (base version + subversion patch) approach * linux57: Use git to get/reset linux sources and move between subversions This approach has the least impact on the hard-drive given that only the files that need to be changed get changed by git. * linux57: Fix external config loading message * linux57: install.sh: use latest subersion, enable reverting to older ones * linux57: Add extra cleanup steps * Move user_patcher() to tkg-config/prepare * linux57: restore old patch files for old kernel subversions Old kernel subversions are needed for Ubuntu since the latest ones fail to build. * linux57: Define and use script location variable Makes folder navigation more reliable in the script * linux57: Add install step * linux57: install.sh: Uncomment compilation step * linux57: install.sh: Add "config" and "install" commands * linux57: install.sh: Add uninstall command * linux57: Add relative path for misc-patch * Fix leak error for CONFIG_PDS in make deb-pkg * linux57: Define _where in _tkg_srcprep for Arch * Revert "linux57: restore old patch files for old kernel subversions" This reverts commit 65dcbd654c4151283189505c826903c342782d0e. * linux57: Update shasum for pds-undead patch * linux57: Drop support for reverting to older subversions Latest kernel subversions should now work on other distros too * linux57: install.sh load user given customization.cfg first * linux57: install.sh install Ubuntu dependencies * linux57: install.sh: add help message for available commands * linux57: replace _misc_adds with _distro variable * linux57: Update README.md * linux57: README.md: fix typo * linux57: README.md: remove "nano customization.cfg" line * linux57: README.md: fix formatting * Revert "linux57: Update shasum for pds-undead patch" This reverts commit 3c6abef7993a02fc0ae97c23aab379968daa3a31. * Revert "Fix leak error for CONFIG_PDS in make deb-pkg" This reverts commit 40a2a002ae060b309a465d5b6c22a7b91828af0a. * linux57: tkg-config/prepare: remove unused variable defines * linux57: install.sh: use var for folder cleanup * Revert "linux57: replace _misc_adds with _distro variable" This reverts commit 9efdd31b8c0e4c34b2e2878de5bca83ea8e73018.
2020-08-06 12:59:17 +07:00
## Install procedure
### Arch & derivatives
2020-04-15 08:05:07 +07:00
```
git clone https://github.com/Frogging-Family/linux-tkg.git
cd linux-tkg/linux57-tkg
Add Ubuntu install script + general-ish .config&patching script (#26) * linux57: Add make xconfig option * Linux57: copy PKGBUILD initial commands to _tkg_initscript() * linux57: Update _tkg_initscript() in "tkg-config/prepare" * linux57: Add _define_vars() function in tkg-config/prepare * linux57: Prepend "$_where" to patch paths, in _tkg_srcprep() This is done to be able to change the $_where in the non-Arch install script * linux57: Add distro choice config in customization.cfg, enable "Ubuntu" as option Show options that won't apply when target distro is Ubuntu * linux57: Isolate Arch specific commands in _tkg_srcprep() * linux57: make _tkg_initscript() more verbose * WIP: linux57: Add install.sh script The script downloads linux's source code, applies patches, and handles the .config file after copying the one from the distribution it's running on. TODO: Implement install (and maybe uninstall) * linux57: Add make xconfig option description in customization.cfg * linux57: Fix _EXT_CONFIG_PATH usage and variable sourcing * linux57: Add missing space in condition * linux57: Make _EXT_CONFIG_PATH description as usable by Ubuntu install script * linux57: Add LOCALVERSION kernel choice variable in customization.cfg For now it won't apply for Arch, but can be implemented * linux57: Properly delete linux source folder * linux57: Add progress message when doing make oldconfig * linux57: Add kernel compilation for Ubuntu * linux57: Fix warning in if condition * linux57: Add message when downloading CPU opt patch * linux57: Make script exit at any error * linux57: Move to linux (base version + subversion patch) approach * linux57: Use git to get/reset linux sources and move between subversions This approach has the least impact on the hard-drive given that only the files that need to be changed get changed by git. * linux57: Fix external config loading message * linux57: install.sh: use latest subersion, enable reverting to older ones * linux57: Add extra cleanup steps * Move user_patcher() to tkg-config/prepare * linux57: restore old patch files for old kernel subversions Old kernel subversions are needed for Ubuntu since the latest ones fail to build. * linux57: Define and use script location variable Makes folder navigation more reliable in the script * linux57: Add install step * linux57: install.sh: Uncomment compilation step * linux57: install.sh: Add "config" and "install" commands * linux57: install.sh: Add uninstall command * linux57: Add relative path for misc-patch * Fix leak error for CONFIG_PDS in make deb-pkg * linux57: Define _where in _tkg_srcprep for Arch * Revert "linux57: restore old patch files for old kernel subversions" This reverts commit 65dcbd654c4151283189505c826903c342782d0e. * linux57: Update shasum for pds-undead patch * linux57: Drop support for reverting to older subversions Latest kernel subversions should now work on other distros too * linux57: install.sh load user given customization.cfg first * linux57: install.sh install Ubuntu dependencies * linux57: install.sh: add help message for available commands * linux57: replace _misc_adds with _distro variable * linux57: Update README.md * linux57: README.md: fix typo * linux57: README.md: remove "nano customization.cfg" line * linux57: README.md: fix formatting * Revert "linux57: Update shasum for pds-undead patch" This reverts commit 3c6abef7993a02fc0ae97c23aab379968daa3a31. * Revert "Fix leak error for CONFIG_PDS in make deb-pkg" This reverts commit 40a2a002ae060b309a465d5b6c22a7b91828af0a. * linux57: tkg-config/prepare: remove unused variable defines * linux57: install.sh: use var for folder cleanup * Revert "linux57: replace _misc_adds with _distro variable" This reverts commit 9efdd31b8c0e4c34b2e2878de5bca83ea8e73018.
2020-08-06 12:59:17 +07:00
# Edit customization.cfg file
2020-04-15 08:05:07 +07:00
makepkg -si
```
Add Ubuntu install script + general-ish .config&patching script (#26) * linux57: Add make xconfig option * Linux57: copy PKGBUILD initial commands to _tkg_initscript() * linux57: Update _tkg_initscript() in "tkg-config/prepare" * linux57: Add _define_vars() function in tkg-config/prepare * linux57: Prepend "$_where" to patch paths, in _tkg_srcprep() This is done to be able to change the $_where in the non-Arch install script * linux57: Add distro choice config in customization.cfg, enable "Ubuntu" as option Show options that won't apply when target distro is Ubuntu * linux57: Isolate Arch specific commands in _tkg_srcprep() * linux57: make _tkg_initscript() more verbose * WIP: linux57: Add install.sh script The script downloads linux's source code, applies patches, and handles the .config file after copying the one from the distribution it's running on. TODO: Implement install (and maybe uninstall) * linux57: Add make xconfig option description in customization.cfg * linux57: Fix _EXT_CONFIG_PATH usage and variable sourcing * linux57: Add missing space in condition * linux57: Make _EXT_CONFIG_PATH description as usable by Ubuntu install script * linux57: Add LOCALVERSION kernel choice variable in customization.cfg For now it won't apply for Arch, but can be implemented * linux57: Properly delete linux source folder * linux57: Add progress message when doing make oldconfig * linux57: Add kernel compilation for Ubuntu * linux57: Fix warning in if condition * linux57: Add message when downloading CPU opt patch * linux57: Make script exit at any error * linux57: Move to linux (base version + subversion patch) approach * linux57: Use git to get/reset linux sources and move between subversions This approach has the least impact on the hard-drive given that only the files that need to be changed get changed by git. * linux57: Fix external config loading message * linux57: install.sh: use latest subersion, enable reverting to older ones * linux57: Add extra cleanup steps * Move user_patcher() to tkg-config/prepare * linux57: restore old patch files for old kernel subversions Old kernel subversions are needed for Ubuntu since the latest ones fail to build. * linux57: Define and use script location variable Makes folder navigation more reliable in the script * linux57: Add install step * linux57: install.sh: Uncomment compilation step * linux57: install.sh: Add "config" and "install" commands * linux57: install.sh: Add uninstall command * linux57: Add relative path for misc-patch * Fix leak error for CONFIG_PDS in make deb-pkg * linux57: Define _where in _tkg_srcprep for Arch * Revert "linux57: restore old patch files for old kernel subversions" This reverts commit 65dcbd654c4151283189505c826903c342782d0e. * linux57: Update shasum for pds-undead patch * linux57: Drop support for reverting to older subversions Latest kernel subversions should now work on other distros too * linux57: install.sh load user given customization.cfg first * linux57: install.sh install Ubuntu dependencies * linux57: install.sh: add help message for available commands * linux57: replace _misc_adds with _distro variable * linux57: Update README.md * linux57: README.md: fix typo * linux57: README.md: remove "nano customization.cfg" line * linux57: README.md: fix formatting * Revert "linux57: Update shasum for pds-undead patch" This reverts commit 3c6abef7993a02fc0ae97c23aab379968daa3a31. * Revert "Fix leak error for CONFIG_PDS in make deb-pkg" This reverts commit 40a2a002ae060b309a465d5b6c22a7b91828af0a. * linux57: tkg-config/prepare: remove unused variable defines * linux57: install.sh: use var for folder cleanup * Revert "linux57: replace _misc_adds with _distro variable" This reverts commit 9efdd31b8c0e4c34b2e2878de5bca83ea8e73018.
2020-08-06 12:59:17 +07:00
### Ubuntu & derivatives
```
git clone https://github.com/Frogging-Family/linux-tkg.git
cd linux-tkg/linux57-tkg
# Edit customization.cfg file to at least set _distro to "Ubuntu"
./install.sh install
```
To uninstall custom kernels installed through the script:
```
cd path/to/linux-tkg/linux57-tkg
./install.sh uninstall
```
### Other linux distributions
Other distros are not supported, Debian may work with the `install.sh` script. Otherwise,
that same `install.sh` script can clone, patch and edit a `.config` file from your current distro's
that is expected at ``/boot/config-`uname -r`.config``. Otherwise it won't work as-is.
The command to do for that is:
```
./install.sh config
```