Обзор компактного компьютера ASUS Tinker Board


Работа в операционной системе TinkerOS и тесты производительности

Требования

  • 1 x Micro SD карта объёмом не менее 8 ГБ
  • 1 x Micro USB кабель и адаптер питания 5 В /2~2.5 А
  • 1 x Монитор и HDMI кабель
  • 1 x Клавиатура и мышь

Примечание: рекомендуется использовать высокоскоростную SD карту (Class 10 и выше).

Установка операционной системы

TinkerOS

Tinker OS – операционная система, основанная на Debian и модифицированная для работы с Tinker Board.

Примечание: не используйте apt-get, так как это может перезаписать некоторые оптимизации TinkerOS.

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

https://www.asus.com/Single-Board-Computer/Tinker-Board/HelpDesk_Download/

Имя по умолчанию “linaro”; пароль “linaro”

Установка из ОС Linux

  1. Вставьте карту памяти micro-SD в компьютер под управлением операционной системы Linux.
    2. Переименуйте файл с образом ОС в output.img и поместите его в папку FlashUSB.
    3. Запустите файл FlashUSB.sh.

    ===============================================
    Select the disk you want to flash:
    sdc  -Multiple_Flash_Reader_058F63616476-0:1
    sdb  -Generic-_Compact_Flash_058F63616476-0:0
    Enter the number:0
    dd if=/home/yihsin/Rockchip/aa7-demo/out/target/output.img of=/dev/sdc seek=0 bs=16M conv=notrunc
    flash start!
    flash end!
    ===============================================

    Вставьте карту памяти micro-SD в слот на Tinker Board.
    Подключите клавиатуру, мышь и монитор, а затем питание.

Установка из ОС Windows

  1. Вставьте карту памяти micro-SD в компьютер под управлением операционной системы Windows.
    2. Скачайте и запустите приложение Win32DiskImager.
    2.1 Выберите файл с образом ОС.
    2.2 Укажите карту памяти как устройство, на которое осуществляется запись образа.
    2.3 Щелкните по кнопке Write («Запись»).

Установка через Etcher (кросс платформенное приложение)

Скачать Etcher можно с официального ресурса https://etcher.io/

Первая загрузка и настройки

Установите подготовленную microSD карту в соответствующий слот, подключите периферию, а затем питания.

Настройка

  • Изменение раскладки клавиатуры

По умолчанию установлена английская (US) раскладка. Чтобы изменить это, выполните следующие действия:

sudo dpkg-reconfigure keyboard-configuration
sudo reboot
  • Изменение часового пояса, времени, даты
    • Часовой пояс
      По умолчанию: UTC±0
sudo dpkg-reconfigure tzdata
    • Дата и время
      Дата и время автоматически синхронизируются с NTP сервером, когда вы подключаете интернет.
      Если вы хотите задать свои настройки, то сначала отключите синхронизацию с NTP!
sudo timedatectl set-time '2017-04-17 08:10:40'
    • NTP
      По умолчанию: включено
sudo timedatectl set-ntp 1 #enable
sudo timedatectl set-ntp 0 #disable
  • Изменение разрешения экрана

Откройте “Monitor Settings”
«Menu» -> «Preferences» -> «Monitor Settings»

  • Проверка аудио выхода
    • Откройте “PulseAudio Volume Control”.
      «Menu» -> «Sound & Video» -> «PulseAudio Volume Control»

  • Переключитесь на закладку «Output Devices».
    Проверьте, что устройство определяется корректно.
    Для изменения устройства вывода нажмите на зелёную галочку

Устройства вывода:

Устройство Описание
BT_VOIP-Output Bluetooth выход
SPDIF-Output SDIF выход
Headset-Output 3.5 AUX аудио разъём
rockchip,miniarm-codec Analog Stereo HDMI аудио
USB Audio Analog Stereo
  • Проверка интернет подключения

