Компания 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 утверждает, что должна появиться светодиодная кнопка питания, которая будет размещена в круглом отверстии, ее можно увидеть на фотографии выше, но в данном случае ее просто не было. Пришлось воспользоваться пинцетом, чтобы нажать небольшую кнопку питания на самой плате.
Но кроме этой маленькой детали все работает хорошо. Также была запущена команда для обновления, чтобы убедиться, что установлена самая последняя версия операционной системы:
1 2 |
sudo apt update sudo apt dist-upgrade |
Вы можете просмотреть полный лог загрузки, а также некоторую системную информацию ниже:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
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 для повышения производительности.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
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, они не были смонтированы автоматически.
1 2 3 4 |
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
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, который в основном полезен для серверных рабочих нагрузок (в отличие от настольных рабочих нагрузок):
1 2 |
wget https://raw.githubusercontent.com/ThomasKaiser/sbc-bench/master/sbc-bench.sh sudo /bin/bash ./sbc-bench.sh -c |
Были получены некоторые сообщения об ошибках при мониторинге частоты процессора:
1 |
/home/odroid/sbc-bench.sh: line 180: /sys/devices/system/cpu/cpufreq/policy0/cpufreq/scaling_cur_freq: No such file or directory |
Поэтому в качестве быстрого решения был изменен код в строке 180 скрипта, чтобы удалить “cpufreq/” из строки и после снова был запущен тест:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
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:
1 2 3 4 5 6 7 8 9 10 |
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:
1 2 3 |
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
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 для оценки производительности хранилища:
1 |
sudo apt install iozone3 |
Начнем с 32 Гб eMMC флэш-модуля:
1 2 3 4 5 6 7 8 9 |
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):
1 2 3 4 5 6 7 8 |
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 (только последовательное чтение / запись):
1 2 3 4 5 6 7 8 |
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:
1 2 3 4 5 6 7 |
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:
1 2 3 |
[ 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:
1 2 |
[ 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:
1 |
sudo apt install i2c-tools |
Можно запустить следующую командную строку, чтобы узнать больше.
1 2 3 4 5 6 7 8 9 10 |
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:
1 2 3 |
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.
Оригинал статьи вы можете прочитать здесь.