Commit Graph
43 Commits
Author SHA1 Message Date
Robert Mader d9587b2fea temp/libcamera: Add some patches and tuning files
Notably:
1. Add the in-review quad-debayer patch required for the imx371 - the OP6
   front camera.
2. Fix GLES 2.0 devices like the Librem5 and PinePhone
3. Small tuning file adjustments, including CCMS for the imx371 and
   imx800 (FP5 main rear camera).
4. A small patch allowing to set maximum resolutions via config file.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9449>
2026-08-29 16:38:11 +00:00
Robert Mader 73688a3fdb temp/libcamera: Apply s5kjn1 CCM tuning to imx376 as well
It's far from perfect but better than the default. Most importantly it
gives users of the OP6 - one of the most popular devices - an impression of
where libcamera development is heading - and an incentive to help/play
around with tuning.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8992>
2026-07-10 14:58:08 +02:00
Robert Mader fd540e8017 temp/libcamera: upgrade to 0.7.2
See
https://gitlab.freedesktop.org/camera/libcamera/-/releases/v0.7.2

The release notably includes fixes that allow us to start shipping color
correction matrices in tuning files. This commit includes the current
tuning iterations for the imx363 (used e.g. as Pixel 3a rear camera) and
the s5kjn1 (used on e.g. as FairPhone 5 front camera). The later is also
used for the other correspondig cameras on the mentioned devices, as
they improve the quality over the default. This is of course planed to
change in the future.

The GPU-ISP also received major performance improvements, in particular
if the dmabuf direct import path can be used. If that's not the case
some INFO logs are printed, giving hints what needs to be improved in
the V4L2 or GPU drivers.

Finally we can drop all previously backported patches, only keeping two
PinePhone (OG) specific ones around for now. These should probably be
dropped in future releases, giving the poor performance and limited GPU
capabilities (GLES 2.0 only) on that device.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8991>
2026-07-10 12:41:13 +02:00
Robert Mader a1ceca3530 linux-postmarketos-qcom-sc7280: switch from venus to iris
The new driver for hardware video en- and decoding, reported to be more
stable. SC7280 support got enabled in 6.19 with commit
"media: iris: enable support for SC7280 platform"

Also include some changes required by kconfig check.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7889>
2026-06-22 15:44:27 +00:00
Robert Mader 695eb25dd3 temp/libcamera: Add tuning files for IMX519
Used on the OnePlus 6. It uses the same blacklevel as all other existing
tuning files and, as the driver is not upstream yet, needs to be carried
downstream for now.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8650>
2026-06-20 01:41:18 +00:00
Robert Mader 093a6b017b temp/libcamera: update downstream patch to merged version
Replace the dmabuf import patch with the two series that it grow into
during upstreaming, shipping in the next libcamera release. This will:
1. Improve performance for all devices using the GPU-ISP, including
   those not able to use dmabuf import.
2. Simplify debugging.
3. Ensure the patches get enough testing before the upstream release.

While on it backport some additional patches:
1. A follow-up patch adding the last required step to allow dmabuf import
   for input buffers to work in almost all cases *if* the V4L2 driver
   handles custom bytesperline requests for bayer formats.
2. A small logging fix
3. A fix for bad bottom lines of pixels seen on some devices. This is
   the only patch with visual impact - and a quite desirable one.
4. A patch to log the used driver for easier debugging.

This leaves us with only two downstream patches, both specific to the
PinePhone (OG).

Finally, add a "py3-$pkgname-pyc:pyc" subpackage in order to stay in
sync with the upstream package.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8650>
2026-06-20 01:41:18 +00:00
Robert Mader 4b25f699e4 temp/libcamera: upgrade to 0.7.1
See
https://gitlab.freedesktop.org/camera/libcamera/-/releases/v0.7.1

