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.
UART and SSH work and HDMI works in u-boot (just like the pine-a64lts).
It should work now with display and xorg/weston works directly after
installing. Plasma mobile doesn't work directly because both kms and
fbdev are enabled and kms doesn't work yet.
linux-postmarketos-allwinner: update to 5.0.0-rc3 with patches for this
devkit, tested on this device and on pinea64lts (the only other device
using the allwinner kernel).
[ci:skip-build]: won't finish in time
usb networking works
echo 100 > /sys/devices/platform/msm_fb.590593/leds/lcd-backlight/brightness
cat /sys/devices/virtual/graphics/fb0/modes > /sys/devices/virtual/graphics/fb0/mode
to get screen working
[ci:skip-build]: already built successfully in CI
This device is x86_64 and has a 32-bit UEFI, so I need to install
32-bit grub (AFAIK it's the only bootloader capable of loading a 64-bit
kernel from 32-bit).
The grub-efi-x86 package has been generated with pmbootstrap.
Instead of running compilers directly, let them go through the native
ccache binary. Note that it will still use the foreign arches cache dir
because the native cache dir would be at /native/home/pmos/.ccache.
Use execve instead of setenv and execv, because that didn't work with
LD_LIBRARY_PATH (ccache was complaining that it couldn't load zlib).
Enable -Werror, because we are maintaining this program and it helps
us catching bugs early.
Create symlinks for all supported arches (armhf, armv7, aarch64, x86_64,
x86), not only armhf and aarch64. Skip creating symlinks for the arch
that the package gets built for, so we can include x86_64 in the list
without conflicting with the ccache package from Alpine.
Link to ../../../bin/ccache instead of /usr/bin/ccache, so it works
properly with crossdirect (where we mount the native chroot to /native
in the foreign chroot).
Add symlinks for clang and clang++.
The problem behind swapped red and blue is inverted byte order in
framebuffer driver pixel format.
This patch sets the correct byte order in the framebuffer driver,
solving the swapped red and blue problem.
[ci:skip-build]: already built successfully in CI
Initial starting point to get the device booting. The downstream kernel
repository can be improved, see discussion in the merge request.
[ci:skip-build]: already built successfully in CI
device-xiaomi-santoni: use mdss-fb-init-hack to refresh the display, and
swapfile to fix "out of memory" when loading proprietary blobs.
I have tested the kernel, USB Networking, Display, USB OTG, Wi-Fi (with
proprietary blobs) works fine, through I haven't figured out how to get
Bluetooth and among of other stuff to work. Audio works. For more
information on how to get Wi-Fi and Audio to work, check out the wiki
page for this device, I have updated it.
[ci:skip-build]: already built successfully in CI
The problem behind swapped red and blue is inverted byte order in
framebuffer driver pixel format.
This patch sets the correct byte order in the framebuffer driver.
The previous workaround patch is removed because it fixes improperly
the red-screen issue, causing the swapped red and blue problem
that this commit solves
[ci:skip-build]: already built successfully in CI
This version has the "crossdirect" package, which will be required for
the new pmbootstrap code that uses the crossdirect compilation method by
default.
A set of wrapper executables that launch native cross compilers inside
foreign chroots. Speeds up cross compilation a lot, compared to the
distcc-sshd method.