Mostly the GCC10 yylloc failure was seen but several others have been
observed:
* wireguard script was silently failing
* several gcc10 x86 errors
* a checksum from kernel.org has changed
Now we have 3 different gcc10 yylloc patches:
gcc10-extern_YYLOC_global_declaration.patch:
Linux < 4.2
linux4.2-gcc10-extern_YYLOC_global_declaration.patch:
Linux 4.2+
linux4.17-gcc10-extern_YYLOC_global_declaration.patch:
Linux 4.17+
[ci:skip-build]
[ci:ignore-count]
[ci:skip-vercheck]
With these kernel sources the device boots successfully,
sometimes. Usually, kernel panics and device reboots a couple of
times, but after a few attempts (maybe 1, maybe 7) it succeeds to
boot. The problems seem to be related to FIMC IS, unfortunately it
does not seem to be possible to just disable it in the kernel config,
as that leads to compilation errors.
I have so far just experimented with getting wifi up and running, but
it does not work out of the box even after adding firmware package
with files from TheMuppets, wpa_supplicant fails to connect and dmesg
is filed with lines like:
```
[ 112.509235] [L0: wl_event_handle: 3109] CFG80211-INFO2) wl_escan_handler : Couldn't find P2PIE in probe response/beacon
```
[ci:skip-build]: already built successfully in CI
Upstream keeps making breaking changes in patch releases.
Let's fork alsa-ucm-conf entirely for now instead of just patching
in some files to ensure that these files don't break every few months.
This fixes audio on MSM8916 devices when not using the modem.
This subpackage was removed when a proper fix for suspend was merged,
however apk doesn't know to purge this subpackage, so the old elogind
hook workaround stuck around. This workaround could probably be removed
once we're sure all folks on edge have installed this upgraded package
with the 'provides'...
- re-enable console suspend, which seems to be broken with elogind when
suspending (kernel gets hung up indefinitely in vt_waitactive)
- add a suspend hook to work around the musb driver not allowing the
device to suspend
Based on my testing, this option seems to prevent suspending via
elogind (using `loginctl suspend`). When console suspend is disabled,
the kernel gets hung up in the call to vt_waitactive, and elogind times
out trying to suspend.
qrtr-ns is now part of the Linux kernel (as of version 5.9), so
there is no need to start it in userspace anymore. It does not seem
to be needed (or working) on downstream either.
linux-postmarketos-qcom-msm8996 is the only mainline kernel which
is still on < 5.9. In preparation to make the qrtr dependency optional
for rmtfs, let's explicitly enable qrtr-ns for MSM8996 devices to avoid
causing regressions.
Update to kernel 5.9 with the following changes:
* Change tri-state key to macro keys instead of 'A', 'B' and 'C' keys.
[ci:skip-build]: already built successfully in CI
Initial support for Sony Xperia XA (codename: sony-tuba). Builds, can be
flashed, ssh connection through usb works, display works, touchscreen works,
no wifi or anything else.
According to the wiki pages, some interfaces can't be built for the
armhf architecture. This device is configured to armhf but it actually
supports armv7 architecture. Tested with a samsung-i9300.
This new version:
- Upgrades device config from upstream to v25
- Fixes a problem using modesetting driver on Xorg (lightdm
was broken because it now uses Xorg)
- Override GDK to use GLES (change from upstream Purism)
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.
Actually the display has been working in initramfs since MR 1261
(device-bq-paella: enable display and touchscreen on boot).
We should make it explicit in deviceinfo.
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