Перед проведением проверок необходимо запустить ЗОСРВ «Нейтрино» на отладочном модуле OrangePi PC в соответствии с главой документации @link{./Boot.html}Загрузка образа ОС@endlink.
Дополнительные тестовые программы @a rr, @a ticksize и другие не входят в состав ППМ и должны быть самостоятельно загружены из @link{https://git.kpda.ru/utils/hw}публичного git-репозитория@endlink и собраны командой:
Затем следует скопировать @a armle-v7 версии тестовых программ на SD карту памяти и подключить её к OrangePi PC или передать файлы по сети с помощью @l{Настройка FTP сервера|FTP} или @l{Настройка NFS сервера|NFS}.
Проверка считается пройденной успешно, если вывод утилиты @l{pidin|pidin ir} содержит информацию об обработчиках прерывания, принадлежащих выполняемым процессам, в формате
@output{shell}
pid tid Имя процесса
id прерывания vector mask_count flags handler:area
@endoutput
@group base_system_timer
Для проверки функционирования системного таймера необходимо воспользоваться программой @a ticksize:
@output{shell}# /tmp/ticksize @endoutput
Проверка считается выполненной успешно, если вывод данной программы содержит аналогичные строки:
@output{shell}
System timer ticksize: 1000 mks
Measuring system timer interrupt latency for 10 sec...
7 devb-sdmmc mem name=/below4G blk memory=/below4G,cache=8m
sdio hc=sunxi,addr=0x01C0F000,irq=92 disk name=sd cam pnp,quiet
8 random -t
9 io-pkt-v4-hc-ksz -dsun8i
4106 sh
4107 pidin ar
@endoutput
Проверка считается пройденной успешно, если вывод утилиты @l{pidin|pidin ar} содержит информацию о запуске @l{platform-control|менеджера управления общими элементами платформ} с аргументом @l{devp-sunxi.so|-dsunxi}:
Для вывода информации о количестве процессоров выполнить команду @l{pidin|pidin info}:
@output{shell}
# pidin info
CPU:ARM Release:trunk FreeMem:992Mb/1024Mb BootTime:Jan 01 00:00:00 UTC 1970
Processes: 8, Threads: 28
Processor1: 1091551349 Cortex A7 228MHz FPU
Processor2: 1091551349 Cortex A7 228MHz FPU
Processor3: 1091551349 Cortex A7 228MHz FPU
Processor4: 1091551349 Cortex A7 228MHz FPU
@endoutput
Для проверки функционирования на всех ядрах выполнить следующее:
@output{shell}
# for cpu in 0 1 2 3; do on -C$cpu pidin -P pidin -fl; done
@endoutput
Проверка считается выполненной успешно, если вывод содержит следующие строки:
@output{shell}
cpu
0
cpu
1
cpu
2
cpu
3
@endoutput
@group bsp
@group bsp_uart
Для работы с последовательным портом используется драйвер @l{devc-ser8250}. Настройки последовательного порта по умолчанию: скорость 115200, 8 бит, без контроля четности, 1 стоп-бит. В составе загрузочного образа драйвер запускается автоматически.
В случае успешного запуска драйвера в директории `/dev/` будет создано устройство @c ser1.
@output{shell}
# ls /dev/ser*
/dev/ser1
@endoutput
Для проверки функционирования драйвера UART подключить ПМ к ПК через преобразователь по USB в один из разъемов и запустить терминальную программу @a minicom. В последовательном или удалённом терминале выполнить следующую команду:
@output{shell}
# echo Test message > /dev/ser1
@endoutput
Проверка считается выполненной успешно, если в терминальной программе будет выведено сообщение:
@output{shell}
Test message
@endoutput
@group bsp_ethernet
Для работы с контроллером интерфейса Gigabit Ethernet используется драйвер @l{devnp-sun8i.so} и менеджер ресурсов @l{io-pkt-*|io-pkt-v4-hc-ksz}. В составе загрузочного образа драйвер запускается автоматически. Для вывода информации о сетевых интерфейсах выполнить команду @l{ifconfig}.
В случае успешного запуска драйвера будет создан сетевой интерфейс @a xzynq0 и в результате выполнения команды @l{ifconfig} на экран будут выведены данные, аналогичные следующим, с указанием текущего ip-адреса, маски и широковещательного адреса:
@output{shell}
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192
inet 127.0.0.1 netmask 0xff000000
sun0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
Для работы с контроллером интерфейса USB используются драйвера @l{devu-ehci.so}, @l{devu-ohci.so} и менеджер ресурсов @l{io-usb}. В составе загрузочного образа драйвер запускается автоматически.
Для работы с контроллером SD/MMC используется драйвер @l{devb-sdmmc}. В составе загрузочного образа драйвер запускается автоматически. В случае успешного запуска драйвера в директории `/dev/` будет создано устройство `sd0`, соответствующее SD-карте, а также устройства, соответствующие разделам. Для управления устройствами могут быть использованы стандартные утилиты для управления и чтения/записи блочных устройств. Проверка считается выполненной успешно, если при выполнении команды @l{ls|ls /dev/sd0*} отображаются устройства, соответствующие SD-карте и разделам, например:
@output{shell}
# ls /dev/sd0*
/dev/sd0 /dev/sd0t131 /dev/sd0t177
@endoutput
В выводе утилиты @l{mount} увидеть точку монтирования одного из разделов SD-карты, например:
@output{shell}
# mount
/dev/sd0t177 on /fs/qnx6 type qnx6
@endoutput
Для измерения производительности операции записи и чтения необходимо создать файл и заполнить его случайными значениями с помощью утилиты @l{dd}, при этом измеряя время данной операции через @l{time}:
Проверка HDMI производится с использованием утилиты @l{gf-vsync}. Перед выполнением проверки необходимо подключить к OrangePi PC монитор через разъем HDMI. Для корректной проверки на устройстве должен размещаться файл @l{display.conf|/etc/system/config/display.conf} следующего содержания:
@code
device {
drivername=sunxi
vid=0x0
did=0x0
deviceindex=0
display {
xres=1920
yres=1080
refresh=60
pixel_format=argb8888
}
}
@endcode
В конфигурационном файле @l{sunxi.conf|/etc/system/config/sunxi.conf} раскомментировать соответствующую строку: