Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing /sys paths. Is this SensorHAL compatible with just one particular Linux version? #12

Open
fadedbee opened this issue Sep 22, 2021 · 0 comments

Comments

@fadedbee
Copy link

fadedbee commented Sep 22, 2021

I want to use the LSM6DSRX with Android 10, on a iMX8, where our vendor-provided kernel is Linux v4.19.42.

  • The datasheet for the LSM6DSRX states that it is 'Android compliant' - where is the official support?

In the meantime, I've added support for the LSM6DSRX to this SensorHAL, by following the changes in the commit which added support for the LSM6DSR: b881cc2#diff-fb707bbb2b47122299b6dab9e5b27be184c6df6fa3707ca81c2fbd0770f57673

I've also added kernel support for the LSM6DSRX by backporting the driver from v5.14-rc7 to v4.19.42.

(I also had to revert https://patchwork.kernel.org/project/linux-iio/patch/[email protected]/ in order to get in_accel_x_scale to appear. After this, the SensorHAL was happy to start.)

I now find that Android can see the LSM6DSRX, but that Android gets no events from it.

After adding extensive logging to util.cpp, I can see many paths in /sys which the SensorHAL is expecting but which the Linux kernel driver does not provide. (The Linux kernel drivers can change what is in /sys with each release. I don't think that /sys is a stable interface.)

  • Is this SensorHAL targetted at one specific Linux release? If so which one?
  • Are the missing /sys paths the cause of the lack of sensor events? Or should I be looking elsewhere? (The SensorHAL does not log any errors related to these non-zero return values, which confuses me.)

The missing paths in /sys are:

fadedbee@pc:~$ grep sysfs_ boot.log -A1 | grep errno -B1 | grep sys/bus | cut -d' ' -f 12 | sort | uniq
/sys/bus/iio/devices/iio:device0/hwfifo_watermark_max
/sys/bus/iio/devices/iio:device0/in_anglvel_x_offset
/sys/bus/iio/devices/iio:device0/in_anglvel_y_offset
/sys/bus/iio/devices/iio:device0/in_anglvel_z_offset
/sys/bus/iio/devices/iio:device0/injection_mode
/sys/bus/iio/devices/iio:device0/injection_sensors
/sys/bus/iio/devices/iio:device0/in_timestamp_offset
/sys/bus/iio/devices/iio:device0/in_timestamp_scale
/sys/bus/iio/devices/iio:device1/hwfifo_watermark_max
/sys/bus/iio/devices/iio:device1/in_accel_x_offset
/sys/bus/iio/devices/iio:device1/in_accel_y_offset
/sys/bus/iio/devices/iio:device1/in_accel_z_offset
/sys/bus/iio/devices/iio:device1/injection_mode
/sys/bus/iio/devices/iio:device1/injection_sensors
/sys/bus/iio/devices/iio:device1/in_timestamp_offset
/sys/bus/iio/devices/iio:device1/in_timestamp_scale

A fuller log:

fadedbee@pc:~$ grep sysfs_ boot.log -A1
09-21 10:07:25.887  3649  3649 I SensorHAL: debug sysfs_opendir, name: /sys/bus/iio/devices/
09-21 10:07:25.887  3649  3649 I SensorHAL: debug &data[0].iio_sysfs_path: /sys/bus/iio/devices/iio:device1
09-21 10:07:25.887  3649  3649 I SensorHAL: debug sysfs_opendir, name: /sys/bus/iio/devices/iio:device1/scan_elements
09-21 10:07:25.887  3649  3649 I SensorHAL: debug sysfs_write_uint, file: /sys/bus/iio/devices/iio:device1/scan_elements/in_accel_x_en, val: 1
09-21 10:07:25.887  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device1/scan_elements/in_accel_x_en
09-21 10:07:25.887  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device1/scan_elements/in_accel_x_en, val: 1, ret: 1
09-21 10:07:25.887  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device1/scan_elements/in_accel_x_index
09-21 10:07:25.887  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device1/scan_elements/in_accel_x_index, val: 0, ret: 1
09-21 10:07:25.887  3649  3649 I SensorHAL: debug sysfs_read_float file: /sys/bus/iio/devices/iio:device1/in_accel_x_scale
09-21 10:07:25.892  3649  3649 I SensorHAL: debug sysfs_read_float file: /sys/bus/iio/devices/iio:device1/in_accel_x_scale, val: 0.000598, ret: 1
09-21 10:07:25.892  3649  3649 I SensorHAL: debug sysfs_read_float file: /sys/bus/iio/devices/iio:device1/in_accel_x_offset
09-21 10:07:25.892  3649  3649 I SensorHAL: debug sysfs_read_float, -errno: -2
09-21 10:07:25.892  3649  3649 I SensorHAL: debug sysfs_opendir, name: /sys/bus/iio/devices/iio:device1/scan_elements
09-21 10:07:25.892  3649  3649 I SensorHAL: debug sysfs_write_uint, file: /sys/bus/iio/devices/iio:device1/scan_elements/in_accel_z_en, val: 1
09-21 10:07:25.892  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device1/scan_elements/in_accel_z_en
09-21 10:07:25.893  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device1/scan_elements/in_accel_z_en, val: 1, ret: 1
09-21 10:07:25.893  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device1/scan_elements/in_accel_z_index
09-21 10:07:25.893  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device1/scan_elements/in_accel_z_index, val: 2, ret: 1
09-21 10:07:25.893  3649  3649 I SensorHAL: debug sysfs_read_float file: /sys/bus/iio/devices/iio:device1/in_accel_z_scale
09-21 10:07:25.898  3649  3649 I SensorHAL: debug sysfs_read_float file: /sys/bus/iio/devices/iio:device1/in_accel_z_scale, val: 0.000598, ret: 1
09-21 10:07:25.898  3649  3649 I SensorHAL: debug sysfs_read_float file: /sys/bus/iio/devices/iio:device1/in_accel_z_offset
09-21 10:07:25.898  3649  3649 I SensorHAL: debug sysfs_read_float, -errno: -2
09-21 10:07:25.898  3649  3649 I SensorHAL: debug sysfs_opendir, name: /sys/bus/iio/devices/iio:device1/scan_elements
09-21 10:07:25.898  3649  3649 I SensorHAL: debug sysfs_write_uint, file: /sys/bus/iio/devices/iio:device1/scan_elements/in_timestamp_en, val: 1
09-21 10:07:25.898  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device1/scan_elements/in_timestamp_en
09-21 10:07:25.898  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device1/scan_elements/in_timestamp_en, val: 1, ret: 1
09-21 10:07:25.898  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device1/scan_elements/in_timestamp_index
09-21 10:07:25.898  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device1/scan_elements/in_timestamp_index, val: 3, ret: 1
09-21 10:07:25.898  3649  3649 I SensorHAL: debug sysfs_read_float file: /sys/bus/iio/devices/iio:device1/in_timestamp_scale
09-21 10:07:25.898  3649  3649 I SensorHAL: debug sysfs_read_float, -errno: -2
09-21 10:07:25.898  3649  3649 I SensorHAL: debug sysfs_read_float file: /sys/bus/iio/devices/iio:device1/in_timestamp_offset
09-21 10:07:25.898  3649  3649 I SensorHAL: debug sysfs_read_float, -errno: -2
09-21 10:07:25.898  3649  3649 I SensorHAL: debug sysfs_opendir, name: /sys/bus/iio/devices/iio:device1/scan_elements
09-21 10:07:25.898  3649  3649 I SensorHAL: debug sysfs_write_uint, file: /sys/bus/iio/devices/iio:device1/scan_elements/in_accel_y_en, val: 1
09-21 10:07:25.898  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device1/scan_elements/in_accel_y_en
09-21 10:07:25.898  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device1/scan_elements/in_accel_y_en, val: 1, ret: 1
09-21 10:07:25.898  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device1/scan_elements/in_accel_y_index
09-21 10:07:25.898  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device1/scan_elements/in_accel_y_index, val: 1, ret: 1
09-21 10:07:25.899  3649  3649 I SensorHAL: debug sysfs_read_float file: /sys/bus/iio/devices/iio:device1/in_accel_y_scale
09-21 10:07:25.903  3649  3649 I SensorHAL: debug sysfs_read_float file: /sys/bus/iio/devices/iio:device1/in_accel_y_scale, val: 0.000598, ret: 1
09-21 10:07:25.903  3649  3649 I SensorHAL: debug sysfs_read_float file: /sys/bus/iio/devices/iio:device1/in_accel_y_offset
09-21 10:07:25.903  3649  3649 I SensorHAL: debug sysfs_read_float, -errno: -2
09-21 10:07:25.903  3649  3649 I SensorHAL: debug sysfs_opendir, name: /sys/bus/iio/devices/iio:device1/scan_elements
09-21 10:07:25.904  3649  3649 I SensorHAL: debug euid: 1000
--
09-21 10:07:25.904  3649  3649 I SensorHAL: debug sysfs_write_int, file: /sys/bus/iio/devices/iio:device1/buffer/enable, val: 0
09-21 10:07:25.904  3649  3649 I SensorHAL: debug enable_events device_dir: /sys/bus/iio/devices/iio:device1, enable: 0
--
09-21 10:07:25.919  3649  3649 I SensorHAL: debug sysfs_read_str file: /sys/bus/iio/devices/iio:device1/sampling_frequency_available
09-21 10:07:25.925  3649  3649 I SensorHAL: debug sysfs_read_str file: /sys/bus/iio/devices/iio:device1/sampling_frequency_available, str: 13 26 52 104 208 416
09-21 10:07:25.925  3649  3649 I SensorHAL: , err: 0
--
09-21 10:07:25.930  3649  3649 I SensorHAL: debug sysfs_write_float, file: /sys/bus/iio/devices/iio:device1/in_accel_x_scale, val: 0.000598
09-21 10:07:25.940  3649  3649 I SensorHAL: debug st_hal_set_fullscale err: 0
--
09-21 10:07:25.940  3649  3649 I SensorHAL: debug sysfs_read_int file: /sys/bus/iio/devices/iio:device1/hwfifo_watermark_max
09-21 10:07:25.940  3649  3649 I SensorHAL: debug sysfs_read_int, -errno: -2
09-21 10:07:25.940  3649  3649 I SensorHAL: debug &data[1].iio_sysfs_path: /sys/bus/iio/devices/iio:device0
09-21 10:07:25.940  3649  3649 I SensorHAL: debug sysfs_opendir, name: /sys/bus/iio/devices/iio:device0/scan_elements
09-21 10:07:25.940  3649  3649 I SensorHAL: debug sysfs_write_uint, file: /sys/bus/iio/devices/iio:device0/scan_elements/in_anglvel_z_en, val: 1
09-21 10:07:25.940  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device0/scan_elements/in_anglvel_z_en
09-21 10:07:25.940  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device0/scan_elements/in_anglvel_z_en, val: 1, ret: 1
09-21 10:07:25.940  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device0/scan_elements/in_anglvel_z_index
09-21 10:07:25.940  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device0/scan_elements/in_anglvel_z_index, val: 2, ret: 1
09-21 10:07:25.941  3649  3649 I SensorHAL: debug sysfs_read_float file: /sys/bus/iio/devices/iio:device0/in_anglvel_z_scale
09-21 10:07:25.945  3649  3649 I SensorHAL: debug sysfs_read_float file: /sys/bus/iio/devices/iio:device0/in_anglvel_z_scale, val: 0.000153, ret: 1
09-21 10:07:25.945  3649  3649 I SensorHAL: debug sysfs_read_float file: /sys/bus/iio/devices/iio:device0/in_anglvel_z_offset
09-21 10:07:25.945  3649  3649 I SensorHAL: debug sysfs_read_float, -errno: -2
09-21 10:07:25.945  3649  3649 I SensorHAL: debug sysfs_opendir, name: /sys/bus/iio/devices/iio:device0/scan_elements
09-21 10:07:25.945  3649  3649 I SensorHAL: debug sysfs_write_uint, file: /sys/bus/iio/devices/iio:device0/scan_elements/in_timestamp_en, val: 1
09-21 10:07:25.945  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device0/scan_elements/in_timestamp_en
09-21 10:07:25.945  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device0/scan_elements/in_timestamp_en, val: 1, ret: 1
09-21 10:07:25.945  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device0/scan_elements/in_timestamp_index
09-21 10:07:25.945  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device0/scan_elements/in_timestamp_index, val: 3, ret: 1
09-21 10:07:25.945  3649  3649 I SensorHAL: debug sysfs_read_float file: /sys/bus/iio/devices/iio:device0/in_timestamp_scale
09-21 10:07:25.945  3649  3649 I SensorHAL: debug sysfs_read_float, -errno: -2
09-21 10:07:25.945  3649  3649 I SensorHAL: debug sysfs_read_float file: /sys/bus/iio/devices/iio:device0/in_timestamp_offset
09-21 10:07:25.945  3649  3649 I SensorHAL: debug sysfs_read_float, -errno: -2
09-21 10:07:25.945  3649  3649 I SensorHAL: debug sysfs_opendir, name: /sys/bus/iio/devices/iio:device0/scan_elements
09-21 10:07:25.946  3649  3649 I SensorHAL: debug sysfs_write_uint, file: /sys/bus/iio/devices/iio:device0/scan_elements/in_anglvel_y_en, val: 1
09-21 10:07:25.946  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device0/scan_elements/in_anglvel_y_en
09-21 10:07:25.946  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device0/scan_elements/in_anglvel_y_en, val: 1, ret: 1
09-21 10:07:25.946  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device0/scan_elements/in_anglvel_y_index
09-21 10:07:25.946  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device0/scan_elements/in_anglvel_y_index, val: 1, ret: 1
09-21 10:07:25.946  3649  3649 I SensorHAL: debug sysfs_read_float file: /sys/bus/iio/devices/iio:device0/in_anglvel_y_scale
09-21 10:07:25.950  3649  3649 I SensorHAL: debug sysfs_read_float file: /sys/bus/iio/devices/iio:device0/in_anglvel_y_scale, val: 0.000153, ret: 1
09-21 10:07:25.950  3649  3649 I SensorHAL: debug sysfs_read_float file: /sys/bus/iio/devices/iio:device0/in_anglvel_y_offset
09-21 10:07:25.950  3649  3649 I SensorHAL: debug sysfs_read_float, -errno: -2
09-21 10:07:25.950  3649  3649 I SensorHAL: debug sysfs_opendir, name: /sys/bus/iio/devices/iio:device0/scan_elements
09-21 10:07:25.950  3649  3649 I SensorHAL: debug sysfs_write_uint, file: /sys/bus/iio/devices/iio:device0/scan_elements/in_anglvel_x_en, val: 1
09-21 10:07:25.951  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device0/scan_elements/in_anglvel_x_en
09-21 10:07:25.951  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device0/scan_elements/in_anglvel_x_en, val: 1, ret: 1
09-21 10:07:25.951  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device0/scan_elements/in_anglvel_x_index
09-21 10:07:25.951  3649  3649 I SensorHAL: debug sysfs_read_uint file: /sys/bus/iio/devices/iio:device0/scan_elements/in_anglvel_x_index, val: 0, ret: 1
09-21 10:07:25.951  3649  3649 I SensorHAL: debug sysfs_read_float file: /sys/bus/iio/devices/iio:device0/in_anglvel_x_scale
09-21 10:07:25.955  3649  3649 I SensorHAL: debug sysfs_read_float file: /sys/bus/iio/devices/iio:device0/in_anglvel_x_scale, val: 0.000153, ret: 1
09-21 10:07:25.955  3649  3649 I SensorHAL: debug sysfs_read_float file: /sys/bus/iio/devices/iio:device0/in_anglvel_x_offset
09-21 10:07:25.955  3649  3649 I SensorHAL: debug sysfs_read_float, -errno: -2
09-21 10:07:25.955  3649  3649 I SensorHAL: debug sysfs_opendir, name: /sys/bus/iio/devices/iio:device0/scan_elements
09-21 10:07:25.955  3649  3649 I SensorHAL: debug euid: 1000
--
09-21 10:07:25.955  3649  3649 I SensorHAL: debug sysfs_write_int, file: /sys/bus/iio/devices/iio:device0/buffer/enable, val: 0
09-21 10:07:25.956  3649  3649 I SensorHAL: debug enable_events device_dir: /sys/bus/iio/devices/iio:device0, enable: 0
--
09-21 10:07:25.956  3649  3649 I SensorHAL: debug sysfs_read_str file: /sys/bus/iio/devices/iio:device0/sampling_frequency_available
09-21 10:07:25.957  3671  3696 I ServiceManager: Waiting for service 'package_native' on '/dev/binder'...
09-21 10:07:25.962  3649  3649 I SensorHAL: debug sysfs_read_str file: /sys/bus/iio/devices/iio:device0/sampling_frequency_available, str: 13 26 52 104 208 416
09-21 10:07:25.962  3649  3649 I SensorHAL: , err: 0
--
09-21 10:07:25.967  3649  3649 I SensorHAL: debug sysfs_write_float, file: /sys/bus/iio/devices/iio:device0/in_anglvel_x_scale, val: 0.001222
09-21 10:07:25.971  3649  3649 I android.hardwar: type=1400 audit(0.0:9): avc: denied { read } for name="iio:device1" dev="tmpfs" ino=10563 scontext=u:r:hal_sensors_default:s0 tcontext=u:object_r:iio_device:s0 tclass=chr_file permissive=1
--
09-21 10:07:25.977  3649  3649 I SensorHAL: debug sysfs_read_int file: /sys/bus/iio/devices/iio:device0/hwfifo_watermark_max
09-21 10:07:25.977  3649  3649 I SensorHAL: debug sysfs_read_int, -errno: -2
09-21 10:07:25.977  3649  3649 I SensorHAL: debug hardware/STMicroelectronics/SensorHAL_IIO/STMems_Android_Sensor_HAL_IIO/src/SensorHAL.cpp st_hal_open_sensors device_found_num: 2
--
09-21 10:07:25.977  3649  3649 I SensorHAL: debug sysfs_read_int file: /sys/bus/iio/devices/iio:device1/injection_mode
09-21 10:07:25.978  3649  3649 I SensorHAL: debug sysfs_read_int, -errno: -2
09-21 10:07:25.978  3649  3649 I SensorHAL: debug sysfs_read_str file: /sys/bus/iio/devices/iio:device1/injection_sensors
09-21 10:07:25.978  3649  3649 I SensorHAL: debug sysfs_read_str, -errno: -2
09-21 10:07:25.978  3649  3649 I SensorHAL: debug GetName
--
09-21 10:07:25.978  3649  3649 I SensorHAL: debug sysfs_read_int file: /sys/bus/iio/devices/iio:device0/injection_mode
09-21 10:07:25.978  3649  3649 I SensorHAL: debug sysfs_read_int, -errno: -2
09-21 10:07:25.978  3649  3649 I SensorHAL: debug sysfs_read_str file: /sys/bus/iio/devices/iio:device0/injection_sensors
09-21 10:07:25.978  3649  3649 I SensorHAL: debug sysfs_read_str, -errno: -2
09-21 10:07:25.978  3649  3649 I SensorHAL: debug GetName
--
09-21 10:07:53.801  3649  3719 I SensorHAL: debug sysfs_write_int, file: /sys/bus/iio/devices/iio:device1/buffer/enable, val: 0
09-21 10:07:53.801  3649  3719 I SensorHAL: debug enable_events device_dir: /sys/bus/iio/devices/iio:device1, enable: 0
--
09-21 10:07:53.823  3649  3649 I SensorHAL: debug sysfs_write_int, file: /sys/bus/iio/devices/iio:device0/buffer/enable, val: 0
09-21 10:07:53.823  3649  3649 I SensorHAL: debug enable_events device_dir: /sys/bus/iio/devices/iio:device0, enable: 0
--
09-21 10:08:02.867  3649  3719 I SensorHAL: debug sysfs_write_int, file: /sys/bus/iio/devices/iio:device1/sampling_frequency, val: 26
09-21 10:08:02.867  4097  4097 D InterruptionStateProvider: No heads up: unimportant notification: -1|android|32|null|1000
--
09-21 10:08:02.882  3649  3719 I SensorHAL: debug sysfs_write_int, file: /sys/bus/iio/devices/iio:device1/buffer/enable, val: 1
09-21 10:08:02.913  3649  3719 I SensorHAL: debug enable_events device_dir: /sys/bus/iio/devices/iio:device1, enable: 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant