Skip to content

Kernel 7.2.0-skillfishos (linux-tkg + BC-250 patches)

Latest

Choose a tag to compare

@MTSistemi MTSistemi released this 18 Aug 22:26
· 134 commits to main since this release

SkillFishOS kernel 7.2.0-skillfishos — linux-tkg 7.2 with the BC-250 patch set.

Same tuning as 7.1.7 (BORE scheduler, 1000 Hz, PREEMPT, NTsync, GCC -O3) and the same three editions. It is not faster: measured against 7.1.7 on the board, openssl aes-256-cbc 1 001 714k vs 998 315k and sysbench 6751 vs 6749 events/s — differences inside the noise. The point is being current, not being quicker.

⚠️ Update skillfish-base first

Install skillfish-base 26.08.27 or newer before this kernel:

sudo apt update && sudo apt install skillfish-base

The BC-250's fan is driven by nct6687d, an out-of-tree module built by DKMS. It does not compile against 7.2: strncpy() is gone from <linux/string.h>, and the kernel builds with -Werror on implicit declarations. The module source lives in /usr/src/nct6687d-1.0, belongs to no package, and is identical on every machine installed from one of our images — so this affects all of them, not just ours.

Without the fix apt exits 100 and leaves the kernel half-configured. 26.08.27 ships the repair and a /etc/kernel/postinst.d hook that runs before DKMS, so the source is already correct by the time the module is built.

Editions

Edition uname -r Target Image
main 7.2.0-skillfishos AMD BC-250 (-march=znver2) 147 MB
x64 7.2.0-skillfishos-x64 any other x86-64 PC — this is the one to take 198 MB
generic 7.2.0-skillfishos-generic the earlier build for non-BC-250 machines, kept for anyone already running it 147 MB
slim 7.2.0-skillfishos-slim BC-250, trimmed config — 189 modules instead of 6429 32 MB

You no longer have to pick

skillfishos-kernel 7.2.0-4 looks at the machine before downloading: on a BC-250 it fetches the main build, on anything else the x64 one. Until now it always fetched the BC-250 kernel, which does not boot on an ordinary PC — GRUB loads and then nothing (#53). The check is /usr/local/bin/skillfish-is-bc250, the same one that guards the board-specific services, and it was tried on both machines before this went out.

x64 vs generic. -x64 replaces -generic for new installs. It carries the firmware and driver set an ordinary laptop actually needs — which is why it is 198 MB rather than 147 — and it is built with CONFIG_X86_NATIVE_CPU explicitly off, so the processor of the machine that compiled it cannot leak into the result. -generic stays here so nobody running it is left without their kernel.

The three are genuinely built for different targets, and it is checked rather than assumed: disassembling amdgpu.ko from each package, the BC-250 and slim kernels carry 3519 BMI2/ADX instructions and the generic one carries none — those instructions do not exist in baseline x86-64.

BC-250 patches (verified present in the built source)

  • 0001-bc250-freq-unlock — SCLK range 350–2230 MHz (cyan_skillfish_ppt.c)
  • 0002-bc250-40cu-unlock — all 40 CUs (gfx_v10_0.c, opt-in amdgpu.bc250_cc_write_mode=3)
  • 0003-bc250-rdseed-quiet — silences the RDSEED warning storm
  • 0004-rtw89-fw-O2 — builds one Realtek Wi-Fi file at -O2; at -O3 GCC trips __field_overflow and the build dies

Confirmed on a running board: pp_dpm_sclk tops out at 2230 MHz and 40/40 CUs are active.

Install

sudo apt update && sudo apt install skillfish-base
sudo apt install ./linux-image-7.2.0-skillfishos_7.2.0-1_amd64.deb \
                 ./linux-headers-7.2.0-skillfishos_7.2.0-1_amd64.deb

Use the -generic packages on anything that is not a BC-250. linux-libc-dev is deliberately not published: replacing the system one with a non-Debian build causes trouble with libc.

Tested

The BC-250 runs 7.2 as its default kernel. 16 threads with the 8-core unlock, 40/40 CUs, fan tacho alive, Vulkan 1.4.354 on RADV GFX1013, no failed services. Kernel errors in the journal are identical to 7.1.7 (16/16 ACPI, 8/8 amdgpu) — pre-existing noise, nothing new. The generic edition was booted on unrelated hardware (Xeon E3, NVIDIA Pascal on nouveau) and comes up clean.