Also sync dependencies to upstream.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8449>
2026-04-29 09:48:53 +02:00
Robert Mader 619e649d52 systemd/pipewire: rebuild for libcamera 0.7.0
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7867>
2026-01-29 13:47:42 +01:00
Robert Mader cc9831c0a9 temp/libcamera: upgrade to 0.7.0
https://gitlab.freedesktop.org/camera/libcamera/-/releases/v0.7.0

This release notably comes with the long awaited GPU-ISP, improving
performance and quality in various ways.

Also:
1. Drop upstreamed or superseded patches.
2. Update entries in tuning files.
3. Sync dependencies to alpine package.
4. Enable the virtual pipeline for easier testing on devices without
   working cameras (see /usr/share/libcamera/pipeline/virtual/virtual.yaml.example).

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7867>
2026-01-29 13:47:42 +01:00
Robert Mader 8887758245 systemd/pipewire: Re-upgrade to 1.4.10
The headset related crashes in Gnome that caused the previous downgrade
should all be fixed by upgrade libgnome-volume-control, see e.g.
https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7851

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7860>
2026-01-27 12:25:12 +01:00
Robert Mader 89c567fbdb systemd/gnome-shell: Update libgnome-volume-control
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7860>
2026-01-27 12:25:12 +01:00
Robert Mader 1fba9931e2 gnome: Update libgnome-volume-control
In order to fix crashes with new Pipewire releases like 1.4.10.

While on it, do some minor cleanups to make the files more similar.

See:
https://gitlab.gnome.org/GNOME/libgnome-volume-control/-/merge_requests/31
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4048

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7851>
2026-01-26 20:12:45 +01:00
Robert Mader 09c4ba9e21 systemd/pipewire: Rebuild against libcamera 0.6.0
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7445>
2025-11-29 02:31:28 +01:00
Robert Mader aa9eb76406 temp/libcamera: upgrade to 0.6.0
See https://gitlab.freedesktop.org/camera/libcamera/-/releases/v0.6.0

Remove various upstreamed and move downstream tuning files into a
folder instead of wrapping them in patches.

Also sync up a bit to the alpine package by adding dependencies and the
python package.

Note: unfortunately this release does not contain the GPU-ISP. There
are various improvements to the SW-ISP, the simple pipeline handler and
other areas which should improve the experience on various devices with
pmOS, though.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7445>
2025-11-29 02:31:28 +01:00
Robert Mader 3f6919e62d temp/libcamera: Add tuning files for IMX838 and s5kjn1
Used by the Fairphone 5. Only containing black levels for now, however
adding those already makes the colors look less washed out, in
particular for the front camera.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7241>
2025-10-24 11:57:50 +00:00
Robert Mader 21aa622d00 systemd/pipewire: upgade to 1.4.9
Notably including a build fix for the upcoming libcamera 0.6 and lots of
libcamera-plugin fixes, including autofocus getting enabled when
available.

https://gitlab.freedesktop.org/pipewire/pipewire/-/releases/1.4.9

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7164>
2025-10-10 10:30:54 +02:00
Robert Mader a63aca69b1 temp/libcamera: Backport software ISP fix for 'purple tint'
Backport the series from https://patchwork.libcamera.org/cover/24169/,
fixing 'purple tint' issues on the Pixel 3a and OnePlus6 with Snapshot.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6961>
2025-08-27 09:39:41 +00:00
Robert Mader 307c05c345 temp/libcamera: upgrade to 0.5.2
See
https://gitlab.freedesktop.org/camera/libcamera/-/releases/v0.5.2

No significant changes for pmOS use-cases, just a lot of fixes. The
next release, 0.6, will bring bigger changes also affecting our
downstream patches.

Also added py3-sphinxcontrib-doxylink as explicit dependency to
work around build issues.

Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6896
[ci:skip-build]: already built successfully in CI
2025-08-07 23:17:52 +02:00
Robert Mader 5677fe9d6d temp/libcamera: upgrade to 0.5.1
See
https://gitlab.freedesktop.org/camera/libcamera/-/releases/v0.5.1

