Пакеты поддержки модулей для ЗОСРВ «Нейтрино» > MIPS > BSP для устройств на базе процессора Элвис 1892ВМ206 > Проверка функционирования



Проверка функционирования

Проверка функционирования ППМ OrangePi PC Allwinner H3 под ЗОСРВ «Нейтрино».


Список проверок:

Базовые проверки функционирования ОС
Проверка запуска на ПМ ядра ЗОСРВ в составе загружаемого образа
Проверка запуска компонентов
Проверка функционирования контроллера DDR памяти
Проверка функционирования контроллера прерываний
Проверка функционирования таймера
Проверка функционирования подсистемы управления общими элементами платформ
Проверка работы ЗОСРВ на ЦП в режиме симметричной мультипроцессорности (SMP) с поддержкой всех CPU ядер типа Cortex-A7
Проверки интерфейсов
Проверка драйвера контроллера UART
Проверка драйвера контроллера Gigabit Ethernet
Проверка драйвера контроллера USB
Проверка драйвера контроллера SD/MMC
Проверка драйвера контроллера HDMI
Проверка драйвера контроллера GPU

Тестовый стенд

Тестовый стенд представляет из себя отладочный модуль OrangePi PC, соединённый с инструментальным ПК по интерфейсам RS-232 и Ethernet.


На инструментальный ПК должно быть установлено:

Подготовка

Перед проведением проверок необходимо запустить ЗОСРВ «Нейтрино» на отладочном модуле OrangePi PC в соответствии с главой документации Загрузка образа ОС.


Дополнительные тестовые программы rr, ticksize и другие не входят в состав ППМ и должны быть самостоятельно загружены из публичного git-репозитория и собраны командой:

$ cd utils $ make install

Затем следует скопировать armle-v7 версии тестовых программ на SD карту памяти и подключить её к OrangePi PC или передать файлы по сети с помощью FTP или NFS.

Базовые проверки функционирования ОС

Проверка запуска на ПМ ядра ЗОСРВ в составе загружаемого образа

В последовательном терминале выполнить команду:

# uname -s

Проверка считается выполненной успешно, если в терминале будет выведено сообщение вида:

KPDA

Проверка запуска компонентов

Для вывода информации о запущенных компонентов выполнить команду pidin ar:

# pidin ar pid Arguments 1 procnto-smp -vvv -ae 2 slogger -s 16384k 3 pipe 4 platform-control -dsunxi 5 devc-ser8250-dw -e -F -b115200 -c24000000/16 0x01C28000^2,32 6 io-usb -dehci ioport=0x01c1b000,irq=106 -dohci ioport=0x01c1b400,irq=107 -dehci ioport=0x01c1c000,irq=108 -dohci ioport=0x01c1c400,irq=109 -dehci ioport=0x01c1d000,irq=110 -dohci ioport=0x01c1d400,irq=111 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

Проверка функционирования контроллера DDR памяти

Для вывода информации о процессоре и доступной оперативной памяти выполнить команду pidin info:

# pidin info CPU:ARM Release:2024 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

Для проверки функционирования контроллера оперативной памяти используется утилита memcheck. Ее требуется запустить и дождаться завершения проверки:

# /tmp/memcheck

Проверка считается выполненной успешно, если выведено сообщение:

PASS: all memory allocated

Проверка функционирования контроллера прерываний

Для вывода информации о используемых прерываниях выполнить команду pidin ir:

