Общая информация
В данном разделе описана конфигурация платы ELTAY RM88S, установленной на Orange Pi CM5 Base Board, для сборки Buildroot:
eltay_rm88s_op_baseboard_defconfig
Основная периферия платы описана в базовом Device Tree и доступна сразу после загрузки системы. Камеры и альтернативные функции выводов 12-контактного разъёма включаются с помощью Device Tree overlays.
Периферия, доступная по умолчанию
В базовой конфигурации включены:
- встроенная eMMC-память модуля ELTAY RM88S;
- microSD;
- один Gigabit Ethernet на базе встроенного контроллера RK3588S и PHY YT8531C;
- два 2.5 Gigabit Ethernet на базе контроллеров Realtek RTL8125;
- USB 2.0 Host;
- USB 3.0 Host;
- HDMI и HDMI audio;
- RTC HYM8563;
- SAR ADC RK3588S;
- PWM-вентилятор;
- IR-приёмник;
- кнопка
K1; - четыре статусных светодиода;
- GPU Mali-G610;
- NPU Rockchip;
- аппаратная media-подсистема Rockchip;
- watchdog.
Для работы с периферией в образ включены стандартные Linux-утилиты.
| Периферия | Основные средства работы и диагностики |
|---|---|
| Ethernet | ip, ifconfig, ethtool, lspci |
| eMMC и microSD | lsblk, blkid, fdisk, mount |
| USB 2.0 / USB 3.0 | lsusb, lsblk |
| HDMI / DRM | /sys/class/drm, kmsprint, fbv |
| HDMI audio | aplay, arecord |
| RTC | hwclock, date |
| ADC | /sys/bus/iio/devices/ |
| IR и кнопка | evtest |
| GPIO | gpiodetect, gpioinfo, gpioget, gpioset |
| I2C | i2cdetect, i2cget, i2cset |
| Камеры | v4l2-ctl, media-ctl, ffmpeg, rkaiq_3A_server |
| CAN | ip, candump, cansend |
| SPI | spidev_test |
Краткая информация по стандартной периферии
Ethernet
На Base Board установлены три сетевых интерфейса:
- один Gigabit Ethernet, подключённый к
gmac1RK3588S через PHY YT8531C; - два 2.5 Gigabit Ethernet на базе PCIe-контроллеров Realtek RTL8125.
В данной сборке интерфейс Gigabit Ethernet, подключённый к PHY YT8531C, при запуске системы автоматически переименовывается в lan0 и поднимается. Это позволяет однозначно обращаться к этому интерфейсу независимо от порядка регистрации сетевых устройств в ядре.
Посмотреть доступные интерфейсы:
ip -br link
Проверить состояние и согласованную скорость конкретного интерфейса:
ethtool lan0
Для остальных сетевых интерфейсов имя может отличаться. Их фактические имена можно определить с помощью ip -br link.
eMMC и microSD
Встроенная eMMC модуля и установленная microSD-карта определяются как блочные устройства.
Быстрая проверка:
lsblk
blkid
Имена устройств зависят от порядка их регистрации ядром, поэтому перед форматированием или записью образа необходимо обязательно проверить размер и тип выбранного устройства.
USB
Быстрая проверка:
lsusb
lsusb -t
Для устройства, подключённого в режиме USB 3.x, в lsusb -t ожидается скорость:
5000M
USB-контроллеры в данной конфигурации работают в режиме Host.
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
Вывести изображение на framebuffer можно с помощью fbv:
fbv /path/to/image.jpg
HDMI audio
Посмотреть доступные ALSA-устройства:
aplay -l
Для проверки воспроизведения WAV-файла необходимо указать найденное HDMI-устройство:
aplay -D hw:CARD,DEVICE /path/to/test.wav
Значения CARD и DEVICE берутся из вывода aplay -l.
RTC
RTC HYM8563 подключён к I2C1 по адресу 0x51.
Прочитать аппаратные часы:
hwclock -r
Записать системное время в RTC:
hwclock -w
ADC
Встроенный SAR ADC RK3588S включён и доступен через подсистему IIO.
Найти соответствующее IIO-устройство:
for d in /sys/bus/iio/devices/iio:device*; do
echo "$d: $(cat "$d/name" 2>/dev/null)"
done
Посмотреть доступные каналы:
ls /sys/bus/iio/devices/iio:device*/in_voltage*_raw 2>/dev/null
Прочитать необработанное значение выбранного канала:
cat /sys/bus/iio/devices/iio:deviceX/in_voltageY_raw
Номера deviceX и voltageY необходимо определить на конкретной системе.
IR-приёмник и кнопка K1
IR-приёмник работает через контроллер pwm7. Кнопка K1 описана как input-устройство с кодом KEY_POWER.
Посмотреть зарегистрированные input-устройства:
grep -E 'Name=|Handlers=.*event' /proc/bus/input/devices
После определения нужного eventX запустить монитор событий:
evtest /dev/input/eventX
PWM-вентилятор
PWM-вентилятор подключён к PWM13 и управляется штатным драйвером pwm-fan. PWM13 занят вентилятором и не должен одновременно использоваться как пользовательский PWM.
В Device Tree задан следующий температурный профиль:
cooling-levels = <0 50 100 150 200 255>;
rockchip,temp-trips = <
50000 1
55000 2
60000 3
65000 4
70000 5
>;
Соответствие состояний уровням PWM:
state 0 → PWM 0
state 1 → PWM 50
state 2 → PWM 100
state 3 → PWM 150
state 4 → PWM 200
state 5 → PWM 255
Проверить зарегистрированные 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"
Статусные светодиоды
В базовом Device Tree описаны четыре светодиода:
lan1
lan2
wan
power
Посмотреть доступные LED:
ls /sys/class/leds/
Состояние конкретного светодиода можно проверить через его атрибуты brightness, max_brightness и trigger.
Например:
cat /sys/class/leds/power/brightness
cat /sys/class/leds/power/trigger
Расширенная или отключенная по умолчанию периферия
CSI камеры
На плате предусмотрены четыре CSI-разъёма: CAM1, CAM2, CAM3 и CAM4. По умолчанию работа с камерами запрещена на уровне DTS. Для каждого разъёма подготовлен отдельный overlay-файл для камеры OV5647. В образ также включены rkaiq_3A_server и IQ-профиль OV5647.
Подробнее про работу с камерами - CSI-камеры OV5647.
GPIO разъем
Все сигнальные выводы 12-контактного разъёма по умолчанию работают как GPIO. Помимо этого на выводах доступно использование альтернативных функций - UART, I2C, SPI, PWM, CAN и PDM. Включение функций производится с помощью специальных overlay-файлов, они переводят выбранные выводы в соответствующую аппаратную функцию.
Подробнее про работу с выводами разъема - GPIO разъем.