Additional changes:
 - Adopt build to commit "ipa: Move IPA installations to a subdir"
 - Backport a fix for the simple pipeline

Part-of: https://gitlab.postmarketos.org/postmarketos/pmaports/-/merge_requests/6608
[ci:skip-build]: already built successfully in CI
2025-06-05 12:42:12 +02:00
Robert Mader cd6ef6e873 temp/libcamera: Enable virtual pipeline
Analog to a recent change in Fedora:
https://src.fedoraproject.org/rpms/libcamera/pull-request/14

This change allows to easily create virtual cameras, which is helpful
for testing and debugging purposes, both for system components like Mesa
and Pipewire as well as various apps.

The virtual cameras can be enabled by:
```
cd /usr/share/libcamera/pipeline/virtual
cp virtual.yaml.example virtual.yaml
systemctl --user restart pipewire
```

Using the test option allows to keep the arch dependent automatic pipeline
selection in place. It also enables building of the vimc pipeline -
which is very small - and all tests, however those don't get included
into the packages.

The new dependency, libyuv, is very small and already installed by
default for DEs like gnome-mobile.

Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6567
[ci:skip-build]: already built successfully in CI
2025-05-29 21:33:29 +02:00
Robert Mader af116e013d systemd/pipewire: upgrade to 1.4.2
And switch the gitlab.freedesktop.org mirror again, see 95a5fc5dff

Release notes:
https://gitlab.freedesktop.org/pipewire/pipewire/-/releases/1.4.2

Notably this updates makes PW reliably stop on logout on systemd.
Logging out and in again previously would often leave cameras unusable.

Part-of: https://gitlab.postmarketos.org/postmarketos/pmaports/-/merge_requests/6448
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6448
[ci:skip-build]: unable to test armhf, armv7, riscv64 because qemu runner busted, everything else OK
2025-04-24 15:17:31 -07:00
Robert Mader 9f93a01375 temp/libcamera: Add workaround for black output without tuning files
Works around
https://bugs.libcamera.org/show_bug.cgi?id=259

Disable qcam RISCV because of ongoing Qt/libicuuc issues.

Part-of: https://gitlab.postmarketos.org/postmarketos/pmaports/-/merge_requests/6328
2025-04-02 00:09:58 +02:00
Robert Mader d30dd361ee main/postmarketos-base-ui-gnome: Move fprintd from depends to pmb_recommends
It's an optional service, thus users should be free to remove it.

Fixes: 5cffcf7ea ("main/postmarketos-base-ui-gnome: add fprintd to depends (MR 6206)")

Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6300
[ci:skip-build]: already built successfully in CI
2025-03-09 13:25:05 +01:00
Robert Mader b437864625 main/postmarketos-base-ui-gnome: add ffmpegthumbnailer to pmb_recommends
So that the file managers and choosers - Nautilus by default - show thumbnails
not only for images but also videos. Apart from being a nice-to-have, it
can help prevent privacy issues like uploading/sending wrong videos - an
increasingly realistic scenario as camera recording becomes more usable.

Note that Gnome usually uses totem-video-thumbnailer for that job,
but ffmpegthumbnailer has fewer dependencies, seems to be more stable,
is slightly faster - and pmOS already comes with ffmpeg, so there are
no additional licensing issues.

Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6300
2025-03-09 13:25:05 +01:00
Robert Mader 250904dd1d temp/libcamera: Add tuning files for IMX371 and IMX376 (MR 6299)
Only containing black levels for now.

This should only slightly increase image quality, but apparently also
works around a bug in libcamera making the output all black, with
occasional purple or red flashes.
[ci:skip-build]: already built successfully in CI
2025-03-08 18:24:26 +01:00
Robert Mader 105d4b3911 device-google-sargo: install hexagonrpcd conf to new location (MR 6217)
This was missed in
https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6188