# pidin ir pid tid name 1 1 procnto-smp 1 2 procnto-smp 1 3 procnto-smp 1 4 procnto-smp 0 0x1b 0 -P- @0xfe08a4b8:0x0 1 6 procnto-smp 1 7 procnto-smp 1 8 procnto-smp 1 9 procnto-smp 1 10 procnto-smp 1 11 procnto-smp 1 12 procnto-smp 1 13 procnto-smp 1 14 procnto-smp 1 15 procnto-smp 1 16 procnto-smp 2 1 slogger 3 1 pipe 3 2 pipe 3 3 pipe 4 1 platform-control 4 2 platform-control 5 1 devc-ser8250-dw 1 0x20 0 --- @0x804ab6c:0x805d1c0 6 1 io-usb 2 0x6a 0 TP- =PULSE 0x40000008:21 0:0 3 0x6c 0 TP- =PULSE 0x4000000e:21 0:0 4 0x6e 0 TP- =PULSE 0x40000014:21 0:0 6 2 io-usb 6 3 io-usb 6 4 io-usb 6 5 io-usb 6 6 io-usb 6 7 io-usb 6 8 io-usb 7 1 devb-sdmmc 5 0x5c 1 TP- =PULSE 0x40000005:21 0x3:0 7 2 devb-sdmmc 7 3 devb-sdmmc 7 4 devb-sdmmc 7 5 devb-sdmmc 7 6 devb-sdmmc 7 7 devb-sdmmc 7 8 devb-sdmmc 8 1 random 8 2 random 8 3 random 9 1 io-pkt-v4-hc-ksz 9 2 io-pkt-v4-hc-ksz 6 0x72 0 T-- @0x78002d5c:0x818f2c0 9 3 io-pkt-v4-hc-ksz 4106 1 sh 12299 1 pidin

Проверка считается пройденной успешно, если вывод утилиты pidin ir содержит информацию об обработчиках прерывания, принадлежащих выполняемым процессам, в формате

pid tid Имя процесса id прерывания vector mask_count flags handler:area

Проверка функционирования таймера

Для проверки функционирования системного таймера необходимо воспользоваться программой ticksize:

# /tmp/ticksize

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

System timer ticksize: 1000 mks Measuring system timer interrupt latency for 10 sec... ------------------------------------ System Timer Latency = 0.54 mks ------------------------------------

Проверка функционирования подсистемы управления общими элементами платформ

Для вывода информации о запущенных компонентов выполнить команду pidin ar:

# pidin ar pid Arguments 1 procnto-smp -vvv -ae 2 slogger -s 16384k 3 pipe 4 platform-control -dsunxi 5 devc-ser8250-dw -e -F -b115200 -c24000000/16 0x01C28000^2,32 6 io-usb -dehci ioport=0x01c1b000,irq=106 -dohci ioport=0x01c1b400,irq=107 -dehci ioport=0x01c1c000,irq=108 -dohci ioport=0x01c1c400,irq=109 -dehci ioport=0x01c1d000,irq=110 -dohci ioport=0x01c1d400,irq=111 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

Проверка считается пройденной успешно, если вывод утилиты pidin ar содержит информацию о запуске менеджера управления общими элементами платформ с аргументом -dsunxi:

4 platform-control -dsunxi

Проверка работы ЗОСРВ на ЦП в режиме симметричной мультипроцессорности (SMP) с поддержкой всех CPU ядер типа Cortex-A7

Для вывода информации о количестве процессоров выполнить команду pidin info:

# pidin info CPU:ARM Release:2024 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

Для проверки функционирования на всех ядрах выполнить следующее:

# for cpu in 0 1 2 3; do on -C$cpu pidin -P pidin -fl; done

Проверка считается выполненной успешно, если вывод содержит следующие строки:

cpu 0 cpu 1 cpu 2 cpu 3

Проверки интерфейсов

Проверка драйвера контроллера UART

Для работы с последовательным портом используется драйвер devc-ser8250-dw. Настройки последовательного порта по умолчанию: скорость 115200, 8 бит, без контроля четности, 1 стоп-бит. В составе загрузочного образа драйвер запускается автоматически.

В случае успешного запуска драйвера в директории /dev/ будет создано устройство ser1.

# ls /dev/ser* /dev/ser1

Для проверки функционирования драйвера UART подключить ПМ к ПК через преобразователь по USB в один из разъемов и запустить терминальную программу minicom. В последовательном или удалённом терминале выполнить следующую команду:

# echo Test message > /dev/ser1

Проверка считается выполненной успешно, если в терминальной программе будет выведено сообщение:

Test message

Проверка драйвера контроллера Gigabit Ethernet

