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