Обзор ODROID-H2 – Часть 2: Ubuntu 19.04


Компания Hardkernel снова начала продавать свои SBC ODROID-H2, точнее ODROID-H2 Rev. B, после задержки в несколько месяцев из-за того, что Intel не производил массово процессоры Gemini Lake, также в конце прошлого месяца они предоставили комплект для оценки. В первой части обзора вы можете рассмотреть ODROID-H Rev. B с корпусом Type 3, а также инструкции по сборке его.

Было время поэкспериментировать с платой, используя предустановленную операционную систему Ubuntu 19.04, поэтому во второй части обзора будет рассказан пользовательский опыт и произведены некоторые тесты. Обратите внимание, что ODROID-H2 не зависит от пользовательской версии Ubuntu и вы можете просто скачать и обновить Ubuntu 18.04 или 19.04 непосредственно на веб-сайте Ubuntu.

Первая загрузка и информация о системе

Перед запуском устройства, внутри самого корпуса было установлено и подключено два SATA накопителя, один SSD и один HDD, также были подключены HDMI кабель, Ethernet кабель, USB клавиатура и мышь, а также блок питания. В первый раз плата должна запуститься автоматически, когда подключите источник питания к ней, но позже вам нужно будет нажимать кнопку питания, чтобы запустить его. Компания Hardkernel утверждает, что должна появиться светодиодная кнопка питания, которая будет размещена в круглом отверстии, ее можно увидеть на фотографии выше, но в данном случае ее просто не было. Пришлось воспользоваться пинцетом, чтобы нажать небольшую кнопку питания на самой плате.

Но кроме этой маленькой детали все работает хорошо. Также была запущена команда для обновления, чтобы убедиться, что установлена самая последняя версия операционной системы:

sudo apt update
sudo apt dist-upgrade

Вы можете просмотреть полный лог загрузки, а также некоторую системную информацию ниже:

odroid@ODROID-H2:~$ uname -a
Linux ODROID-H2 5.0.0-20-generic #21-Ubuntu SMP Mon Jun 24 09:32:09 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
odroid@ODROID-H2:~$ cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=19.04
DISTRIB_CODENAME=disco
DISTRIB_DESCRIPTION="Ubuntu 19.04"
odroid@ODROID-H2:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            3.8G     0  3.8G   0% /dev
tmpfs           780M  1.7M  778M   1% /run
/dev/mmcblk0p2   29G  7.7G   19G  29% /
tmpfs           3.9G   69M  3.8G   2% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/loop1      1.0M  1.0M     0 100% /snap/gnome-logs/61
/dev/loop0      3.8M  3.8M     0 100% /snap/gnome-system-monitor/77
/dev/loop2      3.8M  3.8M     0 100% /snap/gnome-system-monitor/95
/dev/loop3       55M   55M     0 100% /snap/core18/1049
/dev/loop4      150M  150M     0 100% /snap/gnome-3-28-1804/63
/dev/loop6       36M   36M     0 100% /snap/gtk-common-themes/1198
/dev/loop7       54M   54M     0 100% /snap/core18/941
/dev/loop5       15M   15M     0 100% /snap/gnome-characters/292
/dev/loop8      152M  152M     0 100% /snap/gnome-3-28-1804/31
/dev/loop9       90M   90M     0 100% /snap/core/6673
/dev/loop10     4.2M  4.2M     0 100% /snap/gnome-calculator/406
/dev/loop11      89M   89M     0 100% /snap/core/7270
/dev/loop12      15M   15M     0 100% /snap/gnome-characters/254
/dev/mmcblk0p1  511M  7.6M  504M   2% /boot/efi
tmpfs           780M   28K  780M   1% /run/user/1000
odroid@ODROID-H2:~$ free -mh
              total        used        free      shared  buff/cache   available
Mem:          7.6Gi       1.5Gi       4.4Gi       290Mi       1.7Gi       5.5Gi
Swap:         1.3Gi          0B       1.3Gi

Ubuntu 19.04 с ядром Linux 5.0. eMMC флэш-память объемом 32 Гб имеет корневой раздел с 19 Гб свободного пространства, а также было определено 7.6 Гб ОЗУ с включенной подкачкой 1.3 Гб. Некоторые люди могут рассмотреть возможность включения ZRAM для повышения производительности.

sudo inxi -Fc0
System:
  Host: ODROID-H2 Kernel: 5.0.0-20-generic x86_64 bits: 64 Console: tty 0 
  Distro: Ubuntu 19.04 (Disco Dingo) 
Machine:
  Type: Desktop Mobo: HARDKERNEL model: ODROID-H2 v: 1.0 serial: N/A 
  UEFI: American Megatrends v: 5.13 date: 05/10/2019 