Для работы с контроллером интерфейса Gigabit Ethernet используется драйвер devnp-sun8i.so и менеджер ресурсов io-pkt-v4-hc-ksz. В составе загрузочного образа драйвер запускается автоматически. Для вывода информации о сетевых интерфейсах выполнить команду ifconfig.

В случае успешного запуска драйвера будет создан сетевой интерфейс xzynq0 и в результате выполнения команды ifconfig на экран будут выведены данные, аналогичные следующим, с указанием текущего ip-адреса, маски и широковещательного адреса:

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 address: f2:b4:15:84:4c:8b media: Ethernet autoselect (100baseTX full-duplex) status: active inet <ip адрес> netmask <маска> broadcast <широковещательный адрес>

Для проверки функционирования сетевого обмена выполнить следующую команду, инициирующую отправку ICMP пакетов существующему сетевому узлу:

# ping -c 3 <ip получателя> PING <ip получателя> (<ip получателя>): 56 data bytes 64 bytes from <ip получателя>: icmp_seq=0 ttl=64 time=0 ms 64 bytes from <ip получателя>: icmp_seq=1 ttl=64 time=0 ms 64 bytes from <ip получателя>: icmp_seq=2 ttl=64 time=0 ms ----<ip получателя> PING Statistics---- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 0/0/0 ms variance = 0 ms^2

Проверка считается выполненной успешно, если все 3 пакета были успешно получены (процент потерь равен нулю).

Проверка драйвера контроллера USB

Для работы с контроллером интерфейса USB используются драйвера devu-ehci.so, devu-ohci.so и менеджер ресурсов io-usb. В составе загрузочного образа драйвер запускается автоматически.

В случае успешного запуска драйвера в директории /dev/ будет создано устройство io-usb.

# ls /dev/io-usb devu-ehci.so devu-ohci.so io-usb

Для получения списка подключенных usb устройств может быть использована утилита usb:

# usb

Проверка считается выполненной успешно, если в терминальной программе будет выведено сообщение:

USB 0 (EHCI) v1.10, v1.01 DDK, v1.01 HCD USB 1 (OHCI) v1.10, v1.01 DDK, v1.01 HCD USB 2 (EHCI) v1.10, v1.01 DDK, v1.01 HCD USB 3 (OHCI) v1.10, v1.01 DDK, v1.01 HCD USB 4 (EHCI) v1.10, v1.01 DDK, v1.01 HCD USB 5 (OHCI) v1.10, v1.01 DDK, v1.01 HCD

После подключения USB flash накопителя к ПМ должно появиться новое устройство:

# usb USB 0 (EHCI) v1.10, v1.01 DDK, v1.01 HCD Device Address : 1 Vendor : 0x8564 (JetFlash) Product : 0x1000 (Mass Storage Device) Class : 0x00 (Independent per interface) USB 1 (OHCI) v1.10, v1.01 DDK, v1.01 HCD USB 2 (EHCI) v1.10, v1.01 DDK, v1.01 HCD USB 3 (OHCI) v1.10, v1.01 DDK, v1.01 HCD USB 4 (EHCI) v1.10, v1.01 DDK, v1.01 HCD USB 5 (OHCI) v1.10, v1.01 DDK, v1.01 HCD

Проверка драйвера контроллера SD/MMC

Для работы с контроллером SD/MMC используется драйвер devb-sdmmc. В составе загрузочного образа драйвер запускается автоматически. В случае успешного запуска драйвера в директории /dev/ будет создано устройство sd0, соответствующее SD-карте, а также устройства, соответствующие разделам. Для управления устройствами могут быть использованы стандартные утилиты для управления и чтения/записи блочных устройств. Проверка считается выполненной успешно, если при выполнении команды ls /dev/sd0* отображаются устройства, соответствующие SD-карте и разделам, например:

# ls /dev/sd0* /dev/sd0 /dev/sd0t131 /dev/sd0t177

В выводе утилиты mount увидеть точку монтирования одного из разделов SD-карты, например:

# mount /dev/sd0t177 on /fs/qnx6 type qnx6

