This adds two new subpackages postmarketos-mkinitfs-modprobe-lts and
postmarketos-mkinitfs-modprobe-edge that include /sbin/modprobe in the
initfs when one of the Alpine kernels (linux-lts or linux-edge) are also
installed.
Fixes: #1294
[ci:skip-build] already built successfully in CI
- Update to Linux 5.15
- Upstreamed many more patches
- Major rework of CPU core boot: This is now partially handled in lk2nd
since mainline Linux does not want to support anything except PSCI on arm64.
- Major rework of "-modem" DTB variants. Now all device trees only contain
the full modem configuration. lk2nd can patch the DTB at runtime to get
the alternative "no-modem" variant where audio bypasses the modem entirely.
- Rename some Samsung device trees to drop variant suffixes (e.g. *lte/*wifi)
- Lots of other cleanup everywhere
- Probably many other things I forgot :)
Device changes:
- samsung-gtelwifiue: new device tree
- eMMC, SD card, USB, Buttons
- Display (no brightness control yet)
- Touchscreen
- gt58: touch keys and some touch fixes
- Note: Multi-touch seems broken at the moment :<
- samsung-a2015/samsung-serranove:
- Battery: Report voltage as uV
- Touch keys: Allow changing function from userspace
Kernel config changes:
- Enable required options for AppArmor and IWD
[ci:ignore-count]
[ci:skip-build]: already built successfully in CI
Without the explicit dependency to `polkit-elogind` the packages
`polkit` and `polkit-libs` are installed. This however prevents starting
`sway`. Below is the error message from the `tinydm` log:
```
00:00:00.028 [ERROR] [wlr] [libseat] [libseat/backend/logind.c:310] Could not activate session: Interactive authentication required.
00:00:00.028 [ERROR] [wlr] [libseat] [libseat/libseat.c:79] No backend was able to open a seat
00:00:00.028 [ERROR] [wlr] [backend/session/session.c:84] Unable to create seat: Function not implemented
00:00:00.028 [ERROR] [wlr] [backend/session/session.c:218] Failed to load session backend
00:00:00.028 [ERROR] [wlr] [backend/backend.c:353] Failed to start a DRM session
00:00:00.028 [ERROR] [sway/server.c:53] Unable to create backend
```
Signed-off-by: Paul Spooren <mail@aparcar.org>
Enable options required to run iwd instead of wpa_supplicant for the
aarch64 kernel config. Make it easier to test this, before we consider
switching to iwd as default (and enforcing kernel options in all devices
in main and community).
[ci:skip-build]: already built successfully in CI before disabling
CRYPTO_USER_API_ENABLE_OBSOLETE. I've built and verified the aarch64
version with this disabled locally, and I'm pretty sure that the armv7
version will build successfully too. So let's avoid the wait here.
Let every postmarketos-ui-* package have a link on top that points to
the new UI package reference. Do not put the link in <>, as it was done
with other references, since there's no benefit to it. It doesn't look
better and it doesn't make it easier to click the link or something, I
just did this initially because I saw it in GPL license headers.
[ci:skip-vercheck] [ci:ignore-count]
Enable CONFIG_RFKILL in the kernel configuration for Exynos4 devices.
This allows Gnome's Bluetooth panel to detect the Bluetooth controllers
present.
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
[ci:skip-build]: already built successfully in CI
Add two patches that fixes the Bluetooth node in the Device Tree of the
Galaxy S2 (i9100).
These two patches are not upstream yet, but were accepted by the
maintainer for inclusion in Linux 5.17.
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Let postmarketos-ui-phosh depend on modemmanager and
modemmanager-openrc, so we ensure both get installed before the
post-install script runs. The post-install script will not be able to
enable the modemmanager openrc service otherwise.
Related: issue 1297
Alpine patches busybox to support image alignment in [1].
So far we don't need to align the spalshes in postmarketOS as those are
generated per device. However with generic images it becomes impossible
to support multiple resolutions with this approach.
Set the alignment to "Center" in fbsplash config so generic system
images can reuse the splash on multiple resolutions.
[1] - https://gitlab.alpinelinux.org/alpine/aports/-/blob/master/main/busybox/0008-fbsplash-support-image-and-bar-alignment-and-positio.patch
[ci:skip-build] already built successfully in CI
Upgrade to 5.15.0, disable some unused I2C and SPI configs, and
remove msm8996 from linux-msm8996-$_tag, since $_tag already
includes msm8996 and makes the first one redundant.
[ci:skip-build] Already built on CI in MR
v5.14.15 kernel used (current newest stable).
Intended to be used also on msm8992 which has nearly the same DTS.
I haven't tested other functionality except boot to initramfs on
huawei-angler and lg-bullhead.
Some kernel config options set according to
linux-postmarketos-qcom-msm8996.
Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
[ci:skip-build] Already built on CI in MR
We should always install lk image as /boot/lk2nd.img, even for
image with appended DTB (lk2nd-appended-dtb.img). pmbootstrap tooling
will expect it this way, and also it keeps all subpackages consistent,
while also making them conflict with each other.
Add new subpackages that are explicitly named -appended, but still
install the same file.
Each device should "know" which kind of LK image it needs and should
explicitly depends on specific variant.
Having only one file `/boot/lk2nd.img` will simplify many things,
for example we don't have to introduce new deviceinfo properties
to specify which image is needed (like if we installed both of them).
Signed-off-by: Alexey Minnekhanov <alexeymin@postmarketos.org>
Support for custom "Loading..." splashes was added in MR 1776, but
`unlock_root_partition` function is still hardcoding default "Loading..."
splash. Fix this behaviour by replacing usage of `show_splash` function with
`show_splash_loading`, which accounts for presence of custom splash.
Closes#759
MyCroft is something definitely not everybody wants, and it could in
theory even make slower devices unusable while they would otherwise work
fine with Bigscreen. Let's move it to extras so it's optional to install
Last update for 5.14 kernel, next one will be 5.15
Kernel config cleanup:
* enable various USB peripherals support, per user requests:
* usb webcams [m]
* usb ethernet adapters [m]
* remove support for various TV tuners and DVB cards
* enable few filesystem drivers [m], like iso9660, exFAT, ntfs
* enable kernel automounter, to use with nfs (autofs, [m])
* disable CONFIG_ARM_CPUIDLE, which gets rid of annoying message
during boot:
/cpus/cpu@0: unsupported enable-method property: qcom,kpss-acc-v2
Cpuidle is handled by another driver, which is still enabled:
CONFIG_ARM_QCOM_SPM_CPUIDLE
[ci:skip-build] already built successfully in CI
firmware-qcom-msm8916-wcnss is a virtual package used for MSM8916
devices without secure boot (i.e. device that do not require signed
firmware). For those it's best to install more recent firmware by
default rather than using the firmware on the firmware partition.
firmware-qcom-msm8916-wcnss is provided by firmware-qcom-db410c-wcnss
by default, however it's still useful to make it possible to switch to
the stock firmware on the firmware partition if needed. To allow that,
add a dummy msm-firmware-loader-wcnss package that provides the virtual
package using the msm-firmware-loader.
# apk add msm-firmware-loader-wcnss
(1/2) Purging firmware-qcom-db410c-wcnss (1034.2.1-r2)
(2/2) Installing msm-firmware-loader-wcnss (1-r1)
* xts, libaes & aes are required for root partition FDE unlocking
* evdev is required by osk-sdl for input
[ci:skip-build] already built successfully in CI
This seems to fix the last missing piece to getting the hotspot stuff
working, at least when it's set up with networkmanager (I haven't tested
other methods, but assume this rule is still needed there too...)
fixes#1198
Installing postmarketos-base currently changes the file permissions
of /etc/sudoers:
# apk add sudo
# stat /etc/sudoers
Access: (0440/-r--r-----) Uid: ( 0/ root) Gid: ( 0/ root)
# apk add postmarketos-base
# stat /etc/sudoers
Access: (0044/----r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
The file mode 0044 decodes to:
- User *cannot* read
- Group can read
- Other can read
which does not make any sense. The "sudoers" man page makes it very
clear that this file should have a file mode of 0440 [1]
("readable by owner and group, writable by none").
This looks like a bad typo. However, given that only read permissions
were given out this shouldn't have major security implications
(except allowing all users to see who can use sudo).
Install the file with 0440 instead of 0044 to fix this:
# apk add postmarketos-base
# stat /etc/sudoers
Access: (0440/-r--r-----) Uid: ( 0/ root) Gid: ( 0/ root)
[1]: https://www.sudo.ws/man/1.9.8/sudoers.man.html#Error_log_entries