XanMod is a general-purpose Linux kernel distribution with custom settings and new features. Built to provide a stable, responsive and smooth desktop experience.
The real-time version is recommended for critical runtime applications such as Linux gaming eSports, streaming, live productions and ultra-low latency enthusiasts.
Supports all recent 64-bit versions of Debian and Ubuntu-based systems.
Main Features
Preemptive Full Tickless Kernel at 500Hz w/ Tuned CPU Core Scheduler. RCU Boost for better responsiveness and lower overall system latency. Block Layer w/ multi-threaded runqueue for high I/O throughput. Caching, Virtual Memory Manager and CPUFreq Governor improvements. BBR TCP Congestion Control + FQ-PIE Packet Scheduling and AQM Algorithm [5.8]. ORC Unwinder for Kernel Stack Traces (debuginfo) implementation. Third-party patchset available: ZSTD kernel, initrd and modules support [5.8][5.6-rt], Full x86_64 FSGSBASE instructions [5.8], Clear Linux [partial], CK's Hrtimer Patchset [5.8][5.4], Wine / Proton Fsync, PCIe ACS Override, BMQ Process Scheduler [5.4 stock disabled], Aufs [5.4] and GCC graysky's. Real-time Linux kernel (PREEMPT_RT) build available [5.6-rt][5.4-rt]. Generic kernel package for compatibility with most Debian & Ubuntu based distributions. Built on the latest GCC 10.2 and Binutils 2.35. GPLv2 license. Can be built for any distribution or purpose.Install via Terminal
echo 'deb http://deb.xanmod.org releases main' | sudo tee /etc/apt/sources.list.d/xanmod-kernel.list && wget -qO - https://dl.xanmod.org/gpg.key | sudo apt-key add -Then update and install:
sudo apt update && sudo apt install linux-xanmodReboot.
Meta packages available: linux-xanmod, linux-xanmod-edge, linux-xanmod-lts, linux-xanmod-rt-edge and linux-xanmod-rt.
To try without adding the repository
* linux-firmware-image package is optionalDownload from Sourceforge and install:
https://sourceforge.net/projects/xanmod/files/
In terminal:sudo dpkg -i linux-image-*xanmod*.deb linux-headers-*xanmod*.deb Reboot.
Check it:cat /proc/version
Linux 5.15.45-xanmod1
728db48 Linux 5.15.45-xanmod1
c0002ef Merge tag 'v5.15.45' into 5.15
a4828b3 drivers/char: Remove LRNG v43 patchset
207ca68 Linux 5.15.45
37fad50 ALSA: usb-audio: Optimize TEAC clock quirk
6099a6c bpf: Check PTR_TO_MEM | MEM_RDONLY in check_helper_mem_access
5d0bba8 bpf: Reject writes for PTR_TO_MAP_KEY in check_helper_mem_access
51f6657 bpf: Fix excessive memory allocation in stack_map_alloc()
77f8c4a bpf: Enlarge offset check value to INT_MAX in bpf_skb_{load,store}_bytes
e36452d bpf: Fix potential array overflow in bpf_trampoline_get_progs()
e2fc17f NFSD: Fix possible sleep during nfsd4_release_lockowner()
fa1c51c NFS: Memory allocation failures are not server fatal errors
9bc73bb docs: submitting-patches: Fix crossref to 'The canonical patch format'
581b2ed tpm: ibmvtpm: Correct the return value in tpm_ibmvtpm_probe()
b574595 tpm: Fix buffer access in tpm2_get_tpm_pt()
718ff5f media: i2c: imx412: Fix power_off ordering
d207a2e media: i2c: imx412: Fix reset GPIO polarity
9ebed8d x86/sgx: Ensure no data in PCMD page after truncate
cd69479 x86/sgx: Fix race between reclaimer and page fault handler
b070e97 x86/sgx: Obtain backing storage page with enclave mutex held
fd55a17 x86/sgx: Mark PCMD page as dirty when modifying contents
cdf828c x86/sgx: Disconnect backing page references from dirty status
12b635b HID: multitouch: add quirks to enable Lenovo X12 trackpoint
18242f3 HID: multitouch: Add support for Google Whiskers Touchpad
58cf68a fs/ntfs3: validate BOOT sectors_per_clusters
6e5bc6f raid5: introduce MD_BROKEN
69712b1 dm verity: set DM_TARGET_IMMUTABLE feature flag
40aaeb4 dm stats: add cond_resched when looping over entries
fd77cb6 dm crypt: make printing of the key constant-time
ed07123 dm integrity: fix error code in dm_integrity_ctr()
a485b32 ARM: dts: s5pv210: Correct interrupt name for bluetooth in Aries
db03727 Bluetooth: hci_qca: Use del_timer_sync() before freeing
f18aa2f ALSA: usb-audio: Configure sync endpoints before data
8d1f715 ALSA: usb-audio: Add missing ep_idx in fixed EP quirks
8c9a54e ALSA: usb-audio: Workaround for clock setup on TEAC devices
3ec459c zsmalloc: fix races between asynchronous zspage free and page migration
5763176 crypto: ecrdsa - Fix incorrect use of vli_cmp
dd36037 crypto: caam - fix i.MX6SX entropy delay value
d8fdb4b KVM: SVM: Use kzalloc for sev ioctl interfaces to prevent kernel data leak
8d3a2aa KVM: x86: Drop WARNs that assert a triple fault never "escapes" from L2
531d107 KVM: x86: avoid calling x86 emulator without a decoded instruction
eea9755 x86, kvm: use correct GFP flags for preemption disabled
7b54eb6 x86/kvm: Alloc dummy async #PF token outside of raw spinlock
1b6bcda KVM: PPC: Book3S HV: fix incorrect NULL check on list iterator
01989d7 netfilter: conntrack: re-fetch conntrack after insertion
9c413a8 netfilter: nf_tables: double hook unregistration in netns path
9ea55b9 netfilter: nf_tables: hold mutex on netns pre_exit path
89ef50f netfilter: nf_tables: sanitize nft_set_desc_concat_parse()
e617179 crypto: drbg - make reseeding from get_random_bytes() synchronous
da20870 crypto: drbg - move dynamic ->reseed_threshold adjustments to drbg_seed()
585f6b7 crypto: drbg - track whether DRBG was seeded with !rng_is_initialized()
fa99680 crypto: drbg - prepare for more fine-grained tracking of seeding state
e16cc79 lib/crypto: add prompts back to crypto libraries
c504167 exfat: check if cluster num is valid
195fffb drm/i915: Fix -Wstringop-overflow warning in call to intel_read_wm_latency()
23cb9ef net: ipa: compute proper aggregation limit
cf2fbc5 pipe: Fix missing lock in pipe_resize_ring()
e6acf86 pipe: make poll_usage boolean and annotate its access
8a3db00 assoc_array: Fix BUG_ON during garbage collect
24c6fc6 i2c: ismt: prevent memory corruption in ismt_access()
f692bcf netfilter: nf_tables: disallow non-stateful expression in sets earlier
f55c75c drivers: i2c: thunderx: Allow driver to work with ACPI defined TWSI controllers
7147593 i2c: ismt: Provide a DMA buffer for Interrupt Cause Logging
731561d net: ftgmac100: Disable hardware checksum on AST2600
4965149 nfc: pn533: Fix buggy cleanup order
7e18fd1 net: af_key: check encryption module availability consistency
20b413c percpu_ref_init(): clean ->percpu_count_ref on failure
8243f57 KVM: arm64: Don't hypercall before EL2 init
8ff4119 pinctrl: sunxi: fix f1c100s uart2 function
0990113 ALSA: usb-audio: Don't get sample rate for MCT Trigger 5 USB-to-HDMI
4e67be4 Linux 5.15.44
50196b5 ALSA: ctxfi: Add SB046x PCI ID
ea5b873 random: check for signals after page of pool writes
3e16757 random: wire up fops->splice{read,write}iter()
0789c69 random: convert to using fops->write_iter()
7f8cea1 random: convert to using fops->read_iter()
6244da2 random: unify batched entropy implementations
64cb7f0 random: move randomize_page() into mm where it belongs
55a368c random: move initialization functions out of hot pages
542a606 random: make consistent use of buf and len
29ed26a random: use proper return types on get_random{int,long}wait()
5572957 random: remove extern from functions in header
c6ae9d6 random: use static branch for crng_ready()
4e5e675 random: credit architectural init the exact amount
11cce50 random: handle latent entropy and command line from random_init()
ac01729 random: use proper jiffies comparison macro
8df752b random: remove ratelimiting for in-kernel unseeded randomness
272b794 random: move initialization out of reseeding hot path
c4e6001 random: avoid initializing twice in credit race
23a1b98 random: use symbolic constants for crng_init states
f4cb809 siphash: use one source of truth for siphash permutations
82caef8 random: help compiler out with fast_mix() by using simpler arguments
4649394 random: do not use input pool from hard IRQs
df4e319 random: order timer entropy functions below interrupt functions
baf0621 random: do not pretend to handle premature next security model
0d24003 random: use first 128 bits of input as fast init
0d79a47 random: do not use batches when !crng_ready()
1ab530c random: insist on random_get_entropy() existing in order to simplify
e6bd242 xtensa: use fallback for random_get_entropy() instead of zero
b4582cb sparc: use fallback for random_get_entropy() instead of zero
d876dca um: use fallback for random_get_entropy() instead of zero
e017497 x86/tsc: Use fallback for random_get_entropy() instead of zero
38fbfa4 nios2: use fallback for random_get_entropy() instead of zero
197d25e arm: use fallback for random_get_entropy() instead of zero
9e6db82 mips: use fallback for random_get_entropy() instead of just c0 random
2ab4160 riscv: use fallback for random_get_entropy() instead of zero
a1428cd m68k: use fallback for random_get_entropy() instead of zero
82f1828 timekeeping: Add raw clock fallback for random_get_entropy()
bc94ccb powerpc: define get_cycles macro for arch-override
8ca78fb alpha: define get_cycles macro for arch-override
9bf990c parisc: define get_cycles macro for arch-override
e05efd3 s390: define get_cycles macro for arch-override
9f17432 ia64: define get_cycles macro for arch-override
807ed9c init: call time_init() before rand_initialize()
2814a9e random: fix sysctl documentation nits
4179671 random: document crng_fast_key_erasure() destination possibility
8b373c1 random: make random_get_entropy() return an unsigned long
b807881 random: allow partial reads if later user copies fail
ccaaff5 random: check for signals every PAGE_SIZE chunk of /dev/[u]random
02c2e2c random: check for signal_pending() outside of need_resched() check
e7e196e random: do not allow user to keep crng key around on stack
be75617 random: do not split fast init input in add_hwgenerator_randomness()
636b057 random: mix build-time latent entropy into pool at init
3967a20 random: re-add removed comment about get_random{u32,u64} reseeding
25727cb random: treat bootloader trust toggle the same way as cpu trust toggle
a704248 random: skip fast_init if hwrng provides large chunk of entropy
3689ac0 random: check for signal and try earlier when generating entropy
94c8249 random: reseed more often immediately after booting
99290c6 random: make consistent usage of crng_ready()
0c66c87 random: use SipHash as interrupt entropy accumulator
6da877d random: replace custom notifier chain with standard one
39c9e55 random: don't let 644 read-only sysctls be written to
e4e1600 random: give sysctl_random_min_urandom_seed a more sensible value
2c60d7f random: do crng pre-init loading in worker rather than irq
1523ec5 random: unify cycles_t and jiffies usage and types
fdb1e54 random: cleanup UUID handling
c169e7a random: only wake up writers after zap if threshold was passed
e400ba1 random: round-robin registers as ulong, not u32
144c1e7 random: clear fast pool, crng, and batches in cpuhp bring up
80c1f7f random: pull add_hwgenerator_randomness() declaration into random.h
98d6def random: check for crng_init == 0 in add_device_randomness()
9df4a56 random: unify early init crng load accounting
d386b08 random: do not take pool spinlock at boot
3c48a2d random: defer fast pool mixing to worker
9489e36 random: rewrite header introductory comment
9385681 random: group sysctl functions
96340f0 random: group userspace read/write functions
74b7042 random: group entropy collection functions
43e87e6 random: group entropy extraction functions
019e057 random: group crng functions
81e62ff random: group initialization wait functions
d3a2510 random: remove whitespace and reorder includes
30c52e9 random: remove useless header comment
95f85a0 random: introduce drain_entropy() helper to declutter crng_reseed()
c807eca random: deobfuscate irq u32/u64 contributions
f641f94 random: add proper SPDX header
ce951e9 random: remove unused tracepoints
4509941 random: remove ifdef'd out interrupt bench
ad5d17d random: tie batched entropy generation to base_crng generation
86ab606 random: fix locking for crng_init in crng_reseed()
d2d1ad9 random: zero buffer after reading entropy from userspace
eda5553 random: remove outdated INT_MAX >> 6 check in urandom_read()
5dd066a random: make more consistent use of integer types
ba789ca random: use hash function for crng_slow_load()
b27bd09 random: use simpler fast key erasure flow on per-cpu keys
1aab83f random: absorb fast pool into input pool after fast load
4a18db1 random: do not xor RDRAND when writing into /dev/random
b51caad random: ensure early RDSEED goes through mixer on init
fd6eb28 random: inline leaves of rand_initialize()
5e4fab6 random: get rid of secondary crngs
ded4cc8 random: use RDSEED instead of RDRAND in entropy extraction
704c76e random: fix locking in crng_fast_load()
67fdda9 random: remove batched entropy locking
ad86aa8 random: remove use_input_pool parameter from crng_reseed()
1bc9db5 random: make credit_entropy_bits() always safe
3730490 random: always wake up entropy writers after extraction
cb65ac3 random: use linear min-entropy accumulation crediting
a6beb81 random: simplify entropy debiting
a5e2c8a random: use computational hash for entropy extraction
add92df random: only call crng_finalize_init() for primary_crng
07e0152 random: access primary_pool directly rather than through pointer
b53c966 random: continually use hwgenerator randomness
c1dc53d random: simplify arithmetic function flow in account()
2f0e83e random: selectively clang-format where it makes sense
db7a0a9 random: access input_pool_data directly rather than through pointer
c25c7e2 random: cleanup fractional entropy shift constants
6851294 random: prepend remaining pool constants with POOL
2772ba4 random: de-duplicate INPUT_POOL constants
da80b44 random: remove unused OUTPUT_POOL constants
f9efa1a random: rather than entropy_store abstraction, use global
b6d849d random: remove unused extract_entropy() reserved argument
578fbb7 random: remove incomplete last_data logic
8aa9ddc random: cleanup integer types
4330c48 random: cleanup poolinfo abstraction
250bda5 random: fix typo in comments
15a1a3b random: don't reset crng_init_cnt on urandom_read()
d47579f random: avoid superfluous call to RDRAND in CRNG extraction
0c39104 random: early initialization of ChaCha constants
5822fad random: use IS_ENABLED(CONFIG_NUMA) instead of ifdefs
69bb5f0 random: harmonize "crng init done" messages
c4c9081 random: mix bootloader randomness into pool
1b1258b random: do not re-init if crng_reseed completes before primary init
0804036 random: do not sign extend bytes for rotation when mixing
2e827d5 random: use BLAKE2s instead of SHA1 in extraction
c5a7694 random: remove unused irq_flags argument from add_interrupt_randomness()
40af1df random: document add_hwgenerator_randomness() with other input functions
4562644 lib/crypto: blake2s: avoid indirect calls to compression function for Clang CFI
b0cdd9e lib/crypto: sha1: re-roll loops to reduce code size
cba2195 lib/crypto: blake2s: move hmac construction into wireguard
caba66e lib/crypto: blake2s: include as built-in
830ecba MAINTAINERS: add git tree for random.c
12d7163 MAINTAINERS: co-maintain random.c
0da5349 ACPI: sysfs: Fix BERT error region memory mapping
bf5a3c5 ice: fix crash at allocation failure
acd12d1 KVM: x86/mmu: fix NULL pointer dereference on guest INVPCID
f82ccfa HID: amd_sfh: Add support for sensor discovery
Homepage
Download Linux 5.15.45-xanmod1 source from GitHub
A new XanMod Linux Kernel based on Linux Kernel 5.15.45 has been released. XanMod is a general-purpose Linux kernel distribution with custom settings and new features. The real-time version is recommended for critical runtime applications such as Linux gaming eSports, streaming, live productions and ultra-low latency enthusiasts.