There is no need to duplicate things over and over again.
Also load the waveform in initramfs before loading display
modules. That is early enough to have a working display in
initramfs.
SDM845 devices running mainline lack a valid MAC address, and
fallback to a random one on each boot. This makes DHCP IPs vary
on each boot and breaks Bluetooth BNEP mode since the kernel enforces
that a valid MAC address is used when Bluetooth BNEP mode is activated.
Add a udev rule to trigger a script when the WLAN or Bluetooth interface
appear to set the MAC address by reading it from the persist partition
for the WLAN MAC address and increment it for generating a Bluetooth MAC
address. This approach seems to be common on some downstream devices
such as the Oneplus 6.
[ci:skip-build]: already built successfully in CI
Bootmac configures the MAC addresses of WLAN and Bluetooth interfaces at boot.
Bootmac can be invoked in various ways at boot, but currently only udev rules are tested.
Bootmac generates MAC addresses from the `serialno` provided by Android bootloaders
through /proc/cmdline or from /etc/machine-id. The Organizationally Unique Identifier (OUI)
is retrieved from a lookup database macdb by matching deviceinfo_manufacturer
from /etc/deviceinfo with the entries in the database.
See https://gitlab.com/postmarketOS/bootmac
GPI_DMA now works so we can use GENI I2C and remove bitbang i2c-gpio.
PM8008 driver from mailing list is imported and configured. CCI (camera
i2c bus) is configured plus CAMCC dependency. And some smaller changes.
We are just building upstream Linux with minor patches and no longer
using the linked GitHub repo, so let's fix this to avoid confusion.
[ci:skip-build]: already built successfully in CI
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
This reverts commit 0ce9fdf8d6.
These cross/binutils packages are generated with pmbootstrap aportgen. I
push them directly to master without build testing because so far they
always built fine... but this time it failed. Revert for now.
Related: https://builds.sr.ht/~postmarketos/job/823964
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>
Squash of
- linux-postmarketos-qcom-sdm845: enable LED_TRIGGER_PATTERN as builtin
- linux-postmarketos-qcom-sdm845: switch BT_RFCOMM to module
- linux-postmarketos-qcom-sdm845: switch BT_BNEP to module
LED_TRIGGER_PATTERN is necessary for feedbackd to function correctly.
However, it doesn't get enabled by default when build as module,
build as built-in to avoid this problem so the notification LED
blinks correctly. This works around the problem that LED_TRIGGER_PATTERN
is not probed automatically when the Qualcomm LPG driver is used for SDM845 devices. See https://gitlab.com/sdm845-mainline/linux/-/merge_requests/34
CONFIG_BT_RFCOMM should always be build as a module otherwise it may never
be initialized at boot. Without this module, BlueZ will not enable
profiles depending on RFCOMM such as HFP. RFCOMM support as builtin may
work if the Bluetooth driver is builtin (which is not the case here), but I haven't verified that. See https://gitlab.com/sdm845-mainline/linux/-/merge_requests/38
CONFIG_BT_BNEP should always be build as a module otherwise it may never
be initialized at boot. Without this module, BlueZ will not start up its
networking plugin to provide Bluetooth PAN support. BNEP support as
builtin may work if the Bluetooth driver is builtin (which is not the case here), but I haven't verified that. See https://gitlab.com/sdm845-mainline/linux/-/merge_requests/38
[ci:skip-build]
The downstream kernel has barely any functionality without libhybris
(which is not coming back to pmOS) so move everything related to the
OnePlus 5/5T downstream ports to downstream since a working mainline
port is much more feature rich.
Set the necessary flag in deviceinfo so a user can use a logical
partition that was flashed using fastbootd.
$ fastboot create-logical-partition postmarketOS 1000000000
$ pmbootstrap flasher flash_rootfs --partition postmarketOS
[ci:skip-build]: already built successfully in CI
Bump the pkgrel of gcc4 and gcc6, and regenerate the cross/* versions
with "pmbootstrap aportgen gcc6-armv7" etc.
Should fix these errors:
Error loading shared library libisl.so.22: No such file or directory (needed by /usr/gcc6/libexec/gcc/x86_64-alpine-linux-musl/6.4.0/cc1)
Error relocating /usr/gcc6/libexec/gcc/x86_64-alpine-linux-musl/6.4.0/cc1: isl_union_map_free: symbol not found
Error relocating /usr/gcc6/libexec/gcc/x86_64-alpine-linux-musl/6.4.0/cc1: isl_map_from_pw_aff: symbol not found
Error relocating /usr/gcc6/libexec/gcc/x86_64-alpine-linux-musl/6.4.0/cc1: isl_schedule_from_domain: symbol not found
...
Related: 54749a5222
[ci:skip-build]: already built successfully in CI
A common issue is that building kernels takes longer than the default of
1h, and then MR authors need to adjust the timeout in their pmaports
fork and run it again. By setting this option this is hopefully no
longer the case.
I set it to 10h because that's what we currently have set in the
postmarketOS gitlab configuration and it would allow building MRs for
service packs with multiple kernels.
pmbootstrap has logic built in to detect stale builds - by default it
will stop a build if there was no output for 15 minutes. So having a
large timeout shouldn't be a problem.