Closed Mantas-2155X closed 3 years ago
Hello, can you run the script again and save the entire output on the shell in a file and attach it here ? The actual error happens earlier than the snippet you shown.
I have attached the full log konsole.txt
Are you piping anything to the script ? Or are you answering m
to all the config questions by hand ? It doesn't look like it given the file you attached, but the script is not running properly as many phases are skipped, we already got reports like this when people where "automating" the script :thinking:
Nevermind, forget about my message above. It's normal. I will investigate further.
There seems to be yet another certificate signing issue, I will see what I can do, I first need to reproduce it.
EXTRACT_CERTS
CC fs/crypto/crypto.o
Generating X.509 key generation config
CC ipc/util.o
CC certs/common.o
AR fs/notify/dnotify/built-in.a
CC fs/notify/inotify/inotify_fsnotify.o
make[4]: *** No rule to make target 'debian/canonical-revoked-certs.pem', needed by 'certs/x509_revocation_list'. Stop.
I cannot reproduce the error on Ubuntu 21.04, but the latest kernel I have is 5.11.0-31-generic
and not 5.11.0-33-generic
. Can you try running the script with an earlier kernel, if you still have it ?
Thank you for looking into this. I have just attempted to build it with 5.11.0-31-generic
and it was successful.
konsole.txt
Alright, I will look into it again when 5.11.0-33-generic
will be available on my machine. It's weird that you got that update earlier, or maybe it got reverted back or something.
Same issue here building 5.14 kernel TKG with Zorin OS 16...
Same issue here Ubuntu 21.10
I do not see any Ubuntu 21.10 in it's download page and I only have linux-image-5.11.0-31-generic
in the repository of my Ubuntu 21.04 (in a VM)
Can you set _configfile
, in customization.cfg
to linux-tkg-config/5.14/config.x86_64
and see if the resulting kernel works fine ?
It would be here but same happened on the previous version for me. Strangely enough the script fails with no error after choosing to generate a config fragment
Have you changed _configfile
as requested (this applies for the others not being able to build linux-tkg too) ? Can you attach the entire output of the script ? Sometime the error is displayed way above but stops later.
I do not see any Ubuntu 21.10 in it's download page and I only have
linux-image-5.11.0-31-generic
in the repository of my Ubuntu 21.04 (in a VM)Can you set
_configfile
, incustomization.cfg
tolinux-tkg-config/5.14/config.x86_64
and see if the resulting kernel works fine ?
Solved!!!
Just look readme file, boot and compile with stock kernel instead xanmod. Works like a charm, now. :)
Thanks a lot!!!
I was initially compiling on stock kernel. Switched to a 3rd party kernel and tkg compiles perfectly.
Setting _configfile
, in customization.cfg
, to linux-tkg-config/5.14/config.x86_64
is a universal solution because the compile issues happening with Ubuntu are always signing related, or the starting config is too old and it gets borked when upgraded, e.g. from 5.10 to 5.14.
I want to set that as a default, but I need feedback, can everyone in this thread test the solution in the previous paragraph, then test the kernel for a while and report back if everything is working fine or not ?
Maybe related: https://ubuntuforums.org/showthread.php?t=2464835&p=14049144#post14049144
For a new rc compile, starting with the mainline PPA kernel configuration file:
./scripts/config --disable SYSTEM_TRUSTED_KEYS
./scripts/config --disable DEBUG_INFO
./scripts/config --disable SYSTEM_REVOCATION_KEYS
Thanks for the feedback @tumpio , yes it's related to that. We do the first two lines but not the last one. Maybe that's the culprit.
Can you retry a compilation while running the problematic kernel, chose to run xconfig
and search for these options and see if they are properly disabled, disable/clear them if they are not, see if it works, then report back ?
Hello, today I wanted to upgrade my kernel but for some reason deb-pkg fails.
The error and few lines before it happening:
customization.cfg
``` # linux-TkG config file # Linux distribution you are using, options are "Arch", "Void", "Ubuntu", "Debian", "Fedora", "Suse", "Generic". # It is automatically set to "Arch" when using PKGBUILD. # If left empty, the script will prompt _distro="Ubuntu" # Kernel Version - Options are "5.4", "5.7", "5.8", "5.9", "5.10", "5.11", "5.12", "5.13" _version="5.13" #### MISC OPTIONS #### # External config file to use - If the given file exists in path, it will override default config (customization.cfg) - Default is ~/.config/frogminer/linux-tkg.cfg _EXT_CONFIG_PATH=~/.config/frogminer/linux-tkg.cfg # [Arch specific] Set to anything else than "true" to limit cleanup operations and keep source and files generated during compilation. # Default is "true". _NUKR="true" # [install.sh specific] Git mirror to use to get the kernel sources, possible values are "googlesource.com" and "kernel.org" _git_mirror="kernel.org" # Custom compiler root dirs - Leave empty to use system compilers # Example: CUSTOM_GCC_PATH="/home/frog/PKGBUILDS/mostlyportable-gcc/gcc-mostlyportable-9.2.0" CUSTOM_GCC_PATH="" # Custom LLVM compiler root dirs - Leave empty to use system llvm compiler # Example: CUSTOM_LLVM_PATH="/home/frog/PKGBUILDS/mostlyportable-llvm/llvm-mostlyportable-11.0.0" CUSTOM_LLVM_PATH="" # Set to the number corresponding to a predefined profile to use it. The options selected by the profile will override customization.cfg and external config files. # Current list of available profiles : # 1 - Custom (meaning nothing will be enforced and you get to configure everything) # 2 - Ryzen desktop (performance) # 3 - Generic Desktop (Performance) _OPTIPROFILE="1" # Set to true to bypass makepkg.conf and use all available threads for compilation. False will respect your makepkg.conf options. _force_all_threads="true" # Set to true to prevent ccache from being used and set CONFIG_GCC_PLUGINS=y (which needs to be disabled for ccache to work properly) _noccache="false" # Set to true to use modprobed db to clean config from unneeded modules. Speeds up compilation considerably. Requires root - https://wiki.archlinux.org/index.php/Modprobed-db # Using this option can trigger user prompts if the config doesn't go smoothly. # !!!! Make sure to have a well populated db !!!! - Leave empty to be asked about it at build time _modprobeddb="false" # modprobed-db database file location _modprobeddb_db_path=~/.config/modprobed.db # Set to "1" to call make menuconfig, "2" to call make nconfig, "3" to call make xconfig, before building the kernel. Set to false to disable and skip the prompt. _menunconfig="false" # Set to true to generate a kernel config fragment from your changes in menuconfig/nconfig. Set to false to disable and skip the prompt. _diffconfig="false" # Set to the file name where the generated config fragment should be written to. Only used if _diffconfig is active. _diffconfig_name="" #### KERNEL OPTIONS #### # Name of the default config file to use for the kernel # Default (empty): # - Archlinux (PKGBUILD): "config.x86_64" from the linux-tkg-config/5.y folder. # - install.sh: Picks the .config file from the currently running kernel. # It is recommended to be running an official kernel before running this script, to pick off a correct .config file # User provided: # - Archlinux : use "config_hardened.x86_64" to get a hardened kernel. To get a complete hardened setup, you have to use "cfs" as _cpusched. # - Any : custom user provided file, the given path should be relative to the PKGBUILD file. This enables for example to use a user stripped down .config file. # If the .config file isn't up to date with the chosen kernel version, any extra CONFIG_XXXX is set to its default value. # Note: the script copies the resulting .config file as "kernelconfig.new" next to the PKGBUILD as a convenience for an eventual re-use. It gets overwritten at each run. # One can use "kernelconfig.new" here to always use the latest edited .config file. modprobed-db needs to be used only once for its changes to be picked up. _configfile="" # Disable some non-module debugging - See PKGBUILD for the list _debugdisable="false" # Strip the vmlinux file after build is done. Set to anything other than "true" if you require debug headers. Default is "true" _STRIP="true" # LEAVE AN EMPTY VALUE TO BE PROMPTED ABOUT FOLLOWING OPTIONS AT BUILD TIME # CPU scheduler - Options are "upds" (TkG's Undead PDS), "pds", "bmq", "muqss", "cacule" or "cfs" (kernel's default) _cpusched="pds" # Compiler to use - Options are "gcc" or "llvm". # For advanced users. _compiler="" # Clang LTO mode, only available with the "llvm" compiler - options are "no", "full" or "thin". # ! This is currently experimental and might result in an unbootable kernel - Not recommended ! # "no: do not enable LTO" # "full: uses 1 thread for Linking, slow and uses more memory, theoretically with the highest performance gains." # "thin: uses multiple threads, faster and uses less memory, may have a lower runtime performance than Full." _lto_mode="" # CPU sched_yield_type - Choose what sort of yield sched_yield will perform # For PDS and MuQSS: 0: No yield. (Recommended option for gaming on PDS and MuQSS) # 1: Yield only to better priority/deadline tasks. (Default - can be unstable with PDS on some platforms) # 2: Expire timeslice and recalculate deadline. (Usually the slowest option for PDS and MuQSS, not recommended) # For BMQ: 0: No yield. # 1: Deboost and requeue task. (Default) # 2: Set rq skip task. _sched_yield_type="0" # Round Robin interval is the longest duration two tasks with the same nice level will be delayed for. When CPU time is requested by a task, it receives a time slice equal # to the rr_interval in addition to a virtual deadline. When using yield_type 2, a low value can help offset the disadvantages of rescheduling a process that has yielded. # MuQSS default: 6ms" # PDS default: 4ms" # BMQ default: 2ms" # Set to "1" for 2ms, "2" for 4ms, "3" for 6ms, "4" for 8ms, or "default" to keep the chosen scheduler defaults. _rr_interval="2" # Set to "true" to disable FUNCTION_TRACER/GRAPH_TRACER, lowering overhead but limiting debugging and analyzing of kernel functions - Kernel default is "false" _ftracedisable="false" # Set to "true" to disable NUMA, lowering overhead, but breaking CUDA/NvEnc on Nvidia equipped systems - Kernel default is "false" _numadisable="false" # Set to "true" to enable misc additions - May contain temporary fixes pending upstream or changes that can break on non-Arch - Kernel default is "true" _misc_adds="false" # Set to "0" for periodic ticks, "1" to use CattaRappa mode (enabling full tickless) and "2" for tickless idle only. # Full tickless can give higher performances in various cases but, depending on hardware, lower consistency. Just tickless idle can perform better on some platforms (mostly AMD based). _tickless="1" # Set to "true" to use ACS override patch - https://wiki.archlinux.org/index.php/PCI_passthrough_via_OVMF#Bypassing_the_IOMMU_groups_.28ACS_override_patch.29 - Kernel default is "false" _acs_override="false" # Set to "true" to add Bcache filesystem support. You'll have to install bcachefs-tools-git from AUR for utilities - https://bcachefs.org/ - If in doubt, set to "false" _bcachefs="false" # Set to "true" to enable support for fsync, an experimental replacement for esync found in Valve Proton 4.11+ - https://steamcommunity.com/games/221410/announcements/detail/2957094910196249305 _fsync="true" # Set to "true" to enable support for futex2, an experimental interface that can be used by proton-tkg and proton 5.13 experimental through Fsync - Can be enabled alongside fsync to use it as a fallback # https://gitlab.collabora.com/tonyk/linux/-/tree/futex2-dev _futex2="true" # Set to "true" to enable support for winesync, an experimental replacement for esync - requires patched wine - https://repo.or.cz/linux/zf.git/shortlog/refs/heads/winesync _winesync="false" # Set to "true" to enable Binder and Ashmem, the kernel modules required to use the android emulator Anbox. ! This doesn't apply to 5.4.y ! _anbox="false" # A selection of patches from Zen/Liquorix kernel and additional tweaks for a better gaming experience (ZENIFY) - Default is "true" _zenify="true" # compiler optimization level - 1. Optimize for performance (-O2); 2. Optimize harder (-O3); 3. Optimize for size (-Os) - Kernel default is "1" _compileroptlevel="1" # CPU compiler optimizations - Defaults to prompt at kernel config if left empty # AMD CPUs : "k8" "k8sse3" "k10" "barcelona" "bobcat" "jaguar" "bulldozer" "piledriver" "steamroller" "excavator" "zen" "zen2" "zen3" (zen3 opt support depends on GCC11) # Intel CPUs : "mpsc"(P4 & older Netburst based Xeon) "atom" "core2" "nehalem" "westmere" "silvermont" "sandybridge" "ivybridge" "haswell" "broadwell" "skylake" "skylakex" "cannonlake" "icelake" "goldmont" "goldmontplus" "cascadelake" "cooperlake" "tigerlake" # Other options : # - "native_amd" (use compiler autodetection - Selecting your arch manually in the list above is recommended instead of this option) # - "native_intel" (use compiler autodetection and will prompt for P6_NOPS - Selecting your arch manually in the list above is recommended instead of this option) # - "generic" (kernel's default - to share the package between machines with different CPU µarch as long as they are x86-64) # # https://en.wikipedia.org/wiki/X86-64#Microarchitecture_Levels) # - "generic_v2" (depends on GCC11 - to share the package between machines with different CPU µarch supporting at least x86-64-v2 # - "generic_v3" (depends on GCC11 - to share the package between machines with different CPU µarch supporting at least x86-64-v3 # - "generic_v4" (depends on GCC11 - to share the package between machines with different CPU µarch supporting at least x86-64-v4 _processor_opt="zen3" # MuQSS only - Make IRQ threading compulsory (FORCE_IRQ_THREADING) - Default is "false" _irq_threading="false" # CacULE only - Enable Response Driven Balancer, an experimental load balancer for CacULE _cacule_rdb="" # CacULE only - Load balance time period - Default is 19 # https://github.com/hamadmarri/cacule-cpu-scheduler/blob/master/patches/CacULE/RDB/rdb.patch#L56 _cacule_rdb_interval="19" # MuQSS and PDS only - SMT (Hyperthreading) aware nice priority and policy support (SMT_NICE) - Kernel default is "true" - You can disable this on non-SMT/HT CPUs for lower overhead _smt_nice="true" # Trust the CPU manufacturer to initialize Linux's CRNG (RANDOM_TRUST_CPU) - Kernel default is "false" _random_trust_cpu="false" # MuQSS only - CPU scheduler runqueue sharing - No sharing (RQ_NONE), SMT (hyperthread) siblings (RQ_SMT), Multicore siblings (RQ_MC), Symmetric Multi-Processing (RQ_SMP), NUMA (RQ_ALL) # Valid values are "none", "smt", "mc", "mc-llc"(for zen), "smp", "all" - Kernel default is "smt" _runqueue_sharing="" # Timer frequency - "100" "500", "750" or "1000" ("2000" can be set for cacule cpu sched, and will fallback to default if set while on another schedulers) - More options available in kernel config prompt when left empty depending on selected cpusched with the default option pointed with a ">" _timer_freq="500" # Default CPU governor - "performance", "ondemand", "schedutil" or leave empty for default (schedutil) _default_cpu_gov="schedutil" # Use an aggressive ondemand governor instead of default ondemand to improve performance on low loads/high core count CPUs while keeping some power efficiency from frequency scaling. # It still requires you to either set ondemand as default governor or to select it in some way at runtime. _aggressive_ondemand="true" # [Advanced] Default TCP IPv4 algorithm to use. Options are: "yeah", "bbr", "cubic", "reno", "vegas" and "westwood". Leave empty if unsure. # This config option will not be prompted # Can be changed at runtime with the command line `# echo "$name" > /proc/sys/net/ipv4/tcp_congestion_control` where $name is one of the options above. # Default (empty) and fallback : cubic _tcp_cong_alg="" # You can pass a default set of kernel command line options here - example: "intel_pstate=passive nowatchdog amdgpu.ppfeaturemask=0xfffd7fff mitigations=off" _custom_commandline="" #### SPESHUL OPTION #### # If you want to bypass the stock naming scheme and enforce something else (example : "linux") - Useful for some bootloaders requiring manual entry editing on each release. # !!! It will also change pkgname - If you don't explicitely need this, don't use it !!! _custom_pkgbase="" # [non-Arch specific] Kernel localversion. Putting it to "Mario" will make for example the kernel version be 5.7.0-tkg-Mario (given by uname -r) # If left empty, it will use "-tkg-${_cpusched}${_compiler}" where "${_cpusched}" will be replaced by the user chosen scheduler, ${_compiler} will be replaced by "-llvm" if clang is used (nothing for GCC). _kernel_localversion="" # Set to "true" to add back missing symbol for AES-NI/AVX support on ZFS - This is a legacy option that can be ignored on 5.10+ kernels - https://github.com/NixOS/nixpkgs/blob/master/pkgs/os-specific/linux/kernel/export_kernel_fpu_functions.patch _zfsfix="true" #### USER PATCHES #### # community patches - add patches (separated by a space) of your choice by name from the community-patches dir # example: _community_patches="clear_nack_in_tend_isr.myrevert ffb_regression_fix.mypatch 0008-drm-amd-powerplay-force-the-trim-of-the-mclk-dpm-levels-if-OD-is-enabled.mypatch" _community_patches="" # You can use your own patches by putting them in a subfolder called linux-tkg-userpatches (e.g. linux510-tkg-userpatches) next to the PKGBUILD and giving them the .mypatch extension.
# You can also revert patches by putting them in that same folder and giving them the .myrevert extension.
# Also, userpatches variable below must be set to true for the above to work.
_user_patches="true"
# Apply all user patches without confirmation - !!! NOT RECOMMENDED !!!
_user_patches_no_confirm="false"
#### CONFIG FRAGMENTS ####
# You can use your own kernel config fragments by putting them in the same folder as the PKGBUILD and giving them the .myfrag extension.
# Also, the config fragments variable below must be set to true for the above to work.
_config_fragments="true"
# Apply all config fragments without confirmation - !!! NOT RECOMMENDED !!!
_config_fragments_no_confirm="false"
```