Сеть интернет доступна через Wi-Fi и через Ethernet.

    • Ethernet
      1. Подключите кабель RJ-45 к Tinker Board.
      2. Правым кликом нажмите “Connection Information” для информации о подключении
    • Wi-Fi
      1. Левым кликом нажмите на иконку Wi-Fi.
      2. Найдите нужную точку доступа и подключитесь к ней.
      3. Правым кликом нажмите “Connection Information” для информации о подключении

Если вы не можете найти свою точку доступа, попробуй выбрать “More networks”.

Примечание: Tinker Board поддерживает только 2.4 ГГц сети.

  • Управление питанием

Откройте “Power Manager”
«Menu» -> «Preferences» -> «Power Manager»

    • Отключение дисплея

По умолчанию: после 10 минут простоя
Настраивается в разделе «Display»

    • Блокировка экрана

По умолчанию: после 5 секунд работы экранной заставки
Настраивается в разделе «Security»

Воспроизведение видео

Воспроизведение HD / UHD видео

Стандартный проигрыватель – Media Player

  1. Откройте “Media Player”
    «Menu» -> «Sound & Video» -> «Media Player»
  2. Нажмите “Open”, чтобы добавить видео в плейлист

Примечание: USB накопители монтируются по пути /media/linaro/[Drive Name]

Можно начать воспроизведение

Если вместо видео вы видите чёрный экран, то увеличьте окно проигрывателя

Поддерживаемые форматы и ограничения:
Воспроизведение видео в форматах HD и Ultra-HD со скоростью 30 кадров в секунду в настоящий момент доступно только посредством видеоплеера Rockchip, который работает в операционной системе TinkerOS. Сторонние видеоплееры и приложения могут не поддерживать аппаратное ускорение или иметь какие-то другие ограничения с точки зрения производительности или стабильности при воспроизведении видео.

Воспроизведение видео в Chromium

Chromium предустановлен в TinkerOS и является плагином для стрима видео YouTube а формате H.264 вместо VP8/VP9.

Убедитесь, что видео именно в H264 формате.

Проверка наличия кодека h264ify

  1. Перейдите по ссылке chrome://extensions и посмотрите расширения или пройдите по пути «Chromium» -> «Menu» -> «More tools» -> «Extensions».
  2. Убедитесь, что h264ify установлен и включён.

Если нет, то скачайте h264ify и включите его.

Воспроизведение видео на YouTube

  1. Перейдите на YouTube
  2. Найдите и выберите видео для воспроизведения

Примечание: ограничение по разрешению — 1080P.

*Некоторые видео могут воспроизводиться с фризами

Ошибка браузера

Подключение к www.youtube.com может быть отклонено, если дата и время на вашем устройстве установлены некорректно. NET::ERR_CERT_DATE_INVALID

  • Необходимо дождаться синхронизации с NTP для обновления даты/времени
  • Можно установить дату и время вручную

GPIO

Одной из основных функций Tinker Board является наличие GPIO (general purpose input/output). Эти коннекторы являются связью Tinker Board с окружающим миром. Из 40 контактов 28 являются GPIO (совмещены с SPI/UART/I2C). Плата Tinker Board оборудована одной шиной SPI.

1 x 40-пиновый набор контактов:

  1. до 28 x GPIO пинов
  2. до 2 x шин SPI
  3. до 2 x шин I2C
  4. до 4 x UART
  5. до 2 x PWM
  6. до 1 x PCM/I2S
  7. 2 x 5V питающих пина
  8. 2 x 3.3V питающих пина
  9. 8 x заземляющих пина
1 x 2-пиновый контактный разъём:

  • 1 x PWM
  • 1 x S/PDIF

GPIO_API_for_Python

Установка

cd ~
unzip TinkerBoard.gpio-0.1.zip
cd TinkerBoard.gpio-0.1
sudo python setup.py install
sudo python3 setup.py install

Пример кода

blink.py

