Спеціально зібране ядро
Ядро linux-tkg із латками під BC-250, параметри завантаження та ядра, яких краще уникати.
Серцем оптимізацій SkillFishOS є ядро, зібране на замовлення під BC-250, на основі linux-tkg — рецепта від Frogging Family, який накладає латки, націлені на швидкодію та ігри.
Версія й латки
Ядро SkillFishOS має версію 7.2.4-skillfishos (серії 7.0 і 7.1 добігли кінця). Крім звичайних латок linux-tkg воно містить:
- латку розблокування частот BC-250 (діапазон 350–2230 МГц);
- латку 40 CU, яка вмикає всі обчислювальні блоки графіки;
- власну латку RDSEED-quiet, що вгамовує галасливе повідомлення ядра на цьому залізі.
Пакунок ядра (образ + заголовки) публікується як випуск і закріплений (apt-mark hold), щоб оновлення Debian не підмінило його непридатним ядром. Це типове ядро в GRUB.
Параметри завантаження (cmdline)
Командний рядок ядра налаштовано так, і кожен параметр має точну причину:
mitigations=off
split_lock_detect=off
ttm.pages_limit=1572864
ttm.page_pool_size=1572864
| Параметр | Що робить |
|---|---|
mitigations=off |
вимикає захисти від Spectre/Meltdown задля найбільшої швидкодії (на домашній консолі це прийнятний вибір) |
ttm.pages_limit / ttm.page_pool_size |
стеля GTT, лічена сторінками по 4 КіБ: 1572864 = 6 ГіБ, тож Vulkan бачить ~13 ГіБ між VRAM і GTT (стає в пригоді для ШІ). Раніше це був amdgpu.gttsize, застарілий від ядра 7.x: коли задано обидва, драйвер слухає саме цей і каже про це під час кожного запуску |
split_lock_detect=off |
вимикає виявляч split lock, який інакше дроселює процеси з невирівняними атомарними доступами (а так роблять ігри та емулятори) |
А що з DisplayPort? HPD на BC-250 зламане (див. залізо), але SkillFishOS не використовує параметр
video=DP-1:e: службаskillfish-dp-hotswapстежить за EDID і вмикає вихід назад, коли монітор повертається. Це охоплює й випадок, коли монітор вмикають після плати, чого сам лише параметр не робить.
Обчислювальні блоки наживо. SkillFishOS більше не використовує параметр
amdgpu.bc250_cc_write_mode=3(який закріплював 40 CU під час запуску й блокував зміни в роботі). Тепер система стартує на базовому значенні драйвера (24 CU), а служба піднімає 40 CU наживо під час запуску; змінити їх без перезавантаження можна з Tuner. Див. GPU і розгін.
Ядра, яких краще уникати
Не всі свіжі ядра добре працюють на цьому залізі. Зокрема серії 6.15.0–6.15.6 та 6.17.8–6.17.10 відомі проблемами, і їх краще обходити. SkillFishOS постачає власне перевірене ядро саме для того, щоб оминути ці регресії — див. Оновлення.
IOMMU
Як зазначено на сторінці про залізо, IOMMU на BC-250 вмикати не можна ніколи: він нестабільний. Ядро завжди стартує з вимкненим IOMMU.
Чому власне ядро, а не XanMod чи штатне
- Штатне ядро Debian не має латок під BC-250 (розблокування частот, 40 CU) і тягне за собою згадані вище регресії.
- linux-tkg спрощує накладання власних латок і вибір планувальників та параметрів, націлених на ігри.
- Збирати його самим означає оновлювати ядро лише тоді, коли нова версія дає справжню користь, — і після перевірки на залізі.
Джерела
- linux-tkg (Frogging-Family)
- bc250-40cu-unlock (duggasco)
- параметри драйвера amdgpu
- bc250.info — нотатки про ядро й командний рядок
