standard-readme compliant Donate with Bitcoin Donate with Ethereum


Dragon Kernel

Dragon is a distro kernel replacement built using the best configuration and kernel sources for desktop, multimedia, and gaming workloads. These kernels are not supported and are not appropriate for production use. You assume all risks associated with the use of this kernel.

 The vanilla Linux kernel is a solid, high-quality Ford, Dragon Linux kernel is the latest Porsche model.
Each person has a choice and desires... (c) Andy Lavr

INTRODUCTION

By default, Ubuntu systems run with the Ubuntu kernels provided by the Ubuntu repositories. However it is handy to be able to test with modified upstream kernels to help locate problems in the Ubuntu kernel patches, or to confirm that upstream has fixed a specific issue. To this end i now offer select upstream kernel builds. These kernels are made from modified kernel source but using the Ubuntu kernel configuration files. These are then packaged as Ubuntu .deb files for simple installation.

Ubuntu’s stock Linux kernel is fine for most users, but because Ubuntu follows a six-month release cycle, their kernels are always a release or three behind upstream. This can cause problems for users attempting to install Ubuntu on brand new hardware, or worse, force ultra-nerds to wait to play with the latest and greatest new kernel features!

All workstations that I use today — a MSI GT80-2QE-Titan-SLI (Broadwell), Dell Inspiron N5010 (Westmere), Toshiba Satellite Click 10 LX0W-C - C64M (Atom Cherry Trail) and Acer Aspire SW5-012/Fendi2 Z3537F (Atom Bay Trail) - boots Dragon kernels instead. Dragon’s kernels mirror the upstream development cycle, and as a bonus, include a number of exciting optimizations and patches to improve performance and expose up-and-coming features.

One recent patch pulls in the ability to utilize architecture-specific GCC optimizations when compiling a kernel. In general, compiler optimizations may not have much effect on runtime performance, however with something as foundational as a kernel, tiny improvements might add up quickly.

The Linux kernel is a very large piece of software. It contains drivers and special handling for all sorts of disparate hardware combinations. By and large, this is a good thing; it allows all sorts of different machines to boot a Linux kernel without undo fiddling. Pre-compiled kernels — like Ubuntu stock or Dragon — keep most of this code around because they cannot anticipate the kind of hardware their users might be using.

Dragon Kernel semantic versioning and give your version numbers meaning:

  • Dragon Kernel no longer uses the stable version of the Linux kernel, all builds are based only on the mainline version.
major.minor[.maintenance-build]  (Example: 5.1.13-dragon)

major.minor is mainline kernel version,  maintenance build is Dragon kernel version.

Main Features

  • Experience a whole new way to interact with your PC like never before.
  • Full kernel adaptation to version Ubuntu Cosmic/Disco.
  • Full kernel adaptation to build GCC 8.3+
  • Optimized to take full advantage of high-performance.
  • Supports all recent 64-bit versions of Debian and Ubuntu-based systems.
  • Tuned CPU for Intel i5/i7/i9/Atom and AMD platform.
  • BMQ CPU Scheduler & Multi-Queue I/O Block Layer w/ BFQ-MQ for smoothness and responsiveness.
  • UKSM - Ultra Kernel Samepage Merging.
  • Caching, Virtual Memory Manager and CPU Governor Improvements.
  • General-purpose Multitasking Kernel.
  • Built on the latest GCC 8.3+
  • DRM Optimized Performance.
  • Intel CPUFreq (P-State passive mode).
  • AUFS, APFS, exFAT, BFQ and Ureadahead support available.

New features Dragon kernel distribution with custom settings:

  • AVL Interactive Tuning: Tunes the kernel for responsiveness at the cost of throughput and power usage.
  • BMQ CPU Scheduler: Fair process scheduler for gaming, multimedia, and real-time loads.
  • Preemptible tree-based hierarchical RCU: RCU implementation for real-time systems.
  • Hard Kernel Preemption: Most aggressive kernel preemption before requiring real-time patches. Guarantees responsive system under high intensity mixed workload scenarios.
  • Budget Fair Queue: Proper disk scheduler optimized for desktop usage, high throughput / low latency.
  • TCP BBR Congestion Control: Fast congestion control, maximizes throughput, guaranteeing higher speeds than Cubic.
  • Smaller TX Net Queues: Reduced queue size on network devices to combat buffer bloat.
  • Ubuntu ureadahead Support: Compatible with Ubuntu’s readahead.
  • Binary Compatibility Cross Distro: Compatible with Debian Testing and newer as well as latest Ubuntu. Worst case, a package rebuild will be required on older distributions.
  • Distribution Kernel Drop-in Replacement: Proper distribution style configuration supporting broadest selection of hardware. Paravirtualization options enabled to reduce overhead under virtualization.
  • Minimal Debugging: Minimum number of debug options enabled to increase kernel throughput.