import ASUS.GPIO as GPIO
import time
LED_Pin = 11
GPIO.setmode(GPIO.BOARD) #Physical Pin
GPIO.setup(LED_Pin, GPIO.OUT)
while True:
    try: #Blink the LED
        GPIO.output(LED_Pin, GPIO.HIGH)
        # Send HIGH to switch on LED
        print("LED ON!")
        time.sleep(0.5)
        GPIO.output(LED_Pin, GPIO.LOW)
        # Send LOW to switch off LED
        print("LED OFF!")
        time.sleep(0.5)
    except KeyboardInterrupt:
    # Turn LED off before stopping
        GPIO.output(LED_Pin, GPIO.LOW)
        break
    except IOError:
        print ("Error")

Пример запуска

sudo python blink.py

Если вы хотите управлять SPI, I2C или UART через Python, необходимо использовать другие библиотеки Python, такие как spidev, smbus2 или pySerial.

GPIO_API_for_C

Установка

cd ~
unzip wiringpi-tinker.zip
cd wiringpi-tinker/
sudo chmod +x build
sudo ./build

ПРИМЕЧАНИЕ: для компиляции программ wiringPi вам необходимо добавить:
-lwiringPi
При использовании Gertboard, MaxDetect, и т.д.
(devLib), вам необходимо:
-lwiringPiDev
 Пример кода

blink.c

#include<stdio.h>
#include<wiringPi.h>
// LED Pin - wiringPi pin 0 is Physical pin 11.
#define       LED_Pin 0
int main(void)
{
printf("Tinker blink\n");
wiringPiSetup();
pinMode(LED_Pin, OUTPUT);
for(;;)
{
digitalWrite(LED_Pin, HIGH);
delay(500);
digitalWrite(LED_Pin, LOW);
delay(500);
}
return 0;
}

Пример запуска

gcc blink.c -o blink -lwiringPi #Compile
sudo ./blink #Run

Оптимальные настройки по версии ASUS

Предварительно собранные пакеты

  • Менеджер пакетов Synaptic
    Установка пакетов (apt-get) может быть произведена с использованием графического интерфейса.
  • Файловая система
    • NTFS
      Поддержка совместимой с Window файловой системы
    • XFS
      Поддержка высокопроизводительной журналируемой файловой системы
  • Веб-браузер Chromium
    Свободный, быстрый, простой и защищённый веб-браузер
  • IDLE
    • Python-2.7
      Предварительно установленный Python IDLE 2.x для разработки и обучения
    • Python-3.5
      Предварительно собранный Python IDLE 3.x для разработки и обучения
  • Язык программирования Squeak
    • Scratch
      Предварительно установленная среда программирования

Тестирование производительности

sysbench – тестирование процессора

Установка sysbench

sudo apt-get update
sudo apt-get install sysbench

Запуск тестирования процессора

sysbench --num-threads=1 --test=cpu --cpu-max-prime=20000 --validate run
sysbench --num-threads=4 --test=cpu --cpu-max-prime=20000 --validate run

Пример полученного результата

Maximum prime number checked in CPU test: 20000

Test execution summary:
total time:                            73.3289s
total number of events:                10000
total time taken by event execution:   293.2457

per-request statistics:
min:                        28.08ms
avg:                        29.32ms
max:                        69.47ms

approx.  95 percentile:     32.91ms

Threads fairness:
events (avg/stddev):            2500.0000/184.45
execution time (avg/stddev):    73.3114/0.01

Мультипоточность

Платформа Время Запрос (сред.)
Tinker Board 73.3289s 29.32ms
Другая платформа 129.6265s 48.12ms

Один поток

Платформа Время Запрос (сред.)
Tinker Board 282.1970s 28.22ms
Competitor SBC 504.5914s 50.46ms

Octane 2.0 — тестирование производительности JavaScript

https://chromium.github.io/octane/

Platform Score
Tinker Board 7288
Другая платформа 2635

