Fixes#2349. Patches refreshed because some didn't apply when I built
directly from local repo and tried to import them with "git am".
Known issue: NetworkManager fails to assign IP to usb0, I had to
assign it manually to use USB networking.
Include the bm818-tools by default for the Librem5. This allows users to
check and change the VoLTE status.
Resolves: https://gitlab.com/postmarketOS/pmaports/-/issues/1905
Signed-off-by: Alistair Francis <alistair@alistair23.me>
[ci:skip-build]: already built successfully in CI
This is no longer necessary as geoclue now can talk to ModemManager
directly for GPS information. It also presents a security risk due to
how gpsd works. As such, remove it.
Closes https://gitlab.com/postmarketOS/pmaports/-/issues/2340
- librem5-base upgraded to v64: some tweaks to shipmode stuff, but
otherwise nothing interesting for us
- actually install the mm-broadmobi-port-types udev rule
- add udev rule + service for enabling bluetooth for Sparklan WiFi
adapters (fixes#2043)
pkgver was also updated to reflect that this is packaged from the latest
in git as of now. I probably should have done that from the start
(instead of ending up at the arbitrary '0.3'.)
systemd-boot is used for EFI boot (when using "pmbootstrap qemu --efi"),
legacy boot (seabios) is still supported as well (pmb/qemu boots the
kernel directly).
[ci:skip-build] already built successfully in CI
This allows use of some USB peripherals that
utilize the CP210X serial chip.
This includes not only mere UART-to-USB adapters,
but also some devices like GPS, Zigbee dongles,
etc.
[ci:skip-build]: Already built successfully in CI
This kernel release incorporates the following fix from Megi:
- fixed regression in Pinephone power consumption during sleep (touchscreen
was not disabled properly, consuming a lot of power)
[ci:skip-build]: already built successfully in CI
Add a dummy subpackage that does not install any kernel. This is useful
for testing 'pmbootstrap install' code quickly without actually
downloading and installing a kernel package.
changes:
- don't try to set gnss-share socket in geoclue
- install Alsa UCM configs from purism
Upstream ucm is broken when migrating from the purism ucm, so let's
just use ucm from purism until someone upstreams something that works.
What I upstreamed was based on an older ucm from Purism, what they are
shipping is more correct than upstream ucm...
This reverts commit 70b7813fee.
fixes#2134
[ci:skip-build] already built successfully in CI
-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