Full security support

Meltdown-Spectre

View testing result log

Download Spectre and Meltdown mitigation detection tool

  • Indirect Branch Restricted Speculation (IBRS)
  • Indirect Branch Prediction Barrier (IBPB)
  • L1TF/Foreshadow Mitigations

The Ultra Kernel Samepage Merging feature (UKSM)

UKSM

  • This is an improvement upon (KSM). Some basic data structures and routines are borrowed from KSM.

Its new features:

  1. Full system scan: It automatically scans all user processes’ anonymous VMAs. Kernel-user interaction to submit a memory area to KSM is no longer needed.

  2. Rich area detection: It automatically detects rich areas containing abundant duplicated pages based. Rich areas are given a full scan speed. Poor areas are sampled at a reasonable speed with very low CPU consumption.

  3. Ultra Per-page scan speed improvement: A new hash algorithm is proposed. As a result, on a machine with Core(TM)2 Quad Q9300 CPU in 32-bit mode and 800MHZ DDR2 main memory, it can scan memory areas that does not contain duplicated pages at speed of 627MB/sec ~ 2445MB/sec and can merge duplicated areas at speed of 477MB/sec ~ 923MB/sec.

  4. Thrashing area avoidance: Thrashing area(an VMA that has frequent Ksm page break-out) can be filtered out. My benchmark shows it’s more efficient than KSM’s per-page hash value based volatile page detection.

  5. Misc changes upon KSM:

  • It has a fully x86-opitmized memcmp dedicated for 4-byte-aligned page comparison. It’s much faster than default C version on x86.
  • rmap_item now has an struct *page member to loosely cache a address–>page mapping, which reduces too much time-costly follow_page().
  • The VMA creation/exit procedures are hooked to let the Ultra KSM know.
  • try_to_merge_two_pages() now can revert a pte if it fails. No break_ ksm is needed for this case.
  1. Full Zero Page consideration(contributed by Figo Zhang) Now uksmd consider full zero pages as special pages and merge them to an special unswappable uksm zero page.

Advanced multi layered Unification File System

AUFS

Wiki AUFS

AUFS (short for advanced multi-layered unification filesystem) implements a union mount for Linux file systems. The name originally stood for AnotherUnionFS until version 2.

  • The module AUFS is integrated into the kernel.

Apple File System

APFS

Wiki APFS

Apple File System (APFS) is a proprietary file system for macOS High Sierra and later version.

  • The module APFS (read only) is integrated into the kernel.

exFAT - Extended File Allocation Table

exFAT

Wiki exFAT

Linux read/write kernel driver for the exFAT(FAT64), FAT12, FAT16 and vfat (FAT32) file systems

exFAT can be used where NTFS is not a feasible solution (due to data-structure overhead), but a greater file-size limit than the standard FAT32 file system (i.e. 4 GiB) is required. exFAT has been adopted by the SD Card Association as the default file system for SDXC cards larger than 32 GiB.

  • The module (exFAT v1.2.24-dragon) is integrated into the kernel.

  • Full adaptation to Kernel v5

  • Support exFat capacity more than 2TB

Enable exFAT module and install exfat-utils:

Add to /etc/initramfs-tools/modules:

exfat_core
exfat_fs

For filesystem creation and manipulation beyond that of the mount command it is necessary to install the exfat-utils package:

$ sudo add-apt-repository ppa:wip-kernel/exfat-utils
$ sudo apt-get update
$ sudo apt install exfat-utils
$ sudo apt purge exfat-fuse

Usage, formatting:

To create an exFAT file system, use mkfs.exfat (or the mkexfatfs command, which is synonymous):

root# mkfs.exfat
mkexfatfs 1.3.0
Usage: mkfs.exfat [-i volume-id] [-n label] [-p partition-first-sector] [-s sectors-per-cluster] [-V] <device>

For instance, to create it on a removable device present at /dev/sde1 while assigning "Flash" as the file system label:

root# mkfs.exfat -n Flash /dev/sde1

Linux Kernel Runtime Guard

LKRG - Linux Kernel Runtime Guard

LKRG Project

Linux Kernel Runtime Guard (LKRG) is a loadable kernel module that performs runtime integrity checking of the Linux kernel and detection of security vulnerability exploits against the kernel.

  • The module LKRG v0.6a is integrated into the kernel.