JetStream – тестирование производительности JavaScript

http://browserbench.org/JetStream/

glmark2 – тестирование графики (OpenGL & ES)

Установка glmark2

sudo apt-get update
sudo apt-get install git g++ build-essential pkg-config
sudo apt-get install libx11-dev libgl1-mesa-dev libjpeg-dev libpng-dev
cd ~/
git clone https://github.com/glmark2/glmark2.git
cd glmark2/
./waf configure --with-flavors=x11-glesv2
./waf build -j 4
sudo ./waf install

Запуск тестирования

glmark2-es2
glmark2-es2 --fullscreen
glmark2-es2 --off-screen

 

Пример полученного результата

=======================================================

glmark2 2014.03

=======================================================

OpenGL Information
GL_VENDOR:     ARM
GL_RENDERER:   Mali-T760
GL_VERSION:    OpenGL ES 3.1 v1.r9p0

=======================================================

[build] use-vbo=false: FPS: 59 FrameTime: 16.949 ms
[build] use-vbo=false: true: 60 FrameTime: 16.667 ms
<snip>

=======================================================

glmark2 Score: 57

=======================================================

Отключение V-Sync (for glmark2)

  1. Отредактируйте конфиг xorg, добавив「Option «Dri2Vsync» «FALSE»」 в /etc/X11/xorg.conf.d/20-modesetting.conf
Section "Device"
Identifier  "Rockchip Graphics"
Driver      "modesetting"
Option      "AccelMethod"    "glamor"
Option      "modesetting"    "2"
Option      "Dri2Vsync"      "FALSE"
EndSection
  1. Перезагрузите систему и xserver загрузит новую конфигурацию.

Примечание: Отключение V-Sync не рекомендуется для обычного использования. С отключённым V-Sync в выводимом изображении могут появляться ошибки.

Установка профиля работы процессора (для glmark2)

Максимальная производительность

echo performance | sudo tee /sys/devices/system/cpu/cpufreq/policy0/scaling_governor

Обычный режим

echo interactive | sudo tee /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
Платформа Tinker Board (стандарт.) Tinker Board Другая платформа (стандарт.) Другая платформа
Режим ЦП Стандарт Производительность* Стандарт Производительность
Драйвер Вкл. Вкл. Выкл. Вкл.***
VSync Вкл. Выкл.** Выкл. Выкл.
glmark2-es2 42 308 23 91
Полноэкранный режим 30 167 9 111
В окне 172 506 32 211

* Для получения эталонного результата glmark2.

** В TinkerOS по умолчанию включена технология V-Sync для наилучшего качества изображения. Для тестирования производительности требуется отключать технологию V-Sync.

*** Некоторые платформы по умолчанию не загружают драйвер GL, потому что он находится на стадии разработки.

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

Частота процессора

Вывод информации о частоте процессора в реальном времени:

sudo watch -n 1  cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq

Частота графического процессора

Вывод информации о частоте графического процессора в реальном времени:

sudo watch -n 1  cat /sys/devices/platform/*.gpu/devfreq/*.gpu/cur_freq

Текущая температура процессора и графического процессора

  1. Сохраните код в temperature.sh
  2. sudo chmod +x temperature.sh
  3. ./temperature.sh
#!/bin/bash
cpu_temp=$(</sys/class/thermal/thermal_zone1/temp)
gpu_temp=$(</sys/class/thermal/thermal_zone2/temp)
echo "CPU => $(echo 'scale=2;' $cpu_temp / 1000 | bc)°C"
echo "GPU => $(echo 'scale=2;' $gpu_temp / 1000 | bc)°C"

Пример:

$ sudo chmod +x temperature.sh
$ ./temperature.sh
CPU => 42.72°C
GPU => 41.81°C

Также вы можете вести лог температуры каждую секунду:

$ watch -t -p -n 1 ./temperature.sh

Читать далее: работа в операционной системе Android и тесты производительности