[ci:skip-build]: already built successfully in CI
2025-02-14 12:26:29 +01:00
Robert Mader 5cffcf7ea2 main/postmarketos-base-ui-gnome: add fprintd to depends (MR 6206)
So fingerprint support is shipped by default if supported by the
hardware.

[ci:skip-build]: already built successfully in CI
2025-02-13 11:50:17 -08:00
Robert Mader 6ed4f78241 systemd/systemd-services: add unit file for fprintd (MR 6205)
[ci:skip-build]: already built successfully in CI
2025-02-13 08:47:35 -08:00
Robert Mader 37dbf850ae temp/libcamera: Remove libcamera udev rule package (MR 6163)
This is now handled in postmarketos-base-ui.

[ci:skip-build]: already built successfully in CI
2025-02-07 11:56:00 -08:00
Robert Mader 0d6c6e80ad main/postmarketos-base-ui: add universal udev rule for udmabuf (MR 6163)
The udmabuf allocator enjoys increasing popularity, not only being
used by libcameras swISP and some virtualisation apps, but since Mesa
commit d74ea2c1 even in llvmpipe - and more projects plan adoption,
such as Gstreamer.

Thus let's ensure it's universally available for UI users if the
kernel supports it.

As there are DEs that don't support the "uaccess" tag, such as SXMO,
and "legacy" groups are still used in pmOS anyway, use the later.
2025-02-07 11:56:00 -08:00
Robert MaderandClayton Craft 62611a7b06 device-oneplus-enchilada: Reuse hexagonrpcd config on systemd (MR 6147)
By sharing the config file and making the systemd unit files match the
openRC ones as close as possible.

Also fix the q6voiced.conf path while on it.

Co-authored-by: Clayton Craft <clayton@craftyguy.net>
2025-02-07 11:34:59 -08:00
Robert MaderandClayton Craft 338d7d66f8 device-google-sargo: Fix hexagonrpcd on systemd (MR 6147)
By sharing the config file and making the systemd unit files match the
openRC ones as close as possible.

Co-authored-by: Clayton Craft <clayton@craftyguy.net>
2025-02-07 11:34:59 -08:00
Robert MaderandClayton Craft 17d52ba258 systemd/postmarketos-base-systemd: add hexagonrpcd-adsp services to system preset (MR 6147)
Co-authored-by: Clayton Craft <clayton@craftyguy.net>
2025-02-07 10:09:39 -08:00
Robert Mader 774e018a7a systemd/systemd-services: Add additional hexagonrpcd unit files (MR 6147)
Matching the openRC ones. Also make use of the hexagonrpcd_fw_dir env var
and reuse the correcponding conf files, making it easier to support
both init systems.
2025-02-07 10:09:39 -08:00
Robert Mader 6bc98ff414 soc-qcom-sdm845: discourage hw video (de)encoders in gstreamer (MR 6098)
Gstreamer enables hw de- and encoding by default for the most common APIs,
including V4L2-stateful. Unfortunately the venus driver is still quite
unstable, reliably crashing in very common scenarios, triggering apps
like Snapshot, Showtime or Tuba to show error messages or not working
properly - partly because of non-optimal error-handling.

Until the kernel driver situation improves, set environment variables
that demote the decoders to fallbacks in case nothing else is available,
and disable the hw-encoders completely as they tend to destabalise the
whole system if something goes wrong.

Useful command for env variables:
systemctl --user show-environment
2025-02-03 12:00:55 +01:00
Robert Mader 7b233c0c3a main/postmarketos-base-ui-gnome: add some gst packages to pmb_recommends
The current OOTB Gstreamer experience on Gnome DEs can be disappointing as
a lot of default codecs and elements are missing. This is often not obvious
for users as Gst in various cases has less optimal fallbacks, easily leaving
the impression that either an app, drivers or hardware are at fault.

Add the most important packages to pmb_recommends so users have a better time.

