Commit Graph
100 Commits
Author SHA1 Message Date
Minecrell 63373d18a5 unmaintained/linux-{alcatel,samsung-a5}*: fix checksums (MR 3654)
I renamed the repository so GitHub changed all the checksums. :(

[ci:skip-vercheck]: the source files are still exactly the same
[ci:skip-build]: Already built successfully in CI
2022-11-20 16:13:28 +01:00
Minecrell d4762ed74f community/linux-postmarketos-qcom-msm8916: upgrade to 6.0.2 (MR 3532)
- Update to Linux v6.0.2 (includes fixes for WiFi CVEs)
- Tweak kernel configuration slightly (especially crypto options)

[ci:skip-build] Already built successfuly on CI in MR
2022-10-16 13:15:35 +02:00
Minecrell 8f37872995 community/linux-postmarketos-qcom-msm8916: upgrade to 6.0.1 (MR 3532)
- Update to Linux v6.0.1
- Upstreamed some patches this time
- Fixed register address in smb1360 driver

Device changes:
  - samsung-gtelwifiue
    - Audio
    - Better USB detection
  - samsung-e5/e7/grandmax
    - Refactoring for changes that landed upstream
    - Key LED control

New devices:
  - samsung-cprime/heatqlte
    - eMMC, SD card, USB, Buttons, WiFi/BT, Vibrator
    - Display, Brightness control (not for AMOLED on heatqlte)
    - Sensors (Accelerometer)
    - Sound/Modem
    - Battery status
    - NFC
    - NOTE: No touchscreen yet
2022-10-16 13:15:33 +02:00
Minecrell 5f140538bf main/postmarketos-base: install mesa-dri-gallium only if needed (MR 3478)
At the moment almost all device packages force installation of the Mesa
drivers, even when they are not used by any application (for example on
a minimal headless installation with "none" or "console" UI).
Omitting mesa-dri-gallium from such installations saves about ~150 MiB
of disk space (469 MiB -> 317 MiB rootfs for minimal installation on
arrow-db410c).

The "classic" drivers have been removed from Mesa so only one mesa-dri-
package exists now: mesa-dri-gallium contains all Mesa drivers,
llvmpipe, freedreno, lima, panfrost, Intel (iris/crocus), ...

This means we can easily create an install_if package in
postmarketos-base that installs that driver package only if needed
(= only if another package requires the "mesa" package).

Strictly speaking the install_if could be restricted further since
mesa-dri-gallium is only needed by "mesa-egl", "mesa-gbm" and "mesa-gl"
but not e.g. the Vulkan drivers. Having three postmarketos-base
subpackages (one install_if for each of them) seems a bit
overengineered, though. "mesa" is a common dependency of all three
of them, so using install_if="... mesa" should be good enough.
2022-10-11 11:19:30 +02:00
Minecrell 018b1a1a2d community/device-asus-me176c: switch to linux-edge (MR 3167)
Linux 5.18 brought better support for some x86-based Android tablets,
thanks to work from Hans de Goede. This includes asus-me176c: the
modified ACPI table and the Linux fork is no longer necessary,
it can just run linux-edge from Alpine.

Drop the old Linux 5.4 fork and related packages. Instead of using
the proprietary sound firmware from linux-firmware-intel, switch to
using the open-source(!) "Sound Open Firmware" (SOF).

NOTE: The mainline battery driver seems quite a bit less accurate
than the ugly old driver ported from the downstream driver. Also,
Bluetooth seems to fail on some boots now. Overall it works quite
well though. :)
2022-10-06 01:34:42 +03:00
Minecrell 074a142319 cross/gcc-{armv7,aarch64}: upgrade to 11.2.1_git20220219-r4
Fix the following error:

ERROR: unable to select packages:
  libstdc++-11.2.1_git20220219-r4:
    breaks: g++-aarch64-11.2.1_git20220219-r3[libstdc++=11.2.1_git20220219-r3]
    satisfies: gcc-11.2.1_git20220219-r4[so:libstdc++.so.6]
               binutils-2.38-r3[so:libstdc++.so.6]
               ccache-4.6.1-r0[so:libstdc++.so.6]
  gcc-11.2.1_git20220219-r4:
    breaks: g++-aarch64-11.2.1_git20220219-r3[gcc=11.2.1_git20220219-r3]

The new version does not seem to be in the armhf repos yet so skip that
one for now.
2022-07-19 18:45:58 +02:00
Minecrell c51cfe0c06 modem/rmtfs: upgrade to 0.2_git20220718 (MR 3296)
No functional change, the patch was finally merged so we can drop it.
2022-07-18 23:16:20 +02:00
Minecrell 0737d3089a qemu: add option to use linux-edge(4virt) kernel (MR 3281) 2022-07-10 20:42:33 -04:00
Minecrell d9326d5ac9 modem/tqftpserv: start before rmtfs (MR 3269)
Ideally tqftpserv should be started before rmtfs. This is because rmtfs
is currently responsible for starting the modem, and it's best for
performance if all the services needed by the modem are already up.

