Дерево страниц

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

Версия 1 Следующий »


Данная статья применима к:

  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7)

  • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)

  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)

  • Astra Linux Special Edition РУСБ.10015-16 исп. 1 и исп. 2

  • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)

  • Astra Linux Common Edition 2.12

Основная информация

Для настройки акселерометра требуется создать правило udev, определяющее привязку данных, получаемых от акселерометра, к осям координат устройства. Эта привязка может быть представлена в виде таблицы (матрицы) 3х3, содержащей коэффициенты коррекции для данных, получаемых от акселерометра.

x0y0z0
x1y1z1
x2y2z2

Подробнее см.: iio-sensor-proxy.

Внимание! Если на планшете корректно работает акселерометр, то его калибровать не требуется.


Настройка акселерометра: получение исходной матрицы

Для получения исходной матрицы устройства, необходимо получить DSL дамп (описание устройств из ACPI).

Для этого необходимо выполнить следующие команды:

cat /sys/firmware/acpi/tables/DSDT > dsdt.dat
iasl -d dsdt.dat
iasl -tc dsdt.dsl

В полученном файле (dsdt.dsl) необходимо найти матрицу по умолчанию:

  1. Если известны DEV_ID/VEN_ID, необходимо найти данное устройство
  2. Затем у устройства необходимо найти метод ROTM (Rotation Matrix).

В случае если нет информации о датчике, можно сразу перейти к п.2.

Рассмотрим пример для планшета Lenovo IdeaPad 3IGL5-LTE:

dsdt.dsl
Method (ROTM, 0, NotSerialized)
{
	Name (RBUF, Package (0x03)
    {
		"0 -1 0", 
        "1 0 0", 
        "0 0 1"
    })
    Return (RBUF) /* \_SB_.PCI0.I2C5.DEV_.ROTM.RBUF */
}

Отсюда мы видим, что исходная матрица для данной модели:

0-10
100
001

Настройка акселерометра: калибровка при помощи udev правила


Как откалибровать датчик для других устройств:
  1. Определить желаемое нормальное положение устройства (портретная либо альбомная ориентация). Нормальное положение зависит от нужд пользователя. За нормальное можно принять любое положение, и отталкиваясь от этого проводить настройку. Можно также в качестве нормальной использовать ориентацию, в которой отображается экран при включении устройства (для планшетов iRU, например, это альбомный режим);
  2. Если режим отображения экрана не соответствует положению устройства, то определить, на сколько нужно осуществить поворот изображения для приведения его в правильное положение и выполнить указанные далее изменения элементов матрицы для получения нужного режима отображения экрана:
    1. Поворот на -90o:

      x0-1x1-10
      y0+1y1-10
      001
    2. Поворот на 180o:

      -x0x10
      y0-y10
      001
    1. Поворот на 90o:

      x0-1x1+10
      y0-1y1-10
      001
  1. После внесения изменений перезагрузить устройство, и проверить правильность отображения портретного и альбомного режимов. Если изображение инвертировано, то:

    1. Инверсия портретного режима (отразить по y):

      -x0x10
      y0y10
      001
    2. Инверсия альбомного режима (отразить по x):

      x0x10
      y0-y10
      001
  2. Перезагрузить устройство. После выполненных действий датчик должен быть настроен.


  • Нет меток