BC-250 console image: custom GNOME recipe with remote admin
Build Bazzite BC-250 / Check Bazzite channel digests (push) Has been cancelled
Build Bazzite BC-250 / Build Custom Image (push) Has been cancelled
Build Bazzite BC-250 / Build Custom 40CU Image (push) Has been cancelled
Build Bazzite BC-250 / Save Bazzite channel digest cache (push) Has been cancelled
Build Bazzite BC-250 / Publish GitHub Release (push) Has been cancelled
Build Bazzite BC-250 / Check Bazzite channel digests (push) Has been cancelled
Build Bazzite BC-250 / Build Custom Image (push) Has been cancelled
Build Bazzite BC-250 / Build Custom 40CU Image (push) Has been cancelled
Build Bazzite BC-250 / Save Bazzite channel digest cache (push) Has been cancelled
Build Bazzite BC-250 / Publish GitHub Release (push) Has been cancelled
Based on 62fixolab/Latest-Bazzite-AMD-BC-250-Patched-Images @ 347fd4d. Adds on top of the fork: - recipes/bc250-console-gnome.yml: governor + gnome-remote-desktop + openssh-server, sshd enabled, hhd.service masked, no signing module (local build + ISO path) - files/console/usr/bin/bc250-remote-setup: one-time on-box SSH/RDP setup - files/console/usr/lib/bootc/kargs.d/50-bc250-ttm.toml: ttm memory kargs - BUILD-CONSOLE.md: build -> ISO -> validation instructions files/console/ is separate from files/system/ so the 40-CU unlock tooling stays out of this stable 24-CU image. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,336 @@
|
||||
# 🎉 Sponsors
|
||||
|
||||
## Printer Tools App
|
||||
[](https://printertools.app)
|
||||
|
||||
## Scooter Tools App
|
||||
[](https://scootertools.app)
|
||||
|
||||
## AdMate App
|
||||
[](https://admate.dev)
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Bazzite AMD BC-250 Patched Images for Deck, GNOME, and KDE](#bazzite-amd-bc-250-patched-images-for-deck-gnome-and-kde)
|
||||
- [Documentation](#documentation)
|
||||
- [Which image should I use?](#which-image-should-i-use)
|
||||
- [Other Bazzite update channels](#other-bazzite-update-channels)
|
||||
- [Install](#install)
|
||||
- [After install](#after-install)
|
||||
- [Experimental 40CU images](#experimental-40cu-images)
|
||||
- [Common fixes](#common-fixes)
|
||||
- [Old COPR causes 404 during rebase](#old-copr-causes-404-during-rebase)
|
||||
- [Deck UI micro-stutter](#deck-ui-micro-stutter)
|
||||
- [Sunshine crashes](#sunshine-crashes)
|
||||
- [Temperature sensors](#temperature-sensors)
|
||||
- [Updates and rollback](#updates-and-rollback)
|
||||
- [Comparisons](#comparisons)
|
||||
- [Compared with vietsman's Bazzite images](#compared-with-vietsmans-bazzite-images)
|
||||
- [Compared with duggasco's 40CU unlock research](#compared-with-duggascos-40cu-unlock-research)
|
||||
- [References](#references)
|
||||
- [License](#license)
|
||||
|
||||
# Bazzite AMD BC-250 Patched Images for Deck, GNOME, and KDE
|
||||
|
||||
[](https://github.com/62fixolab/Latest-Bazzite-AMD-BC-250-Patched-Images/actions/workflows/build.yml)
|
||||
|
||||
Current Bazzite images for AMD BC-250 boards. This is not a Bazzite fork; the recommended packages are current official Bazzite `stable` plus BC-250-specific setup. Separate `testing` and `unstable` packages are also published for users who deliberately want to test those Bazzite channels.
|
||||
|
||||
They use the official Bazzite `stable` base and add the BC-250 pieces most users need:
|
||||
|
||||
- `cyan-skillfish-governor-smu` for GPU frequency scaling.
|
||||
- The MangoHud/radeontop `655%` GPU usage fix.
|
||||
- Signed OSTree images for `ostree-image-signed` rebases.
|
||||
- Deck, GNOME, and KDE variants.
|
||||
|
||||
> [!TIP]
|
||||
> If you only want a working BC-250 gaming setup, use the normal image for your desktop. You do not need the experimental `-40cu` image.
|
||||
|
||||
# Documentation
|
||||
|
||||
Start here and only open the advanced guide if you are testing the experimental CU unlock.
|
||||
|
||||
| Need | Read |
|
||||
| --- | --- |
|
||||
| Install Deck, GNOME, or KDE | This README |
|
||||
| Use `stable`, `testing`, or `unstable` packages | [Bazzite Channel Packages](docs/update-channels.md) |
|
||||
| Check the image after install | [After install](#after-install) |
|
||||
| Fix common BC-250 issues | [Common fixes](#common-fixes) |
|
||||
| Test 32CU/40CU unlock | [Experimental 40CU Guide](docs/40cu.md) |
|
||||
| Understand the original 40CU research | [`duggasco/bc250-40cu-unlock`](https://github.com/duggasco/bc250-40cu-unlock) |
|
||||
|
||||
> [!IMPORTANT]
|
||||
> The complete 40CU documentation is in [docs/40cu.md](docs/40cu.md). The README only keeps the short version so new users do not have to read the experimental details to install a normal image.
|
||||
|
||||
# Which image should I use?
|
||||
|
||||
| You want | Use this |
|
||||
| --- | --- |
|
||||
| Steam Deck style / Game Mode | `bazzite-bc250-patched-deck` |
|
||||
| GNOME desktop | `bazzite-bc250-patched-gnome` |
|
||||
| KDE desktop | `bazzite-bc250-patched-kde` |
|
||||
| Experimental CU unlock testing | One of the `-40cu` images |
|
||||
|
||||
Published images:
|
||||
|
||||
| Variant | Image |
|
||||
| --- | --- |
|
||||
| Deck | `ghcr.io/62fixolab/bazzite-bc250-patched-deck:latest` |
|
||||
| GNOME | `ghcr.io/62fixolab/bazzite-bc250-patched-gnome:latest` |
|
||||
| KDE | `ghcr.io/62fixolab/bazzite-bc250-patched-kde:latest` |
|
||||
|
||||
> [!IMPORTANT]
|
||||
> The normal images are the recommended choice. The `-40cu` images are for testing only and do not guarantee that your board will be stable with extra CUs enabled.
|
||||
|
||||
# Other Bazzite update channels
|
||||
|
||||
Stable is still the recommended channel. This repo also publishes separate packages for Bazzite `testing` and `unstable` so users can test upstream Bazzite channels without overwriting the stable `latest` tags.
|
||||
|
||||
| Channel | Use | Normal package suffix | 40CU package suffix |
|
||||
| --- | --- | --- | --- |
|
||||
| `stable` | Recommended daily use | none | `-40cu` |
|
||||
| `testing` | Preview future Bazzite builds before stable release | `-testing` | `-40cu-testing` |
|
||||
| `unstable` | Bazzite contributor/advanced testing only | `-unstable` | `-40cu-unstable` |
|
||||
|
||||
Examples:
|
||||
|
||||
```bash
|
||||
# Deck testing
|
||||
rpm-ostree rebase ostree-image-signed:docker://ghcr.io/62fixolab/bazzite-bc250-patched-deck-testing:latest
|
||||
|
||||
# Deck unstable
|
||||
rpm-ostree rebase ostree-image-signed:docker://ghcr.io/62fixolab/bazzite-bc250-patched-deck-unstable:latest
|
||||
|
||||
# Deck testing with optional 40CU tooling
|
||||
rpm-ostree rebase ostree-image-signed:docker://ghcr.io/62fixolab/bazzite-bc250-patched-deck-40cu-testing:latest
|
||||
```
|
||||
|
||||
Replace `deck` with `gnome` or `kde` to stay on the same desktop environment.
|
||||
|
||||
The complete package matrix and install commands for every Deck/GNOME/KDE, normal, and `-40cu` channel are in [docs/update-channels.md](docs/update-channels.md).
|
||||
|
||||
> [!WARNING]
|
||||
> Bazzite documents that rebasing between desktop environments can cause issues and is unsupported. Stay on Deck, GNOME, or KDE when changing channels.
|
||||
|
||||
> [!CAUTION]
|
||||
> `testing` can include bugs, and `unstable` is intended for Bazzite core contributor testing. Use the stable packages unless you specifically want to test those channels.
|
||||
|
||||
# Install
|
||||
|
||||
> [!IMPORTANT]
|
||||
> This assumes your BC-250 already works on stock Bazzite. Recommended baseline: modified BIOS, 512 MB dynamic VRAM, IOMMU disabled, enough cooling, and a PSU with enough 12 V headroom.
|
||||
|
||||
If you used the old vietsman patched kernel COPR before, disable it first:
|
||||
|
||||
```bash
|
||||
sudo mkdir -p /etc/yum.repos.d.disabled
|
||||
sudo mv /etc/yum.repos.d/*vietsman*patched-kernel-bc250*.repo /etc/yum.repos.d.disabled/ 2>/dev/null || true
|
||||
```
|
||||
|
||||
Then rebase to the image you want:
|
||||
|
||||
```bash
|
||||
# Deck
|
||||
rpm-ostree rebase ostree-image-signed:docker://ghcr.io/62fixolab/bazzite-bc250-patched-deck:latest
|
||||
|
||||
# GNOME
|
||||
rpm-ostree rebase ostree-image-signed:docker://ghcr.io/62fixolab/bazzite-bc250-patched-gnome:latest
|
||||
|
||||
# KDE
|
||||
rpm-ostree rebase ostree-image-signed:docker://ghcr.io/62fixolab/bazzite-bc250-patched-kde:latest
|
||||
|
||||
systemctl reboot
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> The images are signed with cosign and include the signing policy needed for `ostree-image-signed`.
|
||||
|
||||
# After install
|
||||
|
||||
Check that you are on the expected image:
|
||||
|
||||
```bash
|
||||
rpm-ostree status
|
||||
```
|
||||
|
||||
Check the governor:
|
||||
|
||||
```bash
|
||||
systemctl status cyan-skillfish-governor-smu --no-pager
|
||||
```
|
||||
|
||||
Check the GPU frequency table:
|
||||
|
||||
```bash
|
||||
for f in /sys/class/drm/card*/device/pp_dpm_sclk; do echo "$f"; cat "$f"; done
|
||||
```
|
||||
|
||||
> [!TIP]
|
||||
> The BC-250 GPU can appear as `card0` or `card1`. Checking both avoids a lot of confusion.
|
||||
|
||||
MangoHud/radeontop should now show normal GPU usage instead of `655%`.
|
||||
|
||||
# Experimental 40CU images
|
||||
|
||||
This is the short version. The full testing guide is here: [docs/40cu.md](docs/40cu.md).
|
||||
|
||||
The repository also builds separate experimental `-40cu` images:
|
||||
|
||||
| Variant | Image |
|
||||
| --- | --- |
|
||||
| Deck 40CU | `ghcr.io/62fixolab/bazzite-bc250-patched-deck-40cu:latest` |
|
||||
| GNOME 40CU | `ghcr.io/62fixolab/bazzite-bc250-patched-gnome-40cu:latest` |
|
||||
| KDE 40CU | `ghcr.io/62fixolab/bazzite-bc250-patched-kde-40cu:latest` |
|
||||
|
||||
These images include runtime tooling from the original [`duggasco/bc250-40cu-unlock`](https://github.com/duggasco/bc250-40cu-unlock) research and [`WinnieLV/bc250-cu-live-manager`](https://github.com/WinnieLV/bc250-cu-live-manager).
|
||||
|
||||
> [!CAUTION]
|
||||
> 32CU/40CU is silicon lottery. The tooling can work perfectly and your specific board can still be unstable with extra CUs enabled. If games fail at 32CU/40CU but work again at 24CU, use 24CU.
|
||||
|
||||
Quick test flow:
|
||||
|
||||
```bash
|
||||
ujust bc250-cu-status
|
||||
ujust bc250-cu-dry-run-40
|
||||
ujust bc250-cu-sweet-spot
|
||||
ujust bc250-cu-enable-40
|
||||
ujust bc250-cu-status
|
||||
```
|
||||
|
||||
Rollback to factory 24CU:
|
||||
|
||||
```bash
|
||||
ujust bc250-cu-disable-boot
|
||||
ujust bc250-cu-restore-24
|
||||
```
|
||||
|
||||
> [!WARNING]
|
||||
> Do not run `ujust bc250-cu-save-boot` until you have tested games or benchmarks and confirmed that your board is stable.
|
||||
|
||||
Open [docs/40cu.md](docs/40cu.md) for the full test order, iterative WGP testing, a real 36CU example, status interpretation, boot persistence, and recovery commands.
|
||||
|
||||
# Common fixes
|
||||
|
||||
## Old COPR causes 404 during rebase
|
||||
|
||||
Disable the old patched-kernel repo:
|
||||
|
||||
```bash
|
||||
sudo mkdir -p /etc/yum.repos.d.disabled
|
||||
sudo mv /etc/yum.repos.d/*vietsman*patched-kernel-bc250*.repo /etc/yum.repos.d.disabled/ 2>/dev/null || true
|
||||
```
|
||||
|
||||
## Deck UI micro-stutter
|
||||
|
||||
If the Handheld Daemon restarts repeatedly on Deck UI:
|
||||
|
||||
```bash
|
||||
sudo systemctl disable --now hhd
|
||||
sudo systemctl mask hhd
|
||||
```
|
||||
|
||||
## Sunshine crashes
|
||||
|
||||
First reinstall the Bazzite integration:
|
||||
|
||||
```bash
|
||||
ujust setup-sunshine
|
||||
```
|
||||
|
||||
If Sunshine crashes with `status=139`/SIGSEGV, test software encoding:
|
||||
|
||||
```bash
|
||||
systemctl --user stop homebrew.sunshine.service
|
||||
mkdir -p ~/.config/sunshine
|
||||
sed -i '/^encoder *=/d;/^capture *=/d' ~/.config/sunshine/sunshine.conf 2>/dev/null || true
|
||||
printf '\nencoder = software\ncapture = kms\n' >> ~/.config/sunshine/sunshine.conf
|
||||
systemctl --user restart homebrew.sunshine.service
|
||||
journalctl --user -u homebrew.sunshine.service -b -f
|
||||
```
|
||||
|
||||
Then open `https://localhost:47990` or `https://<host-ip>:47990`.
|
||||
|
||||
## Temperature sensors
|
||||
|
||||
For read-only monitoring:
|
||||
|
||||
```bash
|
||||
echo 'nct6683' | sudo tee /etc/modules-load.d/nct6683.conf
|
||||
echo 'options nct6683 force=true' | sudo tee /etc/modprobe.d/sensors.conf
|
||||
systemctl reboot
|
||||
```
|
||||
|
||||
# Updates and rollback
|
||||
|
||||
Images are checked daily against official Bazzite `stable`, `testing`, and `unstable` base digests. If a Bazzite channel changes for a specific Deck/GNOME/KDE base, GitHub Actions rebuilds only the matching normal and `-40cu` packages.
|
||||
|
||||
> [!NOTE]
|
||||
> Commits to this repository do not rebuild packages by themselves when the Bazzite channel digests are unchanged. A manual workflow run can still force a rebuild if needed.
|
||||
|
||||
Update normally:
|
||||
|
||||
```bash
|
||||
ujust update
|
||||
```
|
||||
|
||||
Rollback if something breaks:
|
||||
|
||||
```bash
|
||||
rpm-ostree rollback
|
||||
systemctl reboot
|
||||
```
|
||||
|
||||
# Comparisons
|
||||
|
||||
## Compared with vietsman's Bazzite images
|
||||
|
||||
This repository continues the idea from:
|
||||
|
||||
- [`vietsman/bazzite-deck-patched`](https://github.com/vietsman/bazzite-deck-patched)
|
||||
- [`vietsman/bazzite-gnome-patched`](https://github.com/vietsman/bazzite-gnome-patched)
|
||||
- [`vietsman/bazzite-kde-patched`](https://github.com/vietsman/bazzite-kde-patched)
|
||||
|
||||
| Area | Original vietsman images | This repo |
|
||||
| --- | --- | --- |
|
||||
| Bazzite base | Older Fedora/Bazzite 42 base | Current Bazzite `stable` |
|
||||
| Repositories | Three separate repos | One repo for Deck, GNOME, and KDE |
|
||||
| Governor | `oberon-governor` | `cyan-skillfish-governor-smu` |
|
||||
| Old patched kernel COPR | Required | Removed |
|
||||
| GPU usage `655%` bug | Not fixed | Fixed |
|
||||
| Rebuilds | Weekly | Only changed Bazzite channel/variant packages rebuild |
|
||||
| Signing | vietsman signed images | This repo's signed images |
|
||||
| Experimental 40CU | Not included | Separate `-40cu` images |
|
||||
|
||||
## Compared with duggasco's 40CU unlock research
|
||||
|
||||
This repository also packages tooling and documentation from [`duggasco/bc250-40cu-unlock`](https://github.com/duggasco/bc250-40cu-unlock). The original research remains the source of the 40CU register work.
|
||||
|
||||
| Area | `duggasco/bc250-40cu-unlock` | This repo |
|
||||
| --- | --- | --- |
|
||||
| Purpose | Research, whitepaper, patches, and scripts for BC-250 40CU unlock | Ready-to-rebase Bazzite images that include optional runtime 40CU tooling |
|
||||
| Operating system | General Linux/Fedora-oriented tooling and documentation | Bazzite Deck, GNOME, and KDE images |
|
||||
| Install flow | User reads docs and runs/builds the unlock tooling manually | User rebases to a `-40cu` image and uses short `ujust` commands |
|
||||
| Kernel/module approach | Documents patched `amdgpu` and lower-level enable paths | Does not ship an always-on patched `amdgpu`; uses runtime WGP dispatch tooling |
|
||||
| Runtime manager | External/community tooling | `bc250-cu-live-manager` included in the image |
|
||||
| Governor profile | Documents the 1500 MHz / 900 mV 40CU sweet spot | Adds `ujust bc250-cu-sweet-spot` helper |
|
||||
| Persistence | Documented as part of the unlock workflow | `ujust bc250-cu-save-boot` saves and replays the selected WGP table |
|
||||
| Recovery | User follows upstream recovery steps | README and [docs/40cu.md](docs/40cu.md) include 24CU rollback commands |
|
||||
| Stability guarantee | Warns that some boards can have faulty CUs | Same warning; 32CU/40CU is treated as silicon lottery |
|
||||
| Credit | Original 40CU research source | Credits and vendors upstream research/tooling; does not claim it as original |
|
||||
|
||||
# References
|
||||
|
||||
- [Bazzite updates, rollbacks, and rebasing](https://docs.bazzite.gg/Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/)
|
||||
- [Bazzite rebase guide](https://docs.bazzite.gg/Installing_and_Managing_Software/Updates_Rollbacks_and_Rebasing/rebase_guide/)
|
||||
- [Bazzite ujust commands](https://docs.bazzite.gg/Installing_and_Managing_Software/ujust/)
|
||||
- [Bazzite Sunshine documentation](https://docs.bazzite.gg/Advanced/sunshine/)
|
||||
- [`filippor/cyan-skillfish-governor`](https://github.com/filippor/cyan-skillfish-governor)
|
||||
- [`duggasco/bc250-40cu-unlock`](https://github.com/duggasco/bc250-40cu-unlock)
|
||||
- [`WinnieLV/bc250-cu-live-manager`](https://github.com/WinnieLV/bc250-cu-live-manager)
|
||||
- [`elektricM/amd-bc250-docs`](https://github.com/elektricM/amd-bc250-docs)
|
||||
|
||||
# License
|
||||
|
||||
This repository's original files are licensed under the MIT License. See [LICENSE](LICENSE).
|
||||
|
||||
Third-party projects and vendored 40CU tooling keep their upstream licensing and attribution. See [NOTICE](NOTICE).
|
||||
Reference in New Issue
Block a user