Skip to main content

Package repository

repo.etawen.dev is an unofficial, community-run package repository for pacman, apt and dnf, hosted by etawen.dev. It provides the PS5 kernel, the Wi-Fi driver, fan/boost controls and the payload SDK, so you can install and update them with your package manager instead of running install scripts by hand.

Add the repository (once)​

Quickest (any distro)​

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

Read the script before running it. Never pipe code you haven't checked into a shell.

The script detects whether you use pacman, apt or dnf, and adds the repository and its signing key. On Bazzite it also prints the right rpm-ostree install command, because dnf install is blocked there for new packages.

Manual setup​

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=0
repo_gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-etawen-ps5
REPO

Available packages​

PackageWhat it does
linux-ps5The PS5 Linux kernel, mirrored from ps5-linux-patches. Its install hook builds the initramfs (it detects update-initramfs, dracut, mkinitcpio or mkinitfs), mounts /boot/efi if needed (from fstab, or LABEL=boot as a fallback), and copies the kernel and initrd to /boot/efi/ for the loader. It already includes the Wi-Fi driver, so Wi-Fi works with this package alone.
ps5-linux-mwifiexOptional override of the NXP IW620 Wi-Fi driver (moal + mlan). Only install it if you want a newer driver build than the one included in your kernel. It requires one exact linux-ps5 version. The firmware (nxp/pcieuartiw620_combo_v1.bin) is Sony-proprietary: linux-ps5's firmware service copies it into place on the first boot, from where the loader left it.
ps5-linux-toolsFan and CPU/GPU boost control: the ps5_control program plus ps5fan.service and ps5boost.service, both enabled by default so the fan and boost turn on at every boot. Upstream: ps5-linux-tools.
ps5-payload-sdkThe PS5 payload development SDK, mirrored from ps5-payload-dev/sdk. Installs to /opt/ps5-payload-sdk/ and sets up PS5_PAYLOAD_SDK and your PATH. Pulls in clang, llvm, lld and make.

Install the packages​

Arch / CachyOS / Artix:

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

Debian / Ubuntu / Mint / Devuan:

sudo apt install linux-ps5 ps5-linux-tools ps5-payload-sdk

Fedora:

sudo dnf install --setopt=gpgcheck=0 linux-ps5 ps5-linux-tools ps5-payload-sdk

Bazzite images from ps5-linux-image: these images remove the ostree layer (/usr is a normal read-write ext4 root), so rpm-ostree doesn't work but plain dnf install does:

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

The sysrq reboot is needed because Bazzite's rpm-ostree-systemctl wrapper swallows systemctl reboot. On older images where dnf install only prints a link to the Bazzite docs and exits, use dnf5 install instead. Later updates:

sudo dnf upgrade -y linux-ps5 ps5-linux-tools --setopt=gpgcheck=0
note

PS5 Bazzite Deck has its own kernel and update process; follow its release notes instead.

Update the kernel later​

One command for any distro:

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

It detects your package manager (pacman, apt, dnf, dnf5 or rpm-ostree), adds the repository first if needed, skips ps5-linux-mwifiex when your kernel already includes the driver, and only reboots if the kernel actually changed. Add -s -- --no-reboot after sh to skip the reboot.

Install a specific kernel version​

Every tagged upstream release is mirrored (for example 7.0.5, 7.0.8, 7.0.10, 7.1.1 and 7.1.2). This is useful for staying on 7.0.10 on M.2 installs.

Arch: the pacman database only lists the newest version, so install older ones by URL:

sudo pacman -U https://repo.etawen.dev/arch/linux-ps5-7.0.10-1-x86_64.pkg.tar.zst

Debian / Ubuntu:

apt-cache madison linux-ps5
sudo apt install linux-ps5=7.1.1-8

Fedora / Bazzite:

dnf --showduplicates list linux-ps5
sudo dnf install --setopt=gpgcheck=0 linux-ps5-7.1.1-8

Fix scripts for older images​

One-line fixes for older images, or when something wasn't set up properly on the first boot. All of them are safe to run more than once.

CommandWhat it fixes
curl -fsSL https://repo.etawen.dev/fix-wifi.sh | sudo bashCopies the IW620 firmware from /boot/efi/lib/nxp/ to /lib/firmware/nxp/, installs the service that does this automatically, and switches NetworkManager from iwd to wpa_supplicant (needed on Bazzite).
curl -fsSL https://repo.etawen.dev/fix-bluetooth.sh | sudo bashTurns off phantom hciN Bluetooth adapters (address all zeros), turns on the working one, and installs a service that does this at boot.
curl -fsSL https://repo.etawen.dev/fix-grow-rootfs.sh | sudo bashFor images where the grow-rootfs service failed: repairs the partition table, extends the root partition to fill the drive, and resizes the filesystem without unmounting it.
curl -fsSL https://repo.etawen.dev/fix-cachyos.sh | sudo bashCachyOS-specific fixes for the image.

Troubleshooting​

"certificate is not yet valid" when refreshing the repository: the PS5's clock is wrong. Force a time sync with sudo chronyc makestep, or set the time manually with sudo timedatectl set-time "YYYY-MM-DD HH:MM:SS".

"Could not resolve host: repo.etawen.dev" inside rpm-ostree on Bazzite: systemd-resolved is stuck. Run sudo systemctl restart systemd-resolved.

rpm-ostree refuses with "This system was not booted via libostree" on Bazzite: the loader's boot chain doesn't create /run/ostree-booted. Run sudo touch /run/ostree-booted, then sudo rpm-ostree install ... works. To reboot, use sudo sync && sudo sh -c 'echo b > /proc/sysrq-trigger', because the rpm-ostree-systemctl wrapper swallows systemctl reboot.

"ld-linux-aarch64.so.1 not found" during dnf upgrade: you have an old, badly converted RPM. Upgrade to 7.1.1-8 or newer: sudo dnf upgrade --setopt=gpgcheck=0 linux-ps5.

fatal error: linux/errno.h: No such file or directory when compiling on Debian/Ubuntu: newer linux-ps5 packages no longer ship /usr/include/linux/*, to stop clashing with the distro's own headers. If you upgraded from a flashed image, the old headers were removed and the distro ones were never installed. Fix it with sudo apt install linux-libc-dev. On Arch: sudo pacman -S linux-api-headers. On Fedora: sudo dnf install kernel-headers.

/boot/efi exists but is not mounted, attempting to mount... during install: this is normal. If you also see ERROR: could not mount EFI partition; aborting, mount /dev/disk/by-label/boot at /boot/efi yourself and run the install again.

No Wi-Fi networks on Bazzite (NetworkManager stuck): Bazzite uses iwd as the Wi-Fi backend by default, which doesn't work with the IW620 driver. Switch back to wpa_supplicant with ujust toggle-iwd (choose "disable iwd"), then run sudo systemctl restart NetworkManager. Images built after 2026-06-30 already include the fix.