Общая информация
В данном разделе описана конфигурация платы ELTAY RM88S, установленной на Orange Pi CM5 Tablet Base Board, для сборки Buildroot:
eltay_rm88s_op_tablet_defconfig
Основная периферия платы описана в базовом Device Tree и доступна сразу после загрузки системы. Для интерфейсов, требующих выбора внешнего устройства или альтернативной функции выводов, используются Device Tree overlays.
Периферия, доступная по умолчанию
В базовой конфигурации включены:
- встроенная eMMC-память модуля ELTAY RM88S;
- microSD;
- Wi-Fi AP6256;
- Bluetooth / BLE AP6256;
- RTC HYM8563;
- USB 2.0 Host;
- USB 3.0 Type-A Host;
- USB Type-C с FUSB302 и переключением ролей Host/Device;
- HDMI;
- M.2 M-key по PCIe 2.0 x1 для NVMe;
- аналоговое аудио ES8388/ES8323;
- два усилителя динамиков AW87391;
- PWM-вентилятор;
- IR-приёмник;
- зарядное устройство SC89890;
- кнопки V+/Recovery, V-, Menu и ESC;
- статусный светодиод.
Для работы с периферией в образ включены стандартные Linux-утилиты.
| Периферия | Основные средства работы и диагностики |
|---|---|
| eMMC и microSD | lsblk, blkid, fdisk, mount |
| Wi-Fi | nmcli, iw, wpa_supplicant, wpa_cli, ip, rfkill |
| Bluetooth / BLE | bluetoothctl, rfkill |
| RTC | hwclock, date |
| USB 2.0 / USB 3.0 | lsusb, lsusb -t |
| NVMe / PCIe | lspci, lsblk |
| HDMI / DRM | /sys/class/drm, kmsprint, fbv |
| I2C | i2cdetect, i2cget, i2cset |
| IR и кнопки | evtest |
| GPIO | gpiodetect, gpioinfo, gpioget, gpioset |
| Аудио | aplay, arecord, amixer, alsamixer, speaker-test |
| MIPI CSI | v4l2-ctl, media-ctl, ffmpeg |
Краткая информация по стандартной периферии
eMMC и microSD
Встроенная eMMC модуля и установленная microSD-карта определяются как блочные устройства.
Быстрая проверка:
lsblk
blkid
Имена устройств зависят от порядка их регистрации ядром, поэтому перед форматированием или записью образа необходимо обязательно проверить размер и тип выбранного устройства.
Wi-Fi
Встроенный Wi-Fi модуль подключён через SDIO-интерфейс и определяется как беспроводное сетевое устройство.
Посмотреть состояние сетевых интерфейсов:
ip -br link
Проверить наличие Wi-Fi модуля:
nmcli device
Получить список доступных сетей:
nmcli dev wifi list
Подключение к сети с сохранением профиля:
nmcli --ask device wifi connect "Название_сети" ifname wlan0
После успешного подключения проверить полученный IP-адрес:
ip addr show wlan0
Bluetooth / BLE
Bluetooth-модуль подключён через UART-интерфейс и инициализируется автоматически при загрузке системы.
Проверить состояние радиоустройств:
rfkill list
Запустить консоль управления Bluetooth:
bluetoothctl
Внутри bluetoothctl можно проверить доступность адаптера:
list
show
Для поиска BLE-устройств:
scan on
RTC
Аппаратные часы RTC подключены через I2C и используются для сохранения времени при отключении питания.
Прочитать текущее время RTC:
hwclock -r
Записать текущее системное время в RTC:
hwclock -w
Проверить наличие RTC-устройства:
ls /dev/rtc*
USB
Быстрая проверка подключённых USB-устройств:
lsusb
Посмотреть дерево USB-контроллеров и скорость подключения:
lsusb -t
Для устройств USB 3.x в lsusb -t ожидается скорость 5000M.
Дополнительную информацию о подключении можно получить из журнала ядра:
dmesg | grep -i usb
NVMe
NVMe накопитель подключается через интерфейс PCIe.
Проверить обнаруженные PCIe-устройства:
lspci
Посмотреть доступные блочные устройства:
lsblk
HDMI
Проверить состояние HDMI-разъёма:
cat /sys/class/drm/card*-HDMI-A-*/status 2>/dev/null
При подключённом мониторе ожидается - connected.
Посмотреть доступные режимы вывода:
cat /sys/class/drm/card*-HDMI-A-*/modes 2>/dev/null
Для диагностики DRM можно использовать:
dmesg | grep -i drm
HDMI audio
Посмотреть доступные ALSA-устройства:
aplay -l
Проверить наличие аудиокарт:
cat /proc/asound/cards
Для проверки воспроизведения WAV-файла необходимо указать найденное HDMI-устройство:
aplay -D hw:CARD,DEVICE /path/to/test.wav
Значения CARD и DEVICE берутся из вывода aplay -l.
IR и кнопки
IR-приёмник и кнопки работают через Linux input subsystem.
Посмотреть зарегистрированные input-устройства:
grep -E 'Name=|Handlers=.*event' /proc/bus/input/devices
После определения нужного eventX запустить монитор событий:
evtest /dev/input/eventX
Для диагностики загрузки устройств ввода:
dmesg | grep -i input
Зарядное устройство
На Orange Pi CM5 Tablet Base Board установлен контроллер заряда Southchip SC89890 (I2C6, адрес 0x6a).
В DTS задан следующий профиль заряда:
- максимальное напряжение аккумулятора — 4,35 В;
- максимальный ток заряда — 4 А;
- ток предварительного заряда — 0,5 А;
- ток завершения заряда — 0,1 А.
Профиль рассчитан на одноэлементный (1S) Li-Ion/Li-Poly аккумулятор с максимальным напряжением заряда 4,35 В.
При использовании аккумулятора с другим максимальным напряжением или меньшим допустимым током заряда параметры зарядного устройства в Device Tree необходимо изменить в соответствии с характеристиками аккумулятора.
Быстрая проверка:
ls /sys/class/power_supply/
i2cdetect -y 6
Проверить параметры зарегистрированного зарядного устройства:
ls /sys/class/power_supply/
Основные параметры доступны через:
cat /sys/class/power_supply/<device>/status
cat /sys/class/power_supply/<device>/voltage_now
cat /sys/class/power_supply/<device>/current_now
PWM-вентилятор
PWM-вентилятор подключён к PWM15 и управляется штатным драйвером pwm-fan. PWM15 занят вентилятором и не должен использоваться вручную как пользовательский PWM.
В Device Tree задан следующий температурный профиль:
cooling-levels = <0 50 100 150 200 255>;
rockchip,temp-trips = <
40000 2
50000 3
55000 4
60000 5
65000 5
70000 5
>;
Соответствие уровней:
state 0 → PWM 0
state 1 → PWM 50
state 2 → PWM 100
state 3 → PWM 150
state 4 → PWM 200
state 5 → PWM 255
Проверить состояние thermal cooling devices:
for d in /sys/class/thermal/cooling_device*; do
echo "$d: $(cat "$d/type" 2>/dev/null), max_state=$(cat "$d/max_state" 2>/dev/null)"
done
Найти hwmon-устройство вентилятора:
FAN=$(for d in /sys/class/hwmon/hwmon*; do
[ "$(cat "$d/name" 2>/dev/null)" = "pwmfan" ] && echo "$d"
done)
echo "$FAN"
Кнопочный разъём KEY
Кнопки на Tablet Base Board, выведенные на разъем KEY, описаны в базовом Device Tree через adc-keys.
Поддерживаются кнопки:
- V+/Recovery
- V-
- Menu
- ESC
Для определения соответствующего input-устройства:
grep -E 'Name=|Handlers=.*event' /proc/bus/input/devices
После определения eventX кнопки можно проверить, запустив монитор событий:
evtest /dev/input/eventX
Разъём для датчиков
6-контактный sensor port является разъёмом для подключения внешнего датчика. Конкретное устройство на этом разъёме в базовом Device Tree не описывается, поскольку его конфигурация зависит от устанавливаемого датчика. Для устройства, требующего драйвер из ядра, необходимо добавить соответствующий Device Tree node или overlay.
Расширенная или отключенная по умолчанию периферия
Аудио
На Tablet Base Board предусмотрен полноценный аудиотракт на базе кодека ES8388:
- аналоговый вход/выход через разъём PHONE JACK;
- встроенный микрофон;
- подключение внешних динамиков через усилители AW87391.
Аудиоустройства включены отдельными узлами Device Tree. Подробнее о проверке и настройке - Аудио.
MIPI DSI дисплей и тачскрин
На плате предусмотрен MIPI DSI-разъём LCD для подключения дисплея с сенсорным управлением. По умолчанию MIPI-дисплей отключен в базовом Device Tree. Для включения устройства используется подготовленный overlay-файл. Подробнее про подключение и настройку - MIPI-дисплей.
CSI камеры
На плате предусмотрены три MIPI CSI-разъёма для подключения камер. Разъем CAM1 рассчитан на подключение камер с использованием 4-lane MIPI CSI интерфейса, остальные разъёмы используют стандартный режим подключения через доступные линии MIPI DPHY. Для работы с камерами в образ включены rkaiq_3A_server для управления алгоритмами автоэкспозиции, баланса белого и других 3A-функций, и IQ-профили для камер OV5647 и OV13855.
По умолчанию камеры отключены в базовом Device Tree. Для включения конкретного устройства используются подготовленные overlay-файлы. Подробнее про подключение и настройку - CSI камеры.
GPIO-разъём
Все выводы 26-контактного разъёма по умолчанию работают как GPIO. Помимо режима GPIO, отдельные выводы могут использовать альтернативные функции - UART, I2C, SPI, PWM.
Включение альтернативных функций производится через Device Tree overlay-файлы, которые переводят выбранные выводы в соответствующий аппаратный режим.
Подробнее о работе с разъемом - 26-контактный GPIO-разъём.