For a merge list, please see the merge commits:
- 5.19.8 - (30c780c930)
- 5.19.9 - (203e94fc47)
- 5.19.10 - (a88cf36006)
- 5.19.11 - (ade68530f5)
- 5.19.12 - (c19a1c06f1)
Change-Id: Ic6b7f59f326516db392c6281d2cee139a9b92794
Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
[ci:skip-build] Already built successfuly on CI in MR
The SHIFT6mq (axolotl) now supports updating the bootloader via
the new android-boot fwupd plugin.
A big shoutout and heartfelt "Thank You!" to Dylan for working
on this plugin and upstreaming it.
Change-Id: I1d608ce293a152e9354ca117cd370952df3f41ad
Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
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.
Switch to minimal config that I've been using for development for the
last months, with some minor modifications. In addition to that enable
all the kconfig options that will be a part of the new
pmb:kconfigcheck-community (anbox/waydroid + iwd + nftables + containers
+ zram + netboot).
Note by ollieparanoid:
Re-applied it after I just reverted it. Now realized that I didn't need
to revert this in the first place, this is and aarch64 package and the
cross compilers (x86_64 packages) needed to be published. Anyway, the
gcc mess is mostly resolved now, see issue 2167.
[ci:skip-build] Already built successfuly on CI in MR
Temporarily revert this, so bpo can first build and publish all gcc
cross packages. The build for this linux package currently failed - I
could also set it back to queued and have it build, but that would delay
the publish of the gcc-aarch64 package until the kernel is built.
This reverts commit 979cc0bfb6.
Switch to minimal config that I've been using for development for the
last months, with some minor modifications. In addition to that enable
all the kconfig options that will be a part of the new
pmb:kconfigcheck-community (anbox/waydroid + iwd + nftables + containers
+ zram + netboot).
[ci:skip-build] Already built successfuly on CI in MR
Remove as we are removing apparmor check from pmbootstrap
[ci:skip-vercheck] No rebuild necessary
[ci:skip-build]: already built successfully / also not really needed
ODROID HC2 is based upon the Samsung Exynos 5422 and can run full
mainline. Switch to linux-edge from Alpine to enable this and drop
the close-to-mainline fork for this device. The close-to-mainline
fork was already linux-edge for a while but with a separate KConfig.
These KConfig changes are now integrated in linux-edge of Alpine.
U-boot script was updated to handle vmlinuz-edge as well since
Alpine's linux-edge does not generate a vmlinuz file, but vmlinuz-edge.
Probably to allow installing linux-lts as well.
initcall_blacklist=exynos_drm_init was added to the kernel cmdline
because upstream wants to set CONFIG_DRM_EXYNOS=y instead of module.
The DRM subsystem of Exynos5 in the kernel seems to be broken for this
device. There's also no use for it since this device does not have video
out. See https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/38094
Disable HDMI as workaround, as it seems to be buggy when HDMI is
unplugged. It's apparently in DRM_MODE_CONNECTED state, but without size
and with no modes. According to Guido from Phosh this is a bug and
should be fixed in the kernel. By disabling this until it is fixed, we
get Phosh working again.
Related: https://gitlab.gnome.org/World/Phosh/phosh/-/issues/828
The device fulfils the requirements for community category, and I plan
to maintain and develop this device further going forward. Move it!
[ci:skip-vercheck]: linux pkg was moved
[ci:skip-build]: already built successfully in CI
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
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]
Enable:
* CONFIG_UINPUT required by fbkeyboard
* CONFIG_PSTORE_PMSG required to enable dmesg/console ramoops
Co-Authored-By: Oliver Smith <ollieparanoid@postmarketos.org>
[ci:skip-build]: already built successfully in CI
UPower defaults to HybridSleep mode when battery is critical.
Since we allow suspending the device in regular use, this approach
won't help in a critical battery case scenario. When the battery
level is critical, shutdown the device instead.
Moreover, adjust the default levels for battery low, critical, critical
action since they are too high for SDM845 devices.
vc4 and freedreno have been provided by mesa-dri-gallium for a long
time.
mesa-dri-intel subpackage has been deprecated for a while (previously
dependend on dri-classic and dri-gallium)
mesa-dri-classic drivers is removed because mesa upstream has removed
those old drivers from the tree. They've been replaced (for not-ancient
hardware) by gallium.
See also https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/31848
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
These options are required by `iwd`. Make use of the `kconfigcheck-iwd`
APKBUILD option to ensure the required config options remain selected.
[ci:skip-build] already built successfully in CI
ALSA UCM configs are now upstreamed which causes
a conflict with the device package as both are now
providing the same files. Drop our configs in the device package.
For a merge list, please see the merge commits:
- 5.18.1 - (3d98cf52b5)
- 5.18.2 - (99cf0d285f)
- 5.18.3 - (b425b70a63)
-----
This also changes the following Kconfig options:
- CONFIG_SCSI_UFS_BSG -> y
Change-Id: I4406f381b48a894ea0bff3006fb3fa62683e61a0
Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
[ci:skip-build]: already built successfully in CI
Run "pmbootstrap kconfig migrate asus-me176c" to update the kernel
config for the new Linux version. Otherwise there is an interactive
prompt that times out on BPO (although it succeeds on GitLab CI for
some strange reason).
Add subpackages that automatically cause installation of the Vulkan
and libva driver if packages using them get installed. This reduces
the size of a minimal rootfs but still ensures those are present if
needed.
[ci:skip-build]: already built successfully in CI
The new linux-edge / 5.18 kernel will likely not make it in time for
the v22.06 release so let's upgrade the good old 5.4 kernel to the
latest stable release at least.
File system modules are included by default in postmarketos-mkinitfs
and loaded dynamically when needed.
[ci:skip-build]: already built successfully in CI
- Update to Linux 5.18
- Fix Bluetooth startup problem
- Upstreamed not so many patches this time
- Even more things I forgot than usual...
pmOS kernel config:
- Enable BNEP, RFCOMM for extra BT features
Device changes:
- samsung-j3ltetw/j5/j5x:
- Now covered by a common device tree include
- Add proper display driver (no brightness control yet)
- Hall sensor (except j3ltetw)
- Touchscreen (only j3ltetw and j5x, j5 is still WIP)
- Sound/Modem for all of them
New devices:
- samsung-grandmax (Samsung Galaxy Grand Max)
- eMMC, SD card, USB, Buttons, WiFi/BT, Vibrator
- Display
- Touchscreen
- Sensors (Accelerometer)
- Sound/Modem
- Battery status
[ci:skip-build]: already built successfully in CI
Drop the weston config, as it was for fbdev which has not been supported
in weston anymore for a while.
Remove Martijn as Co-Maintainer, as both previous maintainers of the
Nokia N900 stopped maintaining it when the device was briefly dropped
from community.
Co-Authored-By: Oliver Smith <ollieparanoid@postamrketos.org>
[ci:skip-build]: already built successfully in CI
Drop 0002-ARM-dts-n900-remove-rx51-battery.patch, because this wasn't
needed for postmarketOS in the first place. The patch was created for
Maemo Leste as upower quirk initially and they don't carry it anymore
either.
Drop other patches, as they have been upstreamed.
Co-Authored-By: Oliver Smith <ollieparanoid@postmarketos.org>
Dropped the usb-c patches, because it looks like usb-c charging works
now out of the box on 5.18, and that was the primary reason for me to
include those patches here originally.
[ci:skip-build] already built successfully in CI
While the newer "Linux board support package" has newer versions for
the "modem" and "venus" firmware, the "wcnss" firmware is actually
older than the one in the previous 1034.2.1 release. To avoid
downgrading it, it is still packaged from the old release in a separate
APKBUILD. (It is probably also better tested than the new release...)
[ci:skip-vercheck]: non-zero pkgrel is intended to match old package
[ci:skip-build] already built successfully in CI
- Patch from Robert Nelson and Hansem Ro.
- Based on the work of Hansem Ro,
who owns another device, the First Generation Kindle Fire,
which has similar specifications as the Samsung Galaxy Tab 2 7.0.
mesa-dri-swrast no longer exists and just installs,
mesa-dri-gallium. However, this might not always be the case, so
let's change it before it causes any issues.
[ci:ignore-count]
[ci:skip-build]
It seems like at least samsung-a5 needs the same "facility lock"
workaround as samsung-serranove, otherwise ModemManager can not detect
the SIM card correctly. Move it to a subpackage of soc-qcom-msm8916
and apply it to samsung-a3 as well just to be sure.
So far this issue seems limited to Samsung devices, at least bq-paella
is not affected (tested with the same SIM card), so it does not seem
right to apply it unconditionally to all devices.
[ci:skip-build] Already built successfuly on CI in MR
- Add support for sdm845-samsung-starqltechn
- Fix touch for axolotl
Change-Id: Ie7073f450f207e9242b821b4971ce2be89ba6a54
Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
[ci:skip-build] Already built successfuly on CI in MR
- alcatel-idol347: add headphones
- Try to revert playback/capture priorities to maybe make automatic
switching to headphones based on jack detection work a bit better.
[ci:skip-build] Already built successfuly on CI in MR
Also, moving the modemmanager.conf file from the main package to the
nonfree-firmware subpackage as Modem Manager is going to work
only if the nonfree-firmwares are present.
The soc-qcom-sdm845-nonfree-firmware dependency is now moved from
firmware-xiaomi-beryllium package to the device package.
This will make the firmware package to only depend on firmware files.
The soc-qcom-sdm845-nonfree-firmware dependency is now moved from
firmware-oneplus-sdm845 package to the device package.
This will make the firmware package to only depend on firmware files.
The soc-qcom-sdm845-nonfree-firmware dependency is now moved from
firmware-oneplus-sdm845 package to the device package.
This will make the firmware package to only depend on firmware files.
The soc-qcom-sdm845-nonfree-firmware dependency is now moved from
firmware-oneplus-sdm845 package to the device package.
This will make the firmware package to only depend on firmware files.
Also, pmb:cross-native is added to the package options so CI testcases
doesn't fail.
The soc-qcom-sdm845-nonfree-firmware dependency is now moved from
firmware-xiaomi-beryllium package to the device package.
This will make the firmware package to only depend on firmware files.
Also, pmb:cross-native is added to the package options so CI testcases
doesn't fail.
- Add support for the rear camera on xiaomi-scorpio
- Improve charging from SDPs
- Add extcon support on oneplus-oneplus3(t)
- Add container and zram kconfig checks to APKBUILD
[ci:skip-build] Already built successfuly on CI in MR
- update to kernel 5.15.25 stable
- add TUN as module, fixes pma#1435
- drop fully-upstreamed patches (lp55xx)
- add iio support for lis302dl (will send upstream)
- update N900 dts for lis302dl over iio (will send upstream)
- assign higher priority to patches from kernel.org (resolves pmb#2107)
[ci:skip-build] already built successfully in CI
For a merge list, please see the merge commits:
- 5.16.3 - (98fb3b4121)
- 5.16.4 - (2962c41f9d)
- 5.16.5 - (9ee391628f)
Change-Id: If5ba0303b6a9a636ec1f303739804a9fa9c37e2a
Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
[ci:skip-build] Already built successfuly on CI in MR
This is a cherry pick of Leste commit 2c7e4a1ac8ec1f908927793e893566aac3dcb9df,
to revert mainline commit f959dcd6ddfd29235030e8026471ac1b022ad2b0, which breaks
N900 modem. This is a temporary workaround until a proper fix is found.
* upgrade kernel to 5.15.13
* add patch for better nl80211 support in wl1251
* add config options to support iwd
[ci:skip-build] Already built on CI in MR
Due to a regression in ModemManager 1.18.2, a special case to reduce
facility lock query was implemented in ModemManager. Versions up to
1.18.6 need to be patched (separate merge request, possibly in Alpine
Linux). For more details, see pmaports issue #1274.
This udev rule makes use of this special case for device
samsung-serranove.
linux-samsung-espresso3g: Add support for gp2a light and proximity sensor
linux-samsung-espresso3g: Display now runs at 45Hz
linux-samsung-espresso3g: Add pinmux for wlan host wake
linux-samsung-espresso3g: Add TWL 6030 power off support
linux-samsung-espresso3g: Add TWL 6030 power button support
linux-samsung-espresso3g: Data Enable is active high
linux-samsung-espresso3g: Fix patch
Remapping the left key of tm2-touchkey to KEY_MENU.
The KEY_APPSELECT, which is set by the device tree, is not available in
the postmarketOS UIs. In X11 UIs this is due to keycode limitation to
8 bit. In Wayland UIs the keycodes don't have this limitation but xkb
keycodes higher 255 are not processed correctly by several software
packages. It still makes sense to keep KEY_APPSELECT in the device tree
because this is the correct mapping intended by the manufacturers when
running the kernel on Android.
iio-sensor-proxy wants to know when to report "near" status. Add an udev
rule defining that value as a workaround untl it can be passed from
the DT.
[ci:skip-build] already built successfully in CI
Add a replacement for the current "mainline" and "mainline-modem"
kernel variants used for the MSM8916 devices. At the moment this is
implemented using separate DTBs that are all maintained in the kernel.
Unfortunately, this does not seem likely to be accepted upstream in
the mainline kernel. They will expect to have only a single DTB that
enables all available functionality. The "no-modem" variant is a minor
but still very useful use case because it changes the audio routing:
It allows audio to work without any firmware, with more control on
sample rates, latency etc for advanced audio use cases. However,
having a potentially enabled modem requires routing all audio through
the modem. There are two separate DTBs needed for these two setups.
To avoid burdening mainline with this use case, the idea is to apply
the necessary DTB transformations as part of the lk2nd boot process.
Mainline only contains the DTB with the full functionality (audio
routed through modem). The soc-qcom-msm8916-rproc packages place
a magic file at /boot/lk2nd_rproc_mode that is read by lk2nd. When
the file contains "no-modem" lk2nd will transform the DTB to disable
the modem and change the audio routing to bypass the modem.
That way, this feature does not need to be considered in mainline
at all but can still be offered as "nice to have" by lk2nd. It also
simplifies the device packages because the selection is now common
as part of the soc-qcom-msm8916 package.
Together with a related pmbootstrap change there is a nice prompt
for selecting one of these "rproc" providers:
$ pmbootstrap init
[...]
Available providers for soc-qcom-msm8916-rproc (3):
* all: Enable all remote processors (audio goes through modem) (**default**)
* no-modem: Disable only modem (audio bypasses modem, ~80 MiB more RAM)
* none: Disable all remote processors (no WiFi/BT/modem, ~90 MiB more RAM)
Provider [default]: ...
Rule D: Devices with secure boot and venus present in the firmware
partition need:
1. GPU firmware (firmware-qcom-adreno-a300)
2. msm-firmware-loader (for wcnss, modem, venus)
4. device-specific -wcnss-nv firmware
[ci:ignore-count]
[ci:skip-build] already built successfully in CI
Reduce rootfs size a bit by installing the separated firmware packages
instead of the large linux-firmware-qcom package. Also, install the
modem firmware by default to prepare for enabling GPS.
Squash the packaged venus firmware blobs using pil-squasher so only
one file needs to be loaded rather than many small ones. Linux detects
squashed (.mbn) vs non-squashed (.mdt + .b*) based on file contents
(not file name) so it is fine to install venus.mbn to venus.mdt.
Strictly speaking firmware-bq-picmt is not needed anymore because
the msm-firmware-loader can be used to load the picmt firmware from
the firmware partitions. However, this package contains quite recent,
largely unmodified firmware from Qualcomm so it still seems useful
to keep if someone wants to test more recent firmware on some other
device (provided that their device does not verify firmware signatures).
To make this firmware package consistent with firmware-qcom-db410c,
squash the firmware blobs using pil-squasher so only one file needs
to be loaded rather than many small ones.
Unfortunately, at the moment MSM8916 devices always have to install
all of linux-firmware-qcom (~ 60 MiB) when they actually just use
~ 0.008 MiB of GPU firmware in there. Everything else is just big
firmware blobs for other SoCs that are never going to be useful.
It's much more efficient to package the necessary firmware separately
to save rootfs space. The DB410c linux-board-support-package contains
all the firmware from linux-firmware as well, so we can easily package
it as part of the firmware-qcom-db410c package.
This commit makes the following changes to firmware-qcom-db410c:
1. Package venus() firmware that was previously installed from
linux-firmware-qcom. GPU firmware is packaged in firmware-qcom-adreno.
2. Use new firmware paths for DB410c that were applied upstream
3. "Squash" the firmware blobs to a single file using pil-squasher
Add a new firmware-qcom-adreno APKBUILD that packages the GPU firmware
from upstream linux-firmware as separate packages. It is basically
a minimal replacement for linux-firmware-qcom that allows saving rootfs
space by installing only the firmware that is really relevant for the
device.
[ci:skip-build] already built successfully in CI
The firmware provided by these subpackages is now covered by the
msm-firmware-loader, so there is no need to build packages for them
anymore.
[ci:ignore-count]
The "replaces"/"provides" should have the full package name, not just
the part of the subpackage. Also, the nonfree-firmware subpackage does
not need it because the old "device-xiaomi-wt88047-nonfree-firmware-modem-wt88047"
packages were only install_if packages without any files installed.
Improvements from xfce4-phone source:
- Add screenshot to README.md
- Enable screen locking
- Disable Desktop icons "Home", "File System", "Trash"
- Enable single-click on Desktop
- Enable single-click in Thunar
- Change clock format
- Set postmarketos wallpaper
Additional changes in postmarketos-ui-xfce4:
- Installing greybird-themes (which is already set as default theme in
/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xsettings.xml).
- Changing /etc/skel/.config/autostart/onboard-autostart.desktop to
slightly speed up keysboard startup (overriding startup-delay of
/etc/xdg/autostart/onboard-autostart.desktop).
- Enabling scrollbars by /etc/profile.d/enable-scrollbars.sh, this is
helpful where touch-scrolling doesn't work like e.g. in whiskermenu.
(And re-ordered network-manager-applet in APKBUILD _pmb_recommends
section.)
Also removing xfce4 subpackages of device-qemu-amd64,
device-qemu-aarch64 and device-nokia-n900. The device specific monitor
to set the wallpaper will now be automatically derived from "monitor0"
in file xfce4-desktop.xml.
Additionally taking maintainership as discussed in merge request
(!2506).
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.