LINUX.ORG.RU

А как он должен работать?

Возможно, он там STMicroelectronics’овый
на винде работает

Может имеет смысл из винды подсмотреть модельку?

Flotsky ★★
()
Ответ на: комментарий от Flotsky

И модель и куда подключено (pci/usb). Впрочем можно и так в линуксе набрать lspci/lsusb - он где-то из этих двух мест скорее всего будет.

firkax ★★★★★
()
Ответ на: комментарий от firkax

В моём ноуте есть «гироскоп», оно видится как группа iio devices в /sys/bus/iio/devices/…

Думал, что он где-то на i2c шине сидит, но не нашёл его там.

Соотв в lsusb/lspci его нет, и в dmesg я чего дельного не увидел.
Но при этом точно убедился, что оно рабочее.

Flotsky ★★
()
Ответ на: комментарий от krasnh

Хм, есть моделька. Почти сразу гуглится готовый dkms модуль. Вот только не уверен, что это даст что-то ожидаемое автору. «Крутить дисплей» оно само не станет.

Flotsky ★★
()
Ответ на: комментарий от targitaj

Не, оно не так. Тьфу блин у меня в голове смешалось думал какой ЛОРкод в Markdowm использовать что-бы так сделать. Шиза, кукушка поехала уже :D

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от Flotsky

В .inf файле к драйверу с венды есть это:

%ST_AccelGyro_DevDesc% =  ST_AccelGyro_Inst,	ACPI\SMO8B10    ; LSM6DS3
%ST_AccelGyro_DevDesc% =  ST_AccelGyro_Inst,	ACPI\SMO8B20	; LSM6DSM
%ST_AccelGyro_DevDesc% =  ST_AccelGyro_Inst,	ACPI\SMO8B30	; LSM6DS3TR-C
%ST_AccelGyro_DevDesc% =  ST_AccelGyro_Inst,	ACPI\SMO8B40	; LSM6DSL
%ST_AccelGyro_DevDesc% =  ST_AccelGyro_Inst,	ACPI\SMO8B50	; LSM6DSO

Как мне кажется, комменты к строкам - это возможные модели гироскопов

Iamha
() автор топика
Ответ на: комментарий от Iamha

Я там два вопроса спрашивал.

А как он должен работать?

Кто вас знает. Вам «крутить монитор» как в телефоне или что-то ещё?

Flotsky ★★
()
Ответ на: комментарий от Iamha

Тогда вам надо две части

  • Драйвер вашего гироскопа (возможные модельки вы уже подсмотрели, можно погуглить есть ли для них драйвер под linux, возможно собрать драйвер по месту)
  • ПО, которое будет опрашивать драйвер и «крутить» вам дисплей. Я какое-то время использовал https://github.com/mrquincle/yoga-900-auto-rotate Там и инструкция есть как это поставить. Но работает оно только с Xorg
Flotsky ★★
()
14 января 2023 г.
Ответ на: комментарий от Flotsky

Нашёл SMO8B30 (LSM6DS3TR-C), сидит на i2c-8. Вроде как под него подходит драйвер st_lsm6dsx, но результата никакого :(

Iamha
() автор топика
Ответ на: комментарий от Iamha

Вроде как под него подходит драйвер st_lsm6dsx, но результата никакого

А что вы делаете и чего ожидаете после ваших действий?

Если вы уверены, что используете правильный модуль ядра и точно знаете адрес устройства на i2c шине, то можно почитать https://petermolnar.net/article/linux-i2c-iio-collectd/#ic-0x77-bme280-temperature-pressure-humidity-sensor1 Там описывается как указать загруженному модулю на i2c устройство.

Flotsky ★★
()
Ответ на: комментарий от Flotsky

А что вы делаете и чего ожидаете после ваших действий?

Нужен рабочий iio-sensor-proxy, с автоповоротом сам разберусь

Iamha
() автор топика
Ответ на: комментарий от Iamha

iio-sensor-proxy вторичен. После загрузки модуля и указанию ему на устройтво

# modprobe ...
# echo "... 0x.." > /sys/bus/i2c/devices/i2c-${i2cdev}/new_device

В /sys/bus/iio/devices появятся новые устройства. Если покопаться внутри, то там будут что-то вроде in_accel_offset или вроде того.

К этому уже будет обращаться iio-sensor-proxy.

Если это есть, то драйвер работает. Иначе смотреть в dmesg после указания модуля на устройство на момент ругани. Это или не то устройство или не тот модуль.

Flotsky ★★
()

Там не гироскоп, там твердотельный акселерометр. Как и во всех современных девайсах. Даже самый маленький гироскоп слишком крупный для того, чтобы помещать его в мобильное устройство. И именно поэтому смартфоны стоит встряхивать, если они не поняли сразу, что их положение изменилось.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

По нынешней терминологии это тоже называется гироскопом, хотя поначалу и раздражало слегка )

vaddd ★☆
()
Ответ на: комментарий от Flotsky
-bash: echo: ошибка записи: Устройство или ресурс занято
Iamha
() автор топика
Ответ на: комментарий от Iamha

https://stackoverflow.com/questions/41469028/i2c-driver-not-load-failed-to-register-i2c-client-16

EBUSY (-16)

Это устройство уже занято кем-то или не ответило.

Как определили, что на указанном адресе сидит именно «гироскоп»?
Что вообще показывает i2cdetect для этой шины?

Flotsky ★★
()
Ответ на: комментарий от Flotsky

Нашел по hwinfo на i2c-8

Вывод i2cdetect -r 8:

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- 6a -- -- -- -- -- 
70: -- -- -- -- -- -- -- -- 

Погуглил адреса, у lsm6ds3tr-c 0x6a, что можно наблюдать выше

Iamha
() автор топика
Ответ на: комментарий от Iamha

Увы с этим далее не помогу.

С виду действия правильные. Но раз не работает, может не тот модуль ядра, может надо дополнительно что-то отправить чтобы «включить» устройство. На примере rfkill или кнопочек для переключения wifi. Но тут я уже придумываю.

Как вариант можно посмотреть есть ли что на других шинах.

Ещё как вариант можно найти какие-нибудь программные реализации общения с устройством и попробовать пообщаться из userspace силами python.

Flotsky ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.