Для измерения производительности операции записи и чтения необходимо создать файл и заполнить его случайными значениями с помощью утилиты dd, при этом измеряя время данной операции через time:

# dd if=/dev/urandom of=/dev/shmem/test_file bs=1000 count=256 # time dd if=/dev/shmem/test_file of=<точка монтирования>/test_file \ bs=1000 count=256

Выводом данной команды будет является время и скорость записи:

256+0 records in 256+0 records out 256000 bytes transferred in 0.038 secs (6736842 bytes/sec) 0m00.04s real 0m00.00s user 0m00.00s system

Для измерения скорости чтения необходимо скопировать созданный тестовый файл в /dev/null с помощью утилиты dd:

# time dd if=<точка монтирования>/test_file of=/dev/null bs=1000 count=256

Выводом данной команды будет является время и скорость чтения:

256+0 records in 256+0 records out 256000 bytes transferred in 0.010 secs (25600000 bytes/sec) 0m00.01s real 0m00.00s user 0m00.00s system

Проверка драйвера контроллера HDMI

Проверка HDMI производится с использованием утилиты gf-vsync. Перед выполнением проверки необходимо подключить к OrangePi PC монитор через разъем HDMI. Для корректной проверки на устройстве должен размещаться файл /etc/system/config/display.conf следующего содержания:

device {
drivername=sunxi
vid=0x0
did=0x0
deviceindex=0
modeopts=/etc/system/config/sunxi.conf
display {
xres=1920
yres=1080
refresh=60
pixel_format=argb8888
}
}

В конфигурационном файле /etc/system/config/sunxi.conf раскомментировать соответствующую строку:

# Allwinner H3 configuration sample
irq=118,memory=64,verbose=debug
#base=0x01C0C000:0x01000000:0x01EE0000,irq=118,memory=64,verbose=debug

Затем необходимо запустить io-display:

# io-display -dvid=0,did=0

После — воспользоваться утилитой gf-vsync:

# gf-vsync -l0

Проверка считается пройденной успешно, если на экране отображается корректное изображение, соответствующее документации на утилиту gf-vsync.

Проверка драйвера контроллера GPU

Проверка модуля GPU производится с использованием утилиты pidin ar. Перед выполнением проверки необходимо установить переменные окружения GRAPHICS_ROOT и LD_LIBRARY_PATH в соответствии с документацией на модуль. Для корректной проверки на устройстве должы размещаться файлы lxdev.conf и graphics.conf следующего содержания:

#module "mali-sun8iw7"
gpu {
compatible = "arm,mali-dev";
clocks = <&gpuclk>;
};
# Allwinner H3 platform configuration
begin khronos
begin egl display 1
# EGL driver
egl-dlls = libEGL_mali.so
# OpenGL ES v1.* driver
glesv1-dlls = libGLESv1_CM_mali.so
# OpenGL ES v2.* driver and shader compiler
glesv2-dlls = libGLESv2_mali.so
end egl display
begin wfd device 1
# GPU driver options
gpu-contiguousMB = 64
end wfd device
end khronos

Затем необходимо запустить io-lxdev:

# io-lxdev

После — воспользоваться утилитой pidin ar:

# pidin ar pid Arguments 1 procnto-smp -vvv -ae 2 slogger -s 16384k 3 pipe 4 platform-control -dsunxi 5 devc-ser8250 -e -F -b115200 -c24000000/16 0x01C28000^2,32 6 io-usb -dehci ioport=0x01c1b000,irq=106 -dohci ioport=0x01c1b400,irq=107 -dehci ioport=0x01c1c000,irq=108 -dohci ioport=0x01c1c400,irq=109 -dehci ioport=0x01c1d000,irq=110 -dohci ioport=0x01c1d400,irq=111 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 io-display -dvid=0,did=0 4108 io-lxdev 4109 pidin ar

Проверка считается пройденной успешно, если вывод утилиты pidin ar содержит информацию о запуске менеджера системы совместимости с модулями Linux:

4108 io-lxdev




Предыдущий раздел: перейти