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