Also change "want" -> "use" for consistency with rmtfs. The difference
between "want" and "use" is that "want" just triggers starting of the
other service, while "use" also ensures that the other service starts
successfully.
2022-07-05 18:49:25 +02:00
Minecrell dcd3ae8f07 modem/rmtfs: upgrade to 0.2_git20210809, start before networkmanager (MR 3269)
Also include z3ntu's patch fixing a buffer overread issue which sadly
has not been merged for several months now.

rmtfs should be ideally started and stopped before NetworkManager
because otherwise the modem network interface might be removed before
NetworkManager can set it down. This has caused kernel issues at some
point (although it seems to be fine again at the moment).
2022-07-05 18:49:21 +02:00
Minecrell df4b8c44d1 modem/qrtr: upgrade to 0.3_git20201207 (MR 3269) 2022-07-05 18:49:16 +02:00
Minecrell dcfaa6acc2 community/linux-asus-me176c: fix build by updating kernel config
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).
2022-06-07 19:42:57 +02:00
Minecrell 62f0d60ef7 community/device-asus-me176c: install vulkan/libva driver if needed (MR 3195)
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
2022-06-07 08:22:43 +02:00
Minecrell 635906b9aa community/linux-asus-me176c: upgrade to 5.4.197 (MR 3195)
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.
2022-06-07 08:22:37 +02:00
Minecrell b714ea8aef device-*: Drop file system modules from deviceinfo_modules_initfs (MR 3166)
File system modules are included by default in postmarketos-mkinitfs
and loaded dynamically when needed.

[ci:skip-build]: already built successfully in CI
2022-06-06 10:11:59 +02:00
Minecrell 16c9892a8f main/postmarketos-mkinitfs: load file system modules dynamically (MR 3166)
At the moment, mkinitfs loads some file system modules always (ext4),
some dynamically (brtfs) and some not at all (f2fs, vfat), expecting
them to be built-in.

To support generic kernels (e.g. from Alpine) properly, use the
partition type detection for both boot and root partition and always
load the necessary modules before mounting.
2022-06-06 10:11:51 +02:00
Minecrell a0a0b369d5 main/postmarketos-mkinitfs: include vfat in initfs by default (MR 3166)
An increasing number of devices relies on the vfat file system in the
initfs (e.g. for UEFI boot). Having to add all the modules required for
it to work to deviceinfo_modules_initfs is annoying and inconsistent,
in particular for the additionally chosen "nls" modules. Since we
already bundle several file systems by default, let's just add vfat
as well to simplify this.

Ideally mkinitfs should detect the file systems chosen at install time
in the future and only include the necessary modules, but until then
this just adds a couple of kilobytes to the initramfs.
2022-06-06 10:11:51 +02:00
Minecrell 0b5a4f9a44 main/postmarketos-mkinitfs: include crc32c_generic module by default (MR 3166)
CRC32C is required for ext4 to work, otherwise mounting the ext4 rootfs
fails with "Cannot load crc32c driver.".
2022-06-06 10:11:46 +02:00
Minecrell fa93f361b5 community/linux-postmarketos-qcom-msm8916: upgrade to 5.18 (MR 3189)
- 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
2022-06-06 09:11:12 +02:00
Minecrell ac86b5e760 community/firmware-qcom-db410c: upgrade to 1036.1 (except -wcnss) (MR 3163)
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
2022-06-01 21:12:32 -07:00
Minecrell 6c628d66ed samsung-{a3,a5}: also apply ModemManager "facility lock" workaround (MR 3021)
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
2022-03-27 16:34:39 +02:00
Minecrell d55c91d1f9 community/soc-qcom-msm8916: update ALSA UCM files (MR 3014)
- 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
2022-03-23 10:01:27 +01:00
Minecrell fbafdc5cba bq-paella: update touchscreen module name in deviceinfo (MR 3014)
The driver has been renamed to prepare for potential upstreaming.
2022-03-23 09:59:04 +01:00
Minecrell 2be78249e4 community/linux-postmarketos-qcom-msm8916: upgrade to 5.17 (MR 3014)
- Update to Linux 5.17
- Upstreamed many more patches
- Probably many other things I forgot :)

Device changes:
  - alcatel-idol347:
    - Headphones
  - longcheer-l8910 (bq-paella):
    - Touch keys: Allow changing function from userspace
  - samsung-gprime:
    - Split into 3 variants: gprimeltecan, fortuna3g, fortunaltezt
    - Buttons, WiFi/BT, Vibrator
    - Display
    - Touchscreen
    - Sound/Modem
    - Sensors (Accelerometer/Magnetometer, depending on variant)
    - NFC (some variants only)
    - Battery
  - samsung-j5x (J5 2016):
    - WiFi/BT
    - Sensors (Accelerometer)
    - Sound/Modem (jack detection is somewhat broken)

