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.
Since the v6.9 upgrade the kernel supports Type-C functionality for
Fairphone 4, but I forgot to enable the relevant kconfig options then.
Enable them now along with a bunch of options related to USB that come
in useful. Also prepare some options that will be used in the future
with DisplayPort over USB-C (e.g. SBU mux).
[ci:skip-build]: already built successfully in CI
... and install the firmware package using _pmb_recommends instead.
Applied to both downstream and mainline ports.
[ci:skip-build]: already built successfully in CI
With the latest kernel bump the config was updated based on the output
of:
make ARCH="$_carch" CC="${CC:-gcc}" defconfig KBUILD_DEFCONFIG=librem5_defconfig
but there are other changes that pop up when running
pmbootstrap kconfig edit linux-purism-librem5
This commit updates the config so that future config empty edits don't
generate any changes.
This is still pretty in sync with the Purism config, besides passing the
`kconfig check` and disablling SELinux as that causes boot failures.
Signed-off-by: Alistair Francis <alistair@alistair23.me>
[ci:skip-build]: already built successfully in CI
Updated to latest collabora cros kernel. Fixes audio on mt8192 devices
and fixes display issues on all devices using this kernel.
[ci:skip-build]: already built successfully in CI
Move the kernel config options from the pmbootstrap code to pmaports, so
it can be changed per branch, and it can be changed at the same time as
we actually make the changes to the kernel configs.
Replace previous code that used internal pmbootstrap code with running
pmbootstrap directly. pmbootstrap doesn't really have a stable API yet,
so calling the internal code is always a bit fragile and now that we
have reworked a lot of its code, this is all broken.
The trade-off is that it is now slower and the output isn't as pretty,
but we can finally use kconfigcheck.toml from the pmaports branch. So it
is worth it!
Add the required dependencies and config for both hexagonrpcd and
libssc so that sensors start working.
[ci:skip-build]: already built successfully in CI
Add the required dependencies and config for both hexagonrpcd and
libssc so that sensors start working.
[ci:skip-build]: already built successfully in CI
The device already loads plenty of nonfree-firmware into the
co-processors during the bootloader stages, and also once booted in
Linux won't really be useful without everything.
Additionally I doubt anyone tests that case, so just require nonfree
firmware unconditionally to simplify maintenance.
This gets Bluetooth working for the Sparklan card.
btattach doesn't work on the Librem5 at the moment (see [1]) so even
though it's deprecated let's use hciattach to get things working.
1: https://source.puri.sm/Librem5/librem5-base/-/issues/76
Signed-off-by: Alistair Francis <alistair@alistair23.me>
[ci:skip-build] already built successfully in CI
I made an oversight in pmaports!5295 which caused the post-install
script to try enabling the sd8x-wlan service even if the downstream
subpackage isn't installed. This causes errors when creating a new
mainline rootfs, so fix it by moving the install variable declaration to
the subpackage function.
Patches were rebased, sadly nothing was dropped :(
All kconfig changes are from simply running `kconfig migrate` and
accepting all defaults when prompted
[ci:skip-build]: already built successfully in CI
Resolves this harmless, but annoying error on mainline:
* Enabling wlan driver ...
/lib/rc/sh/openrc-run.sh: line 14: can't create /sys/devices/platform/sd8x-rfkill/pwr_ctrl: nonexistent directory
* ERROR: sd8x-wlan failed to start
[ci:skip-build]: already built successfully in CI
This also increases the (necessarily) hardcoded initrd end by 16MiB in
the DTS, which is necessary to make the phone boot with the new
initramfs (and in general any initramfs which exceeds 2624KiB).