Notes:
 - Many images already ship ffmpeg-libavcodec, so this shouldn't worsen the
   legal situation.
 - '-bad' is usually already pulled in indirectly while '-good' at least for
   GS variants is already required. Both are strongly recommended for apps
   like Showtime, Snapshot and many more mobile-friendly apps from the
   ecosystem.
 - '-bad' really isn't bad any more these days and various elements in it
   are used by default if available. That is, many elements there should have
   long moved to '-good'.
2025-01-30 20:09:22 +03:00
Robert Mader 0a8291db87 main/postmarketos-base-ui-gnome: add showtime to pmb_recommends (MR 6038)
So Gnome-based DEs have a video-player by default. The main arguments
in favor showtime I see are:
1. It's the main candidate to become the new Gnome default video player.
2. It's has a mobile-friendly UI.
3. It uses HW-decoding and even zero-copy playback by default on many pmOS
   devices (by using Gstreamer and unlike e.g. ffmpeg-based players like mpv).
4. Its main dependencies are shared with other apps like snapshot.

The other candidate that would tick the same boxes but 1. is livi.
[ci:skip-build]: already built successfully in CI
2025-01-14 10:25:56 -08:00
Robert Mader 749904dd49 temp/libcamera: upgrade to 0.4.0 (MR 5948)
- drop some upstreamed patches
- add some tuning files with black levels

Release notes:
https://gitlab.freedesktop.org/camera/libcamera/-/releases/v0.4.0
2025-01-03 16:56:07 +09:00
Robert Mader 0bf40d20e0 linux-postmarketos-allwinner: restore CMA size (MR 5626)
This partly reverts the commit mentioned below. When disabling CMA
I thought that libcamera was the only user of it, which is only true
for userspace, though.
In fact CMA is used and often even required by the kernel for HW video
decoders, display engines and other hardware that might not have a
MMU.

Thus restore the previously established value.

Fixes: 196ece029 (linux-postmarketos-allwinner: enable CONFIG_UDMABUF (MR 5585))
[ci:skip-build]
2024-09-25 23:31:15 +09:00
Robert Mader fbfe596b46 linux-postmarketos-allwinner: restore CMA size (MR 5626)
This partly reverts the commit mentioned below. When disabling CMA
I thought that libcamera was the only user of it, which is only true
for userspace, though.
In fact CMA is used and often even required by the kernel for HW video
decoders, display engines and other hardware that might not have a
MMU.

Thus restore the previously established value.

Fixes: 196ece029 (linux-postmarketos-allwinner: enable CONFIG_UDMABUF (MR 5585))
2024-09-25 16:17:12 +02:00
Robert Mader f736e1e360 temp/libcamera: upgrade to 0.3.2 (MR 5623)
Rebase our downstream patches and drop the two included in the release.

See https://gitlab.freedesktop.org/camera/libcamera/-/tags/v0.3.2 for
release notes.
[ci:skip-build]: already built successfully in CI
2024-09-24 16:20:26 +02:00
Robert Mader c54777db04 temp/libcamera: upgrade to 0.3.1 (MR 5381)
Rebase our downstream patches and drop the one included in the release.

See https://gitlab.freedesktop.org/camera/libcamera/-/releases/v0.3.1

Notes:
 - The abi-compliance checker reports 100% binary and source compatibility,
   so this release does not change the SONAME.
 - qcam has been ported to QT6.
 - This release has some notable improvements to the PPP/rkisp1, however
   lower frame rates might be encountered sometimes. This will hopefully
   get fixed in the imx258 driver in Linux 6.11.
 - The swISP got some fixes but nothing major apart from the patch we
   were already carrying.

[ci:skip-build]: already built successfully in CI
2024-07-25 22:32:58 +02:00
Robert Mader 42640780d4 temp/libcamera: backport swISP RGBA support (MR 5285)
Which can have significant performance impact on affected devices,
such as the Librem5 or the PinePhone.
The patch already landed upstream, however a new release is likely
several weeks or months away, making a backport worthwhile.

[ci:skip-build]: already built successfully in CI
2024-06-26 15:54:55 -07:00