repo.etawen.dev

pacman / apt / dnf repository for PS5 Linux — kernel, SDK, and tooling.

Step 1 — Add the repository (one-time)

Quickest — any distro:

curl -fsSL https://repo.etawen.dev/install.sh | sudo sh

Detects pacman / apt / dnf, imports the signing key, wires the repo in. Read the source at /install.sh before piping — standard advice for any curl-to-sh.

Or set it up manually:

Arch / CachyOS / Artix

curl -fsSL https://repo.etawen.dev/key.asc | sudo pacman-key --add -
sudo pacman-key --lsign-key 93AB12C4159FEDAB

echo -e "\n[ps5]\nServer = https://repo.etawen.dev/arch" \
    | sudo tee -a /etc/pacman.conf
sudo pacman -Sy

Debian / Ubuntu / Mint / Devuan

sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://repo.etawen.dev/key.asc | sudo gpg --dearmor --yes \
    -o /etc/apt/keyrings/etawen-ps5.gpg

echo "deb [signed-by=/etc/apt/keyrings/etawen-ps5.gpg] https://repo.etawen.dev/deb ./" \
    | sudo tee /etc/apt/sources.list.d/etawen-ps5.list
sudo apt update

Fedora / Bazzite

sudo curl -fsSL https://repo.etawen.dev/key.asc \
    -o /etc/pki/rpm-gpg/RPM-GPG-KEY-etawen-ps5

sudo tee /etc/yum.repos.d/etawen-ps5.repo <<'REPO'
[etawen-ps5]
name=Etawen PS5 repo
baseurl=https://repo.etawen.dev/rpm/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-etawen-ps5
REPO

Step 2 — Install packages

linux-ps5 PS5 Linux kernel. Mirrored from ps5-linux-patches. Postinstall hook copies vmlinuz + initrd to /boot/efi/ for the kexec stub.
ps5-payload-sdk PS5 payload dev SDK. Mirrored from ps5-payload-dev/sdk. Installs to /opt/ps5-payload-sdk/, exports PS5_PAYLOAD_SDK + adds bin/ to PATH via /etc/profile.d/. Pulls clang, llvm, lld, make as deps.

Arch / CachyOS / Artix

sudo pacman -S linux-ps5 ps5-payload-sdk

Debian / Ubuntu / Mint / Devuan

sudo apt install linux-ps5 ps5-payload-sdk

Fedora

sudo dnf install linux-ps5 ps5-payload-sdk

Bazzite / atomic (PS5 flat-fs)

sudo dnf install linux-ps5 ps5-payload-sdk
sudo sync && sudo sh -c 'echo b > /proc/sysrq-trigger'

Our PS5 image build strips out the ostree layer — /usr is a plain rw ext4 root, and rpm-ostree won't work by design. Plain dnf install works Fedora-style. Bazzite's rpm-ostree-systemctl wrapper still swallows systemctl reboot, so kernel-level sysrq is used to apply the new kernel. If you're on an older PS5 bazzite image where dnf install prints a Bazzite docs URL and exits — use dnf5 install directly (bypasses the intercept wrapper). RPMs signed detached, so dnf may need --setopt=gpgcheck=0; repo metadata is signed and repo_gpgcheck validates.

User apps on Bazzite

flatpak install -y flathub org.mozilla.firefox
flatpak run org.mozilla.firefox

For user-facing apps (browsers, media players, games) use flatpak — bazzite pre-configures flathub and the flatpak sandbox handles codec/lib deps that RPM install trips on (e.g. firefox needs mozilla-openh264 which isn't built for Fedora 44 yet). Reserve dnf install for kernel + system pieces (linux-ps5, SDK, tools); use flatpak for everything else.

Update the kernel later

Any distro, one-liner:

curl -fsSL https://repo.etawen.dev/update-kernel.sh | sudo sh

Auto-detects pacman / apt / dnf / dnf5 (bazzite kexec) / rpm-ostree (real bazzite), installs the repo first if it isn't there yet, skips ps5-linux-mwifiex when the running kernel already bundles the driver, diffs before/after and only reboots if something actually changed. Pass -s -- --no-reboot to skip the reboot.

About ps5-linux-mwifiex and other packages

You do not need to install ps5-linux-mwifiex separately. The linux-ps5 kernel package already bundles the NXP IW620 wifi driver (mlan.ko + moal.ko) at /lib/modules/<kver>/extra/ps5-iw620/. Wifi works out of the box after installing linux-ps5 alone.

The standalone ps5-linux-mwifiex package exists only as an override for users who want a newer driver than the one bundled with their kernel. It deliberately pins Depends: linux-ps5 (= X.Y.Z) so apt won't pair it with a mismatched kernel.

If you see apt install linux-ps5 ps5-linux-mwifiex … in any guide, drop the ps5-linux-mwifiex bit.

Install a specific kernel version

Every tagged release from upstream is mirrored here.

Currently available: 7.0.5, 7.0.8, 7.0.10, 7.1.1, 7.1.2.

Arch / CachyOS / Artix

# pacman repo only points at the newest; install older snapshots by URL:
sudo pacman -U https://repo.etawen.dev/arch/linux-ps5-7.0.8-1-x86_64.pkg.tar.zst

Debian / Ubuntu / Mint / Devuan

apt-cache madison linux-ps5     # list available versions
sudo apt install linux-ps5=7.0.8

Fedora / Bazzite

dnf --showduplicates list linux-ps5
sudo dnf install --setopt=gpgcheck=0 linux-ps5-7.0.8-1

Runtime fixes

One-liners for older images that predate the wifi/BT/growfs bakes, or when something didn't stage properly on first boot. Idempotent — safe to re-run.

Wi-Fi (NXP IW620)

curl -fsSL https://repo.etawen.dev/fix-wifi.sh | sudo bash

Stages the firmware blob from /boot/efi/lib/nxp/ to /lib/firmware/nxp/, installs the auto-stage systemd service, and swaps NetworkManager off iwd onto wpa_supplicant (needed on Bazzite).

Bluetooth

curl -fsSL https://repo.etawen.dev/fix-bluetooth.sh | sudo bash

Powers off phantom hciN adapters (BDADDR all zeros), powers on the real controller, installs a boot-time silencing service.

Grow rootfs

curl -fsSL https://repo.etawen.dev/fix-grow-rootfs.sh | sudo bash

For images whose shipped grow-rootfs service failed. Fixes the GPT header, drops phantom kernel partitions, extends the rootfs partition via BLKPG_RESIZE_PARTITION ioctl (no unmount needed), runs resize2fs.

CachyOS post-image patches

curl -fsSL https://repo.etawen.dev/fix-cachyos.sh | sudo bash