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-inamdgpu.bc250_cc_write_mode=3)0003-bc250-rdseed-quiet— silences the RDSEED warning storm0004-rtw89-fw-O2— builds one Realtek Wi-Fi file at-O2; at-O3GCC trips__field_overflowand 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.