CPU:
  Topology: Quad Core model: Intel Celeron J4105 bits: 64 type: MCP 
  L2 cache: 4096 KiB 
  Speed: 1237 MHz min/max: 800/2500 MHz Core speeds (MHz): 1: 900 2: 873 
  3: 910 4: 971 
Graphics:
  Device-1: Intel driver: i915 v: kernel 
  Display: server: X.org 1.20.4 driver: i915 tty: 80x24 
  Message: Advanced graphics data unavailable in console for root. 
Audio:
  Device-1: Intel driver: snd_hda_intel 
  Sound Server: ALSA v: k5.0.0-20-generic 
Network:
  Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet 
  driver: r8169 
  IF: enp2s0 state: up speed: 100 Mbps duplex: full mac: 00:1e:06:45:06:53 
  Device-2: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet 
  driver: r8169 
  IF: enp3s0 state: down mac: 00:1e:06:45:06:54 
Drives:
  Local Storage: total: 1.05 TiB used: 7.58 GiB (0.7%) 
  ID-1: /dev/mmcblk0 model: BJTD4R size: 29.12 GiB 
  ID-2: /dev/sda model: CJ225128TC size: 118.00 GiB 
  ID-3: /dev/sdb vendor: Toshiba model: MQ01ABD100 size: 931.51 GiB 
Partition:
  ID-1: / size: 28.04 GiB used: 7.58 GiB (27.0%) fs: ext4 
  dev: /dev/mmcblk0p2 
Sensors:
  System Temperatures: cpu: 55.0 C mobo: N/A 
  Fan Speeds (RPM): N/A 
Info:
  Processes: 229 Uptime: 1h 41m Memory: 7.61 GiB used: 1.62 GiB (21.3%) 
  Init: systemd runlevel: 5 Shell: bash inxi: 3.0.33 

Два внутренних SATA диска и их разделы были правильно обнаружены, но, как видно из приведенной выше команды df, они не были смонтированы автоматически.

mount | grep /sd
/dev/sda1 on /media/odroid/724DFD887D78427F type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096,uhelper=udisks2)
/dev/sda2 on /media/odroid/a788fe70-2382-4ceb-86c6-ac1d4ca8cfe9 type ext4 (rw,nosuid,nodev,relatime,uhelper=udisks2)
/dev/sdb1 on /media/odroid/DATA-Drive type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096,uhelper=udisks2)

Поэтому нужно запустить DISKS для монтирования всех трех разделов вручную и в следующий раз (после перезагрузки) они буду смонтированы автоматически. На фото ниже показано, что модуль eMMC флэш-памяти был обнаружен в качестве картридера SD.

Нажмите, чтобы увеличить

Пользовательский опыт с ODROID-H2 Rev.B

Как обычно на плате будут протестированы некоторые из поддерживаемых функций Ubuntu 19.04, чтобы посмотреть, насколько хорошо она будет работать как настольный компьютер:

  • Многозадачность – запуск и использование Firefox, Thunderbird, LibreOffice Write и Gimp одновременно
  • Просмотр веб-страниц с помощью Firefox и Chromium – открытие нескольких вкладок, Youtube 1080p, 1440p и 2160p (4K), Candy Crush Saga в Facebook, и демоверсии WebGL: Quake + Aquarium
  • Воспроизведение видео H.264, H.265 и VP9 в Kodi 18.3 и VLC с жесткого диска USB 3.0
  • Офисные приложения – открытие файла odt “word” в LibreOffice, открытие большой PDF (ODROID Magazine 2018) в Evince

Благодаря быстрой eMMC флэш-памяти и 8 ГБ оперативной памяти все четыре программы запускаются практически мгновенно, а просмотр веб-страниц с несколькими вкладками работает очень хорошо. На Firefox был установлен плагин h264ify, поскольку YouTube по умолчанию использует VP9, который воспроизводится не очень гладко. Изначально видео 1080p проигрывало нормально с помощью AVC, но во время съемки видео обзора (см. ниже) было ограничено разрешением 720p только с кодеком AV1. Далее был использован Chrome без h264ify, чтобы показать, что видео 4K (2160p) будет воспроизводиться не очень плавно. Воспроизведение видео при разрешении 1440p было приемлемым.

Загрузка Candy Crush Saga, как обычно, заняла некоторое время и при загрузке уровня можно услышать обрывы звука, но не было проблем во время самой игры. Демоверсии WebGL работали нормально при довольно низких 12-15 fps. Это все же лучше, чем на большинстве Arm платформ, которые часто не загружают некоторые демоверсии WebGL из-за использования OpenGL ES вместо OpenGL.

