when stdin is /dev/null (e.g. when console=null is on the kernel
cmdline) syslogd will call read() over and over and never handle the
SIGTERM we send it, pinning a CPU core on every boot.
Hooking up syslogd std I/O to /dev/zero prevents this.
Co-authored-by: Richard Acayan <mailingradian@gmail.com>
Co-authored-by: Clayton Craft <clayton@craftyguy.net>
[ci:skip-build]: already built successfully in CI
- depend on diffutils, or else make complains about options not
supported by busybox diff
- rebased patches
[ci:skip-build]: already built successfully in CI
This new version includes initial support for systemd (for bluetooth
only atm). udev rules are only installed for openrc systems, bt config
on systemd was replaced by a unit file and using bootmac for wifi has
issues (https://gitlab.postmarketos.org/postmarketOS/bootmac/-/issues/7)
[ci:skip-build]: already built successfully in CI
Somehow enabling in-kernel PD mapper (introduced in 5b9f51b200dcb
"remoteproc: qcom: enable in-kernel PD mapper"), breaks the bottom mic
on xiaomi-beryllium (Poco F1) and distorts audio on OP6 (and possibly
OP6T). Temporarily disable it until the issue is resolved upstream.
Previously, the module's was modified to disable the in-kernel PD
mapper. This modification was a hack. Instead, modify the config so that
the in-kernel PD mapper is not built in the first place, which achieves
the same result.
Link: https://lore.kernel.org/linux-arm-msm/20241010074246.15725-1-johan+linaro@kernel.org/T
Link: pmaports#3353
Link: pmaports#3320
Link: pmaports#3245
Link: pmaports#3253
Signed-off-by: Frank Oltmanns <frank@oltmanns.dev>
This tool is similar to msm-firmware-loader or droid-juicer, except it
copies firmware from Windows instead.
Currently when the ADSP loads the new firmware it causes a usb reset
which breaks booting from USB. For now ask people to run this manually
and ensure the adsp firmware isn't available on the USB.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
Extend existing X1 Elite support with the modules needed to bring up the
Lenovo Yoga Slim 7x.
We could use the EFI framebuffer in the initramfs, however the
regulators are turned off before we get there so it goes blank. Pull in
all the bits for proper display/panel support.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
This regex seems to have served to be a bit more flexible than the
actual pass one, for any kind of exceptions needed. However, it
resulted in basically every MR since the introduction of the
COMMITSTYLE, and most likely before, to be caught by that regex
instead of the pass one. As we have made the pass regex more flexible
now, we can now remove this. This should help keep commit messages
more standardized. If there's a reason for a commit to be different,
then the merger can just ignore it.
The daemon has been split out from the library and is thus not
automatically installed anymore when applications using the library are
installed. However the daemon (the UnifiedPush distributor) is also
useful to have installed when Flatpak apps are in use or other UnifiedPush
supporting apps that don't use kunifiedpush as their library.
Fixes#3333
- Add new kconfigcheck 'input' category options
- Add 'virt' kconfigcheck category
- Removed 'containers' kconfigcheck (this is included with the 'community' category)
- Enabled Magic Sysrq
- Add patch to disable GIC interrupt handling for pcie4, to work around
a wifi instability regression on sc8280xp
[skip ci]: failed on kconfig check, Arnavion wrote: "I'll enable the
CONFIG_HID_* that kconfigcheck wants in a separate MR so that any regressions
from that don't mix up wit the kernel upgrade."
Add a funding-manifest-urls file, as required by the floss.fund funding
manifest:
> If the manifest references URLs, such as a project's webpage, that are not
> on the same domain as the funding.json manifest itself, then the wellKnown
> URL must point to a /.well-known/funding-manifest-urls file. This file should
> contain URL (one or more) of the funding.json manifest URLs that reference
> it. This establishes provenance and verifies that that the publisher of the
> manifest is authorised to solicit funding on behalf of the URLs (entity,
> projects) described in the manifest. This follows the .well-known convention.
Related: https://floss.fund/funding-manifest/
Related: postmarketos.org MR 345
forked from alpine to add ondemand and journald support. as journald
requires systemd-libs, i don't think that we will upstream this package
[ci:skip-build]: already built successfully in CI (except for known qemu issues)
Modprobe rules sets sane defaults for `rockchip_ebc` module and fixes
panfrost driver loading.
Other changes;
* take maintainership of port
* udev rule for `rockchip_ebc` now makes `dclk_select` parameter
accessible to group video
* add `pinenote-dbus-service` dependency
[ci:skip-build]: already built successfully in CI
It seems that the old backup repo has disappeared from GitHub. Changed
the URL to an up-to-date repository.
The contents of the firmware blobs have not changed, thus no pkgver
increment.
gnu-efi-dev was required for systemd-boot < 256. As systemd-boot
is built specially as an extra component in main/systemd-boot, there
is no reason why we would want to build it here.
qcom-diag package is not providing systemd service file.
Signed-off-by: Alexey Min <alexey.min@gmail.com>
[ci:skip-build]: already built successfully in CI
CONFIG_LEDS_GROUP_MULTICOLOR just had to be re-enabled to fix a
regression. Add this to kconfigcheck to prevent disabling it by
accident in the future. Adjust the description of the Librem 5
specific section while at it.
[ci:skip-build] [ci:skip-vercheck]: no need to rebuild
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
These were dropped from the systemd package when they should have been
moved here to pmos-base-systemd. Without this, systemd-vconsole-setup
crashes because it cannot find the kbd utility, and kmod is needed for
proper auto-module loading.
[ci:skip-build]: already built successfully in CI
This reverts commit 609f3a5544.
The changes proposed in MR 5983 depend on changes in the upstream sc7150
kernel, howerver a new kernel release is currently not feasible as
instabilities still need to be worked out.
Signed-off-by: Robert Eckelmann <longnoserob@postmarketos.org>
[ci:skip-build]: already built successfully in CI
Add support for Redmi 4 (prada), Redmi 4A (rolex),
Motorola Moto G5S (montana) and Huawei Mediapad T3 10 (agassi).
Remove downstream motorola montana and xiaomi rolex packages.
[ci:skip-build]: already built successfully in CI
After the initial merge wireplumber failed on bpo for armv7,
It was recommended to disable tests for armv7 for now.
fixes#3454
Signed-off-by: Robert Eckelmann <longnoserob@postmarketos.org>
Tweaked-by: Oliver Smith <ollieparanoid@postmarketos.org>
[ci:skip-vercheck]: no bump because we don't need a rebuild where it
succeeded
tests are disabled anyways (!check), and having gnome-session in
checkdepends creates a circular dependency in some situations since
gnome-session has gnome-setttings-daemon-dev in makedepends
[ci:skip-build]: CI can't build test because bpo is currently stuck, I build tested it locally
fbd-alert-slider.service is actually already provided by feedbackd from
aports.
This reverts commit c3c625a49aaa46353c7e80de153edc9fd3ef27a5.
[ci:skip-build]: already built successfully in CI
also add _pkgname for the upstream name in aports for linux-pam-pmos
[ci:skip-build]: CI bugs out building armv7 and aarch64, but skipping
since changes shouldn't affect building
These are now defined in pmos-base-systemd, those deps aren't needed
for building stuff upon systemd-dev.
[ci:skip-build]: CI bugs out, Clayton successfully build tested armv7
and aarch64 manually
Those dependencies are either run or dlopen-ed during runtime of
systemd, systemctl etc.
As we not even require util-linux's version of runuser, we just use
the login-utils virtual in pmos-base-systemd. And while we're at it,
move the runtime dependencies to pmos-base. This is also more fitting
for libkmod, which is needed in the initramfs, as it is one of the
runtime deps of systemd-udev.
Fixes#3408
[ci:skip-build]: already built successfully in CI (except armv7, which
times out the runner, but Clayton thinks that's just our CI being dumpy)
[ci:skip-build]: aarch64 was build tested locally (by Clayton), x86_64
build job failed in CI because the artifacts were too big but the actual
package building worked
I don't understand why the upstream APKBUILD provides jack-dev with
pipewire's pkg{ver,rel}. This blocks users potentially running
abuild deps on aports packages, so not a huge loss.
Unblocking BPO with this 🙃
[ci:skip-build]: built locally, merging as critical.
[ci:skip-build]: CI builds sucessfully on x86_64 and armv7,
there's an failure in aarch64/gnome-shell, but compiling
on a native aarch64 system and testing also works. (-jane400)
This doens't work with crossdirect since apparently it calls the
compiler during package() stage:
ERROR: Error in gtkdoc helper script:
ERROR: ['/usr/bin/gtkdoc-scangobj', .... failed with status 1
============================================================================================
ERROR: crossdirect was called with: LD_PRELOAD=libfakeroot.so
This should ensure that postmarketos-base-systemd installs our linux-pam
package, not the one from alpine. (The old way to pin our package was
based on fragile version pinning, as our pam wasn't bumped to 9999, but
had the same version as aports).
fixes#3170
[ci:skip-build]: already built successfully in CI
APKBUILD was rebased onto the latest verstion in Alpine aports (1.50.0-r3)
[ci:skip-build]: bug in CI prevents it from completing, but builds fine locally
This wasn't actually working because it was using an unset var when
calling 'systemctl disable'.
[ci:skip-build]: CI cannot complete build testing because of infra
issue, but that's fine because this change doens't actually require
compiling systemd.
New dependencies were not included so this failed to build properly. The
other changes were pulled from the version in aports, to make rebasing
in the future easier.
[ci:skip-build]: CI cannot complete build testing because of infra
issues downloading from download.kde.org
libseat 0.9.0 no longer performs an automatic VT switch when taking
control of a seat to allow sessions to be started in the background. As
consequence, one must manually switch if one wants a background session
to be immediately activated.
Issue a chvt on ExecStartPost, when the service is deemed running.
Upstream: https://gitlab.gnome.org/World/Phosh/phosh/-/merge_requests/1566
[ci:skip-build]: already built successfully in CI
When kernel auditing is enabled and things crash, this leads to a lot of
really annoying messages printed to the console/TTY that can interfere
with debug. Kernel audit info can be reached using other userspace
tools.
[ci:skip-build]: already built successfully in CI
We actually want usr/lib/udevd here, not lib/udevd. This fixes the
initramfs not building and some other weirdness.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
Do note that this commit was amended after the fact, the patch got
inlined into this repo to not brick this branch if the MR gets pushed
to.
[ci:skip-build]: already built successfully in CI
The type was erroneously set as 'simple', and since we are setting
ExecStop we actually need to set RemainAfterExit to avoid running
ExecStop when the oneshot service runs. This is because nft returns/
exits pretty much immediately after applying the config.
fixes#2846
The unit name to kill pbsplash had a typo, and added a preset for sshd.
systemd didn't seem to match `phosh` or `gdm` to the correct unit,
unless they had `.service` added, so this was fixed.
Presets in this section were also sorted.
[ci:skip-build]: already built successfully in CI
This didn't actually seem to do anything, resulting in some weird stuff
being enabled by default even though we did not specify a preset for it
(e.g. see !5556)
Based on my interpretation of the systemd preset manpage, this file
should be parsed last. It says that if a unit name has a preset that
was already configured in some previously parsed preset file, then any
matches after do not apply. This means that the `disable *` should not
disable any previously enabled (in previous .preset files) units. When
the unit name is omitted from the `disable` command, it seems to be a no-op.
Fixes!5207
This causes systemd to get stuck restarting multipathd forever on boot if it runs on systems with no multipath hardware. When this happens, the system never finishes booting.
It doesn't seem like any UIs/devices enable the multipathd service by default in openrc, and that we just depend on multipath-tools for kpartx and stuff (and not the daemon that comes with it)
[ci:skip-build] already built successfully in CI
also remove the elogind specific patch to use systemd for brightness
changes
Co-authored-by: Clayton Craft <clayton@craftyguy.net>
Note: the user services that the -systemd split pkg installs are not
enabled by default using systemd presets. None of them have 'Install'
sections, they appear to be mostly/all dbus activated instead.
[ci:ignore-count]
[ci:skip-build]: already built successfully in CI
Co-authored-by: Clayton Craft <clayton@craftyguy.net>
- Removed systemd-timesyncd, already enabled by a preset installed by
the systemd package
- Removed default-disable.preset, it's already provided by the systemd
package
- Removed user services from system preset
These macros are based off of the upstream systemd RPM macros, but it
doesn't implement all of the macro functionality upstream. Initially
they will be used in the install scripts for apkbuilds that provide
systemd service unit files.
For example, a `$pkgname-systemd.post-install` script might have:
. /usr/lib/systemd/systemd-apk-macros.sh
systemd_service-post_install system sshd
And a `$pkgname-systemd.pre-deinstall` script might have:
. /usr/lib/systemd/systemd-apk-macros.sh
systemd_service_pre_deinstall user pipewire
One day maybe these could be upstreamed to systemd to provide some
apk/abuild compatible macros.
Co-authored-by: jane400 <pmos@j4ne.de>
The space here caused this install script to attempt to create a group
named '2' and add a user named 'sgx' to it.
[ci:skip-build] already built successfully in CI
Build abuild from upstream source and only apply the systemd split func
patch. The patch was also adjusted to use -systemd instead of -service
for subpackages
As systemd v256 switched to dlopen for a bunch of dependencies
(specified in a custom format), this is no longer auto-detected
by either abuild or boot-deploy. So we include kmod manually for udevd
to work correctly.
This fixes the "no screen" issue on pine64-pinephone.
[ci:skip-build]: already built successfully in CI
Explicitly generate qwayland-plasma-shell.h first, in order to fix:
In file included from /usr/include/PlasmaQuick/PlasmaQuick/PlasmaShellWaylandIntegration:1,
from /home/pmos/build/src/plasma-workspace-6.1.2/shell/panelconfigview.cpp:35:
/usr/include/PlasmaQuick/plasmaquick/plasmashellwaylandintegration.h:14:10: fatal error: qwayland-plasma-shell.h: No such file or directory
14 | #include "qwayland-plasma-shell.h"
| ^~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
Related: https://invent.kde.org/plasma/plasma-workspace/-/issues/132
[ci:skip-vercheck]
[ci:skip-build] times out after >3hr in gitlab CI
Apparently the patch url isn't stable(?) upstream, the checksum changed.
Since this is a simple 1 line patch, let's just include it in pmaports
This also changes kwin to use the more 'standard' pkgver used in other
packages forked for systemd support
The patches were put into the gitlab.com/postmarketos/systemd repo
and updated for stable-v256.
This also enables man pages, systemd-localed and localization support
via the compile flags.
[ci:skip-build] already built successfully in CI
PA is started automatically by its "autospawn" config thing, and it
works pretty well... if it crashes then it's automatically restarted if
needed, etc.
The included service/socket unit files never really worked,
PA started from systemd would always race with (and often to) PA autospawn.
The subpkg here also resulted in a packaging bug where both
pulseaudio-service and pw-pulse-service were installed at the same time,
because the `install_if` listed `pulseaudio`, and `pw-pulse` also
provides `pulseaudio`. The two unit things conflict with each other.
I did some initial investigation, and getting systemd to manage PA
seemed like too much work especially since autospawn is probably good
enough and we hope to move to pw audio later.
[ci:skip-vercheck]
Unfortunately there are some code paths that are required to support
socket activation, and they are only enabled at build time with
-Dsystemd=enabled. On the bright side, service/socket unit files are
included...
Also note that I disabled test on armv7 since they fail in our CI using
qemu on x86_64. They pass in Alpine on native armv7.
This changes it into a default disable.
`disable *` selects all units and hence overrides all previous presets.
Just using `disable` just changes the default unit enablement policy.
[ci:skip-build]: already built successfully in CI
For the `install_if` to work correctly, the subpackage should be named
after the main package that provides the app... in this case it's called
"rtkit"
[ci:skip-build] already built successfully in CI
[ci:skip-build] already built successfully in CI
xorg-server-common is a shared dep between xorg-server and xwayland, and
this tmpfile config is required for both to work. Without this tmpfile
config, Xwayland may fail to start. In the case of GNOME, this is a
fatal event.
This is required by systemd-vconsole-setup, which is currently
configured to run on boot (without kbd/loadkeys, the service crashes.)
[ci:skip-build]: already built successfully in CI
Fix for:
In systemd-services.trigger line 14:
systemctl $cmd $service
^--^ SC2086 (info): Double quote to prevent globbing and word splitting.
^------^ SC2086 (info): Double quote to prevent globbing and word splitting.
Should be =$pkgver-r$pkgrel instead of =$_pkgver-r$pkgrel. Otherwise CI
fails, and it is right, we do want to provide the very high version so
we don't install the regular package by accident if the regular package
gets upgraded before this forked version.
Let's put everything systemd related in an extra-repos directory, so it
is clear that the packages from here will end up in a separate, optional
binary package repository.
Add the dependency, so the systemd-services package gets built as part
of the bootstrap. Otherwise no service files will be installed, as the
individual service files get pulled in via install_if, and that only
works if a binary package is available.
This is a hack to configure utilisation clamping for gnome-shell. It
works by telling the scheduler that the gnome-shell process should run
with a much higher performance level. This improve animation performance
and general UI smoothness. A proper solution to have gnome-shell manage
this itself is in the works upstream.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
For systemd (and our own sanity) we need to do the /usr merge. This fork
of apk-tools includes the logic to support alpine packages like tar
which install the main tar binary to /bin and then a symlink to
/usr/bin/...
We should find a way to implement this in upstream apk-tools, and
continue pushing Alpine to also adopt the merged /usr model.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
alpine-base hard depends on openrc... Fork it to drop this.
We should eventually upstream this by having alpine-base depend on a
virtual pid1 or init-system subpackage which openrc and systemd can both
provide.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
The qrtr-openrc package was removed in 94a777390c
but somehow still left in depends of this package.
Fix the errors like:
ERROR: unable to select packages:
qrtr-openrc (no such package):
required by: soc-qcom-sc8180x-nonfree-firmware-openrc-1-r1[qrtr-openrc]
This is the one and only mention of qrtr-openrc package in pmaports.
P.S. It's very telling how many users sc8180x has, if this was unnoticed
for 8 months.
Signed-off-by: Alexey Min <alexey.min@gmail.com>
Generate extlinux config for newer lk2nd and switch to msdos partition type,
since lk2nd doesn't support GPT yet.
Signed-off-by: Stanislav Jakubek <stano.jakubek@gmail.com>
[ci:skip-build]: already built successfully in CI
This drops some kconfig that was added in !5836, which shouldn't be
required for device kernels to comply with the "input" kconfig check.
HID_HYPERV_MOUSE: requires enabling HyperV guest support in the kernel,
we shouldn't impose this on all device kernels.
HID_KUNIT_TEST: No reason to enable kunit support, we aren't testing the
kernel with device kernels
SURFACE_HID: Requires enabling a bunch of Microsoft Surface platform
drivers/support, doesn't make sense to require for all device kernels.
Kernels that support Surface devices can enable these as needed, since I
don't think any non-surface devices would even have surface HID input hw
in them.
Replace this deprecated variable with the new equivalent.
[ci:ignore-count]
[ci:skip-build]: armv7 fails in CI (qemu instabilities w/ our runner),
Clayton verified checksums for armv7 stuff manually
This is the port for the Librem 5 devkit, I still have one but haven't
booted it in years and it's unlikely anyone else is using this (since
this port is super outdated and almost certainly not functional as-is).
Let's archive it so that it doesn't cause any confusion.
[ci:skip-vercheck]
[ci:skip-build]: we don't actually want to build test this thing
When enabling new options in kconfigcheck, it's likely that some kernels
in pmaports will fail, but often undesirable to rebuild all the kernels
particularly when the options being enabled are for quality of life.
Adjust the rules for the kconfig check job in CI so that it will fail
with a warning in this case, but still fail with an error when an
updated kernel package doesn't pass.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
[ci:skip-build]: already built successfully in CI
Looks like a lot of HID drivers are missing from pmOS device-specific
kernels. Let's try to deal with it by enabling all the HID related
drivers that the Fedora aarch64 and x86 kernels enable.
[ci:skip-kconfig-check]: too many kernels fail from the new required
config here, it's unfeasible to update them all right now
Recent kernel occupies 47120384 bytes in uncompressed state,
which is more than reserved memory for kernel
0x80000000 - 0x82800000 (40M).
Shift FDT image to give more memory space (56M) to load Linux.
Disable GPT to be able to chainload stuff on uSD from vendor u-boot on
internal eMMC. The vendor u-boot does not support GPT.
If booting is done by reprogramming the boot order or zeroing internal
bootloader, GPT is no problem.
[ci:skip-build]: already built successfully in CI
Enable CONFIG_LEDS_GROUP_MULTICOLOR as a module to fix issue #3424.
Previously, notifications triggered the torch flash instead of the
status indicator LED. This change allows proper use of the multicolor
LED driver, ensuring notifications utilize the status indicator LED.
[ci:skip-build]: already built successfully in CI
there is available qcom-msm8953 which is working with latest lk2nd fine on kuntao, but after flashing by building with device-lenovo-kuntao, it is resulting rebooting the system continuously with latest lk2nd, so imo it should be archived
Fixes#3414.
The package `device-pine64-pinephone-vccq-mod` installs a u-boot user script.
The user script was loaded at address 0x50700000 partially overwriting
the initramfs (0x4FF00000-0x50883fd1), and causing a boot loop.
The user script load address was increased to 0x50f00000, leaving 16MB
of free space for the initramfs, the current initramfs size is 9.52MB.
Tested: Build and install package on Pinephone 1.2a running PMOS 24.12.
[ci:skip-build]: already built successfully in CI
Bootloader needs to be at 0x400 for IMX6 devices. That is ignored by
pmbootstrap which places the GPT header there. Revert to msdos partition
table style to workaround that bug.
What works:
* Flashing with heimdall and a SD card
* Networking over USB
* SSH over USB
* Splash screen (when booting from charging screen)
What doesn't work:
* Any other UI than "none" (they boot, but no graphics and no SSH)
Steps to flash:
* pmbootstrap init # Select samsung-loganrelte, select "none" as UI
* pmbootstrap build linux-samsung-loganrelte
* pmbootstrap build device-samsung-loganrelte
* pmbootstrap install --sdcard=/dev/sdX # doesn't boot from internal storage
* pmbootstrap flasher flash_kernel
Somehow enabling in-kernel PD mapper (introduced in 5b9f51b200dcb
"remoteproc: qcom: enable in-kernel PD mapper"), breaks the bottom mic
on xiaomi-beryllium (Poco F1) and distorts audio on OP6 (and possibly
OP6T). Temporarily disable it and log the rprocs in use until we better
understand what causes the issue.
Link: pmaports#3353
Link: pmaports#3320
Link: pmaports#3245
Link: pmaports#3253
Signed-off-by: Frank Oltmanns <frank@oltmanns.dev>
[ci:skip-build]: already built successfully in CI
boot-deploy uses 'local', which technically isn't POSIX-compliant
and if someone has 'sh' from something else that strictly adheres to
POSIX then boot-deploy will fail.
This is a workaround for https://gitlab.postmarketos.org/postmarketOS/boot-deploy/-/issues/38
[ci:skip-build]: already built successfully in CI
There is a special check in init_2nd.sh for older postmarketOS
installations that do not have a valid /etc/fstab file. When /boot does not
appear in fstab, it searches for the boot partition and mounts it manually.
However, /boot might be intentionally omitted in fstab, e.g. because we
just have a single rootfs partition that also contains /boot. In that case
it will wait forever, trying to find the missing boot partition.
The old installations do not have any entries in fstab, so fix this by
checking if the file is empty instead (with all comments and whitespace
removed).
[ci:skip-build]: already built successfully in CI
This reverts commit 1259d74b09.
The main reason why that change was necessary is because we skipped
mounting subpartitions entirely if we found a potential root partition
(which could be simply a crypto_LUKS partition from a different distro).
Now that we look only for the actual root partition (based on the UUID),
this should not happen anymore.
Checking both conditions causes delays if there is no boot partition,
e.g. if pmOS was installed with --single-partition. Usually we don't need
to mount the boot partition anymore, because all needed files are part of
the initramfs. So let's drop the check for the boot partition again and
rely on the UUIDs to ensure we set up the correct partitions.
When using an encrypted installation of postmarketOS, the pmos_root_uuid=
on the cmdline only tells us the UUID of the crypto_LUKS partition. Once
the partition is unlocked, we perform the the old unreliable auto detection
again. This might mount the wrong partition if multiple installations of
pmOS are attached to the system.
After we unlock the root partition, we know exactly where the root
partition is supposed to be (= at /dev/mapper/root). Let's use that
directly instead of going through the whole detection sequence again.
Right now we fallback to the old behavior of searching for the "pmOS_root"
label when the root partition specified by pmos_root_uuid= on the cmdline
is not found. This works fine most of the time, but there are edge cases in
which this does not behave correctly. Problems occur especially if there
are multiple installations of pmOS (e.g. one on internal storage, and one
on USB drive/SD card). Depending on timing or enumeration order, the system
might boot into the wrong rootfs if the intended root partition shows up
too late.
For the boot partition we already enforce the UUID provided on the cmdline.
Let's apply the same for the root partition to ensure we always boot into
the correct root partition.
Update paths to keyboard configuration files to reflect PinePhone's
move from main to community device category.
[ci:skip-build]: already built successfully in CI
The full initramfs is now too big for the boot partition.
When building with the downstream kernel, use initfs-extra
to split the initramfs so it can fit again.
This is not an issue with mainline kernel since booting it
uses extlinux with lk2nd.
[ci:skip-vercheck]
Signed-off-by: Alexandre Messier <alex@me.ssier.org>
[ci:skip-build]: already built successfully in CI
Like most msm8974 devices, lk2nd is used to boot mainline linux on the
HTC One (M8).
Add it as a dependency of the mainline kernel build, so that it is built
when required. It can be flashed with 'pmbootstrap flasher flash_lk2nd'
while in the vendor bootloader fastboot mode.
Only extlinux mode is supported for mainline kernel, as otherwise the
initramfs is too big for the boot partition.
Signed-off-by: Alexandre Messier <alex@me.ssier.org>
To support the HTC One (M8), a new specific target is required
since it needs non-default values for mkbootimg.
Signed-off-by: Alexandre Messier <alex@me.ssier.org>
Add the imagis and 88pm886_regulator drivers to the initfs allowing the
software keyboard in the debug shell to work.
[ci:skip-build]: already built successfully in CI
Otherwise the service will be installed even if the mainline kernel is
selected.
Fixes: f59eac28b ("firmware-samsung-pxa1908: move openrc scripts to subpackage (MR 5688)")
Convert the device package to use U-Boot.
The U-Boot binary is gzipped and put into a U-Boot legacy uImage to
match what the factory bootloader's demands. The postmarketOS kernel,
initramfs and device tree are packed into a FIT and passed to U-Boot as
an initramfs.
Basically linux-postmarketos-marvell-dove but with fellow changes :
1. Added support for other marvell SoC
2. The local version has been changed to -postmarketos-marvell
3. Several redundant USB controller driver has been removed
4. CONFIG_SATA_MV is seted to y
5. fbdev is disabled
6. CONFIG_ZRAM_BACKEND_ZSTD it enabled
(due to kconfig config but i also enabled CONFIG_ZRAM_BACKEND_LZ4 and
others)
7. neon is enabled
Add soc-qcom-sm7125, firmware-xiaomi-miatoll, hexagonrpcd as dependency.
This necessary to make Wi-Fi, Sensors, GPU and modem work.
Split device package to support panel variants and take
maintainership.
eg25-manager 0.5.2 seems to be able to bring back the modem on its own again,
so this hack is no longer necessary.
[ci:skip-build]: already built successfully in CI
Successfully built and booted postmarketOS on Samsung Galaxy J4.
It's based on Exynos 7570, same SoC used by samsung-xcover4lte [1].
Currently, these are tested working:
- Boots from internal storage
- Display (console framebuffer is NOT working, kernel panics)
- Framebuffer (additionally with msm-fb-refresher to refresh the screen)
- Touchscreen
- USB Networking (RNDIS)
- Wi-Fi
Tested UI environments:
- XFCE 4
- Console (Kernel log doesn't show up because
`CONFIG_FRAMEBUFFER_CONSOLE` is not enabled, but enabling it panics
the kernel. This is a known issue for some Samsung devices, notably
samsung-crownlte [2].)
[1] https://wiki.postmarketos.org/wiki/Samsung_Galaxy_Xcover_4_(samsung-xcover4lte)
[2] https://wiki.postmarketos.org/wiki/Samsung_Galaxy_Note_9_(Exynos)_(samsung-crownlte)#Current_status
LXQt can control the display brightness. It doesn't save and restore it
over boots, however. In distributions with systemd this is handled by
"systemd-backlight@.service". For OpenRC the package brightnessctl offers
a service saving the state of the brightness at shutdown and reboot.
closes#3386
Needed to fix eduroam iwd on qcom laptots. This config option used to be enabled on v24.06.
[ci:skip-build]: already built successfully in CI
lock.sh is only reliable when used with i3wm, where we disable gpio_keys from
being handled by X/i3wm. When this is not done (e.g. when testing a different
X11 UI), the script becomes unreliable since the display turns on due to the
SCREENLOCK key being toggled, and therefore only the display=on case is ever
run.
Improve reliability of the script by basing the decision making on the
enabled/disabled state of the touchscreen instead.
Current pinephone images built pmbootstrap >= 3.0.0 don't boot on the
pinephone anymore. At least part of this must be the switch from GPT to
MBR that has been done by default in pmbootstrap. Set msdos explicitly
to revert this for the pinephone.
With Tow-Boot we could probably use GPT instead, but this should be a
well-tested, concious decision. Let's fix this regression first.
[ci:skip-build]: already built successfully in CI
This adds Xiaomi Pad 5, it uses a close to mainline kernel on 6.12.0
the firmware is packaged and supported, although hexagonrpcd is not working yet.
this is a continuation from
https://github.com/map220v/postmarket_xiaomi_nabu/tree/test
updating its config and updating its components.
i based the hexagonrpcd bringup from xiaomi-elish and google-sargo
[ci:skip-build]: already built successfully in CI
In addition to the pmos.debug-shell cmdline argument, add
pmos.usb-storage=<block-device> to set up the USB mass storage gadget by
default when going into debug shell. This allows building a special boot
image/option that directly exposes the storage for flashing, without having
to type in extra debug-shell commands.
Right now we have two similar implementations of setting up a USB mass
storage gadget, in init_functions.sh and as separate script for the
debug-shell. Given that init_functions.sh is available in debug-shell
anyway, unify both in a common setup_usb_storage_configfs() function.
Having this included in the initramfs debug-shell by default (without
installing postmarketos-mkinitfs-hook-debug-shell) also simplifies
recovery, since you can set up the USB storage for repairing the flashed
postmarketOS installation in case of boot failures. The size overhead is
minimal, since this has no extra dependencies.
Added a config file to /etc/unl0kr.conf.d/ to fix issue with unl0kr
being invisible during boot.
Commit-Msg-Tweaked-By: Oliver Smith <ollieparanoid@postmarketos.org>
BTRFS only supports online resizing. Right now we implement that by
temporarily mounting the file system, resizing it, and then unmounting it
again. But most of this is redundant since we mount the rootfs at /sysroot
immediately after.
Avoid this by splitting the file system resizing in offline resize (before
mount) and online resize (after mount) and resize BTRFS after mounting
/sysroot. For EXT4 we can either do offline resizing or online resizing.
Keep offline resizing for now for better compatibility with older kernels.
F2FS does not seem to support online resizing, so we need to keep the
functionality for offline resizing anyway.
Drop the splash for now, since it would introduce flickering on each boot.
We can restore it later if needed (ideally by adding a way to update the
splash message without restarting pbsplash).
Right now we use the resize2fs -f (force) option, which "Forces resize2fs
to proceed with the filesystem resize operation, overriding some safety
checks which resize2fs normally enforces." For example, this flag instructs
resize2fs to attempt resizing file systems with errors in some situations.
We primarily care about resizing the file system on initial boot, where we
shouldn't have any errors in the file system. For all other subsequent
boots, we shouldn't risk the filesystem data just to resize it again.
So let's drop the -f flag and only resize clean file systems.
At the moment, the root file system is only resized to span the entire
partition if we previously also resized the partition itself. However, if
a rootfs image without subpartitions is flashed to a pre-existing partition
this means that the installation only has very limited space available
without manual resizing.
Such a setup is used for devices using the "fastboot-bootpart" flasher
(e.g. asus-me176c), where boot and root images are flashed to two separate
partitions and the device boots directly from the boot partition.
Avoid this problem on these devices by always resizing the root file system
on each boot. All the resize tools exit early if the file system is already
expanded to the maximum size. It's faster to call resize2fs unconditionally
instead of manually checking if the file system needs resizing before.
Similar tooling like systemd-growfs also resizes unconditionally.
Fix the bug that prevented "pmbootstrap install" from working with
postmarketos-ui-gnome (not -mobile).
This bug has been here in pmaports for a long time, but until recent
changes in apk's resolver code, this did not fail (apk installed
gnome-extensions-app instead of gnome-mobile-extensions-app in that
scenario).
How it happened:
* postmarketos-ui-gnome has _pmb_recommends="gnome-extensions-app".
* pmbootstrap: pmb.install._install.get_recommends() works like this:
1. Look at the packages i in _pmb_recommends of the packages that
will be installed in "pmbootstrap install".
2. For each package j in _pmb_recommends of i:
2.1 Add all packages in j's _pmb_recommends to the list of
packages to be installed.
(2.2 Recurse by doing 1. with each package in j's _pmb_recommends.)
* In step 2:
* pmaports doesn't have a gnome-extensions-app (it's in Alpine, a
subpackage of gnome-shell).
* Therefore our gnome-shell-mobile fork gets looked at, which has a
gnome-mobile-extensions-app subpackage that provides
gnome-extensions-app.
* pmbootstrap looks at the _pmb_recommends of the gnome-shell-mobile
package, which has "gnome-mobile-extensions-app" (this is wrong,
it should be in postmarektos-ui-gnome-mobile instead and this patch
fixes this!).
* pmbootstrap adds the "gnome-mobile-extensions-app" to the list of
packages to be installed.
* The result is an "apk add" line that has "postmarketos-ui-gnome" and
"gnome-mobile-extensions-app" (and more packages), which results in a
conflict betwen gnome and gnome-mobile packages.
Fixes: issue 3360
[ci:skip-vercheck]: _pmb_recommends changes don't need package rebuilds
[ci:skip-build]: already built successfully in CI
lafrite has u-boot in SPI already
it also prevents lafrite from booting because pmbootstrap uses GPT partitioning now.
Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Fixes the problem that BOOT partition is only 10 MB big while boot.img is 13 MB now.
Also heimdall was stuck at 7% with the sparse flag this gets fixed.
[ci:skip-build]: already built successfully in CI
As @grimler stated in MR !5887 (comment) [1], samsung-jackpotlte,
samsung-xcover4lte, and samsung-a30 share the same name for Wi-Fi
proprietary blobs, and packaged in their own specific firmware package.
The problem is these firmware packages put files in the same directory
as `firmware-samsung-a51`: /lib/firmware/postmarketos/mx140/. This opens
up the probability of conflicting blobs when multiple firmware packages
are installed on the system, resulting in wrong blobs used.
To ensure that this firmware is located in its own directory, move
`samsung-a51` blobs into its own subdirectory. This way, `a51` blobs
will stay intact whether multiple firmware packages are installed.
[1] https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/5887#note_459185
Successfully built and booted postmarketOS on Samsung Galaxy A51. It's based on Exynos 9611 SoC.
Currently, these are tested working:
- Boots from internal storage
- Display (DECON driver needs to be patched. Included in the kernel package)
- Framebuffer (additionally with msm-fb-refresher to refresh the screen)
- Touchscreen
- USB Networking (RNDIS)
- Wi-Fi
Tested UI environments: XFCE 4 & Console.
Wiki: https://wiki.postmarketos.org/wiki/Samsung_Galaxy_A51_(samsung-a51)
Ensure postmarketos-base-nofde is built before this package, otherwise
bootstrapping this on a new stable branch fails. This does not need to
be backported, as postmarketos-base-nofde has already been built for
v24.12.
Related: https://builds.sr.ht/~postmarketos/job/1384748
Actually Xfce4 is capable to use the "draw-user-backgrounds" option of
"slick-greeter", applying the users wallpaper on the greeter.
However, as it turns out, the users background in pmOS Xfce4 is set at first
login of the user. Therefore, the greeters background is black at the first
boot.
Therefore set the greeters background to the default postmarketOS wallpaper.
Move the polkit-elogind into depends= instead of pmb_recommends=, so
packages depending on postmarketos-base-ui-gnome can build successfully
again. The previous fix only helped for "pmbootstrap install", this fix
will help for both cases.
Without this, e.g. postmarketos-base-ui-gnome-mobile fails to build:
https://builds.sr.ht/~postmarketos/job/1384469
[ci:skip-build]: already built successfully in CI
Add polkit-elogind to _pmb_recommends, to help apk resolve the polkit
depends again. Otherwise it fails with a conflict since recent changes
in apk's dependency resolving code.
Fixes: issue 3349
[ci:skip-vercheck]: pmb_recommends change doesn't need rebuild
[ci:skip-build]: already built successfully in CI
Change <=…-r0 to <=…-r999 as it was just bumped to fix a build error and
might be bumped again in the future. I've also tried just removing -r0,
but that results in a conflict.
The Linux stable team merged v6.12 into linux-rolling-stable as
of Thursday, so here's a new release.
This release cycle was very quiet with small fixes.
The ttynull driver was enabled in the configuration to fix a bug
where userspace would start with no stdio open.
A patch that made the fuel gauge driver compatible with v6.10
was dropped.
Patches from MSM8916 and MSM8953 were re-picked, to include the change
from strlcpy to strscpy and to remove duplicate q6voice entries in a
Makefile.
Some flashlight and charging patches were staged.
The thermal nodes were sorted by the thermal sensor to match
other platforms.
Bluetooth, camera, call audio, display, USB, I2C, eMMC, modem, video
acceleration, WiFi, haptics, NFC, sensors, and touchscreen should
work and be slightly broken like before.
After commit 8335d050bf24977afefee6612dd347abd555bc53 in pmbootstrap the
partition table now defaults to GPT instead of MBR. This breaks booting
on Amlogic devices for the following reasons:
* On set-top boxes: downstream U-Boot most likely does not have GPT
support
* On boards where we install mainline U-Boot as BL33 on eMMC/SD: the
bootROM checks for an `@AML` image header at offset 512 (second LBA),
which means we are basically stuck on MBR
Some Amlogic boards have U-Boot + the proprietary Amlogic firmware
stages in SPI flash (mainly the Libre Computer boards do), which means
they can use GPT, because the firmware is simply not stored on eMMC/SD.
For that reason I chose not to change the partition table on those.
Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Fix TypeError when RuntimeError is thrown
Example:
FAILED testcases/test_device.py::test_aports_device -
TypeError: can only concatenate str (not "PosixPath") to str
Merge the following Samsung Galaxy Grand Prime devices into
samsung-fortuna:
- samsung-fortuna3g
- samsung-fortunaltezt (firmware only due to armv7 architecture)
- samsung-gprimeltecan
- samsung-grandprimelte (was samsung-gprimeltexx)
Resolves deadlock between Rockchip crypto hardware and dm-crypt causing
kernel panic during disk decryption on devices like PinePhone Pro.
- Disables RK3399 hardware crypto engine (CONFIG_CRYPTO_DEV_ROCKCHIP)
- Enables ARM64 CPU crypto extensions for AES/SHA
- Makes core crypto components built-in instead of modules
Fixes: kernel panic in queued_spin_lock_slowpath() when accessing
encrypted devices.
[ci:skip-build]: already built successfully in CI
There might be additional kernel modules needed for the USB UDC to show up.
This used to work fine, but broke when the initramfs was unified with the
minimal one. We need to load modules/start udev before setting up USB.
Fix this by duplicating the setup calls in both init.sh and init_2nd.sh.
Both calls already have checks to allow calling them multiple times,
so we don't need to handle the initramfs-extra case in a special way.
[ci:skip-build]: already built successfully in CI
Split -nofde into a separate package to resolve the cyclic depenency:
postmarketos-base -> postmarketos-initramfs -> postmarketos-base-nofde
Fixes: issue 3236
[ci:skip-build]: already built successfully in CI
Fill out makedepends, so pmbootstrap and bpo know that these packages
need to be built before building postmarketos-cros-common, because it
has subpackages depending on these packages. Without this,
bootstrapping v24.12 currently fails:
https://builds.sr.ht/~postmarketos/job/1381582
This is intended behavior, abuild works the same way:
https://gitlab.alpinelinux.org/alpine/abuild/-/issues/10138
[ci:skip-build]: already built successfully in CI
This is a generic kernel for qcom laptops (sc8280xp & x1e), meant to
replace the lenovo-21bx kernel for the x13s.
- Uses johan_defconfig as base, and includes Minecrell's pmos.config
- Adds some extra kconfig for supporting virtualization
As of upower 1.90.5, it is possible to configure upower to not take an action
when the battery capacity is reported as critically low. Since the Nokia N900
now monitors its battery capacity using udev scripts, which is more accurate
than upower's calculation, enable the new ignore feature for the N900.
The bq27200 fuel gauge depends on its battery-backed memory for capacity
reporting. If the supply is off for some time, the fuel gauge's last known
capacity is reset, after which a capacity value can only be read after a
full charge cycle. Thus, most of the time, as used on the Nokia N900, the
reported percentage cannot be relied on for making power-off decisions on
battery low conditions, e.g. through UPower.
However the fuel gauge can very accurately detect and report a low battery
condition internally, even if the reported capacity is incorrect, e.g. when
it has been reset. The low battery condition is reported by the kernel via
capacity_level in sysfs, and also generates uevents.
So we can implement safe battery shutdown by requesting the kernel to more
regularly polling for status changes, then performing an immediate shutdown
when the capacity_level is reported as Low and the device is not charging.
The deviceprofile is now in a tagged sxmo release.
The conky issue will be mentioned in wiki for users to manually disable, until
upstream allows toggling it.
It's possible that additional sources have been made to an APKBUILD
which are unstaged, but if the hunks adding those sources haven't been
staged either then it doesn't make sense to fail on this.
Use git show to get only the staged hunks for the APKBUILD.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
Fix the following error during "pmbootstrap install":
ERROR: unable to select packages:
sudo-1.9.16_p1-r1:
conflicts: doas-sudo-shim-0.1.1-r1[cmd:sudo=1.9.16_p1-r1]
breaks: doas-sudo-shim-0.1.1-r1[!sudo]
satisfies: postmarketos-base-38-r0[sudo-virt]
postmarketos-base-nofde-38-r0[sudo-virt]
doas-sudo-shim-0.1.1-r1:
conflicts: sudo-1.9.16_p1-r1[cmd:sudo=0.1.1-r1]
satisfies: postmarketos-base-doas-38-r0[doas-sudo-shim]
postmarketos-base-38-r0[sudo-virt]
postmarketos-base-nofde-38-r0[sudo-virt]
How the error gets triggered:
* postmarketos-base depends on sudo-virt. During "pmbootstrap install",
pmbootstrap has to resolve this to a sudo implementation (sudo, doas,
...).
* pmbootstrap does this by looking at the packages that get installed
at the same time. Before this patch we did not install doas-sudo-shim
directly through _pmb_recommends, only indirectly through a
postmarketos-base-doas subpackage that pulls doas-sudo-shim in via
install_if.
* pmbootstrap cannot look at install_if as it resolves dependencies,
so it has to pick one and goes for "sudo".
* pmbootstrap tells apk to install a list of packages including "sudo",
and because apk also resolves install_if correctly, the solver fails
at the conflict between "doas-sudo-shim" and "sudo". (This only fails
since apk-tools-static 2.14.6-r0, apparently beforehand apk just
installed "doas-sudo-shim" in this scenario.)
Teaching pmbootstrap to look at install_if while resolving packages
would be one way to fix this. But it would be a lot of effort, not
feasible to quickly stop the problem at hand that breaks "pmbootstrap
install" for all edge installs. IMHO it is not worth implementing this
at all in pmbootstrap, as it is just supposed to do some more or less
basic package resolving until apk takes over and does it properly.
Put doas-sudo-shim in _pmb_recommends so pmbootstrap knows that this is
the sudo implementation we want without looking at install_if.
Remove the now obsolete postmarketos-base-doas subpackage. This will
lead to doas-sudo-shim getting removed for old installations on upgrade,
but it can easily be installed back (doas add doas-sudo-shim). I'll make
an edge post about it and put it in the v24.12 release notes. If we
don't remove it here, we would need to keep this legacy subpackage
around forever and I'd rather avoid that to reduce maintenance effort.
Another alternative to this was removing sudo-virt from depends="". But
that would lead to sudo getting uninstalled for users upgrading from
old releases from before we had doas in pmb_recommends, so I've decided
against it.
Fixes: pmaports issue 3340
The Google Pixel 3a automatically appends console=null to the command
line. In the kernel, the preferred console is set to ttynull. Since
ttynull is not automatically enabled, a warning is currently emitted:
[ 0.909853] Warning: unable to open an initial console.
This also causes stdin, stdout, and stderr to be missing from the init
process.
In the busybox implementation, syslogd creates the /dev/log socket and
opens /dev/kmsg. This happens just before daemonizing, which opens
/dev/null and aliases stdin, stdout, and stderr to it. After daemonizing
and potentially closing the socket, stdin is aliased to the socket to
save stack memory. If the program starts without stdin under Linux, the
socket gains the constant STDIN_FILENO file descriptor, which is cleared
when daemonizing.
Syscalls when the 0, 1, 2 file descriptors aren't open:
socket(AF_UNIX, SOCK_DGRAM, 0) = 0
openat(AT_FDCWD, "/dev/kmsg", O_WRONLY|O_LARGEFILE) = 1
openat(AT_FDCWD, "/dev/null", O_RDWR|O_LARGEFILE) = 2
Enable the CONFIG_NULL_TTY option and update the configuration to allow
the kernel to open stdin, stdout, and stderr for the init and (by
inheritance) syslogd processes. It's technically an expert option but
isn't enabled by default (and can be enabled in config fragments).
Closes#3269
[ci:skip-build]: already built successfully in CI
The main goal of switching LightDM to slick-greeter is to ease
enabling/disabling autologin. With "lightdm-settings" installed, there
is an administration/settings GUI "Login Window" available that allows
among others to configure autologin. Contrary to its general purpose
name, it works on LightDM greeter "slick-greeter" only.
[ci:skip-build]: already built successfully in CI
Use install "-t" option, avoiding to repeat the file name and allowing to add
more than one file per command. Additionally sort the commands alphabetically
per path.
Exception is the lightdm autologin config file because it does a file renaming.
Put this command to the end.
bq27xxx_battery has a check for status flags in order to detect changes
and report to userspace. However, the cached flags are updated before
checking for changes, hence no flag-related events are ever sent. This
patch fixes this behavior, and has been sent upstream.
[ci:skip-build]: already built successfully in CI
Add a workaround so the kernel compile output is not silent (which leads
to pmbootstrap aborting the build). This will be fixed once upgrading to
linux >= 6.2.
Related: pmaports issue 1990
[ci:skip-build]: already built successfully in CI
In linux-postmarketos-qcom-msm8916 this is fixed properly thanks to a patch
from Jakob Hauser. The cmdline parameter is no longer necessary, and just
causes the display to be horizontally flipped again.
[ci:skip-build]: already built successfully in CI
Signed-off-by: Robert Eckelmann <longnoserob@postmarketos.org>
[ci:ignore-count]: We meant to change many packages
[ci:skip-build]: already built successfully in CI
Linux 4.14.186 has no ZSTD support and is therefore too old to have full
support for our default ZRAM configuration. ZRAM will likely still work,
but fall back to the default compression method. This is not something we
can actively test or support, so drop the pmb:kconfigcheck-zram.
[ci:skip-vercheck]: no rebuild needed
Linux 3.18.14 has no ZSTD support and is therefore too old to have full
support for our default ZRAM configuration. ZRAM will likely still work,
but fall back to default compression method. This is not something we
can actively test or support, so drop the pmb:kconfigcheck-zram.
[ci:skip-vercheck]: no rebuild needed
main/postmarketos-base/rootfs-etc-conf.d-zram-init configures zstd as our
default ZRAM configuration, but the kconfigcheck only checks for LZ4 at the
moment. Because of this some of our kernels don't actually have ZSTD
support enabled and end up using the default compression algorithm.
For Linux >=4.18 we should enable CONFIG_CRYPTO_ZSTD to enable ZSTD support
for ZRAM.
In Linux >=6.12 the configuration was changed to CONFIG_ZRAM_BACKEND_ZSTD.
This requires manual edits while upgrading, otherwise only LZO support will
remain enabled.
Checking for >=3.14.0 additionally does not make any sense, because the
kconfig check should not be enabled for kernels that cannot satisfy our
minimum requirements.
Describe this properly in kconfigcheck.toml to ensure kernels are
configured correctly.
The following kernels are currently missing the correct options:
config-htc-flounder.aarch64: CONFIG_CRYPTO_ZSTD should be set (category:zram)
config-postmarketos-amlogic.aarch64: CONFIG_CRYPTO_ZSTD should be set (category:zram)
config-postmarketos-grate.armv7: CONFIG_CRYPTO_ZSTD should be set (category:zram)
config-postmarketos-qcom-msm8974.armv7: CONFIG_CRYPTO_ZSTD should be set (category:zram)
config-postmarketos-qcom-sc7280.aarch64: CONFIG_CRYPTO_ZSTD should be set (category:zram)
config-postmarketos-qcom-sm6115.aarch64: CONFIG_CRYPTO_ZSTD should be set (category:zram)
config-postmarketos-qcom-sm6350.aarch64: CONFIG_CRYPTO_ZSTD should be set (category:zram)
config-purism-librem5.aarch64: CONFIG_CRYPTO_ZSTD should be set (category:zram)
The following kernels are too old to support CONFIG_CRYPTO_ZSTD:
config-samsung-jxelte.aarch64: CONFIG_CRYPTO_ZSTD should be set (category:zram)
config-volla-mimameid.aarch64: CONFIG_CRYPTO_ZSTD should be set (category:zram)
Many parts of the Linux desktop (apps, tools, scripts, etc) all expect
xdg-open and friends to be installed.
Since these utilities are tiny and (usually) ubiquitous, let's make sure
our UIs all depend on them.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
We haven't had kernels in main/ for soon three years[1], so no need
to bother checking this location.
[1]: See commits 47d8f823..8f24fe3a
[ci:skip-build]: already built successfully in CI
Add qbootctl as dependency msm-firmware-loader needs it
for A/B devices like xiaomi-daisy and xiaomi-tissot.
[ci:skip-build]: already built successfully in CI
init_functions.sh makes use of the mass_storage and acm USB gadget
functions for error reporting, but the necessary kernel modules are not
included in the initramfs at the moment. Because of this, the functionality
works only on kernels where all these USB gadget functions are built-in and
not built as modules.
Add the missing modules and fix the sort order while at it.
[ci:skip-build]: bug in CI prevents build testing armv7, succeeded locally
The current test script disallows these kinds of comments:
deviceinfo_some_variable="some_value" # an inline comment
Since deviceinfo is essentially a shell script, it does make sense to
allow inline comments. It is relatively simple to implement as well, by
adjusting the regex.
[ci:skip-build]: already built successfully in CI
Patch adding LG G4 (H815) support got upstreamed in v6.12-rc1 mainline
kernel (it's slightly different than the patch used here).
Add python3 to makedepends (required from v6.10-rc1
0fddd045f88e ("drm/msm: generate headers on the fly")).
Signed-off-by: Petr Vorel <pvorel@suse.cz>
The project access token disappeared (maybe expired?), let's avoid
hardcoding this and put it in a CI variable instead.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
Tested working on C330. I can drop the patch for 6.11 regression since
that is fixed now. All the normal stuff works, nothing broken as far as
I can tell. Default config options chosen with pmbootstrap kconfig
migrate.
pmbootstrap 3.0.0 uses GPT partition table by default, which breaks booting
on all the devices using the lk2nd bootloader. The current version of lk2nd
supports GPT only for the eMMC, while subpartitions and SD cards must be
partitioned with MBR. GPT support was present in the legacy branch of
lk2nd, but was dropped at some point because of poor code quality.
Fix the regression for now by reverting back to the old msdos (MBR)
partition table. We can revert this again later when lk2nd restores support
for GPT.
Generated with
$ for d in $(grep -R linux-postmarketos-qcom-msm8916 | grep -Eo 'device-[^/]+' | sort -u); do \
echo -e '\n# lk2nd does not support GPT for subpartitions/SD cards yet\ndeviceinfo_partition_type="msdos"' \
>> device/*/$d/deviceinfo && pmbootstrap checksum $d && pmbootstrap pkgver_bump $d; done
[ci:ignore-count]
[ci:skip-build]: bug in CI prevents build testing armv7 and aarch64, so
Clayton did the test locally for those archs
This is needed for completely functional BT on the 6.12 kernel we
package. The bt fw file will be in the next (december) release of
linux-firmware, so in the meantime it's fetched/packaged here. This will
need to be dropped when the next linux-fw package upgrade is released.
Tested on google-hayato. I also cleaned up the config a bit since the
collabora defconfig had a few weird things set. Zram now works as
expected because of this.
The gpi module is needed to initialize the dma controller
necessary for the touchscreen to get initialized, so that
we have working on-screen keyboard input in early environment
of the initramfs. This mainly useful for unl0kr, but also
the initramfs-debug hook.
Since pmbootstrap!2426, pmbootstrap defaults to a `gpt` partition type,
the legacy u-boot on the cubox does not support `gpt`.
Therefor the deviceinfo was adjusted to return to `msdos` type partition
table.
Tested sucessfully on actual HW with new install
Signed-off-by: Robert Eckelmann <longnoserob@postmarketos.org>
Two main changes apart from rebase and config sync:
- Fix broken usb networking by making CONFIG_USB_CDC_COMPOSITE
builtin (by @eisenbahnfan)
- Add mainline support for exynos5420-n2awifi (by @eisenbahnfan)
[ci:skip-build]: already built successfully in CI
The package was renamed from postmarketos-cros-keymap to
postmarketos-cros-keymap-openrc, adjust _pmb_recommends.
[ci:skip-build]: already built successfully in CI
I replaced "console=null" with "quiet loglevel=2",
based on the findings in #2989fixes#3269
[ci:ignore-count]
[ci:skip-build]: already built successfully in CI
asus-zenfone3: move linux-postmarketos-qcom-msm8953 package to each subpackages
asus-zenfone3: remove suffix from deviceinfo_name
asus-zenfone3: remove uneeded firmware files & add lk2nd-msm8593
[ci:skip-build]: already built successfully in CI
Without these rules, the /dev/disk/by-* stuff isn't created on devices
that use subpartitions (and maybe FDE too?), and systemd boot fails
because it's unable to find the boot partition UUID under that path.
fixes!5636
[ci:skip-build]: already built successfully in CI
Upgrade the kernel to version 6.11.6. It adds mainline support for two new
devices, namely samsung-j6lte and samsung-j5y17lte.
Also includes minor code refactoring.
[ci:skip-build]: already built successfully in CI
Maintenance:
- Renamed gschema override files for "system background" and "screensaver"
to prefix number "10", that's more common for distribution-delivered
gschema override files. Basically the prefix number just separates the
override files from the xml files.
- For gschema override files "caja single click" and "mate terminal colors"
replaced underline by dash character for better alphabetic sorting.
- In the APKBUILD, adapted the install of file "gtk.css" to the "-t" option,
as no file name change is needed.
- Sorted the installs alphabetically per path, except the for the file
"61-lightdm-autologin.conf", this one is at the end because it doesn't use
the "-t" option due to file renaming.
Touch-friendliness:
- Increased size of the upper and lower panel from 24 to 36 px. This also
increases the size of the icons in the panel. Unfortunately, at installation
the panel layout config file is stronger than the gsettings override of the
panel size, therefore a new panel layout config file is needed. It corresponds
to the upstream default layout, just the panel size values were changed.
- Increased the size of the window buttons by changing the window border theme
to "HighContrast". That's not the nicest looking theme but the one with the
largest window buttons – convenient for touch devices.
- Increased general font sizes from 10 to 12 px. This goes along with increased
panel size and window button size, avoiding looking it too unproportional.
- Changed the layout of the panel clock to just show the time (no date or week
day). This saves space on devices with small screen. As the panel size was
increased, display size gets tight on devices with small screen.
- Changed the layout of the panel workspace switcher to show names in the format
of "- x -". This is a workaround to artificially increase the size of the
workspace switcher buttons on portrait displays. Because otherwise these
buttons are very squeezed on portrait displays due to the display ratio.
- Add an application shortcut for a maximized terminal to the users Desktop
upon installation.
[ci:skip-build]: already built successfully in CI
Require the pmbootstrap version where we added a workdir migration to
change pmaports git URLs from gitlab.com to gitlab.postmarketos.org.
pmaports at gitlab.com will be fast-forwarded to this commit once, so
users who still have this archived repository configured as upstream
will be notified of this change after next git pull and trying to use
pmbootstrap <2.3.2 with it.
Related: https://gitlab.postmarketos.org/postmarketOS/pmbootstrap/-/tags/2.3.2
Related: pmbootstrap issue 2471
oem-* packages put fw into the initramfs, which allows for display/gpu
to work properly early during boot. On x64cros, there's not enough space
in the boot partition to hold gpu firmware so this patch duplicates some
things from oem-* packages in order to put the fw into initramfs-extra
[ci:skip-build]: already built successfully in CI
Split the post-install scripts for the main package and the openrc subpackage.
They act on different things.
[ci:skip-build]: already built successfully in CI
This is a stylistic change only.
Generated by this program, which takes care to treat '_' and '-' as the
same character for the purpose of sorting:
perl -e 'print sort {($a =~ s/_/-/r) cmp ($b =~ s/_/-/r)} <>' modules-initfs | uniq | sponge modules-initfs
Add configs to get the PinePhone to boot and some functionality such as
wifi. A number of components, including the modem, sound, and usb, don't
yet work without patches, so are left out here.
This module is necessary for cpu frequency scaling on Qualcomm
platforms, let's make it available earlier so we have cpu frequency
scaling up sooner.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
importing all udev rules doesn't make sense here. Only add the needed
ones.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
Co-authored-by: Clayton Craft <clayton@craftyguy.net>
[ci:ignore-count]
[ci:skip-build]: already built successfully in CI
Note: this includes a breaking change in pmaports if pmos-initramfs isn't changed to support merging the initramfs+initramfs-extra. Do not cherry-pick without the required initramfs changes!
Drop the fork, nothing depends on it and we can use the new multi-stage
initramfs instead
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
[ci:ignore-count]
[ci:skip-vercheck]
Make use of the new multi-stage initramfs rather than the minimal
variant, and inform mkinitfs that the initramfs-extra archive should be
created to save space.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
[ci:ignore-count]
We previously forked the initramfs into a minimal variant for highly
space constrained devices, to allow the normal variant to gain
additional functionality like the debug-shell (With OSK). Initially the
hope was that only a handful of devices would need the minimal variant,
but in practise this has not been the case.
Trying to maintain two diverging forks of the initramfs is absoutely
unsustainable and (to be frank) a bit silly.
Based on discussion with craftyguy and newbyte, let's re-architect the
initramfs to run in two stages, with the second stage being part of
initramfs-extra. By itself this doesn't make a lot of sense, since
requiring the boot partition be mounted for the debug-shell to be useful
is a major downgrade.
However this can be used in tandem with pending support for a new
deviceinfo_create_initfs_extra variable, this is default false in
mkinitfs which finally gets rid of initramfs-extra entirely for devices
that don't need it.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
Co-authored-by: Clayton Craft <clayton@craftyguy.net>
We need to use ls to check if the hooks dir contains any hooks
(otherwise the wildcard doesn't work). But ls prints an error if the dir
is missing or empty. Hide the error to not pollute the log.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
This was only added recently, is likely not used by anyone, and
introduces hard to resolve dependencies on /boot being mounted which we
may not want in the future.
Remove it to drop some complexity.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
Alpine's abuild runs build() without fakeroot, and package() with
fakeroot. From the APKBUILD reference page in the Alpine wiki:
> Note: Building in fakeroot will reduce performance for parallel
> builds dramatically. It is for this reason that we split the build
> and package process into two separate functions.
Every now and then we see a package that tries to run a compiler (gcc,
g++, clang, ...) during package() in the APKBUILD. This is a bug in the
APKBUILD / build system of the program we are packaging. All compiling
should be done during build().
Let crossdirect print the following when this happens:
============================================================================================
ERROR: crossdirect was called with: LD_PRELOAD=libfakeroot.so
This means your package tried to run a compiler during package().
This is not supported by crossdirect, and usually not a good idea.
* Try to fix your APKBUILD so it does not run the compiler during package(), only in build()
* If you're using meson install, try to add '--no-rebuild'
* If this is not possible, you can work around it by setting options="!pmb:crossdirect"
(compilation will be slower!)
============================================================================================
Instead of:
ERROR: crossdirect: can't handle LD_PRELOAD: libfakeroot.so
Please report this at: https://gitlab.com/postmarketOS/pmaports/issues
As a workaround, you can compile without crossdirect.
In the past I've also tried to add 'strcmp(ldPreload, "libfakeroot.so") == 0'
(pmaports MR 2231), and today I made the same patch. The current code
looks like it would then work by just using libfakeroot.so from the
native chroot, but it does not work. And as mentioned, if we hit this
then we are compiling in package() which is something we should not do
anyway!
Fixes: pmb issue 2039
Related: pma issue 2351, pma MR 5738
Follow up to MR 5562, which introduced category:librem5. Add the related
option, so CI actually enforces this category for the Librem 5.
[ci:skip-vercheck]: no need to rebuild for this
pmbootstrap used to exit with 0 if "pmbootstrap lint" failed. This was
the case in 2.3.x too, but I assumed this was a regression and fixed it
recently in pmbootstrap MR 2398.
It turns out that the CI code relied on this assumption, it captured the
output of "pmbootstrap lint", and only after it is done it checks if the
output wasn't empty and prints it in that case followed by exit 1.
Now that pmbootstrap actually exits with 1, CI already fails at
"common.run_pmbootstrap" and doesn't get to the part where it would be
printed.
I think "exit 1" on error is actually the right thing to do in
pmbootstrap, so I'll leave that in. Adjust CI to just run "pmbootstrap
lint", removing the additional output capture logic that isn't used
anywhere besides here. This also has the advantage that we get the
output "live", without buffering it completely first.
Qemu by default starts a GTK window in VGA resolution 640x480. The content
adapts to this resolution, thus X11 shows up in resolution 640x480 as well.
This resolution causes some handling issues. In Xfce4 the shutdown button of
the menu isn't reachable. Even worse in MATE, where the "Apply" button for
changing the resolution is out of the screen, making it difficult to change
the resolution.
The default resolution for X11 can be set by a config file. The Qemu GTK
window resolution remains independently at default 640x480. Setting the X11
resolution to default 800x600 mitigates the issue: Most of the screen content
becomes accessible while font size and button sizes are still large enough.
From this point the user can adjust the resolutions of the Qemu GTK window
and X11 content as desired.
[ci:skip-build]: already built successfully in CI
This adds the wlr and GTK portal backends so that apps using portals will work OOTB.
The GTK backend is added because the wlr backend does not provide some essential portals, e.g. for camera
[ci:skip-build]: already built successfully in CI
This reverts 622140965c, which basically broke installkenrel because
the kernel build system is hardcoded to look for installkernel in /
sbin/installkernel.
We'll have to move then once usr merge is complete and the symlink is
created for /sbin
[ci:skip-build]: already built successfully in CI
Some kconfig changes to reduce kernel size to avoid conflict of 0x8000
(kernel load address) + uncompressed kernel size (arch/arm/boot/Image) +
compressed kernel size (arch/arm/boot/zImage) being bigger than
0x1e00000 (tags address).
This causes mostly silent boot failures, with CONFIG_DEBUG_LL messages
such as "no ATAGS support: can't continue" or "Error: invalid dtb and
unrecognized/unsupported machine ID" can be seen on UART, though they're
not very clear that the kernel image is essentially too big for what lk
is setting up.
Manual kconfig changes:
* Convert some =y to =m to reduce kernel size, mostly NFS_FS and CIFS
since those are quite big and there's no point in having them
built-in.
* Disable EXT2_FS & EXT3_FS - handled by EXT4 driver
* Disable PCI - unused
[ci:skip-build]: already built successfully in CI
Update the bot email address, and don't enable the script for local CI
since it relies on protected GitLab CI variables. This could be fixed in
the future by safely handling these not being available.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
Per the flatpak manpage, repos can be configured OOTB by dropping config under /etc/flatpak/remotes.d. Using the install script requires doing stuff over the internet, which may not always work at image build time. By using the drop-in file, we avoid having to connect to flathub.
The manpage only mentions /etc/flatpak, and nothing about /usr ...
Quite a messy upgrade due to changes in both abuild and in the upstream
gcc APKBUILD breaking various things. Pmbootstrap also seems to
misbehave in GitLab CI making it difficult to validate.
Manual fixups:
* Set !tracedeps - changed behavior in abuild
* Manually add "so:" dependencies to avoid issues with !tracedeps set
(becomes obvious with crossdirect)
* Add back makedepends="$makedepends_build $makedepends_host"
* Disable move of some files into usr/lib to avoid
ERROR: gcc-aarch64-14.2.0-r4: trying to overwrite usr/lib/libgcc_s.so.1 owned by libgcc-14.2.0-r4.
[ci:skip-build] # pmbootstrap bugs will prohibit this from building
# anyways, don't even attempt
Co-developed-by: Luca Weiss <luca@lucaweiss.eu>
And re-enable riscv64 as the latest commits have added
support for riscv64.
Signed-off-by: Jens Reidel <adrian@travitia.xyz>
[ci:skip-build]: already built successfully in CI
Technically this option can be configured in the Gitlab UI, but I spent
about 3 hours debugging a CI failure caused by it being too low and
I don't want to risk forgetting this can happen later if/when someone
decides to lower it in the UI. By setting it here, we can have some
context/history about why.
This fixes the CI in !5688
Also see:
https://docs.gitlab.com/17.4/ee/user/project/repository/monorepos/index.html#shallow-cloning
[ci:skip-build]: already built successfully in CI
I was confused for a while about why the SHA printed by CI differed from
the actual upstream/master SHA:
commit upstream/master: f822b7ee0d06f05ff6d2eb37bcf4a1825569be692
real upstream/master: 822b7ee0d0
With the new changes in lk2nd that allow us to support extlinux.conf,
we can now generate image that would be generic to these devices.
[ci:skip-build]: already built successfully in CI
Include Qualcomm display subsystem and Adreno GPU driver, along
with panel driver into initramfs.
And mark devices as GPU accelerated to allow using all the UIs.
This release has several little but neat fixes not really worth
mentioning, but most notable features are:
* Xiaomi Mi PAD 4 and PLUS (clover) *both* now have proper panel
driver and full GPU support. On par with other our devices now.
Thanks to @kubntd for code and @barni2000 for testing !
* ath10k wlan no-msa-indication hack was dropped in favor of
solution that was accepted upstream.
* Adreno 5xx preemption fixes were also included.
This package is not buildable for riscv64 and ppc64le. Devices that use
megapixels should depend on it explicitly.
Signed-off-by: Jens Reidel <adrian@travitia.xyz>
Our regular initramfs imports eudev and its rules, so we need to make
sure that we update the initramfs if they change
[ci:skip-vercheck]: version bump not needed
[ci:skip-build]: already built successfully in CI
This also adds a PPP bypass, so that traffic can flow through the native
interface (rmnet0) directly, and not via the emulated PPP.
[ci:skip-build]: already built successfully in CI
The Makefile of swclock-offset was previously changed to install the scripts
according to the /usr merge. In the service files for openrc and systemd,
however, the paths to the scripts need to be adapted as well. Version 0.2.4
catches up on this.
[ci:skip-build]: already built successfully in CI
Manual kconfig changes:
* Switch DRM_MSM & panel driver back to =y, seems to improve display
issues a bit
Closes https://gitlab.com/postmarketOS/pmaports/-/issues/2969
[ci:skip-build]: already built successfully in CI
- now installs to /usr by default
- now installs systemd service files by default
- added -systemd subpkg to handle service files
[ci:skip-build]: already built successfully in CI
MR 5540 breaks the Enter key label in onboard OSK with LXQt and Mate. In
theory Droid can be used instead, but it actually does not work.
We can't use _pmb_recommends here since v24.06 -> v24.12 upgrade will
break onboard unless any package depends on font-dejavu.
Signed-off-by: Masanori Ogino <mogino@acm.org>
[ci:skip-build]: already built successfully in CI
With this change, the build test will only build changed aports when
they are in an enabled repo. It will also detect when a changed aport is
in extra-repos/systemd, and build it later with systemd support enabled.
[ci:skip-build]: already built successfully in CI
Nothing in Alpine or pmOS ships to /lib/udev any more since today and
including it while it doesn't exist breaks the building of images.
[ci:skip-build]: already built successfully in CI
- 0012-ARM-dts-allwinner-sun5i-a13-pocketbook-614-plus-Add-.patch
The dts added by this patch is now present in upstream, so this patch has
been removed. Note that the upstream dts has differences from the one that
this patch added.
- Set myself as primary maintainer since Jan has been inactive for
many months now.
[ci:skip-build]: already built successfully in CI
Loaded 100 of 1742 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.