- C 89.8%
- Shell 5.7%
- Makefile 4.5%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .forgejo/workflows | ||
| .gear | ||
| assets | ||
| libexec | ||
| src | ||
| systemd | ||
| .gitignore | ||
| COPYING | ||
| Makefile | ||
| ps-camera-firmware-loader.spec | ||
| README.md | ||
ps-camera-firmware-loader
Plug-and-play firmware loader for the PlayStation 4/5 camera (OmniVision OV580) on Linux.
Project status: verified only on the PS5 camera so far. The PS4 camera should work the same way but is untested
The PS4/PS5 camera ships in a "USB Boot" bootloader mode (05a9:0580) and does
not work as a webcam until firmware is uploaded over USB. The firmware lives
in RAM, so it must be re-uploaded on every power cycle. This package automates
that completely:
- a udev rule fires when the camera appears in bootloader mode (on boot, hotplug or power cycle);
- it starts a systemd service that uploads the firmware;
- the camera re-enumerates as a standard UVC device (
05a9:058c) and the kerneluvcvideodriver binds it automatically —/dev/videoNappears.
No manual scripts, no root, no plugdev group. Install and forget.
Hardware note: the camera must be connected to a USB 3.0 (SuperSpeed) port. Through a USB 2.0 hub the upload is unreliable and may hang.
Installation
Add the project repository (both architecture lines are needed), then install:
apt-repo add rpm https://altlinux.space/api/packages/PS-Camera/alt/alt.repo x86_64 classic
apt-repo add rpm https://altlinux.space/api/packages/PS-Camera/alt/alt.repo noarch classic
apt-get update
apt-get install ps-camera-firmware-loader
This package needs a firmware blob to upload, shipped by
ps-camera-firmware. For
the whole stack at once (loader + firmware + GUI) install the
ps-camera meta-package instead.
Components (device-agnostic infrastructure)
| File | Purpose |
|---|---|
/usr/bin/ps-camera-firmware-loader |
C/libusb uploader, profile-driven (no hard-coded USB IDs) |
pscam-firmware-loader.service |
runs ps-camera-firmware-loader --auto |
pscam-exposure@.service + pscam-exposure |
baseline exposure workaround |
The loader reads device profiles from /usr/share/ps-camera/devices/*.device
and, in --auto mode, programs every connected, recognised camera — so several
different cameras can be attached at once.
The firmware blobs, the .device profiles and the udev rules that trigger this
service are shipped by per-camera packages such as
ps-camera-firmware
(OV580 / PS4 / PS5). Supporting a new camera = another such package; no change
here. For a settings GUI, install the
tuner-pscamera Tuner module.
Credits
This loader is a C port of the protocol implemented by:
- Raleigh Littles — PlayStation-Camera-Firmware-Loader (Rust, Linux), the direct basis for this port.
- psxdev — OrbisEyeCam (Windows), the original reverse-engineering of the OV580 upload protocol.
All credit for reverse-engineering the upload protocol goes to them.
License
GPL-3.0-or-later. See COPYING.