Различные видео 4K воспроизводились в VLC и они все проигрывались нормально, за исключением некоторого заикания в самом начале, 10-битные H.264 не поддерживаются (показывает черный экран). Однако, разрешение видео выхода было установлено 1080p60. Теперь переключимся на разрешение 3840×2160, которое ограничено 30 кадрами в секунду через HDMI и если вы хотите 4K 60 fps, то вам стоит использовать выход DisplayPort. Теперь снова воспроизведем видео 4K и все они показывали не очень плавно. Далее все это было проверено на Kodi 18.3 и результаты были столь же неутешительны. Было установлено автоматическое переключение частоты кадров в Kodi, но, похоже, оно не работает. Видео H.265, H.264 и VP9 были декодированы с помощью аппаратного декодирования видео в Kodi, поэтому можно предположить, что основной проблемой является частота кадров на выходе и использование DisplayPort должно улучшить результаты..

Вы можете посмотреть чуть ниже видео обзор.

Тестирование ODROID-H2

3D графика

Было запущенно несколько тестов, начнем с glmark2, используя разрешение 1920 × 1080:

Нажмите, чтобы увеличить
glmark2
=======================================================
    glmark2 2014.03+git20150611.fa71af2d
=======================================================
    OpenGL Information
    GL_VENDOR:     Intel Open Source Technology Center
    GL_RENDERER:   Mesa DRI Intel(R) UHD Graphics 600 (Geminilake 2x6) 
    GL_VERSION:    3.0 Mesa 19.0.2
=======================================================
[build] use-vbo=false: FPS: 1560 FrameTime: 0.641 ms
[build] use-vbo=true: FPS: 1637 FrameTime: 0.611 ms
[texture] texture-filter=nearest: FPS: 1546 FrameTime: 0.647 ms
[texture] texture-filter=linear: FPS: 1532 FrameTime: 0.653 ms
[texture] texture-filter=mipmap: FPS: 1544 FrameTime: 0.648 ms
[shading] shading=gouraud: FPS: 1230 FrameTime: 0.813 ms
[shading] shading=blinn-phong-inf: FPS: 1234 FrameTime: 0.810 ms
[shading] shading=phong: FPS: 1208 FrameTime: 0.828 ms
[shading] shading=cel: FPS: 1203 FrameTime: 0.831 ms
[bump] bump-render=high-poly: FPS: 958 FrameTime: 1.044 ms
[bump] bump-render=normals: FPS: 1636 FrameTime: 0.611 ms
[bump] bump-render=height: FPS: 1583 FrameTime: 0.632 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 1067 FrameTime: 0.937 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 561 FrameTime: 1.783 ms
[pulsar] light=false:quads=5:texture=false: FPS: 1297 FrameTime: 0.771 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 545 FrameTime: 1.835 ms
[desktop] effect=shadow:windows=4: FPS: 962 FrameTime: 1.040 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 617 FrameTime: 1.621 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 505 FrameTime: 1.980 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 704 FrameTime: 1.420 ms
[ideas] speed=duration: FPS: 1083 FrameTime: 0.923 ms
[jellyfish] <default>: FPS: 752 FrameTime: 1.330 ms
[terrain] <default>: FPS: 103 FrameTime: 9.709 ms
[shadow] <default>: FPS: 1023 FrameTime: 0.978 ms
[refract] <default>: FPS: 176 FrameTime: 5.682 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 1207 FrameTime: 0.829 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 1219 FrameTime: 0.820 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 1203 FrameTime: 0.831 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 1219 FrameTime: 0.820 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 1240 FrameTime: 0.806 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 1220 FrameTime: 0.820 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 1215 FrameTime: 0.823 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 1236 FrameTime: 0.809 ms
=======================================================
                                  glmark2 Score: 1091 
=======================================================

ODROID-H2 получил 1,091 баллов в glmark2. Пока не понятно, можно ли их сравнить с результатами glmark2-es2, которые были получены другими Arm платформами, поскольку они сильно варьируются в зависимости от настроек. Для справки: плата Nvidia Jetson TX2 набрала 1,218 баллов в Ubuntu 16.04 при том же разрешении (1920×1080) согласно результатам, которые были опубликованы на OpenBenchmarking.

SBC Bench

Далее перейдем к sbc-bench, который в основном полезен для серверных рабочих нагрузок (в отличие от настольных рабочих нагрузок):

wget https://raw.githubusercontent.com/ThomasKaiser/sbc-bench/master/sbc-bench.sh
sudo /bin/bash ./sbc-bench.sh -c

Были получены некоторые сообщения об ошибках при мониторинге частоты процессора:

/home/odroid/sbc-bench.sh: line 180: /sys/devices/system/cpu/cpufreq/policy0/cpufreq/scaling_cur_freq: No such file or directory

Поэтому в качестве быстрого решения был изменен код в строке 180 скрипта, чтобы удалить “cpufreq/” из строки и после снова был запущен тест:

sbc-bench v0.6.7

