Commit 7030e08e7b ("postmarketos-initramfs: check for root subpartition
(MR 5048)") changed the partition check in mount_subpartitions to look for
the root partition instead of the boot partition, in order to mount
subpartitions even if the pmOS_boot partition was already found.
Unfortunately, this causes regressions for the opposite case: If we find a
root partition, but the boot partition exists only as a subpartition then
mount_subpartitions will return early, without actually making the boot
partition accessible.
This is easy to trigger if you have a different Linux distribution with an
encrypted crypto_LUKS volume installed and then flash pmOS subpartitions to
a single partition. find_root_partition() will return the crypto_LUKS
partition (without checking if it belongs to pmOS) and the boot partition
is not found.
Fix both use cases by checking for root *and* boot partition. If any of
them is not found, we try to mount the subpartitions.
As explained in the commit message, this takes too much time. We
should probably just hope on BTRFS doing CopyOnWrite correctly.
Partially reverts: 59fd336bbc (MR 5238)
Droid fonts provide a wide range of glyphs while its footprint is almost
the same as the current DejaVu fonts with a subset of Noto fonts. Thus,
this commit will improve the coverage of languages that can be displayed
by the pre-built postmarketOS images without increacing the size.
Advanced users can install their favorite fonts using apk and uninstall
Droid fonts if they wish.
Likewise, Twemoji font currently covers Unicode 14.0 and its footprint
is smaller than Noto Emoji font. Removing Noto Emoji font from default
installation reduces the size of images yet the most of emojis are still
visible. Users who prefer Noto Emoji font or need very latest emojis can
install Noto Emoji font manually.
Signed-off-by: Masanori Ogino <mogino@acm.org>
[ci:skip-build]: already built successfully in CI
From https://www.man7.org/linux/man-pages/man5/os-release.5.html:
/usr/lib/os-release is the recommended place to store OS release
information as of vendor trees. /etc/os-release should be a
relative symlink to /usr/lib/os-release, to provide
compatibility with applications only looking at /etc/. A
relative symlink instead of an symlink is necessary to avoid
breaking the link in a chroot initrd environment such as dracut.
[ci:skip-build]: already built successfully in CI
This package provides GNU Make 3.81 instead of 4.x. It helps to build
old BSP kernels that depends on old make's behavior.
Co-authored-by: Oliver Smith <ollieparanoid@postmarketos.org>
Signed-off-by: Masanori Ogino <mogino@acm.org>
[ci:skip-build]: already built successfully in CI
Commit 284844fae1967bdd7b7d7a139ace90ffe3359f78 in aports moved kmod
from /sbin to /usr/bin. We want to make sure we keep using modprobe
from not busybox!
Relates #3136
This means the main package is now empty, but this is fine. In the
future we'll need to add a -systemd subpackage that installs the unit
file + install scripts for implementing what this thing does on systemd.
This fixes loading the regulatory database from wireless-regdb when
cfg80211 is compiled into the kernel:
cfg80211: Loading compiled-in X.509 certificates for regulatory database
Without this in the initramfs, the regulatory db fails to load the
cfg80211 is builtin and the kernel may default to using the 'global'
domain. This can cause issues in some countries.
The db + sig files are together about 5KB uncompressed, so this should
have negligible impact on the initramfs size.
[ci:skip-build]: already built successfully in CI
The pipewire audio workaround script uses `pw-loopback` command provided
by `pipewire-tools` package.
`pipewire-tools` was not pulled in ass dependency neither from
`soc-qcom-sdm845` nor from `postmarketos-base-ui-audio-pipewire`.
Fixes call audio issues reported in pmaports#3091, tested on a fresh
pmOS edge (16/08/2024) + phosh + pipewire installation.
[ci:skip-build]: already built successfully in CI
Without this patch, the GNOME Shell on Mobile specific fork of
gnome-settings-daemon gets installed with Phosh, which leads to the bug
that the screen does not turn on when resuming from suspend in Phosh.
Looks like this was figured out today at FrOSCon in the bring your
problems session, thanks to all involved!
Fix: issue 3062
[ci:skip-build]: already built successfully in CI
Was looking by chance at the build status page and noticed images
failing for sway.
The cause is a typo introduced (missing "n") in the depends for
`networkmanager-openrc` with a22d0b0e03.
Signed-off-by: Robert Eckelmann <longnoserob@postmarketos.org>
[ci:skip-build]: already built successfully in CI
Fix the missing postmarketos-ui-sway-logo-key-alt subpackage. This was
caused by having two subpackages variables.
Fixes: 244847 ("main/postmarketos-ui-sway: add -openrc subpackage (MR 5374)")
[ci:skip-build]: already built successfully in CI
Don't depend on fbp-openrc, as this package does not exist.
Fixes: 250b96f ("main/postmarketos-ui-framebufferphone: add -openrc subpackage (MR 5374)")
[ci:skip-build] already built successfully in CI
Looks like the dependencies on seatd-dev and wroomd-dev have been added
by mistake, these packages do not exist. Instead move seatd-openrc and
wroomd-openrc to the openrc subpackage.
Fixes: 7a5970f6 (" main/postmarketos-ui-bananui: add -openrc subpackage (MR 5374)")
This won't be loaded automatically, so let's modprobe it.
Additionally, make myself maintainer to reflect CODEOWNERS
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
[ci:skip-build] already built successfully in CI
Add postmarketos-base-ui-wayland
Move _pmb_recommends to x11 and wayland subpackages
[ci:skip-build] Was built before
Co-authored-by: jane400 <5940129-jane400@users.noreply.gitlab.com>
This provides a daemon that implements the same D-Bus API as callaudiod
in aports community/callaudiod, but works with the new audio profiles
generated by PulseAudio v17 and PipeWire v1.2 for pine64-pinephone
that the aports package's daemon does not.
This daemon is specific to the pine64-pinephone since it has
a hard-coded list of profiles and ALSA devices. If other devices also happen
to have UCM settings that trigger PulseAudio / PipeWire to generate
the combinatorial audio profiles that callaudiod cannot handle, and if
a callaudiod fix / alternative does not appear, then the maintainer (me) is
open to making this daemon more broadly useful for other devices, say by
having the hard-coded strings in device-specific config files.
Ref: #2968
The package name is wrong now (!5315), and the service stuff is
automatically installed by systemd-service
[ci:skip-build]: already built successfully in CI
Fixes:
- ignore leading/trailing whitespace in files (MR 55)
- fix spelling typo in manpage
- add missing /usr/sbin symlinks for UsrMerge (MR 53)
[ci:skip-build]: already built successfully in CI
This moves the responsibility to auto-repair filesystems to the
initramfs. (I think we don't do this at all right now).
We don't try to mount broken partitions at all, we tell the user
that the system is broken and fail_to_boot.
The flow is now:
1. mount the boot partition (read-only) for initramfs-extra
2. initramfs-extra is extracted (with the needed fsck executables)
3. fsck the root partition
4. mount root partition (read-write)
5. fsck the boot partition
6. mount the boot partition (read-write)
This helps with the systemd bringup, as we want to make use of
systemd-firstboot, which sets /etc and enabled services up. As
this service is responsible of setting up /etc, it is run before
/etc/fstab is read and before / is remounted read-write.
This wasn't actually getting run on boot because After=graphical.target
created an ordering issue and systemd was disabling it.
I saw this ordering issue in the journal after finding that pbsplash was
still running in the background after the UI loaded, and confirmed it by
running systemd-analyze.
The referenced commit had surfaced a bug with the unlocking code, which
would attempt to change the output of find_root_partition while the
cached PMOS_ROOT is stale and active. Clear this variable to force
find_root_partition to find the new rootfs value.
Fixes: 7030e08e7b ("postmarketos-initramfs: check for root subpartition (MR 5048)")
[ci:skip-build]: already built successfully in CI
Drop the console-shell hook in favour of stuffing buffyboard into the
initramfs. This makes it possible to get a debug shell directly on the
device without needing to use a computer.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
[ci:skip-build]: already built successfully in CI
Rework the messages and avoid re-spawning the splash on every check.
Additionally, add a call to check_keys, this lets users drop to a debug
shell or export logs to triage this failure (particularly useful for
hard-to-reproduce issues).
Finally, add a (liberal) 30 second timeout and dump logs at the end. If
we're just waiting for a device to show up and it doesn't after 30
seconds then it's probably never going to...
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
In mount_subpartition we currently try to look for the boot partition,
to see if we're done (either we aren't using subpartitions or we found
the right one). However it is possible that a device might have
originally used the subpartition scheme, but was later converted to have
a real boot partition (for EFI for example).
In this scenario, the boot partition would be found immediately, but the
root subpartition would not be.
Address this by making mount_subpartition check for success by calling
find_root_partition instead of find_boot_partition. For most
installations this has no impact.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
Install a kill-pbsplash systemd service which is configured to be
started as part of the graphical-session user target. Additionally
install an override so that if the display-manager service (aliases to
gdm, sddm, etc) fails to start it will still kill pbsplash.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
Co-authored-by: Clayton Craft <clayton@craftyguy.net>
Currently, dtbtool-sprd has an argument -p which accepts the path to the
dtc binary. When it's not provided, it should use the dtc binary installed
in the system as a fallback. However, that's not the case. The following
error is reported:
Found file: test.dtb ... skip, failed to scan for 'sprd,sc-id = <' tag
...even though test.dtb has the `sprd,sc-id` property.
In order to mitigate such issues, install dtc as a dependency of the
package.
This cmdline argument is now a no-op. Drop it everywhere and add a new
CI check to enforce this.
Adjust the deprecated "minimal" initramfs variant to use
pmos.debug-shell to enable logging instead. It doesn't /support/
dropping to a shell, so the variable takes on a different meaning. But
that's ok since it's at least more consistent.
[ci:ignore-count]
[ci:skip-vercheck]
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
Tweaked-by: Oliver Smith <ollieparanoid@postmarketos.org>
[ci:skip-build]: kernel builds are very likely to go through now
This updates the minimal initramfs to be at the same version that
postmarketos-initramfs was when it was split off. This should have been
done as a part of !5000.
The changelog from git:
- main/postmarketos-initramfs: fix stowaway (MR 5206)
- main/msm-fb-refresher: move cleanup from initramfs into msm-fb-refresher (MR 5191)
- main/postmarketos-mkinitfs-hook-debug-shell: Cleanup debug-shell telnet server (MR 5191)
- main/postmarketos-initramfs: Allow packages to define cleanup hooks (MR 5191)
- main/postmarketos-initramfs: update comment on why we mount /boot (MR 5089)
- main/postmarketos-initramfs: add options for charset to mount vfat /boot (MR 5089)
- main/postmarketos-initramfs: add some sane mount options to /boot (MR 5089)
- main/postmarketos-initramfs: stowaway rootfs (MR 4386)
- main/postmarketos-initramfs: add crc32_generic module for F2FS (MR 4973)
- main/postmarketos-initramfs: add USB booting support (MR 4947)
- main/postmarketos-initramfs: fix starting unudhcpd when no UDC configured (MR 4907)
- postmarketos-initramfs: bigger log image size (MR 4880)
- main/postmarketos-initramfs: allow redirect logs to pmsg device (MR 4800)