最近の記事

2021年11月26日

Noir Linux Kernel 5.15.5 released [64bit Custom Linux kernel for Ubuntu/Debian]

The Noir Linux Kernel is 64bit Custom Linux kernel for Ubuntu/Debian,and also this kernel has some useful patches applied.
It has improved response and performance compared to the regular Ubuntu official kernel.It is especially effective for games and desktop applications.
The default CPU scheduler for the Noir linux kernel is "PDS",and the default I/O scheduler is "Kyber".

Noir linux kernelはUbuntu/Debianに対応したカスタムカーネルです。
複数のパッチを適用しています。通常のUbuntu公式カーネルよりレスポンス性能とパフォーマンスを高めています。特にゲームやデスクトップ用途で高い効果を発揮します。
マルチキューI/Oスケジューラーは、MQ-deadline・Kyber・BFQ-MQをカーネルパラメーターで選択可能になっています。
Noir linux kernelのデフォルトのCPUスケジューラーはPDS、デフォルトのI/OスケジューラーはKyberです。

[Download Noir Linux Kernel(binary,source code,patch)]
Download from GitHub

[Change point]
- Updated to linux 5.15.5 patchsets
- Deleted Aufs

[based kernel source]
- linux kernel 5.15( https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.15.tar.xz )

[Optimized kernel configuration]

- Built on the GCC 11.1.0
- CPU scheduler -> PDS
- Default I/O scheduler -> Kyber
- Processor family -> Generic X86_64
- Kernel Compression mode -> zstd
- Preemption Model -> Preemptible Kernel(lowlatency desktop)
- CPU Timer frequency -> 750Hz
- RCU boost delay -> 339
- Compiler optimization level -> Optimize for more performance(-O3)
- Timer tick handling -> Full dynticks system
- Default CPUFreq Governor -> schedutil
- CPU idle governor -> TEO
- nr_migrate = 256
- rq_affinity = 2
- vm_swappiness = 33
- Core Scheduler for SMT on
- UKSM support
- BBR2 support
- futex/futex2 support
- ZSTD kernel and initram support
- clear linux on
- VHBA on
- spadfs support
- bcachefs support
- PCIe ACS Override support
- OpenRGB support
- winesync support(5.14 only)
- SLUB from PREEMPT_RT(option)
- locking core from PREEMPT_RT(option)
- lazy preempt from PREEMPT_RT(option)
- printk queue from PREEMPT_RT(option)
- crypto from PREEMPT_RT(option)
- CacULE support(5.14 only)


[Applied patches]

- linux update patch( https://www.kernel.org/ )
- CacULE( https://github.com/hamadmarri/cacule-cpu-scheduler )
- sirlucjan's patches( https://github.com/sirlucjan/kernel-patches )
- CK's hrtimer patchset( http://ck.kolivas.org/patches/5.0/5.12/5.12-ck1/patches/ )
- le9( https://github.com/hakavlad/le9-patch )
- Zen( http://ck.kolivas.org/patches/5.0/5.15/5.15-ck1/patches/ )
- PREEMPT_RT( https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/ )


◇インストール方法
Gitのリリースページで公開しているバイナリをダウンロードしてインストールする場合は以下のコマンドを使います。


$ sudo dpkg -i *.deb


◇システムのパフォーマンスアップ

$ ./performanceup.sh


◇カスタムカーネルのビルド

バニラカーネルのダウンロードとパッチ当て
$ ./build.sh -e base

前述を行った後にカスタムカーネルのビルドとインストール
$ ./build.sh -e core


◇ダウンロード方法
GitHubのリリースページにある「Source Code」と書かれている部分をクリックすると、バニラカーネルソースコード用のパッチ・各種スクリプト一式をまとめた圧縮ファイルをダウンロード出来ます。また、バイナリも公開しています。

89ee7739-24c8-4414-ad16-e128ee54bbe8.png

◇I/Oスケジューラー確認方法
現在使っているI/Oスケジューラーの確認方法は、端末で以下のコマンドを実行する事で出来ます。

$ cat /sys/block/sd*/queue/scheduler

I/Oスケジューラーを変更するには、以下のコマンドを実行します。

# echo 変更したいスケジューラー > /sys/block/sda/queue/scheduler

設定を永続化するには、起動時に「elevator=変更したいスケジューラー」を付けます。

◇マルチキュー設定方法
マルチキューを使えるようにするには、カーネルパラメータに「scsi_mod.use_blk_mq=1」を追加してシステムを起動します。また、設定を永続化したい場合には、/etc/sysctl.d/90-override.confに「scsi_mod.use_blk_mq=1」を追加して再起動する必要があります。

また、SSDやHDDの種類によって自動的にI/Oスケジューラーを変更する設定の永続化を行うには、以下のようなファイルを作成します。
https://wiki.archlinux.jp/index.php/%E3%83%91%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%B3%E3%82%B9%E3%81%AE%E6%9C%80%E5%A4%A7%E5%8C%96#.E3.82.AB.E3.83.BC.E3.83.8D.E3.83.AB.E3.83.91.E3.83.A9.E3.83.A1.E3.83.BC.E3.82.BF.E3.81.AE.E8.AA.BF.E6.95.B4

◇/etc/udev/rules.d/60-ioschedulers.rules
# set scheduler for non-rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]|mmcblk[0-9]*", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="mq-deadline"
# set scheduler for rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="bfq"



[Full tickless]
1.Edited /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="nohz_full=1"


2.Make grub config
$ sudo grub-mkconfig -o /boot/grub/grub.cfg

3.reboot system


◇CacULEのレスポンス向上コマンド

$ sudo sysctl kernel.sched_interactivity_factor=50
$ sudo sysctl kernel.sched_max_lifetime_ms=60000

永続化したい場合は、/etc/sysctl.d/90-override.confに以下を追加

kernel.sched_interactivity_factor=50
kernel.sched_max_lifetime_ms=60000


posted by takatan at 11:23| 大阪 ☀| アプリケーション公開 | このブログの読者になる | 更新情報をチェックする