- Bazzite는 Fedora Atomic 기반 커스텀 이미지로, Steam Deck 같은 휴대용 기기부터 데스크톱과 HTPC까지 Linux 게이밍 환경을 제공하는 것을 목표로 함
- SteamOS의 낡은 패키지와 기능적인 패키지 매니저 부재를 해결하기 위해 시작됐으며, 이미지 기반이지만 Fedora 패키지 설치가 가능하고 업데이트 후에도 유지됨
bazzite, bazzite-deck, GNOME 변형, NVIDIA 전용 드라이버 이미지 등 여러 변형을 제공하며, Game mode, HDR, Mesa, SteamOS 패키지 이식, 롤백, Secure Boot 지원을 포함함
- 기본 구성에는 Distrobox, Waydroid, vkBasalt, MangoHud, OBS VkCapture, xone, DisplayLink, ROCM OpenCL/HIP, 다양한 입력·RGB·태블릿 드라이버 지원이 포함됨
- 설치 ISO와 리베이스 명령을 제공하고, 이미지는 cosign 서명 검증을 지원하며, 사용자는 GitHub Actions와 Cosign 키를 이용해 자체 Bazzite 변형을 빌드할 수 있음
Bazzite의 목적과 기반
- Bazzite는 Fedora Atomic 기반 커스텀 이미지이며, Universal Blue의 클라우드 네이티브 방식으로 빌드됨
- 목표는 Linux 게이밍 환경을 데스크톱, 거실용 HTPC, Steam Deck 같은 휴대용 기기까지 확장하는 것임
- Bazzite는 ublue-os/main에서 빌드되며, Fedora 기술을 사용해 확장된 하드웨어 지원과 내장 드라이버를 제공함
- SteamOS에서 문제가 된 낡은 패키지와 기능적인 패키지 매니저 부재를 해결하기 위해 시작됨
- 이미지 기반이지만 명령줄에서 Fedora 패키지를 설치할 수 있고, 설치한 패키지는 업데이트 이후에도 유지됨
- upstream Fedora 패키지로 주 여러 차례 업데이트되며, 최신 Linux 커널, 기본 활성화된 SELinux, Secure Boot, 디스크 암호화를 지원함
공통 게이밍·하드웨어 기능
데스크톱과 Steam Deck·HTPC 변형
- 데스크톱용 공통 변형은
bazzite이며, 데스크톱 컴퓨터에 적합함
- OS, Flatpak 등을 위한 자동 업데이트는 uupd와 topgrade가 담당함
- ISO는 다운로드 사이트에서 받을 수 있고, 설치 가이드가 제공됨
- 기존 Fedora Atomic에서 오픈소스 GPU 드라이버 이미지로 리베이스할 수 있음
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite:stable
- NVIDIA 전용 드라이버가 필요한 기기는
bazzite-nvidia 이미지로 리베이스함
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-nvidia:stable
- Secure Boot가 켜진 사용자는 리베이스 전에 Secure Boot 문서를 따라야 함
- Mesa의 NVIDIA용 오픈소스 옵션인 NVK는 작성 시점에 오류가 발생하기 쉬우며, NVK 관련 문제는 Ublue/Bazzite가 아니라 Mesa에 보고해야 함
-
Steam Deck과 HTPC용 bazzite-deck
bazzite-deck은 Steam Deck의 SteamOS 대안과 HTPC의 콘솔형 경험을 위해 설계됨
- SteamOS처럼 바로 Game mode로 부팅함
- 자동
duperemove가 compatdata 크기를 크게 줄임
- 최신 Mesa는 더 작은 shader cache를 만들고, stutter 방지를 위해 shader cache를 요구하지 않음
- 드라이브가 가득 차도 부팅할 수 있음
- upstream Fedora가 지원하는 모든 언어를 지원함
- 데스크톱에서 Wayland를 사용하며 Steam input을 지원함
- evlaV repository의 드라이버, 펌웨어 업데이터, 팬 컨트롤러 등 SteamOS 패키지 대부분의 이식 버전을 포함함
- Gamescope에서 올바른 프레임레이트 제어를 위해 패치된 Mesa를 사용함
- SteamOS BTRFS 패치를 포함해 SD 카드의 BTRFS 지원을 기본 제공함
- SDGyroDSU의 이식본을 기본 활성화 상태로 제공함
- 설치 시 Decky Loader, EmuDeck, RetroDECK, ProtonUp-Qt 등을 선택 설치할 수 있음
- Game mode UI에서 OS, Flatpak 등을 업데이트하는 커스텀 업데이트 시스템을 제공함
- Fedora의 GRUB 설치를 유지해 Windows 듀얼 부팅을 지원함
rpm-ostree 롤백 기능으로 이전 Bazzite 버전으로 되돌릴 수 있고, 부팅 시 이전 이미지를 선택할 수 있음
- Steam과 Lutris가 layered package로 이미지에 사전 설치됨
- 기본적으로 LZ4 압축 알고리듬을 사용하는 4GB ZRAM을 사용함
- 부드럽고 반응성 있는 게임플레이를 위해 LAVD와 BORE CPU 스케줄러를 포함함
- 게임 설치나 백그라운드
duperemove 중 I/O starvation을 막기 위해 Kyber I/O 스케줄러를 사용함
- SteamOS 커널 파라미터를 적용함
- 무광·유광 Steam Deck 화면용 색상 보정 디스플레이 프로필을 포함함
- Steam Deck 저위험 언더볼팅, 디스플레이 오버클럭, 32GB RAM 개조 시 최대 VRAM 두 배 적용 같은 파워 유저 기능은 기본 비활성화 상태로 제공됨
- Steam Deck 하드웨어별 BIOS·펌웨어 업데이트 서비스는 터미널에서
ujust disable-bios-updates, ujust disable-firmware-updates로 비활성화할 수 있음
- 이 서비스들은 비 Deck 하드웨어와 DeckHD 디스플레이 또는 32GB RAM 개조 Deck에서는 자동 비활성화됨
- 대체 휴대용 기기의 Steam Gaming Mode 설정은 Handheld Wiki를 참고해야 함
GNOME 변형과 upstream 기능
- GNOME 데스크톱 환경 빌드는 데스크톱과 Deck 변형 모두에서 제공됨
- GNOME 빌드는 Wayland에서 가변 주사율과 fractional scaling을 활성화함
- 상단 바의 커스텀 메뉴로 Game mode 복귀, Steam 실행, 여러 유틸리티 실행을 제공함
- GSConnect가 사전 설치되어 바로 사용할 수 있음
- Hanabi extension을 포함해 KDE의 Wallpaper Engine과 유사한 기능을 제공함
- 여러 선택적 GNOME 확장이 사전 설치되며, 사용자 경험 수정도 포함함
- Firefox GNOME theme와 Thunderbird GNOME theme는 설치된 경우 자동 업데이트됨
- GNOME 데스크톱 변형 리베이스 명령은 다음과 같음
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-gnome:stable
- NVIDIA 전용 드라이버 GNOME 이미지는 다음 명령으로 리베이스함
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-gnome-nvidia:stable
- Steam Deck/HTPC용 GNOME 릴리스는 다음 명령을 사용함
rpm-ostree rebase ostree-unverified-registry:ghcr.io/ublue-os/bazzite-deck-gnome:stable
-
Universal Blue와 Fedora에서 가져온 기능
- Universal Blue 기반 기능
- NVIDIA 이미지에는 전용 NVIDIA 드라이버가 사전 설치됨
- Flathub가 기본 활성화됨
- 편의용
ujust 명령을 제공함
- 멀티미디어 코덱을 기본 제공함
- 지난 90일 이내의 어느 빌드로든 Bazzite를 롤백할 수 있음
- Fedora Linux Kinoite·Silverblue 기반 기능
- 안정적인 기반을 제공함
- 시스템 패키지가 비교적 최신 상태를 유지함
- Fedora 패키지를 이미지에 layer로 추가할 수 있고, 업데이트 후에도 유지됨
- SELinux가 사전 설치·구성되어 있음
- 사용자 데이터를 잃지 않고 다른 Fedora Atomic 이미지로 리베이스할 수 있음
- CUPS가 사전 설치되어 인쇄를 지원함
검증, Secure Boot, 자체 빌드
- Bazzite 이미지는 sigstore의 cosign으로 서명됨
- 저장소의
cosign.pub 키를 내려받아 다음 명령으로 서명을 검증할 수 있음
cosign verify --key cosign.pub ghcr.io/ublue-os/bazzite
- Secure Boot는 커스텀 키로 지원되며, 공개 키는 저장소 루트의 secure_boot.der에 있음
- 설치나 리베이스 전에 Secure Boot 키를 등록하려면 다음 명령을 사용함
sudo mokutil --timeout -1
sudo mokutil --import secure_boot.der
- 이미 Universal Blue 이미지 사용 중이면
ujust enroll-secure-boot-key를 대신 실행할 수 있음
- 암호를 묻는 경우
universalblue를 사용함
- Steam Deck은 Secure Boot가 켜진 상태로 제공되지 않고 기본 등록 키도 없으므로, 확실히 이해하지 못하면 활성화하지 말아야 함
- Bazzite는 전적으로 GitHub Actions로 빌드됨
- 자체 커스텀 버전은 저장소를 포크하고, 개인 서명 키를 추가한 뒤, 포크의 GitHub Actions를 활성화해 만들 수 있음
Build Bazzite 워크플로를 실행하면 Bazzite의 모든 변형에 대한 커스텀 이미지를 생성함
- 필요한 변형만 빌드하려면
.github/workflows/build.yml의 push-ghcr 작업 strategy.matrix 목록에서 원하지 않는 변형을 주석 처리함
- fork를 upstream과 동기화하려면 pull app 설정을 사용할 수 있음
-
자체 이미지 서명 절차
- GitHub의 secret 관리 방식을 먼저 확인해야 함
- Cosign으로 새 키 쌍을 생성함
cosign generate-key-pair
- 공개 저장소의
cosign.pub를 생성한 공개 키로 교체함
cosign.key 안의 개인 키 텍스트를 포크 저장소의 Repository Secret에 추가함
- secret 이름은
SIGNING_SECRET이어야 함
문서와 커뮤니티