The qca (Bluetooth) and qcom (non-zap GPU) firmware blobs don't need to
be signed by the OEM, so let's use upstream versions to benefit from
fixes and updates done there.
The soc-qcom-sdm845* packages are mostly sufficient, but there are a few
issues that all MSM8998 devices on mainline will face, so include
workarounds for them in a generic package all device pkgs can depend on.
Kernel doesn't compile anymore, and it doesn't seem worth fixing it
again. The kernel has been added in 2017 as a stock mainline kernel from
that time with only two patches and wasn't maintained since then,
looking at git log --follow it was only patched to fix it up when
it didn't build.
As the device is a generic x86_64 tablet: if somebody has that
particular device, try to get the generic device-tablet-x64uefi running
instead.
The qbootctl service tells the bootloader that the current boot has
succeeded, so that the bootloader doesn't switch to the other slot after
~7 tries.
The swclock-offset dependency ensures that the time is set correctly
after a reboot, caused by the read-only RTC on Qualcomm.
[ci:skip-build]: already built successfully in CI
Patch header for 0027 was not formatted correctly. Fix that and
re-generate all other patches while we are at it.
[ci:skip-build] Already built successfuly on CI in MR
Also:
Fix camera on google-snow.
Enable video decoder.
Make boot.img smaller making kernel more modular and making FS-related
modules =y instead of =m (built-in file systems consume less space
than initramfs modules).
Reverts commit 70efe55031 for kernels that
started failing on bpo. I suspect it's caused by a change in binutils,
since I tried building linux-oneplus-billie2 with gcc6 and got the same
error (after trying other workarounds like disabling selinux for it, but
then it failed elsewhere).
We previously installed dtbs outside of the boot partition, so it
was necessary to copy them from the root partition to boot if you
wanted to utilise them in U-Boot scripts. This is no longer
necessary as we now install dtbs to the boot partition directly, so
remove this workaround and edit the U-Boot script to reflect the
change.
This device package represents several devices, so use plural form in
pkgdesc of APKBUILD:
pkgdesc="Google Hana Chromebooks"
However, when deviceinfo is already installed, it is intended to represent
only current device, so use singular form here:
deviceinfo_name="Google Hana Chromebook"
- 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
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. :)
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
Mesa behaves again, #1658 is fixed, so lets re-revert MR 3306.
Lets also add the dependency to the other devices using the same
graphics driver.
[ci:skip-build] Already built successfuly on CI in MR
- silence the wifi a bit, it really provides an enormous amout of spam
- enable pxp mem2mem video converter
[ci:skip-build] Already built successfuly on CI in MR
This isn't really a fix, but the device's framebuffer has only one mode and it's enough to get Xorg up and running.
[ci:skip-build]: already built successfully in CI
Add msm8939 SoC package to be used in addition to soc-qcom-msm8916.
For now it provides a shell script setting FD_MESA_DEBUG=nobin env var
to work-around graphical corruption seen on adreno 405 devices.
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.
Upgrade to fresh Linux release.
Enable more features in kernel from pmbootstrap kconfig check:
anbox, containers, iwd, nftables, zram.
Disable CONFIG_REGULATOR_DEBUG to reduce dmesg spam.
DRM and PANEL_SIMPLE are now built-in (DRM_MSM is still "m").
Switch to framebuffer from SIMPLEFB to tinydrm (SIMPLEDRM=y).
Switch APKBUILD to use "make zinstall" approach.
(Device packages might need small adjustments to initfs modules list.)
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
Add support for next devices:
- Asus Eee Pad Transformer TF101 and TF101G
- Asus Eee Pad Slider SL101
- Asus Transformer Prime TF201
- Asus Transformer Pad TF300T/TF300TG/TF300TL
- Asus VivoTab RT TF600T (Windows RT based)
- Asus Transformer Infinity TF700T
- Asus Transformer AiO P1801-T
- Asus Transformer PAD TF701T
- Pegatron Chagall based devices
Package has no dependencies.
Signed-off-by: Anton Bambura <jenneron@protonmail.com>
Signed-off-by: Maxim Schwalm <maxim.schwalm@gmail.com>
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
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
This is to emphasize the fact that this firmware package will work essentially
unmodified on the samsung-coreprimevelte and other Samsung PXA1908 phones as
well.
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
Having mesa-dri-gallium installed causes Xorg to crash. See #1658.
Furthermore, display works without at least with near-mainline kernel,
tested with osk-sdl and xfce4.
So if specific applications depend on it, it should be added as a
dependency there.
This reverts MR 3306
This is just a hotfix, Xorg/mesa should be tamed to not crash here
but analyzing that costs time.
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
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
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
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
The touchscreen currently is on i2c-gpio due to issues with the hardware
i2c. Include the module in initfs so the touch driver probes and is
usable in osk-sdl.
[ci:skip-build]: already built successfully in CI
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
This enables support for the oneplus3's QCA6174 WiFi chipset. The
`board-2.bin` file (overwriting the file with the same name from the
`linux-firmware-ath10k` package) is created from `bdwlan30.bin`, which
is extracted from the baseband modem firmware disk image,
`NON-HLOS.bin`. This board file has not yet been upstreamed.
Because I don't have access to the serial port yet, I begin with the
vendor kernel.
* Make display work by setting to 16bpp
[ci:skip-build]: already built successfully in CI
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
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.
The kernel is based on Samsung's downstream kernel for the device. Some
configuration changes are required to make the kernel to work:
* Tizen kernel uses SLP USB gadget, changed to Android USB gadget.
* sprdfb patches and modification on the devicetree files are required
to use the framebuffer.
* Other required pmOS kernel settings were enabled.
* Tizen does not use initramfs, use RAMDISK partition to store initramfs
of pmOS (like heimdall-isorec configuration). As far as I know, no
alternative OS exists for this device so this is the very first usage.
* Flash the root file system to USER, as ROOTFS is < 1 GB in size and
USER is about 2.7 GB.
samsung-kiran: Update device and firmware packages
* Changed kernel configuration for firmware path to follow postmarketOS.
* Post install script to mount CSA partition
CSA partition [1] contains non-volatile data for Tizen devices. As
Samsung Z1 uses this partition to store Wi-Fi and Bluetooth information,
mount this partition to use within postmarketOS.
[1] https://docs.tizen.org/platform/porting/kernel/
linux-samsung-kiran: Use lzop to decompress initramfs
This synchronizes behavior with other heimdall-isorec devices.
[ci:skip-build] Already built successfuly on CI in MR
Add udev rule to make feedbackd handle haptics.
With mesa where A619 is supported (which isn't packaged in pmaports
anyways but it's just one small patch that should go upstream in the
near future) Vulkan works absolutely fine, so install the driver for it.
[ci:skip-build] Already built successfuly on CI in MR
Add flash method fastboot so we can actually flash it with pmbootstrap,
remove outdated 90-android-touch-dev.rules and improve the formatting
throughout the APKBUILD.
[ci:skip-build] already built successfully in CI
Don't try to append the dtb if using the downstream kernel.
Fix for:
ERROR: File not found: /usr/share/dtb/qcom-apq8064-asus-nexus7-flo.dtb
Fixes: MR 2239 ("main/linux-postmarketos-qcom-apq8064: new aport")
[ci:skip-build] already built successfully in CI
This previously caused msm_pm_boot_init to incorrectly get handled as
__init function when it needs to be an __devinit function as it is
called by msm_pm_boot_probe, which is an __devinit function.
[ci:skip-build]: already built successfully in CI
The option `deviceinfo_flash_sparse_samsung_format` seems to work
fine on the xcover4lte.
Setting `deviceinfo_flash_sparse_samsung_format` to `1` (and
`deviceinfo_flash_sparse="true"`) causes heimdall to no longer hang
while the rootfs is being flashed.
[ci:skip-build]: already built successfully in CI
Merge and move Spreadtrum patches from these kernels to shared-patches:
* linux-finepower-f1
* linux-samsung-{gtel3g,gtelwifi,j1mini3g,j3xnlte}
* linux-zte-p731a20
[ci:skip-build]: already built successfully in CI