Installing needed tools. This may take some time... Done.
Checking cpufreq OPP... Done.
Executing tinymembench. This will take a long time... Done.
Executing OpenSSL benchmark. This will take 3 minutes... Done.
Executing 7-zip benchmark. This will take a long time... Done.
Executing cpuminer. This will take 5 minutes... Done.
Checking cpufreq OPP... Done.

Memory performance:
memcpy: 5316.4 MB/s 
memset: 7001.2 MB/s (0.4%)

Cpuminer total scores (5 minutes execution): 18.88,18.87,18.86,18.85,18.84,18.83,18.82,18.81,18.79,18.76 kH/s

7-zip total scores (3 consecutive runs): 8398,8445,8442

OpenSSL results:
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-128-cbc     322757.32k   687215.55k   867034.28k   940509.53k   967210.33k   966896.30k
aes-128-cbc     322009.69k   687838.93k   865825.11k   940798.63k   964225.71k   967092.91k
aes-192-cbc     303336.73k   603481.39k   735460.61k   789580.12k   806917.46k   809260.37k
aes-192-cbc     302952.69k   604931.39k   735684.01k   789985.28k   809088.34k   808938.15k
aes-256-cbc     286240.75k   538138.99k   630548.48k   679576.23k   694332.07k   695025.66k
aes-256-cbc     285497.47k   538924.54k   631544.15k   678960.47k   694831.79k   693452.80k

Full results uploaded to http://ix.io/1O0O. Please check the log for anomalies (e.g. swapping
or throttling happened) and otherwise share this URL.

Цифры полученные для ODROID-H2 немного ниже, чем те, которые были указаны для платы на странице результатов SBC Bench, несмотря на то, что пропуска тактов (троттлинга) не было обнаружено.

Помимо проверки производительности, скрипт sbc-bench также очень полезен для контроля температуры и частоты во время работы. Самой сложной задачей, cpuminer было заставить процессор подняться до 84°C. Радиатор хорошо справляется с охлаждением и вентилятор, кажется, совсем не нужным.

ODROID-H2 vs ODROID-XU4Q

Также были запущены другие тесты, которые использовались в обзоре ODROID-XU4 с Ubuntu 18.04. Обе платы предназначались для разных целей, но поскольку обе сделаны компанией Hardkernel и ODROID-H2 стоит в два раза дороже, было бы забавно сравнить результаты, чтобы убедиться, что вы получите как минимум вдвое большую производительность.

Была использована кросс-компиляция Linux для ODROID-XU4 в разделе EXT-4 SSD-накопителя, который подключен к ODROID-H2:

sudo apt install git gcc g++ build-essential libssl-dev gcc-arm-linux-gnueabi
cd /media/odroid/a788fe70-2382-4ceb-86c6-ac1d4ca8cfe9
git clone --depth 1 https://github.com/hardkernel/linux -b odroidxu4-4.14.y
cd linux
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- odroidxu4_defconfig 
time make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -j4
...
real	25m48.658s
user	78m46.833s
sys	8m20.175s

Результаты для ODROID-XU4Q:

real 38m47.360s
user 255m45.448s
sys 23m35.780s

Кросс-компиляция на ODROID-H2 заняла 25 минут и 48 секунд, тогда как ODROID-XU4 сделал то же самое за 38 минут и 47 секунд. Гораздо быстрее, но не в два раза. Обратите внимание, что кодовая база была слегка изменена с мая 2018 года, когда был сделан обзор про ODROID-XU4Q.

Также было протестировано программное транскодирование с конвертацией ffmpeg / avconv и видео MPEG4 в H.264:

time ffmpeg -i big_buck_bunny_1080p_MPEG4_MP3_25fps_7600K.AVI -vcodec libx264 -minrate 300k -maxrate 300k -bufsize 1835k bbb-h.264.avi
ffmpeg version 4.1.3-0ubuntu1 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 8 (Ubuntu 8.3.0-6ubuntu1)
  configuration: --prefix=/usr --extra-version=0ubuntu1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
