Replace the old downstream port with a new aarch64 port running the
linux-postmarketos-qcom-msm8916 close-to-mainline(TM) kernel.
Most of the functionality is working:
- USB Network
- Storage (eMMC, SD card)
- Display, brightness control
- Touchscreen, buttons
- IMU (accelerometer+gyroscope)
- Notification LED
- Sound (Speaker, Headphones, Microphones)
- WiFi, Bluetooth
- Modem (SMS, voice calls, mobile data)
Coming soon (hopefully): Battery/Charging, USB-OTG (not working yet)
There are many variants of the device, so more changes to handle
differences between them may be needed in the future. For now,
the only relevant difference is the required modem firmware:
- wt88047 (global variant)
- wt86047 (China variant)
... have different kind of modems and they do not seem to work with
the firmware of the other one. The way this is handled in this device
package is that there is a separate kernel variant for both of them.
All other required firmware can be shared, and therefore there is no
differentiation needed when using the kernel variant without modem.
I renamed "wingtech-wt88047" to "xiaomi-wt88047".
My reasoning for that is the following:
- Wingtech is the ODM (original design manufacturer), they designed the
hardware and (probably) manufactured it. But postmarketOS port applies
to the combination of both hardware and firmware, and the firmware was
at least partially provided by Xiaomi.
- wt88047 looks lonely with the "wingtech" vendor, when all other Xiaomi
devices use "xiaomi", even though many from them were probably also
designed by Wingtech.
- We don't use the ODM hardware name for other devices either, e.g.
"wileyfox-crackling" would be "longcheer-l8150" with the same approach.
I think the port is better visible as "xiaomi-wt88047" (too bad Xiaomi
seemingly did not have a proper codename for this device...)
In preparation for adding mainline device port for Xiaomi Redmi 2
(wt88047), remove the downstream device port. It's still armhf
which makes it clear that it hasn't been tested for a long time.
The mainline port has many more features, also it is aarch64, which
is not compatible with the downstream kernel.
device-motorola-ocean: Add support for both downstream and mainline
kernel
device-motorola-ocean: Update dependency for downstream kernel
The dependency mentioned is wcnss-wlan.
Apply 1 suggestion(s) to 1 file(s)
Device package changes:
- Replace ALSA configs with dependency (soc-sprd-audio-sc8830)
- Add reboot-mode as dependency
Kernel package changes:
- Use dtbtool-sprd instead of dtbtool
- Move code and device tree to external repo
- Add patch for GCC10
- Add patches for framebuffer
- E1565 is original "grouper" and it's for modern devices similar to
tilapia
- PM269 is earlier produced Nexuses with different PMIC (not very often
seen)
Closes: https://gitlab.com/postmarketOS/pmaports/-/issues/647
This patch adds basic support for the Samsung Galaxy Tab E 9.6" (SM-T560).
Current status: Kernel builds successfully, flashing boot.img works along with ssh.
Update to Linux 5.8 and bring some nice improvements:
* Use geni for touch instead of CPU driven bitbang, this gives
noticeable performance gains in phosh when scrolling.
* Enable bluetooth (using firmware in updated firmware package), was
able to test bluetooth audio with bluetoothctl but phosh UI shows no
Bluetooth adapter.
* Add testing battery node using bq27541, battery always reported being
plugged in and at 100%.
* Fix UFS error spam due to a bug where writeboost is enabled for all
qcom devices - even though it isn't supported.
* Add quirk to wifi device to fix host capability request rather than
the dodgy driver edit that was used before.
* Minimise .config size to improve build times.
* Make schedutil the default governer
* Fix power button
Remove _downstream, _mainline in deviceinfo as there is only the
mainline kernel now. Fixup taken from a comment by Richard Qian in the
initial device port merge request. I've verified that the device package
builds. [ci:skip-build]
Fixes: 949effc0 ("acer-picasso: new device (Acer Iconia Tab A500) (MR 1308)")
Alpine's abuild is soon going to complain if an APKBUILD has more than
one "Maintainer:" listed. Work around it by renaming the additional
maintainers to "Co-Maintainer:". While at it, move the devicepkg reference
link to the top in device-xiaomi-santoni for consistency.
In postmarketOS, we require at least two maintainers for devices in
main, therefore it does not make sense to drop additional maintainers
from the file.
In Alpine, this change was made because pkgs.alpinelinux.org apparently
can't handle more than one maintainer. I looked into it, and it would
require a database change to add it there, so it does not seem worth the
effort. I also thought about extending abuild to add an environment
variable to skip the check, but then the package would not build with
plain abuild without using the env var.
Related: dd4cd9d606
[ci:skip-build] [ci:skip-vercheck]
[ci:skip-build]: build in CI is currently failing with 'BAD signature'
errors; probably caused by outdated Alpine packages in the dl-cdn
mirror, related to the musl-1.2 rebuild in Alpine edge.
samsung-skomer basically uses the same BCM4334 WiFi/BT chip as
samsung-golden, and the WiFi/BT firmware is also the same.
There seems to be a slightly different NVRAM file, so we package
that just to do things properly.
Signed-off-by: Danct12 <danct12@disroot.org>
(cherry picked from commit f509c39642341c7d4fb5d0d215a6cb581b4156d1)
[ci:skip-build] Takes too long. Builds fine locally
Enable CONFIG_CRYPTO_XTS for each kernel, so we can switch to using
aes-xts-plain64 as default cipher for cryptsetup (override with
"pmbootstrap --cipher"), instead of aes-cbc-plain64 (pmbootstrap#1940).
I have executed "pmbootstrap kconfig edit" on each kernel, and manually
toggled the option. The diff is not always clean, because for some
kernels it is apparently the first time, that menuconfig was executed on
the configs like that. In a few instances, it turned out that
CONFIG_ANDROID_PARANOID_NETWORK needed to be disabled too (this is
already a requirement, but as the config was incomplete, it was not
visible that this option was enabled). Very few times, I had to enable
CONFIG_EXPERIMENTAL in order to see and enable CONFIG_CRYPTO_XTS.
It would be great if we could automate such mass kconfig edits in the
future, see pmbootstrap#1942.
[skip ci]: I have verified, that every single one of these kernels builds.
CI will likely run out of time while downloading source tarballs.
Remove it, to prevent the following error:
rm: can't remove '.config': No such file or directory
This must have been necessary before, because the prepare script was
different, or abuild did something differently.
Make it possible to find the kernel config with "pmbootstrap kconfig
edit". While at it, also remove redundant -C "$builddir" arguments for
make (since prepare is running in $builddir already).
For most firmware packages we use a vendor- prefix to make it clear
who has provided the firmware. The firmware-rtl8723bt package is only
used for Pine64 devices and actually contains configs that are specific
to Pine64 hardware (e.g. rtl8723bs_config-pine64.bin).
Let's rename it to firmware-pine64-rtl8723bt to make this more clear.
Also cleanup the APKBUILD a bit and provide the LICENSE file in a -doc
subpackage so we can legally redistribute that firmware.
This is the downstream u-boot port for the Galaxy S2.
The load script has been slightly altered to load the kernel from the
KERNEL partition at the 512 KiB offset, instead of loading it from the
RECOVERY partition, since PostmarketOS places the second initramfs in
the RECOVERY partition.
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Newer Qualcomm SoCs (e.g. SDM845. MSM8953) seem to use a different
method to talk to the modem. There are no longer separate rpmsg/SMD
channels for QMI messags, instead the modem is also available through QRTR.
On these newer SoCs, installing msm-modem-mainline is pointless,
because the created /dev/modem device will not actually allow
communicating with the modem. However, you still need the part from
the base package (msm-modem), which installs+enables rmtfs.
To avoid confusion, rename the msm-modem-mainline subpackage to
msm-modem-rpmsg. Install only "msm-modem" on SDM845 because that
likely does not allow communication with the modem through RPMSG
anyway.
In the Linux kernel, the ST-Ericsson NovaThor U8500 SoC is barely
ever mentioned under the "NovaThor" name, more common are names like
U8500, Ux500, ST-Ericsson, STE, ...
Let's rename the kernel package to linux-postmarketos-stericsson
to make that more clear. Also cleanup the APKBUILD a bit while we're
at it, HOSTCC is unneeded, remove unnecessary depends, ...
bq-paella allows running unsigned firmware from other devices.
We can use that advantage to replace some of the original firmware
with newer versions from other devices. The DB410c has updated WCNSS
firmware that reportedly improves WiFi/BT coexistence (i.e. behavior
when both WiFi/BT are active at the same time).
Depend on the virtual "firmware-qcom-msm8916-wcnss" package to give
the user the choice which firmware version they would like to run.
The newer version from "firmware-qcom-db410c-wcnss" is installed by
default (since it has a higher "provider_priority"), but the user
can choose to replace it by running "apk add firmware-bq-picmt-wcnss".
Following discussions in
https://gitlab.com/postmarketOS/pmaports/-/issues/398, swclock has been
removed from postmarketos-base to avoid setting time incorrectly on
devices with a hardware clock. The various raspberry pi don't have
an hardware clock. This activate swclock back.
This adds a hwdb override for the trackpad that fixes the reported size, this fixes
the acceleration profile and palm detection in libinput.
Pulse now follows alsa paths for ucm files so the path for the rk3399 ucm has been
updated to match.
The DB410c is a SBC with APQ8016 SoC. It runs on mainline without
any patches. This port makes use of the existing linux-postmarketos-qcom-msm8916
kernel package that is used for other mainline MSM8916 devices.
Tested functionality:
- USB Network, USB Host (e.g. an USB keyboard)
- Flashing (Fastboot)
- Display (HDMI)
- WiFi/BT
- GPU
- Audio (HDMI)
- FDE
Not tested:
- GPS
Note: The firmware package is called firmware-qcom-db410c (instead of arrow)
because the firmware is provided directly by Qualcomm, not Arrow.
What works:
- Booting
- Display
- Touch
- USB Ethernet
What doesn't:
- Sound
- Wi-Fi
- Modem
- Camera
(NOTE: If the display doesn't work, try flashing your phone back to stock, then trying again.)
Just got done with my second port of postmarketOS, here's the device:
Amazon Fire 7 (2019) postmarketOS
Mediatek MT8163
600x1024 display
1GB RAM
Linux 4.9.77 (downstream kernel)
Untested:
- Wi-Fi
- Audio
Pretty much everything else
Works:
- Boots
- Touchscreen
- Battery percentage seems to show in Xfce
a5lte and a5ulte are almost identical hardware-wise, the separate
package is mainly necessary because they use different firmware
signatures.
Alexey Min agreed to do some testing occasionally :)
I noticed that the Samsung i9003 is actually a heimdall-bootimg device.
But at the same time, the kernel is assembled as if it is isorec.
[ci:skip-build]: already built successfully in CI
Update to a new kernel based on v5.7-rc6, adding the following new
features:
* Remoteproc support and firmware loading
* Panel drivers for OnePlus 6/T
* Adreno 630 support
* Anbox support
The new firmware-oneplus-sdm845 is required for these features and
devices will not have working display output without firmware
[ci:skip-build] Already built on CI
Generating a sparse rootfs speeds up flashing through Fastboot.
Also change some bootimg offsets to be more accurate to the one
actually used by the bootloader. (They will actually just be ignored,
since the bootloader always uses its own hard-coded ones.)
Make voice call audio work out of the box by starting q6voiced on
all installations with the modem. It might be nice to start it only
when oFono is installed and enabled, but q6voiced is quite minimal
so it does not seem worth the effort.
Some of the recommendations have changed upstream and a few devices
should be called differently now. The following changes are made:
- Headphone -> Headphone*s*
(29041c5220/include/use-case.h (L136))
- DigitalMic -> Mic
(1ad660ddee)
- HeadsetMic -> Headset
(29041c5220/include/use-case.h (L137))
- Add .conf suffix for verb configurations
- Set Playback/CaptureChannels as integer, not as string
- Remove empty Enable/DisableSequence sections
(d6a150d34f)
At the moment we have Contributor: lines on some packages (but not all of them),
but often they don't represent the actual contributors to the package very well.
E.g. when we added them retroactively to the device packages we only added
the initial contributor (which isn't necessarily the person
who made most of the work for a device...)
The Git history is the most representative source for figuring out
who contributed to a package, so there is no reason to duplicate that
into the APKBUILD.
[skip ci]: way too many packages