WIP: devices/oneplus6: add oneplus 6 and 6T devices

Open Caleb Connolly requested to merge oneplus6 into master

Hi, this MR is to add the OnePlus 6 and 6T to arm-profiles.

Currently they have the following featureset:

  • Display, GPU and hw accelerated graphics - working (lomiri runs very well)
  • Wifi, Bluetooth - Working, bluetooth can pair to an Android successfully but doesn't like to stay connect, I haven't tested bluetooth audio.
  • Haptics - Working, with a patched version of hfd-service on unstable (thanks @spikerguy )
  • Suspend - working, although the device suspends like a PC and takes some time to wake up.
  • Audio - Broken, kernel side drivers are missing, however I expect to have it working relatively soon.
  • Modem - While the modem itself works, it uses QRTR to talk to userspace and currently doesn't expose an AT port, ModemManager and ofono both have some work in progress patches to support this, with a patched build of ModemManager I was able to send a text.
  • GPS - Currently not functional, however apparently works just fine with a patched version of GPSD to support QRTR.
  • Cameras - Requires semi-proprietary sensor driver and fully proprietary driver for the ISP.

The kernel, firmware and some other needed packages have all been pushed to the unstable branch already, currently we're just missing a post-install package for the device.

Issues

  • Currently I select the pinephone post-install package, this applies all the tweaks needed to get lomiri to work, and doesn't cause any side effects on the device. However it does do some u-boot modifications that aren't needed.
  • On shutdown, the wifi firmware will crash and cause the hypervisor to bring the device into crashdump mode, this seems to be a systemd related issue as postmarketOS can shutdown fine, the same issue appears on stock Arch. It should be possible to fix this by adding a shutdown service to stop the modem remote processor completely before we start shutting. I've tested this but haven't added it yet.

Currently my fork of manjaro-arm-tools lives here: https://gitlab.com/sdm845-mainline/manjaro-arm/tools/-/tree/oneplus6

I'd like to cleanup my changes there and submit them as one or more MRs, all in all it allows any Android device with a Mainline kernel to get a Manjaro ARM port by packaging the kernel, firmware and creating a post-install package with device specific configuration options. I'd greatly appreciate any feedback on my approach there.

Edited by Caleb Connolly

Merge request reports