Install msm-fb-refresher, it's needed for the screen to refresh.
Update the kernel to a new commit with several patches applied to fix
the touchscreen - before it wasn't working properly.
Switch architecture from armhf to armv7.
[ci:skip-build]: already built successfully in CI
They are available in Alpine again for armhf and armv7.
Networkmanager is still missing, so we keep it it temp for now. Upstream
patch submitted: https://github.com/alpinelinux/aports/pull/7626
Related: #244
Due to the following dependency chain, it is currently not available
in Alpine for armhf and armv7. This breaks postmarketos-base.
postmarketos-base -> networkmanager -> polkit -> mozjs60
This can be reverted, when networkmanager is back for arm{hf,v7} in
Alpine. The mozjs60 arm fix is from here:
https://github.com/alpinelinux/aports/pull/7561
Related: #244
Rebuild to fix missing dependencies:
so:libicui18n.so.63, so:libicuuc.so.63
Currently we are facing another upstream compatibility issue with
Alpine, which is why CI will fail: polkit and therefore
networkmanager don't exist for armhf, armv7. See #244 for details.
This rebases the Pixel 3 XL patches on top of current
linux master branch (5.1-rc7 + a few more commits since then)
Also enabled KASLR in the defconfig.
[ci:skip-build]: this kernel takes more than one hour to build.
The phone boots postmarketOS and shows logo.
USB networking and flashing via fastboot works.
Display is currently broken but I will try to fix it soon.
[ci:skip-build]: already built successfully in CI
This script triggers late initialization of some platform
drivers that cannot be probed at boot time, because for
example they use firmware blobs on partitions that are
not mounted during early kernel startup.
Disabled by default, can be enabled on per-device basis.
Plasma lockscreen is currently hard or impossible to unlock
using phone itself, that's why you should send a command to
ConsoleKit over DBus in a shell. This script saves from extra
typing.
Adjust the depends of the GCC-8 cross compiler packages after the change
from pmbootstrap!1778. This does not have any effect (since the GCC-8
aports don't have !tracedeps in options, in contrary to the other GCC
aports we ship). But it makes sure that we don't get any changes after
running the repository maintenance script from here:
https://wiki.postmarketos.org/wiki/Repository_maintenance
[ci:skip-build]: cosmetic change, build would take too long anyway
The postmarketos initramfs is larger than android initramfs. This causes
problems on some devices like htc-ace that have a very small boot
partition (4MB in htc-ace). I've been able to make the boot image small
enough to fit by compressing initramfs using lzma.
With this change it should be possible to change the compression in
deviceinfo like this: deviceinfo_initfs_compression='lzma'
or even deviceinfo_initfs_compression='lzma -9'. When no option is
specified it defaults to 'gzip -1'.
I've also added dependencies to compression utilities for all possible
initramfs compression algorithms.
* Moved more PinePhone related kernel stuff to the upstream
* Added cma=256M so the CSI subsystem doesn't throw out-of-memory errors
when capturing at higher than 1280x720 resolutions (but it still hangs)
* Removed a lot of modules that get compiled for DVB tuners after
enableing the camera stuff.
[ci:skip-build]: doesn't finish in time
Explicitly depend on mpc1. Our generated gcc aports use the !tracedeps
option, so we need to explicitly set the libraries it depends on.
This has mostly not been an issue, as we are installing our gcc
packages together with Alpine's gcc package, which causes the libraries
to get installed anyway.
Fixes#236.
[ci:skip-build]: takes too long to build.
* Inverted the X-axis on the touchscreen
* Enabled the driver for the wifi/bluetooth chip and added it to the dts
* Added a horrible hack for making the touchscreen work
This also decreases the kernel version because the previous version I've
used was technically incorrect.
[ci:skip-build]: doesn't finish in time
The config file for container from Halium repo is outdated, and will not
load on latest version of LXC, here is the error when you start the container:
postmarketos:~$ sudo lxc-start android
lxc-start: android: confile.c: parse_line: 2447 Unknown configuration key "lxc.rootfs"
lxc-start: android: parse.c: lxc_file_for_each_line_mmap: 142 Failed to parse config file "/var/lib/lxc/android/config" at line "lxc.rootfs = /var/lib/lxc/android/rootfs"
Failed to load config for android
lxc-start: android: tools/lxc_start.c: main: 264 Failed to create lxc_container
postmarketos:~$
This pull request updates the config file, but also use the latest
commit.
device-xiaomi-santoni:
* Added initial audio support (generated by xml2ucm)
* Fixed splash screen size (720x1280), which also fixes the screen
showing "posma"
firmware-xiaomi-santoni:
* Firmware files are added (contains ADSP and WCNSS firmwares), these
* files are from Developer ROM 03/29 by Xiaomi.
linux-xiaomi-santoni:
* Kernel updated to 3.18.138.
* Modernized GCC, it'll now compile with the latest GCC from Alpine.
[ci:skip-build]: already built successfully in CI
This package was a workaround for out-of-tree modules (wireguard). We
have dropped the wireguard kernel module package already, and since
kernel-scripts is failing to build now (it would need to be updated),
let's drop it as well.
If somebody wants to bring back *and maintain* the wireguard
out-of-tree kernel module, I've documented how we had done it here:
https://wiki.postmarketos.org/wiki/Out-of-tree_kernel_modules
[ci:skip-build]: building the kernels that have been adjusted to drop
kernel-scripts related code would take too long for CI,
but I'm making sure that everything still builds before
merging.
* fix patch file names and reorder them properly
* add patch to fix framebuffer memory allocation
* add patch to fix compile warning for iptables plugin xt_connbytes
* add patch to properly assign MAC address for USB RNDIS
* add backport patch from upstream about O_PATH file descriptors
[ci:skip-build]: already went through successfully in CI
@drebrez originally based klte port on lineage-16.0 branch (Android 9),
but we need compatibility with Android 7.1, so use lineage-14.1 branch.
Also tidy up downstream kernel config a little bit (pass it through
pmbootstrap kconfig edit, change nothing, exit with saving).
This adds the required firmware to allow ip link set wlan0 up, which
then enables Samsung Hero-Devices, the Galaxy S7 (herolte) and the
Galaxy S7 Edge (hero2lte), to connect to the Internet.
* Created seperate DTB for the devkit named sun50i-a64-dontbeevil.dts so
it can easily be edited and the diff remains readable in gitlab
* Added patch to build the new dtb
* Added the ST LIS3MDL to the new dtb (Magnetometer)
* Added the SensorTek STK3335 to the new dtb (Proximity and ambient
light sensor)
* InvenSense MPU-6050 to the new dtb (Accelerometer and gyroscope)
* Added CSI bus and OV5640 camera
Remaining issues:
* The STK3310 module doesn't load automatically
* Camera doesn't want to capture but does show up as /dev/video0
[ci:skip-build]: doesn't finish in time
The working directory can contain other files. For example pmbootstrap uses
the same directory for generating android recovery zip files. Extra files
can end up being archived into the recovery zip.
This change explicitly passes the list of files to be archived.
Built and tested on x86_64, everything works as expected.
[ci:skip-build]: ollieparanoid made sure, that this builds for all
relevant arches. With crossdirect, so that means it is
pretty stable now \o/
This patches the path that the kernel tries to load the Wifi chip's
firmware from. If someone with an Galaxy S7 Edge would test this -
although I have no reason to believe that it would not work on the Edge
- then this patch could also be applied to the linux-samsung-hero2lte
package.
[ci:skip-build]: already built successfully in CI
All bugs should be ironed out now. Let's get some more testing by
enabling crossdirect in CI again. The crossdirect feature is still only
in pmbootstrap master, not in the latest pmbootstrap release. But if it
works without problems for some time, we're ready to make a release.
This reverts commit 6e3252e401.
Cross linker (e.g. ld from binutils-armhf) does not support any method
of setting additional link paths, and this causes problems when building
various packages. Work around this problem by calling the qemu binary
instead of the cross binary from the native chroot, whenever we are
linking.
I have tested that this allows successfully building hello-world,
coreinfo, libhybris for armhf. So this fixes#227 and fixes#228.
Regarding performance, this is the same way as distcc does it. We would
get a performance gain if we were able to use the cross-linker. But so
far I could not figure out how to patch the binutils source to make it
work like we want to have it. Maybe I'll ask on some binutils mailing
list for advice. In the meantime, this workaround should make
crossdirect work for all use-cases, and it is still faster than the
previous distcc setup, because we can avoid the overhead of setting up
and running a ssh server locally to work around missing authentication
in distcc (see pmbootstrap!1649). Let's test this for some more time,
and then make a pmbootstrap release that rolls out crossdirect for
everyone.
With this patch the power button (the one you use to turn it on)
suspends the device. This should allow to save more energy with respect
to just turning the screen off (slider button).
I tested myself on Nokia N900.
[ci:skip-build]: already built successfully in CI
This is basically just the packages for the Galaxy S7 Edge (hero2lte).
I only needed to change a few Kernel config options, so that the
colors are displayed correctly. The options regarding
CONFIG_PANEL_S6E3HF4_WQHD and CONFIG_PANEL_S6E3HA3_DYNAMIC probably
solve this issue, but I modified the other options as well. I got the
differences by diffing:
arch/arm64/configs/exynos8890-{hero2lte,herolte}_defconfig
Booting, USB networking and the display work! I can't say anything about
flashing via heimdall as this tool scares me. Following what WilliamO7
wrote on the device page, I flashed it by sideloading the android
recovery zip.
[ci:skip-build]: already built successfully in CI
Work around for issue #1715
Link qemu static binaries to jemalloc. This malloc implementation does not
appear to be susceptible to the deadlock after fork issue.
This is package is meant to work around the qemu static deadlock while
cross-compiling.
- pmbootstrap binfmt_misc chroots on arm hosts are untested
- upstream jemalloc package has armv7 disabled. It is uncertain what is
wrong with jemalloc for armv7.
For these reasons, disable the arm packages.