subsentient/palladiumkernel

Project ID: 19296

Description

A highly optimized kernel compiled with a number of features Fedora usually lacks, such as disk controllers and most filesystems built-in, root over NFS, USB gadgets, forced module unloading and loading, module versioning, in-kernel memtest, Android APIs such as binder and ashmem to add ease of use for the "Anbox" android chroot, page poisoning enabled by default for security, much more. Works good without an initramfs.

This kernel as of 6.0.0-3001, is compiled with Clang and lld with full LTO enabled and -O3 optimization. It can be considered a good balance between optimization and security, leaning towards performance. If you need to build kernel modules and you're having issues because it's Clang-built, do e.g. "make LLVM=1 LLVM_IAS=1" for your external module, or perhaps "make CC=clang HOSTCC=clang LD=lld" if and only if the former fails.

Installation Instructions

kernel-palladium: Requires an x86-64-v2 compatible chip (SSE4.2 level, etc)

kernel-palladium-avx2: Requires an x86-64-v3 compatible chip (AVX2 etc)

kernel-palladium-legacy: Should run on any x86_64 chip, but especially optimized for Core 2 Duo etc.

Install the package kernel-palladium (or kernel-palladium-avx2 or kernel-palladium-legacy). The subpackages kernel-modules and kernel-modules-extra are merged with kernel-palladium. For -devel, install kernel-palladium-devel.

kernel-palladium-avx2 is available for chips compatible with x86-64-v3, but SSE, AVX, and AVX2 cannot be used in generated kernel code, so the primary benefit is for the other new instruction set features processors of that generation will have.

This kernel should be able to boot on most systems without an initramfs, with the exceptions of some special setups such as RAID, LVM, and LUKS. Btrfs and XFS are builtins, so you can boot those without an initramfs. Btrfs runs sanity checks on bootup, to help deal with the sometimes buggy nature of that filesystem.

The specfile has some extra features that I use that might also be useful to you.

If you create an empty file at /etc/palladium.mksymlinks, it will create the symlinks to the latest Palladium kernel at /boot/vmlinuz-pl.x86_64 and /boot/initramfs-pl.x86_64.img. This is useful if you're using just one kernel in your bootloader config and just want a simple configuration, like I do with the extlinux bootloader.

If you create /etc/palladium.easyefi, it will copy the targets of these links to /boot/efi/vmlinuz and /boot/efi/initramfs.img for each kernel upgrade. This is useful if you're using syslinux EFI for your bootloader on your EFI-capable machines, like I am.

Lastly, you can erase this kernel while booted from it, and it will copy modules to a tmpfs so the system can keep running predictably until you reboot to a different kernel.

This is based on vanilla kernel.org tarballs, and only patches for compilation, optimization, and stability are included, so there are no Fedora patches to the source. Very vanilla kernel, but with optimization cranked up in several ways.

Please report all bugs that do not occur in the stock Fedora kernels to me.

I don't have an infinite amount of x86_64 hardware to test on, so if there's a module that your system needs that the stock Fedora kernel includes, please let me know and I'll add it to the config file. I want this kernel (at least the -legacy package) to run everywhere that the stock kernels will, and more.

Active Releases

The following unofficial repositories are provided as-is by owner of this project. Contact the owner directly for bugs or issues (IE: not bugzilla).

Release Architectures Repo Download
Fedora 36 x86_64 (1791)* Fedora 36 (27 downloads)
Fedora 37 x86_64 (1799)* Fedora 37 (19 downloads)
Fedora rawhide x86_64 (176)* Fedora rawhide (142 downloads)

* Total number of packages downloaded in the last seven days.