Building your merge request… This page will update when the build is complete.
Newer Qualcomm SoCs do not expose their sensors directly, instead they use a DSP which is called Snapdragon Sensor Core.
The latter uses QMI to transfer messages where the content of these messages is encoded as Protobuf.
These sensors are supported by the newly created libssc
library which uses libqmi
and protobuf-c
libraries.
This library is integrated with iio-sensor-proxy
to expose these sensors to Phosh and other UIs which use iio-sensor-proxy
.
This MR allows:
libqmi
: support for QRTR-only services, sent upstream: https://gitlab.freedesktop.org/mobile-broadband/libqmi/-/merge_requests/346
iio-sensor-proxy
: libssc
integration. Will send upstream once the rest is merged as everything comes together here.linux
: FastRPC and SLPI patches for SDM845, sent upstream. Upstream patches required to revert several ones in downstream SDM845 mainline Linux tree since they supersede the downstream patches. Downstream pulled in the patches already.
firmware-shift-sdm845
: sensor calibration and registry files, sent upstream and merged: https://gitlab.com/sdm845-mainline/firmware-shift-sdm845/-/merge_requests/1
hexagonrpcd
: DSP filesystem access daemon, SDM845 support accepted upstream: https://gitlab.com/flamingradian/sensh/-/merge_requests/1 Will send to Alpine once a release is made.Do not ship this yet, this MR is aimed at testing on more devices than the SHIFT6mq. Seems to be working great, moving things upstream now.
Some issues remain with the orientation matrixes of the sensors, but might be solved soon.
Testing welcome on all kinds of Qualcomm devices such as SDM670/SDM845/SMxxx but requires changes to your device packages such as firmware which you need to figure out yourself
12/12/2023: safe to be merged, still needs some parts upstreamed, see dependencies. Planned to do that soon.
Pull the firmware from your device and add it to the firmware package. See the SHIFT6mq one for paths and as example.
Sensors can be tested with monitor-sensor
:
root
and then monitor-sensor --$SENSOR
geoclue
user first: su geoclue -s=/bin/sh
and then monitor-sensor --compass
. Be aware that this user cannot access the other sensors when using the geoclue
user.