New devices:
  - ark-peach (ARK Benefit A3)
    - eMMC, SD card, USB, Buttons, WiFi/BT
  - huawei-y635:
    - eMMC, SD card, USB, Buttons, WiFi/BT
    - Display
    - Touchscreen
    - Sensors (Accelerometer, Proximity)
    - Sound
    - Battery/Charging
  - samsung-a5-zt: new device variant of samsung-a5
    - different setup for accelerometer and touch key
  - samsung-e7:
    - eMMC, SD card, USB, Buttons, WiFi/BT
    - Display (no brightness control yet)
    - Touchscreen
    - Sensors (Accelerometer)
    - Sound/Modem
    - NFC
  - samsung-j3ltetw:
    - eMMC, SD card, USB, Buttons, WiFi/BT
    - Display (no brightness control yet)
    - Touchscreen
    - Sensors (Accelerometer)
    - Sound/Modem
  - samsung-on7:
    - eMMC, SD card, USB, Buttons, WiFi/BT

Removed devices:
  - oppo-a51f: Unfortunately, it has been unmaintained for a long time
    and it was the last remaining device in a non-upstreamable state
    (authorship unclear and missing Signed-off-by).
2022-03-23 09:59:04 +01:00
Minecrell 224ca9037c oppo-a51f: drop device port (MR 3014)
Unfortunately, the oppo-a51f has been unmaintained for quite some time
now. The original author (harutora) has disappeared and no one else
seems to have this device. The device port has several open problems:

  1. The device was never added properly to upstream lk2nd, because
     of a special (OPPO-specific) boot image format. Users need to
     compile and install some outdated version of lk2nd, which is no
     longer (fully) compatible with newer kernel versions.

  2. The authorship of the Linux changes are unclear: They were created
     with a "no-reply" email address and without Signed-off-by line
     that clarifies the licensing of the changes and permits upstreaming
     the patches.

Since oppo-a51f is the last remaining device port in linux-postmarketos
-qcom-msm8916 with this problem, I decided to drop the patches from the
kernel, at least until harutora returns or can clarify the authorship
of the created patches.
2022-03-23 09:59:04 +01:00
Minecrell af08a81fcd cross/gcc-*: upgrade to 11.2.1_git20220219 2022-02-21 17:53:32 +01:00
Minecrell 43df0c0b8e cross/gcc-*: upgrade to 11.2.1_git20220117 2022-01-17 21:12:29 +01:00
Minecrell c1a8c0a631 main/linux-postmarketos-qcom-msm8916: add patches for CVE-2021-39685 (MR 2757)
NOTE: Should be likely backported without the kernel config changes
      since Alpine 3.15 still has the older gcc version.

[ci:skip-build] Already built successfully on CI
2021-12-17 16:10:29 +01:00
Minecrell 717130ccfe community/linux-asus-me176c: upgrade to 5.4.165 (MR 2756)
Should fix CVE-2021-39685

[ci:skip-build] Already built on CI in MR
2021-12-16 19:32:18 +03:00
Minecrell f563e0ddcf modem/msm-modem: uim-selection: Allow configuring wait time for SIM (MR 2695)
Unfortunately it looks like some modem firmwares (or SIM cards?) need
more time until the SIM card shows up in the modem. This means that the
SIM card might not get configured, making it look like it was not
detected at all. On the other hand, having the previous long wait loop
affects _all devices_ when there is really no SIM inserted.

The proper solution would be to make it possible to configure SIM cards
once they show up (probably in ModemManager). Until then, try to make it
possible to workaround this by introducing a configurable delay to wait
for the SIM card. It is set to minimal "1 seconds" by default but could
be increased by the user if needed to give the modem enough time to detect
the SIM card.