Input #0, avi, from 'big_buck_bunny_1080p_MPEG4_MP3_25fps_7600K.AVI':
  Metadata:
    encoder         : SUPER(C) - by eRightSoft
    artist          : created.with.SUPER(C).v2011.bld.49
  Duration: 00:00:44.88, start: 0.000000, bitrate: 7746 kb/s
    Stream #0:0: Video: mpeg4 (Simple Profile) (MP4V / 0x5634504D), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], 7634 kb/s, 25 fps, 25 tbr, 25 tbn, 25 tbc
    Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 44100 Hz, stereo, fltp, 112 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (mpeg4 (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (mp3 (mp3float) -> mp3 (libmp3lame))
Press [q] to stop, [?] for help
[libx264 @ 0x55b1884b9b80] using SAR=1/1
[libx264 @ 0x55b1884b9b80] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2
[libx264 @ 0x55b1884b9b80] profile High, level 4.0
Output #0, avi, to 'bbb-h.264.avi':
  Metadata:
    IART            : created.with.SUPER(C).v2011.bld.49
    ISFT            : Lavf58.20.100
    Stream #0:0: Video: h264 (libx264) (H264 / 0x34363248), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=-1--1, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc58.35.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 300000/0/0 buffer size: 1835000 vbv_delay: -1
    Stream #0:1: Audio: mp3 (libmp3lame) (U[0][0][0] / 0x0055), 44100 Hz, stereo, fltp
    Metadata:
      encoder         : Lavc58.35.100 libmp3lame
frame=   35 fps=0.0 q=0.0 size=      10kB time=00:00:01.93 bitrate=  41.6kbits/sframe=   46 fps= 28 q=0.0 size=      10kB time=00:00:02.40 bitrate=  33.4kbits/sframe=   58 fps= 27 q=46.0 size=      10kB time=00:00:02.87 bitrate=  28.0kbits/frame=   73 fps= 27 q=51.0 size=      10kB time=00:00:03.47 bitrate=  23.1kbits/frame=   88 fps= 28 q=51.0 size=      10kB time=00:00:04.07 bitrate=  19.7kbits/frame=  107 fps= 29 q=50.0 size=      10kB time=00:00:04.88 bitrate=  16.4kbits/frame=  123 fps= 29 q=45.0 size=      10kB time=00:00:05.51 bitrate=  14.6kbits/frame=  139 fps= 29 q=46.0 size=     266kB time=00:00:06.16 bitrate= 353.2kbits/frame=  152 fps= 29 q=46.0 size=     266kB time=00:00:06.71 bitrate= 324.3kbits/frame=  168 fps= 29 q=55.0 size=     266kB time=00:00:07.39 bitrate= 294.5kbits/frame=  183 fps= 29 q=57.0 size=     266kB time=00:00:07.99 bitrate= 272.4kbits/frame=  202 fps= 30 q=52.0 size=     266kB time=00:00:08.80 bitrate= 247.3kbits/frame=  219 fps= 30 q=54.0 size=     266kB time=00:00:09.50 bitrate= 229.0kbits/frame=  239 fps= 31 q=53.0 size=     266kB time=00:00:10.31 bitrate= 211.0kbits/frame=  252 fps= 30 q=50.0 size=     522kB time=00:00:10.86 bitrate= 393.4kbits/frame=  268 fps= 30 q=55.0 size=     522kB time=00:00:11.54 bitrate= 370.2kbits/frame=  279 fps= 30 q=46.0 size=     522kB time=00:00:11.99 bitrate= 356.5kbits/frame=  295 fps= 30 q=47.0 size=     522kB time=00:00:12.66 bitrate= 337.4kbits/frame=  308 fps= 29 q=50.0 size=     522kB time=00:00:13.19 bitrate= 324.0kbits/frame=  322 fps= 29 q=46.0 size=     522kB time=00:00:13.79 bitrate= 309.9kbits/frame=  338 fps= 29 q=50.0 size=     522kB time=00:00:14.47 bitrate= 295.4kbits/frame=  356 fps= 29 q=48.0 size=     522kB time=00:00:15.20 bitrate= 281.2kbits/frame=  379 fps= 30 q=40.0 size=     778kB time=00:00:16.14 bitrate= 394.7kbits/frame=  402 fps= 31 q=39.0 size=     778kB time=00:00:17.11 bitrate= 372.4kbits/frame=  425 fps= 31 q=43.0 size=     778kB time=00:00:18.07 bitrate= 352.5kbits/frame=  446 fps= 32 q=44.0 size=     778kB time=00:00:18.96 bitrate= 336.0kbits/frame=  467 fps= 32 q=40.0 size=     778kB time=00:00:19.82 bitrate= 321.4kbits/frame=  488 fps= 32 q=37.0 size=    1034kB time=00:00:20.71 bitrate= 408.8kbits/frame=  510 fps= 32 q=37.0 size=    1034kB time=00:00:21.62 bitrate= 391.5kbits/frame=  530 fps= 33 q=41.0 size=    1034kB time=00:00:22.46 bitrate= 377.0kbits/frame=  544 fps= 32 q=42.0 size=    1034kB time=00:00:23.04 bitrate= 367.6kbits/frame=  559 fps= 32 q=52.0 size=    1034kB time=00:00:23.66 bitrate= 357.8kbits/frame=  573 fps= 32 q=56.0 size=    1034kB time=00:00:24.24 bitrate= 349.4kbits/frame=  584 fps= 32 q=61.0 size=    1034kB time=00:00:24.71 bitrate= 342.7kbits/frame=  602 fps= 32 q=64.0 size=    1290kB time=00:00:25.46 bitrate= 414.9kbits/frame=  617 fps= 32 q=60.0 size=    1290kB time=00:00:26.07 bitrate= 405.3kbits/frame=  637 fps= 32 q=58.0 size=    1290kB time=00:00:26.90 bitrate= 392.7kbits/frame=  653 fps= 32 q=52.0 size=    1290kB time=00:00:27.58 bitrate= 383.0kbits/frame=  664 fps= 32 q=48.0 size=    1290kB time=00:00:28.02 bitrate= 377.0kbits/frame=  679 fps= 32 q=51.0 size=    1290kB time=00:00:28.68 bitrate= 368.4kbits/frame=  697 fps= 32 q=48.0 size=    1290kB time=00:00:29.44 bitrate= 358.9kbits/frame=  703 fps= 31 q=42.0 size=    1290kB time=00:00:29.67 bitrate= 356.1kbits/frame=  723 fps= 31 q=44.0 size=    1546kB time=00:00:30.51 bitrate= 415.0kbits/frame=  740 fps= 31 q=45.0 size=    1546kB time=00:00:31.19 bitrate= 406.0kbits/frame=  752 fps= 31 q=49.0 size=    1546kB time=00:00:31.71 bitrate= 399.3kbits/frame=  769 fps= 31 q=55.0 size=    1546kB time=00:00:32.44 bitrate= 390.3kbits/frame=  784 fps= 31 q=48.0 size=    1546kB time=00:00:33.04 bitrate= 383.2kbits/frame=  799 fps= 31 q=50.0 size=    1546kB time=00:00:33.64 bitrate= 376.4kbits/frame=  813 fps= 31 q=53.0 size=    1546kB time=00:00:34.24 bitrate= 369.8kbits/frame=  832 fps= 31 q=50.0 size=    1802kB time=00:00:35.03 bitrate= 421.4kbits/frame=  852 fps= 31 q=48.0 size=    1802kB time=00:00:35.86 bitrate= 411.5kbits/frame=  874 fps= 31 q=49.0 size=    1802kB time=00:00:36.80 bitrate= 401.0kbits/frame=  892 fps= 31 q=51.0 size=    1802kB time=00:00:37.53 bitrate= 393.2kbits/frame=  911 fps= 31 q=50.0 size=    1802kB time=00:00:38.34 bitrate= 384.9kbits/frame=  925 fps= 31 q=55.0 size=    1802kB time=00:00:38.92 bitrate= 379.2kbits/frame=  942 fps= 31 q=57.0 size=    2058kB time=00:00:39.62 bitrate= 425.4kbits/frame=  961 fps= 32 q=48.0 size=    2058kB time=00:00:40.43 bitrate= 416.9kbits/frame=  979 fps= 32 q=54.0 size=    2058kB time=00:00:41.14 bitrate= 409.7kbits/frame=  994 fps= 32 q=52.0 size=    2058kB time=00:00:41.79 bitrate= 403.3kbits/frame= 1011 fps= 32 q=56.0 size=    2058kB time=00:00:42.52 bitrate= 396.4kbits/frame= 1026 fps= 31 q=53.0 size=    2058kB time=00:00:43.10 bitrate= 391.1kbits/frame= 1039 fps= 31 q=57.0 size=    2058kB time=00:00:43.67 bitrate= 386.0kbits/frame= 1051 fps= 31 q=61.0 size=    2058kB time=00:00:44.14 bitrate= 381.9kbits/frame= 1063 fps= 31 q=61.0 size=    2314kB time=00:00:44.66 bitrate= 424.3kbits/frame= 1076 fps= 31 q=64.0 size=    2314kB time=00:00:44.82 bitrate= 422.8kbits/frame= 1081 fps= 30 q=-1.0 Lsize=    2516kB time=00:00:44.93 bitrate= 458.7kbits/s speed=1.24x    
video:1736kB audio:702kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 3.162242%
[libx264 @ 0x55b1884b9b80] frame I:14    Avg QP:40.40  size: 20398
[libx264 @ 0x55b1884b9b80] frame P:805   Avg QP:44.21  size:  1666
[libx264 @ 0x55b1884b9b80] frame B:262   Avg QP:42.34  size:   578
[libx264 @ 0x55b1884b9b80] consecutive B-frames: 62.5% 12.8%  8.0% 16.7%
[libx264 @ 0x55b1884b9b80] mb I  I16..4: 31.0% 67.0%  2.1%
[libx264 @ 0x55b1884b9b80] mb P  I16..4:  2.5%  2.6%  0.0%  P16..4:  6.2%  0.2%  0.7%  0.0%  0.0%    skip:87.9%
[libx264 @ 0x55b1884b9b80] mb B  I16..4:  0.2%  0.3%  0.0%  B16..8:  3.8%  0.1%  0.0%  direct: 0.1%  skip:95.5%  L0:36.4% L1:63.0% BI: 0.6%
[libx264 @ 0x55b1884b9b80] 8x8 transform intra:55.4% inter:91.2%
[libx264 @ 0x55b1884b9b80] coded y,uvDC,uvAC intra: 7.7% 24.0% 1.9% inter: 0.5% 0.9% 0.0%
[libx264 @ 0x55b1884b9b80] i16 v,h,dc,p: 50% 28%  6% 16%
[libx264 @ 0x55b1884b9b80] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 15%  6% 73%  1%  1%  1%  1%  1%  1%
[libx264 @ 0x55b1884b9b80] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 38% 16% 14%  5%  5%  8%  5%  7%  3%
[libx264 @ 0x55b1884b9b80] i8c dc,h,v,p: 91%  4%  4%  0%
[libx264 @ 0x55b1884b9b80] Weighted P-Frames: Y:1.6% UV:1.6%
[libx264 @ 0x55b1884b9b80] ref P L0: 75.9%  5.7% 13.2%  5.1%  0.0%
[libx264 @ 0x55b1884b9b80] ref B L0: 78.0% 18.3%  3.7%
[libx264 @ 0x55b1884b9b80] ref B L1: 95.4%  4.6%
[libx264 @ 0x55b1884b9b80] kb/s:317.18

real	0m36.952s
user	1m54.453s
sys	0m1.043s

ODROID-H2 потребовалось 36,952 секунды для выполнения этой задачи, тогда как ODROID-XU4Q сделал это за 1 мин 34676 секунд. Расширенные инструкции SSE и AVX для процессора Intel, вероятно, очень помогли здесь. Также обратите внимание, что видео длится 45 секунд, поэтому Celeron J4105 SBC может обрабатывать транскодирование Full HD в реальном времени, тогда как плата Exynos 5422 не может.

Тесты хранилища

Был установлен iozone для оценки производительности хранилища:

sudo apt install iozone3

Начнем с 32 Гб eMMC флэш-модуля:

sudo iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2

                                                              random    random     bkwd    record    stride                                    
              kB  reclen    write  rewrite    read    reread    read     write     read   rewrite      read   fwrite frewrite    fread  freread
          102400       4    42609    48264    29986    30082    30242    44366                                                          
          102400      16    97654   104939    80457    79336    78519   102608                                                          
          102400     512   107436   108153   263109   264037   266641   107580                                                          
          102400    1024   107988   108123   278223   282883   282744   108130                                                          
          102400   16384   108056   108012   321248   323122   321730   108313

Последовательное чтение около 321 Мб / сек, последовательная запись 108 Мб / сек, а также отличные результаты случайных входов / выходов.

Далее был протестирован 120 Гб CHUANG JIU SSD-накопитель, который был подключен через SATA (раздел EXT-4):

sudo iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
                                                              random    random     bkwd    record    stride                                    
              kB  reclen    write  rewrite    read    reread    read     write     read   rewrite      read   fwrite frewrite    fread  freread
          102400       4    17187    23333    40007    40728    10093      971                                                          
          102400      16    62348    62490   108545   111024    36944     2659                                                          
          102400     512    32083   145493   230365   234401   215259    67038                                                          
          102400    1024   152705   148457   230761   234960   222372    70854                                                          
          102400   16384   152131    26173   242689   248811   247075   107358

Результаты скорости чтения (242 Мб / сек) и записи (152 Мб / сек) не очень высокие, но ограничивающим фактором может является то, что это недорогой SSD-накопитель. Опять же, нет никаких проблем со случайным вводом-выводом.

После был протестирован жесткий диск USB 3.0 (только последовательное чтение / запись):

sudo iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 
                                                              random    random     bkwd    record    stride                                    
              kB  reclen    write  rewrite    read    reread    read     write     read   rewrite      read   fwrite frewrite    fread  freread
          102400       4    21572    28665    27230    27278                                                                          
          102400      16    74176    78618    73279    74835                                                                          
          102400     512    91501    93239    94668    96978                                                                          
          102400    1024    92395    92321    96151    97566                                                                          
          102400   16384    91824    93500    92948    96118

Результаты скорости чтения (92 Мб / сек) и записи ( 91 Мб / сек) были приемлемыми, поскольку не стоило ожидать многого от механического привода.

Ethernet

Если вы внимательно смотрели лог ядра в самом начале этого обзора, то наверно заметили, что Ethernet ограничен только 100 Мбит, но это только потому, что в начале использовался кабель Ethernet, который подходит только для 100 Мбит / с, и проблема была решена простой заменой кабеля Ethernet.

    • Полный дуплекс с iperf2:
Client connecting to 192.168.1.12, TCP port 5001
TCP window size:  340 KByte (default)
------------------------------------------------------------
[  6] local 192.168.1.4 port 36136 connected with 192.168.1.12 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-60.0 sec  6.11 GBytes   874 Mbits/sec
[  6]  0.0-60.0 sec  5.84 GBytes   835 Mbits/sec

Это один из лучших результатов, которые когда-либо получали с этим тестом.

    • Download:
[  4] local 192.168.1.12 port 5001 connected with 192.168.1.4 port 36646
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-60.0 sec  6.58 GBytes   941 Mbits/sec
    • Upload:
[  4] local 192.168.1.4 port 5001 connected with 192.168.1.12 port 58218
[  4]  0.0-60.0 sec  6.57 GBytes   940 Mbits/sec

Гигабитный Ethernet также работает должным образом.

Вводы / выводы и RTC

Многие SBC Intel не имею вообще никаких разъемов ввода / вывода для расширения, но ODROID-H2 в этом плане намного лучше, поскольку поставляется с 20-контактным разъемом, который предоставляет несколько портов I2C и UART. Также есть опционально 16-портовый расширитель GPIO, который подключается к I2C.

Можно взглянуть на I2C, просто установив инструменты I2C:

sudo apt install i2c-tools

Можно запустить следующую командную строку, чтобы узнать больше.

i2cdetect -l
i2c-3	unknown   	Synopsys DesignWare I2C adapter 	N/A
i2c-1	unknown   	Synopsys DesignWare I2C adapter 	N/A
i2c-8	unknown   	DPDDC-B                         	N/A
i2c-6	unknown   	i915 gmbus dpc                  	N/A
i2c-4	unknown   	Synopsys DesignWare I2C adapter 	N/A
i2c-2	unknown   	Synopsys DesignWare I2C adapter 	N/A
i2c-0	unknown   	SMBus I801 adapter at f040      	N/A
i2c-7	unknown   	i915 gmbus misc                 	N/A
i2c-5	unknown   	i915 gmbus dpb                  	N/A

Доступные пользователю интерфейсы I2C находятся на портах 5 и 6, они были правильно определены.

Также можно использовать UART. Но в данном обзоре, это не будет делаться, если верить тому, что написано на странице wiki, вы можете отправлять команды через устройство /dev/ttyS0 или /dev/ttyS1, а также использовать контакты RTS / CTS в качестве GPIO.

Данный комплект также включает в себя батарею RTC, поэтому была запущена обычная команда hwclock, чтобы убедиться, что возможно считать время с RTC:

sudo hwclock
[sudo] password for odroid: 
2019-07-14 16:10:43.052581+07:00

Далее был отключен провод Ethernet, чтобы пропало вообще подключение к интернету и плата была перезагружена. Время и дата по-прежнему показывало правильно, что и следовало ожидать от любого другого оборудования ПК.

Заключение

В целом большинство тестов на ODROID-H2 под управлением Ubuntu 19.04 работало без проблем и производительность была примерно такой, как и ожидалось от платформы. Охлаждение хорошо работает при наличии большего радиатора и не было вообщем дросселирования тактов (троттлинга). HDMI ограничен 4K @ 30 Гц, поэтому в зависимости от вашей видео библиотеки он может не подходить в качестве 4K HTPC. Однако DisplayPort должен поддерживать 4K @ 60 Гц.

Компания Hardkernel не настраивает программное обеспечение для платы, то есть вы можете просто загрузить и установить ISO с веб-сайта Ubuntu или другого дистрибутива Linux. Вы также можете установить Windows 10, если хотите, так что в некотором смысле, это как любой другой мини-ПК Gemini Lake. Преимущества ODROID-H2 заключаются главным образом в поддержке Wikiфорума сообщества и множестве аксессуаров, которые позволят вам настроить эту плату. Например, корпус Type 3, который использовался в данном обзоре делает его хорошей платформой для простого NAS с двумя 2,5-дюймовыми SATA дисками и может использоваться в качестве шлюза / брандмауэра / маршрутизатора, благодаря двум доступным Гигабитным Ethernet портам и расширениям USB.

Данный комплект, который использовался в этом обзоре можно приобрести за  $215.70 плюс доставка. Он включает в себя SBC ($111), 8 Гб памяти DDR4, 32 Гб eMMC флэш-памяти, 15 В / 4 A адаптер питания, корпус Type 3, SATA кабель, RTC батарея и вентилятор для охлаждения. Возможно, вам для удобства потребуется светодиодная кнопка питания, о которой упоминалось немного ранее в обзоре, но за нее придется отдать $4.90.

ODROID-H2 и аксессуары к нему можно приобрести непосредственно на сайте Hardkernel или на сайте одного из дистрибьюторов, таких как Ameridroid. Напомним нашим читателям, что есть несколько купонов для Ameridroid, в том числе CNXSUPPORTER10, который позволит вам сэкономить $10 при покупке, то есть ODROID-H2 можно получить за $101.95.

Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

0 0 vote
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

0 Комментарий
Inline Feedbacks
View all comments