samsung-serranovelte runs Linux mainline (linux-postmarketos-qcom-msm8916)
with support for:
- Display
- Touchscreen
- Sound
- GPIO keys
- NFC
- Vibrator
- IMU (Accelerometer + Gyroscope)
- Battery
The primary limitation of samsung-serranovelte is that it can only run
ARMv7 (32-bit) binaries, even though its hardware (MSM8916) is 64-bit
capable. This is because it was never updated with 64-bit compatible
firmware (usually introduced together with the Android 5.0 update).
[ci:skip-vercheck]: only added new architectures
Unfortunately, early firmware versions on MSM8916 (used together with
Android 4.4) are not capable of booting aarch64 kernels. MSM8916 was
Qualcomm's first 64-bit capable CPU, and back when it was introduced
Android did not even support aarch64 yet. So the aarch64 capable
hardware was usually used together with armv7 binaries.
To make things worse, this firmware is also signed (usually per-device),
making it (currently) impossible to update it without help from the manufacturer.
This means that we are currently unable to run mainline on devices
that never received an update to Android 5.0
(e.g. the Samsung Galaxy S4 Mini Value Edition).
One way to circumvent this limitation is to build mainline for armv7.
This works surprisingly well with some additional fixes.
Devices with this firmware limitation are still unable to use aarch64
binaries, but at least we can run mainline on them!
- Rebase on Linux 5.5-rc3
- Add display, touchscreen and GPIO keys for samsung-gt510wifi
- Add vibrator for wileyfox-crackling
- Zinitix touchscreen improvements (used in samsung-a3ulte)
- Upstreamed several patches
The post-install depends on the -openrc files being present, and if the
dependency isn't explicitly specified then the device-* package may be
installed before the -openrc package, causing the post-install to fail.
MSM8916 has a single "modem" firmware for the audio DSP and modem.
In some early tests, the remote processor boots successfully at least
and the modem shows up in ofono. (Have not done further tests yet...)
However, audio stops working as soon as it is loaded
(because the audio DSP assumes control over the audio hardware).
For now let's just package it for all MSM8916 mainline devices
so it can be installed more easily. It is not used or installed
by default but it can be manually installed for testing.
At the moment, only "modem" is detected as rpmsg name.
On MSM8916 the audio DSP and modem are both on the same remote
processor ("hexagon").
Add it to the udev rule so the modem symlink is created on MSM8916.
This commit gets rid of our custom way of launching Plasma Mobile in
favor of using the upstream scripts. This is mostly in preparation for
the first commit after the one packaged here, as it'll move to a binary
launch script rather than using scripts.
Both sway and phosh require hardware acceleration (DRM) to work. Let's
activate that when we request one of them. Also don't let them fail
during startup on inputless setups (which is common on a raspberry pi).
Phosh is too slow to be unsable, but now, it'll at least be unusable out
of the box ;-)
Current default is performance, and that is for sure not a great choice
for battery. We can experiment with ondemand as well, but based on docs,
conservative is recommended.
[ci:skip-build]: build takes too long
Without this MR, elogind, and therefore weston will not start as it will
complain about cgroup mess:
[ 21.387150] elogind-daemon[1538]: Failed to determine whether /sys/fs/cgroup is a mount point: Symbolic link loop
[ 21.388341] elogind-daemon[1538]: Failed to mount cgroup at /sys/fs/cgroup/elogind: No such file or directory
Fix by applying this patch, thanks minlexx for pointing me to it! This
might possibly also be applicable to other kernel 3.4-based ports.
[ci:skip-build]: already built successfully in CI