Right now we have multiple variants of A5 that are only different in
secure-boot keys and as such different firmware blobs.
Use msm-firmware-loader to support all A5 variants with a single device
port. Because of that, drop lte suffix as there are 3g variants as well.
Right now we have multiple variants of A3 that are only different in
secure-boot keys and as such different firmware blobs.
Use msm-firmware-loader to support all A3 variants with a single device
port. Because of that, drop lte suffix as there are 3g variants as well.
Add pmb:cross-native/!tracedeps to applicable firmware packages and
secure both with a test.
This sets the pmb:cross-native and !tracedeps options on all firmware-*
packages that are compatible with the native compilation method. A unit
test ensures the presence of both options while maintaining a list of
exempted packages.
Fixes: #718
[ci:ignore-count] [ci:skip-vercheck] [ci:skip-build]
Starting with Linux 5.14, the modem can be controlled through the new
WWAN subsystem in Linux with the WWAN RPMSG CTRL driver. This is also
supported in ModemManager 1.18 and the pmOS fork of oFono.
Drop the udev rules for the previous approach through the RPMSG chardev
since this causes the modem to be detected twice by ModemManager and oFono.
Console UI can be used now instead of None UI.
Console UI is necessary to have access to the device over SSH
as no display can be used.
[ci:skip-build] already built successfully in CI
This devices runs a close-to mainline kernel as linux-odroid-hc2.
I have 2 of these devices which power my selfhosted infrastructure
for some time now and they work really well! Running my selfhosted
infrastructure on Alpine stable releases would be great.
with 5.14, there's some change to the path that alsa searches for ucm2
for this device. the install path for PineTab.conf is changed, and it
references "full" path to HiFi and VoiceCall profiles (which I kept in
`PineTab` dir, so that there could be several configs for the same
driver later on, if necessary/desired)
[ci:skip-build] already built successfully in CI
Contains venus firmware for hw accelerated video encoding and decoding.
Also, ipa firmware is moved to beryllium folder as mbn format instead of
mdt+bXX files.
The list of files in firmware.files is now file type-wise alphabetically
sorted. Just for better readability.
Fix the feedbackd rule as the haptics modules has been renamed.
Although SDM845 doesn't really suspend well, MM needs suspend
and resume support when the device attempts to suspend. Without
which MM will crash and wont resume properly when a suspend
action is triggered.
Depend on msm-modem-uim-selection to configure to modem for modemmanager
This device runs on linux-postmarketos-rockchip which at the moment of
writing is 5.13.0 with (only) 6 patches applied, so close-to mainline.
I personally use 2 of these devices with postmarketOS installed daily as
my homeserver setup and it has worked really well. It's also a good
target to run Plasma Bigscreen on as a TV setupbox
Now that CPU scaling is enabled, there is no need to disable the big cluster,
which was hurting performance before by staying at 19.2 MHz. Remove maxcpus=2
from the command line arguments.
[ci:skip-build] Already built successfully on CI
The update to Linux v5.13.1 also includes updating the haptics driver
to the latest one posted to the mailing lists, which was renamed to
qcom-spmi-haptics. Rename the udev rule for this driver and update the
driver name in it.
[ci:skip-build] already built successfully in CI
[ci:ignore-count]
[ci:skip-vercheck] needed for the postmarketos-ui-* packages in this
series
[ci:skip-build] already built ui-* packages in CI, and device pacakges
are just trivial deviceinfo change (manually built some just to verify)
Some msm8916 devices, primarily with two sim slots, require slot
to be selected. Install uim-selection script for all msm8916 devices
with modem enabled.
[ci:skip-build] already built successfully in CI
I sometimes test DB410c via mainline U-Boot, which wants to have the
DTB in the "second" part of the Android boot image. Otherwise it works
fine. Include it there additionally to simplify this.
[ci:skip-build] already built successfully in CI
Having RMTFS at runlevel boot makes it start the modem too fast and causes
crashes. Move it to runlevel default with a post-install.
[ci:skip-build] already built successfully in CI
My engineering prototype 1 Gb pinetab is close to unusable,
so I can't use it to test pmOS. Also, PINE64 is no longer
selling these devices, and the ones that were sent previously
to some developers use different display panel anyway.
Martijn Braam and Dylan Van Assche agreed to maintain it.
[skip ci]
- Add SLPI to nonfree_firmware description
- Add touchscreen and fuel gauge modules to the initramfs in preparation for
osk-sdl and charging-sdl (or any new alternative) support
- Add pointercal file for osk-sdl
[ci:skip-vercheck]
Set package dependency "swclock-offset" to "soc-qcom-msm8916" and
"soc-qcom-sdm845".
These SoC's have a read-only real-time clock (RTC). The package
"swclock-offset" keeps an offset between the RTC and the system time.
Add the missing depends to add the GPU firmware to the initramfs
so that osk-sdl works properly, as well as the haptics driver.
Also make all logs go to UART, this will clean up the splash screen and
let developers with UART access debug the boot process.
[ci:skip-build] This MR was already built on CI
Add the missing depends for our soc package alsa ucm configs. Also add
the missing depends to add the GPU firmware to the initramfs so that
osk-sdl works properly!
Also enable logs and point them to UART, this will clean up the splash
screen and let any developers with UART attached to debug the boot
process.
The PMIC AXP803 sends an interrupt to the A64 CPU when the
battery is critical low. This wakes up the tablet at ~10%
battery level, but UPower wasn't configured to add upon
this interrupt as the action level was way lower.
Therefore, the PMIC performed a hard shutdown when the
battery level dropped further, which may cause data loss.
uboot-tools is provided by u-boot-tools but sometimes apk still gets
confused. This change prevents errors such as
pine64-pinephone:~$ sudo apk upgrade --verbose
WARNING: Failed to perform initial self-upgrade, continuing with full upgrade.
ERROR: unable to select packages:
uboot-tools (virtual):
provided by: u-boot-tools
required by: device-pine64-pinephone-0.25-r1[uboot-tools]
[ci:ignore-count]
[ci:skip-build]: already built in CI successfully
As of MR 2039, the kernel modules are now stripped (INSTALL_MOD_STRIP=1).
It turns out that this massively reduces their size so that including
the panel + touchscreen modules in the initfs still fits into the
partition. This allows the splash screen and osk-sdl to work correctly.
As of MR 2039, the kernel modules are now stripped (INSTALL_MOD_STRIP=1).
It turns out that this massively reduces their size so that including
the panel + touchscreen modules in the initfs still fits into the
partition. This allows the splash screen and osk-sdl to work correctly.
As of MR 2039, the kernel modules are now stripped (INSTALL_MOD_STRIP=1).
It turns out that this massively reduces their size so that including
the panel + touchscreen modules in the initfs still fits into the
partition. This allows the splash screen and osk-sdl to work correctly.
As of MR 2039, the kernel modules are now stripped (INSTALL_MOD_STRIP=1).
It turns out that this massively reduces their size so that including
the panel + touchscreen modules in the initfs still fits into the boot
partition. This allows the splash screen and osk-sdl to work correctly.
Make needed deviceinfo changes to support osk-sdl, add "quiet" to the
cmdline and bump the package version to 1.
Signed-off-by: Caleb Connolly <caleb@connolly.tech>
[ci:skip-vercheck]
Make needed deviceinfo changes to support osk-sdl, add "quiet" to the
cmdline and bump the package version to 1.
Signed-off-by: Caleb Connolly <caleb@connolly.tech>
Add a subpackage to ensure that GPU firmware is included in initramfs so
that osk-sdl can work.
[ci:skip-vercheck]
Signed-off-by: Caleb Connolly <caleb@connolly.tech>
Resize the partition when using a pre-built image. We didn't notice that
this was missing, because N900 images are new and we only tested from
pmbootstrap install --sdcard, which already uses the full SD card size.
This allows loading nonfree fw from rootfs (/lib/firmware), to work
around: https://source.puri.sm/Librem5/linux-next/-/issues/290
This change will break wifi unless the nonfree
firmware-siliconlabs-rs9116 package is installed.
Actually the display in asus-me176c has a width of 800px, which means
that the splash screen isn't perfectly centered. Correct this in
deviceinfo to make it show up correctly.
Also, add configuration file for Phosh to reduce scaling a bit to 1.75.
It's kind of subjective but scaling = 2 definitely feels too large.
[ci:skip-build]: already built successfully in CI
There's a race condition between when the pwmled device is initialized,
which kicks off a feedbackd udev rule that configures the led trigger to
'pattern', and when ledtrig_pattern actually loads. It seems to mostly
load after the rule runs, so the trigger is never set to 'pattern' on
boot.
This removes the race by building the ledtrig_pattern driver into the
kernel.
[ci:skip-build] Already build successfully in CI
This patch fixes a fairly severe performance regression with wifi on the
L5 (something like 20x improvement in performance with this patch)
[ci:skip-build] Already build successfully in CI
Ship mode via the mechanism used by purism doesn't work; it's either not
possible or outside my understanding to run an openrc runscript with a
busybox init on *poweroff* and *not reboot*, which is what is required
for this to work properly..
This module param requires a corresponding kernel patch to enable ship
mode support in the bq25890-charger module
Upstream change logs:
5.11.2:
fdc91c4e20
5.11.4:
a178aa515c
This also adds a -dev subpackage, and cleans up makedepends
[ci:skip-build]: already built successfully in CI
This includes a new librem5-base config release, the most notable change
being some mic echo cancellation changes in pulseaudio config.
Upstream changelog:
351958ffc0
Note: I did not include the upstream change to disable wifi PM. I don't
find the performance to be so bad that it's worth giving up some battery
efficiency for.
Note: the librem5-base thing from purism has a new naming/versioning
format, which is in line with some of their other projects, so the
APKBUILD has been updated to support that too
This adds a new subpackage that installs dependencies and configures the
smartcard reader on the librem 5. Some setup is required before this
will work (e.g. upgrading reader firmware), the L5 wiki page will have
this information.
The pcsc init script was forked into this package to allow for powering
on the reader *before* the service started. Doing this in a separate
init script would have caused the reader to power on regardless of
whether the pcsc service was set to start, which is not desirable since
it should *only* be powered on when pcsc is starting
Purism has changed the kernel name they used, so that's reflected in the
apkbuild.
This kernel includes patches for renaming the audio device, and requires
a corresponding upgrade to the device package to bring in the new ucm2
config changes for that.
There is already samsung-a3ulte in community, and the devices actually
share the same kernel, device tree, and basically everything except
firmware. We just need separate firmware packages because Samsung uses
different secure boot certificates on a3lte and a3ulte.
They also share the same wiki page which suggests installation using
the pre-built images now, so having pre-built images only for
samsung-a3ulte is quite confusing for users.
The situation is similar as for samsung-a5ulte and samsung-a5lte
which also are both in community already.
According to Purism, the imx8mq-librem5.dtb alias is going away soon,
and we should be using the -r2 dtb. The -r2 dtb (which represents
Birch/Chestnut L5 variants) is most compatible, it'll boot on later
variants. dtbs for later L5 devices won't work on older devices.
- Upgrade librem5-base to v33
- Include the haptic vibration driver in initfs for supporting osk-sdl's
haptic feedback feature
- remove gps udev rule in pmaports in favor of using rule from
librem5-base
- install modem audio udev rule from librem5-base
- add openrc service for putting device into 'ship mode' on shutdown
(prevents battery from slowly draining)
- include Evergreen/r4 dtb in /boot
- Fix audio with port of ucm config to ucm2 (patch submitted upstream
here: https://source.puri.sm/Librem5/librem5-base/-/merge_requests/214)
The modprobe.conf is not necessary on those devices because they already
load the panel module using deviceinfo_modules_initfs. Let's skip the
modprobe.conf in that case so we don't need to add all panels in two places.
Upstream changelog:
868f3eb852
Suspend is also disabled in the kconfig, since it is not
supported/working on this device
[ci:skip-build]: already built successfully in CI
After pulseaudio 14.0 was released, audio on the pinephone was broken.
This applies the relevant config from here to fix it:
c23f92aa46
[ci:skip-build]: already built successfully in CI
New upstream ALSA/PulseAudio release, new UCM regressions - of course!
Introduce some new hacks to make the ALSA UCM configurations work again.
This fixes weird "Combination of Speaker,Primary Microphone" outputs
appearing in the PulseAudio mixer.
And while we're at it, some minor improvements/additions:
- Default to Speaker/PrimaryMic instead of Headphones/Headset
I believe this is just a workaround until headphones detection
works properly.
- Add UCM configurations for oppo-a51f and lenovo-a6010
Upstream keeps making breaking changes in patch releases.
Let's fork alsa-ucm-conf entirely for now instead of just patching
in some files to ensure that these files don't break every few months.
This fixes audio on MSM8916 devices when not using the modem.
This subpackage was removed when a proper fix for suspend was merged,
however apk doesn't know to purge this subpackage, so the old elogind
hook workaround stuck around. This workaround could probably be removed
once we're sure all folks on edge have installed this upgraded package
with the 'provides'...
- re-enable console suspend, which seems to be broken with elogind when
suspending (kernel gets hung up indefinitely in vt_waitactive)
- add a suspend hook to work around the musb driver not allowing the
device to suspend
Based on my testing, this option seems to prevent suspending via
elogind (using `loginctl suspend`). When console suspend is disabled,
the kernel gets hung up in the call to vt_waitactive, and elogind times
out trying to suspend.
This new version:
- Upgrades device config from upstream to v25
- Fixes a problem using modesetting driver on Xorg (lightdm
was broken because it now uses Xorg)
- Override GDK to use GLES (change from upstream Purism)
Actually the display has been working in initramfs since MR 1261
(device-bq-paella: enable display and touchscreen on boot).
We should make it explicit in deviceinfo.
This Patch is needed, because in the kernel the audio from the cpu to the headset gets turned around. We need to turn this around again.
Please revert this if there is a fixed kernel.
This adds a Finnish/Swedish key map for the Nokia n900.
The same keymap is used for Finnish and Swedish.
This makes the keyboard work in the console. To fix the
XkbLayout other changes are needed to pmbootstrap.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>