This reverts commit 683b543a3b ("msm-modem-uim-selection: Don't wait
for SIM (MR 2470)" but with a new configuration mechanism and a default
of 1 second only.

[ci:skip-build] already built successfully in CI
2021-12-10 10:24:11 -08:00
Minecrell 11709bdb54 main/linux-postmarketos-qcom-msm8916: upgrade to 5.15 (MR 2632)
- Update to Linux 5.15
- Upstreamed many more patches
- Major rework of CPU core boot: This is now partially handled in lk2nd
  since mainline Linux does not want to support anything except PSCI on arm64.
- Major rework of "-modem" DTB variants. Now all device trees only contain
  the full modem configuration. lk2nd can patch the DTB at runtime to get
  the alternative "no-modem" variant where audio bypasses the modem entirely.
- Rename some Samsung device trees to drop variant suffixes (e.g. *lte/*wifi)
- Lots of other cleanup everywhere
- Probably many other things I forgot :)

Device changes:
  - samsung-gtelwifiue: new device tree
    - eMMC, SD card, USB, Buttons
    - Display (no brightness control yet)
    - Touchscreen
  - gt58: touch keys and some touch fixes
    - Note: Multi-touch seems broken at the moment :<
  - samsung-a2015/samsung-serranove:
    - Battery: Report voltage as uV
    - Touch keys: Allow changing function from userspace

Kernel config changes:
  - Enable required options for AppArmor and IWD

[ci:ignore-count]
[ci:skip-build]: already built successfully in CI
2021-11-21 19:11:49 +01:00
Minecrell 3a9898689d <msm8916>: drop variant suffixes from dtb names (MR 2632)
The new kernel version now has the variant suffixes dropped from the
DTB file names as well.
2021-11-21 19:10:58 +01:00
Minecrell 46a7f0ae08 community/arrow-db410c: add _pmb_select="soc-qcom-msm8916-rproc" (MR 2632)
This allows disabling the modem explicitly to get a bit more RAM.
It's also not _particularly_ useful on DB410c because it only provides GPS.
2021-11-21 19:10:58 +01:00
Minecrell 5cdf33cf1c testing/<msm8916>: use _pmb_select="..." instead of kernel variants (MR 2632) 2021-11-21 19:10:58 +01:00
Minecrell dd935c0d58 community/<msm8916>: use _pmb_select="..." instead of kernel variants (MR 2632) 2021-11-21 19:10:58 +01:00
Minecrell f427a49e42 htc-m8qlul: drop kernel variants (MR 2632)
The mainline-modem variant does not actually exist yet and this should
be preferably implemented using the new soc-qcom-msm8916-rproc selection
in the future.
2021-11-21 19:10:58 +01:00
Minecrell a9412824ea community/soc-qcom-msm8916: introduce more flexible rproc selection (MR 2632)
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]: ...
2021-11-21 19:10:58 +01:00
Minecrell 674c7f63ad modem/msm-modem: skip SIM configuration on APQ* SoCs (MR 2632)
Unfortunately, msm-modem-uim-selection causes boot delays on APQ*
SoCs (without most modem functionality) at the moment. The modem will
never show up so it keeps waiting and waiting.

To allow using the same rootfs on devices that have MSM* and APQ*
variants (e.g. Samsung MSM8916 tablets), add a quick check at the
beginning of the service to cancel early when running on an APQ* SoC.
This is easy to check because the SoC is actually exposed in sysfs.
2021-11-21 19:10:58 +01:00
Minecrell 04f2850483 community/linux-asus-me176c: upgrade to 5.4.159 (MR 2685)
[ci:skip-build]: already built successfully in CI
2021-11-18 18:06:47 +01:00
Minecrell bf44cbb9f4 testing/firmware-qcom-adreno-extra: add missing replaces firmware-adreno (MR 2635)
This should fix upgrading from firmware-adreno to one of the subpackages
in case the new package is installed before firmware-adreno is uninstalled.
2021-10-26 12:53:31 +03:00
Minecrell eff90a2071 <msm8916+secure boot-venus>: use separate firmware packages (MR 2619)
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
2021-10-23 14:41:30 -07:00
Minecrell f84cb52a7f <msm8916+secure boot+venus>: use separate firmware packages (MR 2619)
Rule C: Devices with secure boot but without venus on the firmware
        partition need:

  1. GPU firmware (firmware-qcom-adreno-a300)
  2. msm-firmware-loader (for wcnss, modem)
  4. device-specific -wcnss-nv firmware
  5. device-specific -venus firmware
2021-10-23 14:41:29 -07:00
Minecrell d0f2a3d940 <msm8916-secure boot-modem>: use separate firmware packages (MR 2619)
Rule B: Devices without secure boot but without modem support need:
  1. GPU firmware (firmware-qcom-adreno-a300)
  3. firmware-qcom-msm8916-wcnss: more recent wcnss firmware
  4. device-specific -wcnss-nv firmware
  5. firmware-qcom-msm8916-venus: some packaged venus firmware
2021-10-23 14:41:29 -07:00
Minecrell c72ed66a27 <msm8916-secure boot+modem>: use separate firmware packages (MR 2619)
Rule A: Devices without secure boot need:
  1. GPU firmware (firmware-qcom-adreno-a300)
  2. msm-firmware-loader (for modem)
  3. firmware-qcom-msm8916-wcnss: more recent wcnss firmware
  4. device-specific -wcnss-nv firmware
  5. firmware-qcom-msm8916-venus: some packaged venus firmware
2021-10-23 14:41:29 -07:00
Minecrell 67176df2f6 arrow-db410c: use separate firmware packages (MR 2619)
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.
2021-10-23 14:41:29 -07:00
Minecrell 0b269a5601 firmware-<msm8916>: squash firmware blobs (MR 2619)
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.
2021-10-23 14:41:29 -07:00
Minecrell 3193027687 community/firmware-bq-picmt: squash firmware blobs (MR 2619)
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.
2021-10-23 14:41:29 -07:00
Minecrell ae715e09fa main/msm-firmware-loader: add dummy wcnss subpackage (MR 2619)
firmware-qcom-msm8916-wcnss is a virtual package used for MSM8916
devices without secure boot (i.e. device that do not require signed
firmware). For those it's best to install more recent firmware by
default rather than using the firmware on the firmware partition.

firmware-qcom-msm8916-wcnss is provided by firmware-qcom-db410c-wcnss
by default, however it's still useful to make it possible to switch to
the stock firmware on the firmware partition if needed. To allow that,
add a dummy msm-firmware-loader-wcnss package that provides the virtual
package using the msm-firmware-loader.

  # apk add msm-firmware-loader-wcnss
  (1/2) Purging firmware-qcom-db410c-wcnss (1034.2.1-r2)
  (2/2) Installing msm-firmware-loader-wcnss (1-r1)
2021-10-23 14:41:28 -07:00
Minecrell 1d923c2aeb community/firmware-qcom-db410c: package all firmware, squash, new paths (MR 2619)
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
2021-10-23 14:41:28 -07:00
Minecrell 2de04bc4ae testing/firmware-adreno: rename to -qcom-adreno-extra, split into subpkgs (MR 2625)
Make the package consistent with firmware-qcom-adreno packaged from
linux-firmware, but keep them separate for legal reasons. The firmware
packaged in firmware-qcom-adreno-extra does not have a proper license.

[ci:ignore-count]
[ci:skip-build] already built successfully in CI
2021-10-23 14:32:53 -07:00
Minecrell d90dc7d4b3 community/firmware-qcom-adreno: new aport (MR 2625)
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
2021-10-23 14:32:53 -07:00
Minecrell 038186fd71 firmware-<msm8916>: drop unused firmware subpackages (MR 2613)
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]
2021-10-21 13:53:45 +02:00
Minecrell a901d4575d asus-z00l: stop installing venus firmware (MR 2613)
Apparently this firmware is also available via the msm-firmware-loader
already so there is no need to redistribute this and waste space on rootfs.
2021-10-21 13:53:45 +02:00
Minecrell 0163ac2624 xiaomi-wt88047: fix replaces/provides of subpackages (MR 2613)
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.
2021-10-21 13:53:45 +02:00
Minecrell 9c8a189e6d motorola-osprey: use firmware from harpia (MR 2613)
The files packaged in firmware-motorola-osprey-wcnss-nv and
firmware-motorola-osprey-venus seem completely identical to those
of harpia, so there is no need to package them twice. There are some
differences in modem/wcnss firmware but those are now covered by the
msm-firmware-loader.
2021-10-21 13:53:45 +02:00
Minecrell 74e8166c7d main/postmarketos-base: fix file permissions of /etc/sudoers (MR 2610)
Installing postmarketos-base currently changes the file permissions
of /etc/sudoers:

  # apk add sudo
  # stat /etc/sudoers
  Access: (0440/-r--r-----)  Uid: (    0/    root)   Gid: (    0/    root)

  # apk add postmarketos-base
  # stat /etc/sudoers
  Access: (0044/----r--r--)  Uid: (    0/    root)   Gid: (    0/    root)

The file mode 0044 decodes to:
  - User *cannot* read
  - Group can read
  - Other can read

which does not make any sense. The "sudoers" man page makes it very
clear that this file should have a file mode of 0440 [1]
("readable by owner and group, writable by none").

This looks like a bad typo. However, given that only read permissions
were given out this shouldn't have major security implications
(except allowing all users to see who can use sudo).
Install the file with 0440 instead of 0044 to fix this:

  # apk add postmarketos-base
  # stat /etc/sudoers
  Access: (0440/-r--r-----)  Uid: (    0/    root)   Gid: (    0/    root)

[1]: https://www.sudo.ws/man/1.9.8/sudoers.man.html#Error_log_entries
2021-10-17 11:30:07 +02:00
Minecrell 2c0007a000 temp/ofono: upgrade to 9999 (1.33) (MR 2569)
Also try removing the build workaround, hopefully the problem was
magically fixed somehow.
2021-10-07 08:37:31 +02:00
Minecrell f9fae7bf4e CI: wiki: check if device name is on Renamed Devices page (MR 2559)
Since the wiki applies to all branches, renaming devices is really
difficult without breaking the wiki check. To simplify this, download
the Renamed Devices page additionally, and just print a WARNING if
a device is missing in the wiki, but is listed there.
2021-09-28 11:55:37 +02:00
Minecrell 6504eaca6d samsung-klte: replace modem-firmware-mount with msm-firmware-loader (MR 2431)
msm-firmware-loader is pretty similar to klte's modem-firmware-mount
except that it sets up the symlinks dynamically. The nice thing about
it is that it seems to just work. :)

[ci:ignore-count]
2021-09-27 15:54:05 +03:00
Minecrell e75d04503a asus-z010d: use msm-firmware-loader (MR 2431) 2021-09-27 15:54:04 +03:00
Minecrell d228d5f87a asus-z00l: use msm-firmware-loader (MR 2431) 2021-09-27 15:54:04 +03:00
Minecrell 27bfbb78d1 oppo-a51f: do not use msm-firmware-loader (MR 2431)
But drop custom venus firmware since that should not be needed.
2021-09-27 15:53:55 +03:00
Minecrell 271f30eca8 motorola-osprey: use msm-firmware-loader (MR 2431) 2021-09-27 15:23:51 +03:00
Minecrell 933a9419c7 lg-m216: use msm-firmware-loader (MR 2431) 2021-09-27 15:23:51 +03:00
Minecrell 40a99aae30 lenovo-a6010: use msm-firmware-loader (MR 2431) 2021-09-27 15:23:51 +03:00
Minecrell 83686f48b2 lenovo-a6000: use msm-firmware-loader (MR 2431) 2021-09-27 15:23:51 +03:00
Minecrell f81d94d258 alcatel-idol347: use msm-firmware-loader (MR 2431) 2021-09-27 15:23:51 +03:00
Minecrell 4662042bfa wileyfox-crackling: use msm-firmware-loader (MR 2431) 2021-09-27 15:23:51 +03:00
Minecrell 9a62629825 bq-paella-downstream: use msm-firmware-loader (MR 2431) 2021-09-27 15:23:51 +03:00
Minecrell e7364b1f21 bq-paella: use msm-firmware-loader (MR 2431) 2021-09-27 15:23:50 +03:00
Minecrell 74239f039e motorola-harpia: use msm-firmware-loader (MR 2431) 2021-09-27 15:23:50 +03:00
Minecrell c21799cd2a modem/msm-modem: drop msm-modem-rpmsg (MR 2535)
This is no longer used by anyone and also should not be used anymore.
The new WWAN RPMSG CTRL for the WWAN subsystem is now the preferred
way to talk to the modem on MSM8916/MSM8939/MSM8974 and other similar SoCs.

[ci:skip-build]: already built successfully in CI
2021-09-19 17:03:37 +02:00
Minecrell 26b44a94f7 device/soc-qcom-msm8916: replace msm-modem-rpmsg with msm-modem (MR 2535)
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.
2021-09-19 17:03:31 +02:00
Minecrell d535b170e2 main/linux-postmarketos-qcom-msm8916: upgrade to 5.14 (MR 2535)
- Update to Linux 5.14
- Enable new RPMSG WWAN CTRL driver that is now used to communicate
  with the modem through the new WWAN subsystem in Linux
- Minor fixes for ARM32
- Enable some additional options in kernel config (F2FS, UHID, LED triggers)
- Add TravMurav as second maintainer
2021-09-19 17:03:31 +02:00
Minecrell 4c666d67aa arrow-db410c: also include DTB in "second" part of boot image (MR 2297)
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
2021-07-02 13:49:18 -07:00
Minecrell 37a4121e08 huawei-g7: new device (Huawei Ascend G7) (MR 2287)
The Huawei Ascend G7 is based on Qualcomm MSM8916 and therefore makes
use of linux-postmarketos-qcom-msm8916 as a close-to-mainline kernel.

Initially supported features:
  - USB
  - Storage (eMMC, SD card)
  - Display
  - Touchscreen, Buttons, Vibrator
  - Notification LED
  - WiFi/Bluetooth
  - Accelerometer, Magnetometer, Proximity
  - Audio
  - NFC

The modem needs more work to work around strange Huawei firmware mess.

Note that the Huawei shipped an outdated firmware version that does
not support booting aarch64 kernels (like used in this device port).
However, the device does not verify firmware signatures so it is
possible to flash firmware from other devices. This is mostly
described in the wiki, but unfortunately it's quite complex.

However, the aarch64 version of linux-postmarketos-qcom-msm8916
receives much more testing so I would like to avoid adding more
armv7 MSM8916 devices unless absolutely necessary.

For pointercal:
  Screen dimension 720x1280
  Touchscreen dimension (reported by evtest) 1100x1900
    720/1100*65536 = ~42896
    1280/1900*65536 = ~44151
  Offset doesn't seem to be needed.

[ci:skip-build] already built successfully in CI
2021-06-30 22:15:21 -07:00
Minecrell ef3f43963e main/linux-postmarketos-qcom-msm8916: upgrade to 5.13 (MR 2286)
- Update to Linux 5.13
- Upstreamed many more patches
- Various cleanup to BAM-DMUX driver to prepare for upstreaming
- Enable support for virtualization/KVM via https://github.com/msm8916-mainline/qhypstub
- Probably many other things I forgot :)

- Add tons of kernel config options for containers and nftables
- Add WireGuard to kernel config

Device changes:
  - huawei-g7: Initial support for Huawei Ascend G7
    - USB
    - Storage (eMMC, SD card)
    - Display
    - Touchscreen, Buttons, Vibrator
    - Notification LED
    - WiFi/Bluetooth
    - Accelerometer, Magnetometer, Proximity
    - Audio
    - NFC
  - lg-c50: Initial support for LG Leon LTE
    - USB
    - Storage (eMMC, SD card)
    - Buttons
    - WiFi/Bluetooth
    - Vibrator
    - Display
  - longcheer-l8150 (wileyfox-crackling): Fix proximity sensor
  - motorola-surnia: Add audio and modem
  - samsung-j5nlte: Add buttons
  - samsung-j5xlte: Initial support for Samsung Galaxy J5 (2016)
    - USB
    - Storage (eMMC, SD card)
    - Buttons
  - samsung-serranovelte: Add USB-OTG detection

[ci:skip-build] already built successfully in CI
2021-06-30 22:12:19 -07:00
Minecrell 99c95f57d2 modem/rmtfs: upgrade to 0.2_git20210408, start before oFono/MM (MR 2251)
At the moment, oFono/MM are usually stopped after rmtfs on shutdown.
This does not make sense, since the modem managed by oFono/MM will
disappear once rmtfs is stopped. Add a "before ofono modemmanager"
to make sure that OpenRC will stop oFono/MM before rmtfs on shutdown.

This may or may not fix some occasional hangs during shutdown,
but it definitely makes it possible for oFono/MM to shutdown cleanly.
2021-06-16 01:11:25 +03:00
Minecrell 0b77700f79 cross/gcc-*: rebuild with changes from Alpine
ERROR: unable to select packages:
  libstdc++-10.3.1_git20210424-r1:
    breaks: g++-aarch64-10.3.1_git20210424-r0[libstdc++=10.3.1_git20210424-r0]
    satisfies: g++-10.3.1_git20210424-r1[libstdc++=10.3.1_git20210424-r1]
               g++-10.3.1_git20210424-r1[libstdc++=10.3.1_git20210424-r1]
               gcc-10.3.1_git20210424-r1[so:libstdc++.so.6]
               libgmpxx-6.2.1-r0[so:libstdc++.so.6]
               binutils-aarch64-2.35.2-r2[so:libstdc++.so.6]
               binutils-2.35.2-r2[so:libstdc++.so.6]
               ccache-4.3-r0[so:libstdc++.so.6]
               lzip-1.22-r0[so:libstdc++.so.6]
  gcc-10.3.1_git20210424-r1:
    breaks: g++-aarch64-10.3.1_git20210424-r0[gcc=10.3.1_git20210424-r0]
    satisfies: g++-10.3.1_git20210424-r1[gcc=10.3.1_git20210424-r1]
               build-base-0.5-r2[gcc]
2021-06-11 21:08:00 +02:00
Minecrell 501c888dc8 temp/ofono: upgrade to 9999 (1.32), match WWAN QMI ports (MR 2227) 2021-06-07 17:07:37 +02:00
Minecrell 5012bf043e unmaintained/samsung-a5lte-downstream: new device (Samsung Galaxy A5) (MR 2177)
[ci:skip-build] Already built fine on CI
2021-05-20 02:36:39 +03:00
Minecrell 81e081b45b unmaintained/samsung-a5ulte-downstream: new device (Samsung Galaxy A5) (MR 2177) 2021-05-20 02:01:22 +03:00
Minecrell 96c3a7450a community/samsung-a3(u)lte: enable screen in initfs (MR 2110)
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.
2021-04-17 23:04:44 -07:00
Minecrell 7a8b981dba community/samsung-serranovelte: enable screen in initfs (MR 2110)
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.
2021-04-17 23:04:44 -07:00
Minecrell 2b54e057b5 community/samsung-a5(u)lte: enable screen in initfs (MR 2110)
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.
2021-04-17 23:04:44 -07:00
Minecrell d463361835 community/motorola-harpia: enable screen in initfs (MR 2110)
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.
2021-04-17 23:04:44 -07:00
Minecrell c1c42c74b8 community/xiaomi-wt88047: move from testing (MR 2073)
[ci:skip-vercheck]: No meaningful change here
2021-04-16 13:16:45 +02:00
Minecrell cd9f02c573 cross/gcc-*: upgrade to 10.3.1_git20210409 2021-04-10 16:32:40 +02:00
Minecrell 667e3da398 modem/q6voiced: upgrade to 0_git20210408 (fix bad regression) (MR 2103)
When I upgraded tinyalsa to the new 2.0.0 major release (with breaking
changes) I failed to test q6voiced properly, even though I explicitly
had to rebuild it against the new tinyalsa version (see MR 1941).

In tinyalsa 2.0.0, calling pcm_open() does not automatically call
pcm_prepare() anymore, which is responsible for actually starting any
audio streams. This means that the old version of q6voiced is almost
entirely broken - only by pure luck it's sometimes possible to get
voice call audio working if you play other audio simultaenously while
a voice call is active. This does not work for the microphone though.

The new q6voiced version now calls pcm_prepare() explicitly to fix this.
2021-04-09 00:14:39 +03:00
Minecrell 3d50fe77da unmaintained/xiaomi-wt88047-downstream: new device (Xiaomi Redmi 2) (MR 2085)
This device port is unmaintained: The mainline port (xiaomi-wt88047)
is preferred. This is only intended for testing, and was used to validate
the battery/charging driver as one example. Various patches are used
for the downstream kernel that expose helpful information for debugging.

[ci:skip-build]: already built successfully in CI
2021-04-05 15:08:28 +02:00
Minecrell aa1eefc44a unmaintained/bq-paella-downstream: cleanup, add various debug patches (MR 2081)
These are various debugging related patches that I have used over the time
when attempting to get new features working for the mainline kernel.
Given that the downstream kernel is just intended for debugging in this case,
it seems convenient to add them to pmaports so I don't need to go search for
them in case I need them again in the future.

[ci:skip-build] Already built on CI
2021-03-31 23:49:26 +03:00
Minecrell fbdb5f9164 main/linux-postmarketos-qcom-msm8974: add BAM-DMUX patches (MR 2053)
These are required to make it work with the latest ModemManager patches,
especially the patch that switches BAM-DMUX to Raw-IP mode.

[ci:skip-build]: already built successfully in CI
2021-03-22 21:43:26 +01:00
Minecrell 0108b8ba6e main/linux-postmarketos-qcom-msm8916: upgrade to 5.11.7 (MR 2039)
- Update to Linux 5.11.7
- Upstreamed more patches
- Switch BAM DMUX (mobile data) driver to Raw-IP mode.
  This makes it work with the upstream version of ModemManager,
  reduces overhead a bit and is overall cleaner.
- Add QMI "memshare" driver which is needed for GPS to work on most
  MSM8916 devices.
  - GPS has been tested successfully on:
    - alcatel-idol347
    - lg-m216
    - longcheer-l8150 (wileyfox-crackling)
    - longcheer-l8910 (bq-paella)
    - motorola-harpia
    - motorola-osprey
    - samsung-a2015 (a3(u)lte, a5(u)lte)
    - samsung-serranovelte
    - wingtech-wt88047 (xiaomi-wt88047)
  - Needs more testing/investigation on:
    - asus-z00l
    - asus-z010d
    - wingtech-wt865x8

- Add SMB1360 battery/charger/OTG driver for longcheer-l8190
  and wingtech-wt88047.
- Rework TFA9895 speaker amplifier driver for potential upstreaming,
  make it work for TFA9897, add channel selection and a lot of cleanup.

- Add INSTALL_MOD_STRIP=1 to maybe reduce the size of modules a bit.
- Other things I forgot :)

Device changes:
  - alcatel-alto5-vdf: Initial support for Vodafone Smart prime 6
    - USB
    - Storage (eMMC, SD card)
    - Buttons
    - WiFi, Bluetooth
  - alcatel-idol347: Initial support for Alcatel Idol 3 (4.7")
    - USB
    - Storage (eMMC, SD card)
    - Display, Brightness
    - Touchscreen, Buttons, Vibrator
    - WiFi, Bluetooth
    - Accelerometer, Magnetometer, Gyroscope, Proximity
    - Audio (no headphones yet)
    - Modem (voice call audio needs some more minor changes)
  - asus-z00l
    - SD card
    - IMU (Accelerometer + Gyroscope), Magnetometer
  - lg-m216
    - Battery/charging
  - longcheer-l8150 (wileyfox-crackling)
    - Tweak battery values slightly for 25°C instead of 0°C
  - longcheer-l8910 (bq-paella)
    - Battery/charging
    - USB OTG
  - motorola-harpia
    - Add panel driver for "boe" panel
  - samsung-gt510wifi/matissevewifi:
    - Fix touchscreen
  - wingtech-wt88047 (xiaomi-wt88047)
    - Battery/charging
    - USB OTG

[ci:skip-build]: already built successfully in CI
2021-03-22 21:22:40 +01:00
Minecrell 47ec08d635 community/soc-qcom-msm8916: update UCM files (MR 2039)
- Fix speaker on xiaomi-mido
- Add UCM configuration for alcatel-idol347
2021-03-22 21:22:08 +01:00
Minecrell e9275054fa xiaomi-wt88047: include smb1360 (battery/charger driver) in initfs (MR 2039)
This is needed for USB to initialize correctly.
2021-03-22 21:22:08 +01:00
Minecrell b208647c58 bq-paella: include smb1360 (battery/charger driver) in initfs (MR 2039)
This is needed for USB to initialize correctly.
2021-03-22 21:22:08 +01:00
Minecrell 23d94d7b8c temp/ofono: add patch to update modem data format if necessary (MR 2037)
(Also sync with Alpine while I'm at it...)

This is necessary for mobile data to work on MSM8916-based devices
after some changes in the network driver (bam-dmux) to operate in
Raw-IP mode instead of Ethernet mode (which is somewhat broken).
2021-03-22 21:18:34 +01:00
Minecrell 86eff19e0b community/asus-me176c: fix splash screen width and phosh scaling (MR 2047)
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
2021-03-21 21:17:59 +01:00
Minecrell 2094a44b23 community/linux-asus-me176c: upgrade to 5.4.107 (MR 2047) 2021-03-21 21:17:57 +01:00
Minecrell a28c58a704 cross/binutils-*: fix build
aportgen generates this incorrectly, we don't want any subpackages
for these cross packages...
2021-03-18 13:41:12 +01:00