-Removed 0013-media-ov5640-Update-last-busy-timestamp-to-reset-aut.patch:
Fix should now be incorporated in 6.3 kernel.
[ci:skip-build]: Already built successfully in CI
Make it easier to look up the librem5-base version that was used in the
device-purism-librem5 package, e.g. for writing service pack release
notes:
> Purism Librem 5 Phone (librem5-base: 58pureos1)
[ci:skip-build]: already built successfully in CI
Update from librem5-bae 56 to 58, which includes the following changes
from Purism
* default: gadget: Use CDC-NCM instead of CDC-ECM
* defaults: Add an initramfs script to reencrypt LUKS rootfs
* defaults: librem5-pm: Add rules for EM7565 and SIM7912G
* defaults: pulse: Reduce fragment size to 22 ms
* defaults: Switch USB PM timeouts back to 2s for devices and 0 for hub
* defaults: Enable WiFi powersave with brcmfmac driver
* defaults: usb_gadget: Run service as a dependency of UDC device unit
* defaults: usb_gadget: Set Before= relation to network.target
* defaults: librem5-pm: Enable NO_SUSPEND quirk and adjust PM properties
* d/control: Bump Librem 5 kernel dependency to 6.1.19pureos1
Note, that this update doesn't fix the modem disapearing modem during
suspend. So we keep the current workarounds we have.
Signed-off-by: Alistair Francis <alistair@alistair23.me>
[ci:skip-build] already built successfully in CI
Enable options required for the Android 11 image inside waydroid:
* CONFIG_BPF_SYSCALL
* CONFIG_CGROUP_BPF
* CONFIG_PSI (already set for this kernel)
* not CONFIG_PSI_DEFAULT_DISABLED (already set for this kernel)
The same will be done for all devices in main and community in the
following patches. Also add V=1 for all kernels I'm modifying that are
below 6.2 (see issue 1990).
Kernel configuration addition:
Just like on the PinePhone Pro I enabled the newly added Lazy RCU scheduler.
RCU_LAZY can help battery-powered systems like the PinePhone Pro in a few ways:
1. Reduced CPU usage: Because RCU_LAZY allows readers to access shared data structures without acquiring locks or other synchronization primitives,
it reduces the amount of CPU time that is required to manage synchronization. This can be particularly beneficial in battery-powered systems,
where reducing CPU usage can extend battery life.
2. Reduced memory usage: RCU_LAZY delays the creation of multiple versions of the shared data structure until they are actually needed.
This reduces the amount of memory that is required to store these versions.
In battery-powered systems, where memory usage can be a critical resource, this can help to conserve power.
3. Reduced synchronization overhead: RCU_LAZY reduces the overhead of synchronization by delaying the creation of multiple versions of the shared data structure.
This can reduce the amount of time that is spent acquiring and releasing locks or other synchronization primitives,
which can help to conserve power in battery-powered systems.
Signed-off-by: Jan Jasper de Kroon <jajadekroon@gmail.com>
[ci:skip-build] already built successfully in CI
According to Purism, PM on the Sparklan WiFi module works now with
recent kernels, the upstream bug referenced earlier (see diff) was
closed.
Note that this has no effect on the Redpine WiFi module, which is the
default module shipped with the L5.
[ci:skip-build] already built successfully in CI
Includes changes that might improve modem stability (with resetting,
that is...), and some ucm tweaks.
Changelog from upstream:
1b154d9316/debian/changelog
[ci:skip-build] already built successfully in CI
Installing wys and anything else on all gnome-related UIs is better than
just having a special case for phosh. Phosh should pull in
pmos-base-ui-gnome.
According to
https://source.puri.sm/Librem5/linux/-/issues/303#note_160864 enabling
the modem power management results in a unreliable modem, but more power
savings.
With power management on the modem can disconnect at any time,
including during calls. This makes the Librem 5 a very bad phone.
Instead let's ensure it works as a phone with a semi-reliable modem
(there is still the sleep/resume issue
https://source.puri.sm/Librem5/linux/-/issues/423) at the cost of
battery life.
As the Librem5's battery life is already poor, a little bit worse
isn't much different. Either way you need an external battery pack.
Signed-off-by: Alistair Francis <alistair@alistair23.me>
[ci:skip-build] already built successfully in CI
I unset CONFIG_ARM64_PTR_AUTH_KERNEL because the i.MX 8 CPU in the
Librem 5 doesn't support features from ARMv8.1-A and above anyway.
Same rationale applies to CONFIG_ARM64_TLB_RANGE being unset.
This enables the DRAM frequency stats driver that can be useful for debugging
issues with the PinePhone. This came up in a discussion in #pinephone on IRC
where megi was helping a pmos user with idle power draw issues.
This also enables the performance, powersave and userspace devfreq governors.
Ref: 8bfd4858b4
[ci:skip-build]: already built successfully in CI
This gets rid of the Tux army on bootup. While it hurts my soul,
removing Tux from bootup makes it less flickery.
[ci:skip-build]: already built successfully in CI
Also added: 0013-media-ov5640-Update-last-busy-timestamp-to-reset-aut.patch
This solves bug of taking greenish pictures with Megapixels, due to
sensor being shutdown to early after taking a picture.
[ci:skip-build]: already built successfully in CI
Protect script when ram_freq is not set
Safely load PSCI DTO to enable CPUidle driver: psci_idle
The PSCI DTO shall only be applied if TF-A & Crust
support CPU idle states [0]. Otherwise the CPU usage
will be at 100%. This will not be visible in top,
lead to overheating and battery drain.
Worst case scenario would lead to a fried chip if
the CPU thermal_zone does not work or is not enabled
in DTS.
[0] https://gitlab.com/postmarketOS/pmaports/-/issues/1901#note_1238456920
I have enough other devices to care about, and honestly haven't touched
my PinePhone in a while. Remove myself as Co-Maintainer from all
relevant packages.
[ci:skip-vercheck]: No rebuild necessary
[ci:skip-build]: Doesn't change resulting packages
This wifi module doesn't ship with the L5, but I have one because it's
generally more stable than the redpine thing that does ship with the
L5... however there's a known problem with having PM enabled on it.
This adds a NM config option, that matches specifically on this
device/driver, to disable wifi. PM for the redpine should not be
affected by this config change.
[ci:skip-build] already built successfully in CI
Backport the Purism patch from https://source.puri.sm/Librem5/linux/-/merge_requests/640
"With this patch, older revisions (2.0) should be able to switch between
166MHz and 800MHz as opposed to being stuck to 800MHz all the time, since
that was the only supported frequency in the OPP table."
Signed-off-by: Alistair Francis <alistair@alistair23.me>
[ci:skip-build] already built successfully in CI
Schedutil is a CPU scheduler that is designed to be more efficient than other schedulers, such as the conservative scheduler, in terms of energy consumption.
This is because schedutil uses information about the utilization of individual CPU cores to make more intelligent decisions about when and how to scale the frequency of the CPU.
This can help to reduce the overall power consumption of the device, which can be particularly beneficial for battery-powered devices.
Additionally, schedutil can also help to improve the overall performance of the device by ensuring that the CPU is able to operate at its maximum frequency when needed.
In my personal testing I haven't seen any noticable impact on power consumption, while the performance does certainly noticeably increase
Note: This is only a change in the aarch64 configuration as the armv7 configuration already used the schedutil scheduler as default.
[ci:skip-build]: Already built successfully in CI
This fixes gnss out of the box on the librem 5, by configuring geoclue
to use gnss-share as a nmea source.
I went this route, of overriding a .service file that invokes geoclue
with a command line option, because forking this .service file is much
nicer than forking geoclue.conf. The conf file will likely change over
time to add new app permissions or whatever, and it's unlikely
(hopefull!) that this .service file will change much upstream...
[ci:skip-build] already built successfully in CI
Apparently upstream names udev rules with the .udev extension... which
doesn't work with udev (I guess debian has a helper for installing rules
and it renames them?). This adds the expected ".rules" extension to them
so that udev actually uses them.
This update also includes improved ucm config from Purism.
"Lockdown suppport" is also added here, which allows toggling off all of
the hks on the L5 to disable all radios, etc without breaking some
sensors. For more info, see 65ec7038 in librem5-base.
Based on some new (to me...) info from Purism's Sebastian K, there are
apparently Evergreen devices that return different values for board rev,
so we shouldn't assume only r4 are Evergreen, and default to the r2 DT.
But many earlier devices (Birch, Chestnut, Dogwood) may or may not have
the board rev set either. Who knows! Defaulting to the Evergreen DT on
these devices is bad too, but there weren't many of those shipped (I
guess?), at least not compared to the number of Evergreens that aren't
properly identifiable in u-boot... so this using this DT by default is
the best of the two bad options we have.
This comment thread has more info:
https://gitlab.com/postmarketOS/pmaports/-/issues/1643#note_1147248594fixes#1643
[ci:skip-build] already built successfully in CI
Kernel source updated to 6.1-rc7
Ext2 and Ext3 modules in aarch64 config disabled because Ext4 is backwards compatible.
2 fixes for PinePhone included in this source:
pinephone: fix power key behavior during suspend (avoid stuck key during resume)
pinephone keyboard: wait for 100ms after enabling power supply and before probing.
[ci:skip-build]: already built successfully in CI
Support launching postmarketOS in QEMU on riscv64 architecture. It is
mostly copied from device-qemu-aarch64 with some riscv64-specific
modifications.
Currently UIs using Xorg like Mate, XFCE4 and LXQT work fine, Wayland
UIs like weston, plasma-mobile etc didn't work in my testing.
Also using "pmbootstrap qemu --tablet" is needed to make mouse input
work, the defaults don't seem to work at the moment.
[ci:skip-build]: already built successfully in CI
Remove the -dev subpackages of kernels that replace the linux-headers
package. As I understand, the only case where this would make sense is
if you wanted to build a kernel module against headers that need to be
newer than the headers in Alpine's linux-headers package (currently
5.19.5).
While this might have been historically relevant when wireguard wasn't
in the kernel and you might have needed newer linux-headers to build
the module, it seems irrelevant today. If somebody should need this in
the future, then bring it back properly / consider getting the
linux-headers package in Alpine upgraded. Right now the -dev packages
are broken in several ways:
* Use of unversioned provides= (pma#1766)
* Don't contain binaries needed to build binary packages (pma#462).
This was worked around in 6aba5f ("Package kernel-scripts
separately"), but later this didn't build anymore and we removed it.
So in short: broken and unused, drop them.
This updates the APKBUILD with the new Megi 6.0.2 tag release.
The 2 incremental patches on top of 6.0 have hereby been removed.
[ci:skip-build]: already built successfully in CI
This kernel update addresses 5 important CVE's in the Wifi stack.
More info can be found over here: https://seclists.org/oss-sec/2022/q4/20
[ci:skip-build]: already built successfully in CI
- update to use librem5-base v52
- install usbguard config / new subpackage
- move xorg.conf to new x11 subpackage
- refactor udev rule install to just install everything available from
librem5-base upstream
- use purism's shipmode script, see:
https://source.puri.sm/Librem5/linux/-/merge_requests/333#note_195511
Replace usages of pmb:kconfigcheck-* options with
pmb:kconfigcheck-community which will be required for all devices in
community/main category. This ensures more consistent features &
behavior across devices.
Follow removal of linux-edge4virt in Alpine:
1a838bdeb6
Fix for upstream compat failure:
Increase 'device-qemu-amd64' pkgrel (0 -> 1), missing depend(s): linux-edge4virt
[ci:skip-build]: already built successfully in CI
IP5XXX is needed to be able to read PinePhone battery levels. Extra
configs were automatically added by pmbootstrap.
Signed-off-by: Jean Lucas <jean@4ray.co>
The AF8133J magnetometer is being used since the PinePhone Beta edition
in place of the earlier ST LIS3MDL magnetometer.
[ci:skip-build] Already built successfuly on CI in MR
Let /usr/share/alsa/ucm2/conf.d/simple-card/*.conf be a symlink,
as it is expected since alsa-lib 1.2.7.
Related: d6adde0e32
[ci:skip-build] already built successfully in CI
For the Biktorgj firmware the control/power file should be set to on
instead of auto. By matching on the serial number this only applies to
modems with the community firmware installed.
This also re-enables the auto flashing for u-boot on the L5, but keeps
it disabled on the devkit for now until this u-boot supports the devkit
again.
[ci:skip-build] already built successfully in CI
File system modules are included by default in postmarketos-mkinitfs
and loaded dynamically when needed.
[ci:skip-build]: already built successfully in CI
Patches to work around modem instabilities are now in purism's fork, so
they were dropped.
I ran 'kconfig migrate' on the config, which is why there are a lot of
chnages there.
[ci:skip-build] already built successfully in CI
Disable options
-CONFIG_NET_VENDOR_ENGLEDER
-CONFIG_NET_VENDOR_VERTEXCOM
-CONFIG_SURFACE_PLATFORM
Enable options
+CONFIG_KEYBOARD_PINEPHONE
Note by ollieparanoid: this fixes the suspend to ram issue, pma 1478
[ci:skip-build]: already built successfully in CI
Downgrade to avoid the suspend issues we've been seeing for the past three
weeks. This reverts commit 3d4d3558b7
("linux-postmarketos-allwinner: upgrade to 5.17.0_git20220313 (MR 3001)").
Related: pmaports issue 1478
- Enable Broadcom and Marvel wifi drivers (cards exist that can be
installed in the L5)
- Add workaround that helps with modem disappearing when modem PM is
enabled. Doesn't solve it completely, but it makes the problem much
less frequent.
This u-boot version doesn't support the devkit yet. Last I heard, Purism
plans to add the config back in after porting it from the old u-boot.
If anyone needs this (probably no one besides me?), the old u-boot can
be built locally from an earlier version of this package.
The package `device-pine64-pinephone-vccq-mod` installs a u-boot user script.
The user script was loaded at address 0x50100000 partially overwriting
the initramfs (0x4FF00000-0x5015facd), and causing a boot loop.
The user script load address was increased to 0x50700000, leaving 8MB
of free space for the initramfs, the current initramfs size is 2.37MB.
Using uInitrd is no longer necessary. I'm not sure *why*, but it just
works using the non-u-boot-image initramfs. The post-upgrade script was
changed to clean up the old images from /boot/u{Image,Initrd}, restoring
a lot of free space in that partition (~25MB)
This also sneaks in a small 1 character change to silence removing the
gpsd service from the default runlevel
[ci:skip-build]: already built successfully in CI
By setting the `install_if` to include postmarketos-ui-sway instead of
sway, apk doesn't seem to be confused if it is also trying to install
some other package with `provides=sway` in it.
fixes#1343
[ci:skip-build] already built successfully in CI
gnss-share is a location provider I wrote for the librem 5's GPS module,
and can be used directly from geoclue. It allows saving and loading
A-GPS data (manual steps, for now) to facilitate faster fixes.
I'm not completely happy with having to use sed to patch geoclue's conf,
but:
1) I really only need to change 1 line
2) there's a non-zero chance geoclue's conf will be changed in aports if
new permissions are required for things later
So carrying the config in the device package and using
"replaces=geoclue" (like the postmarketos-* stuff) didn't seem like a
maintainable solution long term since the geoclue conf might gain needed
fixes/features that might make a copy in the device package outdated...