New version IPTABLES for Dragon Kernel

iptables

  • Fixes work IPTABLES for Dragon Kernel

It is strongly recommended to use the iptables package only from the PPA Linux WIP-Kernel team:

$ sudo add-apt-repository ppa:wip-kernel/iptables
$ sudo apt update
$ sudo apt dist-upgrade -y

Package version - iptables (1.8.2-4ubuntu1)

Kernel tested by LTP

Linux Test Project

Linux Test Project Information

Linux Test Project is a joint project started by SGI, developed and maintained by IBM, Cisco, Fujitsu, SUSE, Red Hat and others, that has a goal to deliver test suites to the open source community that validate the reliability, robustness, and stability of Linux. The LTP testsuite contains a collection of tools for testing the Linux kernel and related features.


View dmesg output


Install Dragon Kernel:

Detailed explanation

First Step:

  • strong recomended update microcode for you cpu

Update

Update Intel microcode for use IBRS/IBPB:

Download


Install

Sources are on Launchpad. You can see and check them. From these sources, buildbox Launchpad builds packages in a clean environment. Everything is officially and verified by Launchpad and Canonical.

Source in the project page menu, click Code

Source code direct link


Install the packages from Launchpad PPA “Linux WIP-Kernel” Team:

WARNING!

 You can only use kernel packages that are in PPA if you have a Dragon Team license key!
Without registering with the Dragon Team you need to do the build kernel packages yourself.
If you do not register at Dragon Team, the kernel installed from the PPA will work for only 15 minutes.

 License activation is possible only on systems installed with LiveDVD/USB Dragon MATE images.
Dragon Team cannot guarantee the maximum support for the operation of the device as it is unknown
whether the necessary libraries and firmware are installed in the system or not.

Second Step:

For Dragon GENERIC kernel:

$ sudo add-apt-repository ppa:wip-kernel/genv5
$ sudo apt-get update
$ sudo apt install linux-headers-5.1.13-dragon linux-headers-5.1.13-dragon-generic linux-image-unsigned-5.1.13-dragon-generic linux-modules-5.1.13-dragon-generic linux-modules-extra-5.1.13-dragon-generic
$ sudo reboot

For Dragon Lowlatency kernel:

$ sudo add-apt-repository ppa:wip-kernel/genv5
$ sudo apt-get update
$ sudo apt install linux-headers-5.1.13-dragon linux-headers-5.1.13-dragon-lowlatency linux-image-unsigned-5.1.13-dragon-lowlatency linux-modules-5.1.13-dragon-lowlatency linux-modules-extra-5.1.13-dragon-lowlatency
$ sudo reboot

For Dragon Sandy Bridge kernel:

$ sudo add-apt-repository ppa:wip-kernel/shv5
$ sudo apt-get update
$ sudo apt install linux-headers-5.1.13-dragon linux-headers-5.1.13-dragon-sandybridge linux-image-unsigned-5.1.13-dragon-sandybridge linux-modules-5.1.13-dragon-sandybridge linux-modules-extra-5.1.13-dragon-sandybridge
$ sudo reboot

For Dragon Haswell kernel:

$ sudo add-apt-repository ppa:wip-kernel/shv5
$ sudo apt-get update
$ sudo apt install linux-headers-5.1.13-dragon linux-headers-5.1.13-dragon-haswell linux-image-unsigned-5.1.13-dragon-haswell linux-modules-5.1.13-dragon-haswell linux-modules-extra-5.1.13-dragon-haswell
$ sudo reboot

For Dragon Westmere kernel:

$ sudo add-apt-repository ppa:wip-kernel/wav5pax
$ sudo apt-get update
$ sudo apt install linux-headers-5.1.13-dragon linux-headers-5.1.13-dragon-westmere linux-image-unsigned-5.1.13-dragon-westmere linux-modules-5.1.13-dragon-westmere linux-modules-extra-5.1.13-dragon-westmere
$ sudo reboot

For Dragon Atom kernel:

$ sudo add-apt-repository ppa:wip-kernel/wav5pax
$ sudo apt-get update
$ sudo apt install linux-headers-5.1.13-dragon linux-headers-5.1.13-dragon-atom linux-image-unsigned-5.1.13-dragon-atom linux-modules-5.1.13-dragon-atom linux-modules-extra-5.1.13-dragon-atom
$ sudo reboot
  • Ready packages are build as they become update and fixed the source



Copyright © 2019 AndyLavr All rights reserved.