Работа в операционной системе 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
- Вставьте карту памяти 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
- Вставьте карту памяти 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
По умолчанию: включено
- 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»
- Откройте “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
-
-
- Подключите кабель RJ-45 к Tinker Board.
- Правым кликом нажмите “Connection Information” для информации о подключении
- Wi-Fi
- Левым кликом нажмите на иконку Wi-Fi.
- Найдите нужную точку доступа и подключитесь к ней.
- Правым кликом нажмите “Connection Information” для информации о подключении
-
Если вы не можете найти свою точку доступа, попробуй выбрать “More networks”.
Примечание: Tinker Board поддерживает только 2.4 ГГц сети.
- Управление питанием
Откройте “Power Manager”
«Menu» -> «Preferences» -> «Power Manager»
-
- Отключение дисплея
По умолчанию: после 10 минут простоя
Настраивается в разделе «Display»
-
- Блокировка экрана
По умолчанию: после 5 секунд работы экранной заставки
Настраивается в разделе «Security»
Воспроизведение видео
Воспроизведение HD / UHD видео
Стандартный проигрыватель – Media Player
- Откройте “Media Player”
«Menu» -> «Sound & Video» -> «Media Player» - Нажмите “Open”, чтобы добавить видео в плейлист
Примечание: USB накопители монтируются по пути /media/linaro/[Drive Name]
Можно начать воспроизведение
Если вместо видео вы видите чёрный экран, то увеличьте окно проигрывателя
Поддерживаемые форматы и ограничения:
Воспроизведение видео в форматах HD и Ultra-HD со скоростью 30 кадров в секунду в настоящий момент доступно только посредством видеоплеера Rockchip, который работает в операционной системе TinkerOS. Сторонние видеоплееры и приложения могут не поддерживать аппаратное ускорение или иметь какие-то другие ограничения с точки зрения производительности или стабильности при воспроизведении видео.
Воспроизведение видео в Chromium
Chromium предустановлен в TinkerOS и является плагином для стрима видео YouTube а формате H.264 вместо VP8/VP9.
Убедитесь, что видео именно в H264 формате.
Проверка наличия кодека h264ify
- Перейдите по ссылке chrome://extensions и посмотрите расширения или пройдите по пути «Chromium» -> «Menu» -> «More tools» -> «Extensions».
- Убедитесь, что h264ify установлен и включён.
Если нет, то скачайте h264ify и включите его.
Воспроизведение видео на YouTube
- Перейдите на YouTube
- Найдите и выберите видео для воспроизведения
Примечание: ограничение по разрешению — 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 x 2-пиновый контактный разъём:
|
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
Поддержка высокопроизводительной журналируемой файловой системы
- NTFS
- Веб-браузер Chromium
Свободный, быстрый, простой и защищённый веб-браузер - IDLE
- Python-2.7
Предварительно установленный Python IDLE 2.x для разработки и обучения - Python-3.5
Предварительно собранный Python IDLE 3.x для разработки и обучения
- Python-2.7
- Язык программирования Squeak
- Scratch
Предварительно установленная среда программирования
- 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)
- Отредактируйте конфиг 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
- Перезагрузите систему и 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 | Другая платформа (стандарт.) | Другая платформа |
Режим ЦП | Стандарт | Производительность* | Стандарт | Производительность |
Драйвер | Вкл. | Вкл. | Выкл. | Вкл.*** |
V—Sync | Вкл. | Выкл.** | Выкл. | Выкл. |
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
Текущая температура процессора и графического процессора
- Сохраните код в temperature.sh
- sudo chmod +x temperature.sh
- ./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 и тесты производительности