Несколько недель назад мы получили комплект разработчика Khadas Edge с модулем Khadas Edge RK3399, несущей платой Khadas Captain и некоторыми аксессуарами. В первой части обзора было рассмотрено оборудование, теперь пришло время обзора поддержки программного обеспечения, а именно Ubuntu 18.04.
Прошивка Khadas Edge/Captain
В настоящее время существует четыре основных варианта прошивки для Khadas Edge/Khadas Captain:
- ОС Ubuntu 18.04 с рабочей средой LXDE @ https://dl.khadas.com/Firmware/Edge/Ubuntu/
- Android ROM @ https://dl.khadas.com/Firmware/Edge/Android/ с версией Android Nougat, временной версией Android Oreo (доступна сейчас), которая не будет поддерживаться, и Android P, которая будет выпущена и поддерживается Rockchip в 2019 году
- Armbian RK3399 для Khadas Edge, который сейчас находится в стадии разработки
- LibreELEC для воспроизведения видео на платформе
В этом обзоре мы решили сосредоточиться на Ubuntu 18.04, и Карл, у которого есть его собственный образец, рассмотрит стабильную прошивку Android Nougat, которая была выпущена несколько дней назад.
Первая загрузка Khadas Captain для Android и обновление прошивки до Ubuntu 18.04
Давайте подключим плату к телевизору HDMI, Ethernet и источнику питания USB тип C, чтобы посмотреть, нормально ли она загружается.
После подключения питания, ОС Android загрузится в течение нескольких секунд.
Но, мы хотим обновить прошивку, и это можно сделать с помощью SD-карты или USB-кабеля тип C. Мы воспользовались USB в Ubuntu 18.04:
sudo apt-get install libusb-dev git parted ccache p7zip-full
git clone https://github.com/khadas/utils
cd util
git pull
Но, изначально мы столкнулись с небольшой проблемой:
./INSTALL
Installing Amlogic flash-tool...
===============================================
Host PC: Ubuntu 18.04
===============================================
Installing USB rules...
Error: Ubuntu 18.04 haven't been verified!
К сожалению, это будет работать только с Ubuntu 16.04:
sudo snap install docker
sudo docker run -ti ubuntu:16.04
Но, установка не завершилась, а попытка изменить сценарий, чтобы заставить его работать в Ubuntu 18.04, оказалась не очень хорошей идей — ноутбук переключается в режим «только чтение», а при перезагрузке компьютера, чтобы «решить проблему», компьютер больше не загружается. Нам потребовалось 6 часов, чтобы найти решение …
В конце концов, мы переключились на ноутбук с Ubuntu 16.04 чтобы исправить наш основной ноутбук.
./INSTALL <br />Installing Amlogic flash-tool…<br />===============================================<br />Host PC: Ubuntu 16.04<br />===============================================<br />Installing USB rules…<br />Installing flash-tool…<br />Done!<br />Installing Rockchip flash-tool…<br />===============================================<br />Host PC: Ubuntu 16.04<br />===============================================<br />Installing USB rules…<br />Installing flash-tool…<br />Installing configuration…<br />Done!<br />Installing Khadas burn-tool…<br />Done
К счастью, если вы используете последнюю версию Ubuntu для LTS, вы не столкнетесь с этими трудностями, компания отреагировала и добавила поддержку Ubuntu 18.04:
./INSTALL
Installing Amlogic flash-tool...
===============================================
Host PC: Ubuntu 18.04
===============================================
Installing USB rules...
Installing flash-tool...
Done!
Installing Rockchip flash-tool...
===============================================
Host PC: Ubuntu 18.04
===============================================
Installing USB rules...
Installing flash-tool...
Installing configuration...
Done!
Installing ToneBoard burn-tool...
===============================================
Host PC: Ubuntu 18.04
===============================================
Installing USB rules...
Installing toneboard-burn-tool...
Done!
Installing Khadas burn-tool...
Done!
Следующий шаг — скачать прошивку, распаковать ее:
wget https://dl.khadas.com/Firmware/Edge/Ubuntu/EMMC/Edge_Ubuntu-lxde-bionic_Linux-4.4_arm64_EMMC_V20181115.7z
7z x Edge_Ubuntu-lxde-bionic_Linux-4.4_arm64_EMMC_V20181115.7z
Перед сохранением прошивки вам необходимо войти в режим обновления одним из пяти способов. Если вы этого не сделаете, инструмент Flash выдаст ошибку:
ERROR: You should put your board enter upgrade mode!
Мы использовали метод TST (Terry’s Smart Tweezers), чтобы войти в режим обновления прошивки, и подключили соответствующие кабели, как показано ниже.
Не имеет значения какой порт USB тип C используется для питания и передачи данных. Чтобы войти в режим обновления прошивки, нажимаем функциональную клавишу три раза в течение 2 секунд, и начнет мигать синий светодиод, указывая, что активирован режим обновления. Теперь мы можем запустить команду для сохранения прошивки:
rk-burn-tool -i Edge_Ubuntu-lxde-bionic_Linux-4.4_arm64_EMMC_V20181115/Edge_Ubuntu-lxde-bionic_Linux-4.4_arm64_EMMC_V20181115.img
Burn to eMMC...
Rockchip Android image (or linux image compatible with AndroidTool one image burning) found!
Try to burn Rockchip image...
Loading firmware...
Support Type:RK330C FW Ver:6.0.41 FW Time:2018-11-15 10:05:44
Loader ver:1.15 Loader Time:2018-11-15 10:01:03
Upgrade firmware ok.
Done!
Плата автоматически перезагрузится и загрузится в Ubuntu 18.04 с LXDE.
Системная информация о Khadas Captain и Edge
Используйте имя пользователя и пароль khadas / khadas для входа в систему. Подключаем также периферийные устройства, в том числе жесткий диск USB и RF-донгл для клавиатуры и мыши.
Подключаемся через SSH с ноутбука, так будет проще скопировать / вставить вывод контакта следующим образом:
ssh khadas @ khadas .local
khadas @ khadas .local ' s password :
Welcome to Fenix 0.4 Ubuntu 18.04.1 LTS Linux 4.4.154
_ __ _ _ ___ _ _ _
| | / / | __ _ _ _ __ | | _ _ _ ___ / ___ | _ _ _ _ __ | | _ _ _ _ ( _ ) _ __
| ' /| ' _ \ / _ ` | / _ ` | / _ ` / __ | | | / _ ` | '_ \| __/ _` | | ' _ \
| . \ | | | | ( _ | | ( _ | | ( _ | \ _ _ \ | | __ | ( _ | | | _ ) | || ( _ | | | | | |
| _ | \ _ \ _ | | _ | \ __ , _ | \ __ , _ | \ __ , _ | ___ / \ ____ \ __ , _ | .__ / \ __ \ __ , _ | _ | _ | | _ |
| _ |
* Website : https : / / www .khadas .com
* Documentation : https : / / docs .khadas .com
* Forum : https : / / forum .khadas .com
Last login : Mon Dec 17 14 : 31 : 35 2018 from 192.168.1.22
khadas @ Khadas : ~ $ uname - a
Linux Khadas 4.4.154 #11 SMP Wed Nov 14 11:01:05 CST 2018 aarch64 aarch64 aarch64 GNU/Linux
khadas @ Khadas : ~ $ df - h
Filesystem Size Used Avail Use % Mounted on
udev 946M 0 946M 0 % / dev
tmpfs 190M 656K 190M 1 % / run
/ dev / mmcblk1p7 15G 2.7G 12G 20 % /
tmpfs 950M 12M 938M 2 % / dev / shm
tmpfs 5.0M 4.0K 5.0M 1 % / run / lock
tmpfs 950M 0 950M 0 % / sys / fs / cgroup
tmpfs 190M 16K 190M 1 % / run / user / 1000
/ dev / sda2 241G 181G 48G 80 % / media / khadas / USB3_EXT4
/ dev / sda1 245G 182G 63G 75 % / media / khadas / USB3_NTFS
khadas @ Khadas : ~ $ free - mh
total used free shared buff / cache available
Mem : 1.9G 711M 256M 23M 932M 1.1G
Swap : 949M 1.3M 948M
khadas @ Khadas : ~ $ zramctl
NAME ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT
/ dev / zram4 lzo 237.4M 352K 155K 420K 1 [ SWAP ]
/ dev / zram3 lzo 237.4M 344K 146.2K 440K 1 [ SWAP ]
/ dev / zram2 lzo 237.4M 344K 141.6K 464K 1 [ SWAP ]
/ dev / zram1 lzo 237.4M 348K 140.4K 432K 1 [ SWAP ]
Плата работает под управлением Ubuntu 18.04 с Linux 4.4.154, и, поскольку у нас есть плата Khadas Edge Basic, встроенная в несущую плату Khadas Captain, имеется 1,9 ГБ ОЗУ и раздел rootfs на 15 ГБ. Команда Khadas также решила включить ZRAM по умолчанию, что является неплохой идеей.
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 244.1G 0 part /media/khadas/USB3_NTFS
├─sda2 8:2 0 244.1G 0 part /media/khadas/USB3_EXT4
├─sda3 8:3 0 244.1G 0 part
└─sda4 8:4 0 199.1G 0 part
mmcblk1 179:0 0 14.6G 0 disk
...
Все четыре раздела на жестком диске обнаружены, но могут быть смонтированы только разделы EXT4 и NTFS, так как BTRFS и exFAT не включены в ядре. Это достаточно легко сделать самостоятельно.
lsmod
Module Size Used by
zram 32768 4
lz4 _ compress 16384 1 zram
bcmdhd 1249280 0
lzo _ compress 16384 1 zram
Модули загрузки ядра, в основном, для поддержки ZRAM, за исключением драйвера WiFi bcmdhd.
GPIO включены, как и в других платах RK3399:
ls / sys / class / gpio /
export gpiochip0 gpiochip128 gpiochip32 gpiochip64 gpiochip96 unexport
Определения GPIO немного отличаются, и не похоже, что все включены в текущем образе Ubuntu:
sudo cat / sys / kernel / debug / gpio
GPIOs 0 - 31 , platform / pinctrl , gpio0 :
gpio - 1 ( | vcc _ sd ) out hi
gpio - 4 ( | bt_default_wake_host ) out hi
gpio - 5 ( | GPIO Key Power ) in hi
gpio - 6 ( | ? ) out lo
GPIOs 32 - 63 , platform / pinctrl , gpio1 :
gpio - 34 ( | int - n ) in hi
gpio - 45 ( | vsel ) out lo
GPIOs 64 - 95 , platform / pinctrl , gpio2 :
gpio - 83 ( | bt_default _ rts ) out lo
gpio - 90 ( | bt_default _ wake ) out hi
gpio - 91 ( | bt_default _ reset ) out hi
gpio - 92 ( | reset ) out hi
GPIOs 96 - 127 , platform / pinctrl , gpio3 :
gpio - 111 ( | mdio - reset ) out hi
GPIOs 128 - 159 , platform / pinctrl , gpio4 :
gpio - 153 ( | vcc5v0 _ host ) out hi
gpio - 154 ( | vbus - 5v ) out lo
gpio - 158 ( | int - n ) in hi
Ускорение 3D-графики в Khadas Edge с Ubuntu 18.04
es2_info и es2gears уже установлены.
es2_info
EGL_VERSION : 1.4 Midgard - "r14p0-01rel0"
EGL_VENDOR : ARM
EGL_EXTENSIONS :
EGL_KHR_image_pixmap , EGL_KHR_partial_update , EGL_KHR_config_attribs ,
EGL_KHR_image , EGL_KHR_image_base , EGL_KHR_fence_sync , EGL_KHR_wait_sync ,
EGL_KHR_gl_colorspace , EGL_KHR_get_all_proc_addresses ,
EGL_IMG_context_priority , EGL_ARM_pixmap_multisample_discard ,
EGL_KHR_gl_texture_2D_image , EGL_KHR_gl_renderbuffer_image ,
EGL_KHR_create_context , EGL_KHR_surfaceless_context ,
EGL_KHR_gl_texture_cubemap_image , EGL_EXT_create_context_robustness ,
EGL_KHR_cl_event2
EGL_CLIENT_APIS : OpenGL_ES
GL_VERSION : OpenGL ES 3.2 v1 .r14p0 - 01rel0 - git ( 966ed26 ) .f44c85cb3d2ceb87e8be88e7592755c3
GL_RENDERER : Mali - T860
GL_EXTENSIONS :
GL_ARM_rgba8 , GL_ARM_mali_shader_binary , GL_OES_depth24 ,
GL_OES_depth_texture , GL_OES_depth_texture_cube_map ,
GL_OES_packed_depth_stencil , GL_OES_rgb8_rgba8 , GL_EXT_read_format_bgra ,
GL_OES_compressed_paletted_texture , GL_OES_compressed_ETC1_RGB8_texture ,
GL_OES_standard_derivatives , GL_OES_EGL_image , GL_OES_EGL_image_external ,
GL_OES_EGL_image_external_essl3 , GL_OES_EGL_sync , GL_OES_texture_npot ,
GL_OES_vertex_half_float , GL_OES_required_internalformat ,
GL_OES_vertex_array_object , GL_OES_mapbuffer ,
GL_EXT_texture_format_BGRA8888 , GL_EXT_texture_rg ,
GL_EXT_texture_type_2_10_10_10_REV , GL_OES_fbo_render_mipmap ,
GL_OES_element_index_uint , GL_EXT_shadow_samplers ,
GL_OES_texture_compression_astc , GL_KHR_texture_compression_astc_ldr ,
GL_KHR_texture_compression_astc_hdr ,
GL_KHR_texture_compression_astc_sliced_3d , GL_KHR_debug ,
GL_EXT_occlusion_query_boolean , GL_EXT_disjoint_timer_query ,
GL_EXT_blend_minmax , GL_EXT_discard_framebuffer ,
GL_OES_get_program_binary , GL_OES_texture_3D , GL_EXT_texture_storage ,
GL_EXT_multisampled_render_to_texture , GL_OES_surfaceless_context ,
GL_OES_texture_stencil8 , GL_EXT_shader_pixel_local_storage ,
GL_ARM_shader_framebuffer_fetch ,
GL_ARM_shader_framebuffer_fetch_depth_stencil , GL_ARM_mali_program_binary ,
GL_EXT_sRGB , GL_EXT_sRGB_write_control , GL_EXT_texture_sRGB_decode ,
GL_KHR_blend_equation_advanced , GL_KHR_blend_equation_advanced_coherent ,
GL_OES_texture_storage_multisample_2d_array , GL_OES_shader_image_atomic ,
GL_EXT_robustness , GL_EXT_draw_buffers_indexed ,
GL_OES_draw_buffers_indexed , GL_EXT_texture_border_clamp ,
GL_OES_texture_border_clamp , GL_EXT_texture_cube_map_array ,
GL_OES_texture_cube_map_array , GL_OES_sample_variables ,
GL_OES_sample_shading , GL_OES_shader_multisample_interpolation ,
GL_EXT_shader_io_blocks , GL_OES_shader_io_blocks ,
GL_EXT_tessellation_shader , GL_OES_tessellation_shader ,
GL_EXT_primitive_bounding_box , GL_OES_primitive_bounding_box ,
GL_EXT_geometry_shader , GL_OES_geometry_shader ,
GL_ANDROID_extension_pack_es31a , GL_EXT_gpu_shader5 , GL_OES_gpu_shader5 ,
GL_EXT_texture_buffer , GL_OES_texture_buffer , GL_EXT_copy_image ,
GL_OES_copy_image , GL_EXT_color_buffer_half_float ,
GL_EXT_color_buffer_float , GL_EXT_YUV_target , GL_OVR_multiview ,
GL_OVR_multiview2 , GL_OVR_multiview_multisampled_render_to_texture ,
GL_KHR_robustness , GL_KHR_robust_buffer_access_behavior ,
GL_EXT_draw_elements_base_vertex , GL_OES_draw_elements_base_vertex
es2gears работает нормально, но частота кадров немного ниже.
Нам удалось запустить glmark2-es2 после его установки:
apt install glmark2 - es2
Результат составил 42, при этом некоторые тесты были увеличены до 50 кадров в секунду, потому что видео выводилось на 720p50. Но, затем мы повторили тест glmark2-es2 в неэкранном режиме и решили установить gimp. Через некоторое время произошла ошибка, и драйверы 3D GPU перестали работать:
khadas@Khadas:~$ glmark2-es2
Error: eglInitialize() failed with error: 0x3001
Error: eglInitialize() failed with error: 0x3001
Error: main: Could not initialize canvas
Мы переустановили прошивку с помощью rk-flash-tool, но результат остался прежним, и Khadas не смог вовремя предоставить решение.
Воспроизведение видео Khadas Edge
При попытке воспроизвести видео с раздела NTFS на USB-накопителе или скопировать файлы с USB-накопителя на флэш-карту eMMC, соединение часто прерывалось, прерывая воспроизведение видео или копирование файла. Вот как это будет выглядеть в журнале ядра:
[ 3224.443270 ] usb 5 - 1 : USB disconnect , device number 5
[ 3224.445235 ] sd 3 : 0 : 0 : 0 : [ sda ] tag #0 uas_zap_pending 0 uas-tag 1 inflight: CMD
[ 3224.445255 ] sd 3 : 0 : 0 : 0 : [ sda ] tag #0 CDB: opcode=0x28 28 00 3d 09 07 80 00 00 08 00
[ 3224.445385 ] sd 3 : 0 : 0 : 0 : [ sda ] tag #0 UNKNOWN(0x2003) Result: hostbyte=0x01 driverbyte=0x00
[ 3224.445394 ] sd 3 : 0 : 0 : 0 : [ sda ] tag #0 CDB: opcode=0x28 28 00 3d 09 07 80 00 00 08 00
[ 3224.445402 ] blk_update_request : I / O error , dev sda , sector 1024001920
[ 3224.456266 ] sd 3 : 0 : 0 : 0 : [ sda ] Synchronizing SCSI cache
[ 3224.531000 ] sd 3 : 0 : 0 : 0 : [ sda ] Synchronize Cache ( 10 ) failed : Result : hostbyte = 0x07 driverbyte = 0x00
[ 3224.964000 ] usb 5 - 1 : new high - speed USB device number 6 using ehci - platform
В какой-то момент нам наконец-то удалось воспроизвести видео 1080p60 с mpv, но в этот момент оно основывалось на программном декодировании, и видео было очень нестабильным.
Непонятно, как плавно воспроизводить видео 1080p или 4K в Ubuntu 18.04, поэтому вместо этого вам, возможно, придется использовать изображение LibreELEC, если это то, что вам нужно. До сих пор нам не удавалось воспроизводить видео ни на одной из плат RK3399, которые тестировались с помощью прошивки Ubuntu Desktop.
Просмотр веб-страниц в Khadas Captain
Образы Ubuntu 18.04 поставляются с предустановленным Chromium.
Однако, тайские шрифты отсутствуют, поэтому с этим языком символы будут отображаться в виде блоков при доступе к Google и Facebook, поэтому мы установили тайские шрифты:
sudo apt install fonts - thai - tlwg
Мы хотели установить поддержку тайского языка и соответствующую клавиатуру, но это не удалось из-за проблем с разрешениями:
rg .freedesktop .PolicyKit .Error .Failed : ( 'system-bus-name' , { 'name' : ':1.78' } ) : org .debian .apt .install - or - remove - packages
Далее следуют сообщения об ошибках:
Вам не разрешено выполнять это действие. У вас нет необходимых прав для выполнения этого действия.
Это небольшая проблема, которую легко исправить.
В целом «стандартный» просмотр веб-страниц работал хорошо, как и на других платах RK3399. Однако, нам не удалось сыграть в Candy Crush Saga в Facebook, так как отсутствует флеш-плеер:
Не обнаружен Флэш Плэер. Требуется версия 11.0.0.
Видео YouTube может воспроизводиться с разрешением 720p с очень небольшим количеством пропущенных кадров, но отчетливо видны некоторые разрывы. На нашей плате не работает ускорение 3D-графики, но мы все равно посетил демонстрацию WelGL Quake, и неудивительно, что всплыло сообщением об ошибке:
Извините, но ваш браузер не поддерживает WebGL или не имеет его.
Флэш-память eMMC и USB-накопитель
Давайте запустим обычный тест iozone во флэш-памяти eMMC:
khadas @ Khadas : ~ $ iozone iozone - e - I - a - s 100M - r 4k - r 16k - r 512k - r 1024k - r 16384k - i 0 - i 1 - i 2
Iozone : Performance Test of File I / O
Version $Revision : 3.429 $
Compiled for 64 bit mode .
Build : linux
Output is in kBytes / sec
Time Resolution = 0.000001 seconds .
Processor cache size set to 1024 kBytes .
Processor cache line size set to 32 bytes .
File stride size set to 17 * record size .
random random bkwd record stride
kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread
102400 4 11828 13354 15267 13684 17186 21738
102400 16 46154 47429 67887 68979 72140 45976
102400 512 49017 48523 252322 254329 223441 48436
102400 1024 48760 49352 267336 267311 254040 48286
102400 16384 49149 49470 285466 298166 274397 49097
iozone test complete .
Скорость последовательного чтения до 300 МБ / с, скорость последовательной записи до 50 МБ / с и случайные значения ввода-вывода также выглядят здесь довольно неплохо.
Но, затем переключаемся на производительность USB-накопителя, и тест производительности NTFS не завершился:
khadas @ Khadas : / media / khadas / USB3_NTFS $ iozone iozone - e - I - a - s 1000M - r 4k - r 16k - r 512k - r 1024k - r 16384k - i 0 - i 1 - i 2
Iozone : Performance Test of File I / O
Version $Revision : 3.429 $
Compiled for 64 bit mode .
Build : linux
Output is in kBytes / sec
Time Resolution = 0.000001 seconds .
Processor cache size set to 1024 kBytes .
Processor cache line size set to 32 bytes .
File stride size set to 17 * record size .
random random bkwd record stride
kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread
1024000 4 14294 16520 26406 26594
Error reading block at 364781568
read : Input / output error
После еще двух попыток, переключаемся на EXT-4, и все работает нормально, так что, возможно, у нас действительно есть проблема с оборудованием в разделе NTFS…
khadas @ Khadas : / media / khadas / USB3_EXT4 $ iozone - e - I - a - s 1000M - r 4k - r 16k - r 512k - r 1024k - r 16384k - i 0 - i 1 - i 2
Iozone : Performance Test of File I / O
Version $Revision : 3.429 $
Compiled for 64 bit mode .
Build : linux
Contributors : William Norcott , Don Capps , Isom Crawford , Kirby Collins
Al Slater , Scott Rhine , Mike Wisner , Ken Goss
Steve Landherr , Brad Smith , Mark Kelly , Dr . Alain CYR ,
Randy Dunlap , Mark Montague , Dan Million , Gavin Brebner ,
Jean - Marc Zucconi , Jeff Blomberg , Benny Halevy , Dave Boone ,
Erik Habbinga , Kris Strecker , Walter Wong , Joshua Root ,
Fabrice Bacchella , Zhenghua Xue , Qin Li , Darren Sawyer ,
Vangel Bojaxhi , Ben England , Vikentsi Lapa .
Run began : Sat Dec 22 09 : 53 : 40 2018
Include fsync in write timing
O_DIRECT feature enabled
Auto Mode
File size set to 1024000 kB
Record Size 4 kB
Record Size 16 kB
Record Size 512 kB
Record Size 1024 kB
Record Size 16384 kB
Command line used : iozone - e - I - a - s 1000M - r 4k - r 16k - r 512k - r 1024k - r 16384k - i 0 - i 1 - i 2 iozone
Output is in kBytes / sec
Time Resolution = 0.000001 seconds .
Processor cache size set to 1024 kBytes .
Processor cache line size set to 32 bytes .
File stride size set to 17 * record size .
random random bkwd record stride
kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread
1024000 4 5852 6369 7682 7613 407 267
1024000 16 14726 15352 18142 17968 1490 988
1024000 512 27818 28583 32034 32104 9939 18701
1024000 1024 30065 30320 32038 32272 19148 29809
1024000 16384 32128 32242 33187 33223 32581 32148
Значения действительно ниже — около 33 МБ / с для чтения и записи, и затем нам стало понятно, что USB-порт на одном из краев платы — USB 2.0, поэтому, переносим накопитель на порт USB 3.0, и результаты были соответствующие:
khadas @ Khadas : / media / khadas / USB3_EXT4 $ iozone iozone - e - I - a - s 100M - r 4k - r 16k - r 512k - r 1024k - r 16384k - i 0 - i 1 - i 2
Iozone : Performance Test of File I / O
Version $Revision : 3.429 $
Compiled for 64 bit mode .
Build : linux
Output is in kBytes / sec
Time Resolution = 0.000001 seconds .
Processor cache size set to 1024 kBytes .
Processor cache line size set to 32 bytes .
File stride size set to 17 * record size .
random random bkwd record stride
kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread
102400 4 14857 19350 22412 18319 329 595
102400 16 50996 62250 59027 68382 2106 7009
102400 512 90509 89635 94827 96983 34258 51358
102400 1024 90524 89672 95280 97579 49900 60626
102400 16384 90892 90758 93144 95004 89712 86382
iozone test complete .
Скорость последовательного чтения около 93 МБ / с и скорость последовательной записи 91 МБ / с.
В качестве примечания: поскольку тесты занимают время на жестком диске, мы попытались выполнить некоторую отладку / мониторинг, сначала проверив системный журнал, но он заполнен сообщением, связанным с ИК-пультом дистанционного управления:
tail - f / var / log / syslog
Dec 23 07 : 06 : 44 localhost lircd [ 889 ] : lircd - 0.10.0 [ 889 ] : Error : Cannot glob / sys / class / rc / rc0 / input [ 0 - 9 ] * / event [ 0 - 9 ] *
Dec 23 07 : 06 : 44 localhost lircd - 0.10.0 [ 889 ] : Error : Cannot glob / sys / class / rc / rc0 / input [ 0 - 9 ] * / event [ 0 - 9 ] *
Dec 23 07 : 06 : 45 localhost lircd [ 889 ] : lircd - 0.10.0 [ 889 ] : Error : Cannot glob / sys / class / rc / rc0 / input [ 0 - 9 ] * / event [ 0 - 9 ] *
Dec 23 07 : 06 : 45 localhost lircd - 0.10.0 [ 889 ] : Error : Cannot glob / sys / class / rc / rc0 / input [ 0 - 9 ] * / event [ 0 - 9 ] *
Dec 23 07 : 06 : 46 localhost lircd [ 889 ] : lircd - 0.10.0 [ 889 ] : Error : Cannot glob / sys / class / rc / rc0 / input [ 0 - 9 ] * / event [ 0 - 9 ] *
Dec 23 07 : 06 : 46 localhost lircd - 0.10.0 [ 889 ] : Error : Cannot glob / sys / class / rc / rc0 / input [ 0 - 9 ] * / event [ 0 - 9 ] *
Dec 23 07 : 06 : 47 localhost lircd [ 889 ] : lircd - 0.10.0 [ 889 ] : Error : Cannot glob / sys / class / rc / rc0 / input [ 0 - 9 ] * / event [ 0 - 9 ] *
Dec 23 07 : 06 : 47 localhost lircd - 0.10.0 [ 889 ] : Error : Cannot glob / sys / class / rc / rc0 / input [ 0 - 9 ] * / event [ 0 - 9 ] *
и iotop тоже не работал:
sudo iotop
Traceback (most recent call last):
File "/usr/sbin/iotop", line 17, in <module>
main()
File "/usr/lib/python3/dist-packages/iotop/ui.py", line 620, in main
main_loop()
File "/usr/lib/python3/dist-packages/iotop/ui.py", line 610, in <lambda>
main_loop = lambda: run_iotop(options)
File "/usr/lib/python3/dist-packages/iotop/ui.py", line 508, in run_iotop
return curses.wrapper(run_iotop_window, options)
File "/usr/lib/python3.6/curses/__init__.py", line 94, in wrapper
return func(stdscr, *args, **kwds)
File "/usr/lib/python3/dist-packages/iotop/ui.py", line 501, in run_iotop_window
ui.run()
File "/usr/lib/python3/dist-packages/iotop/ui.py", line 155, in run
self.process_list.duration)
File "/usr/lib/python3/dist-packages/iotop/ui.py", line 434, in refresh_display
lines = self.get_data()
File "/usr/lib/python3/dist-packages/iotop/ui.py", line 415, in get_data
return list(map(format, processes))
File "/usr/lib/python3/dist-packages/iotop/ui.py", line 388, in format
cmdline = p.get_cmdline()
File "/usr/lib/python3/dist-packages/iotop/data.py", line 292, in get_cmdline
proc_status = parse_proc_pid_status(self.pid)
File "/usr/lib/python3/dist-packages/iotop/data.py", line 196, in parse_proc_pid_status
key, value = line.split(':\t', 1)
ValueError: not enough values to unpack (expected 2, got 1)
Error in sys.excepthook:
Но это, похоже, ошибка с iotop при использовании последней версии Python. Одной из причин могло быть понижение версии Python, но вместо этого использовался:
watch -n1 iostat -hm
для того, чтобы контролировать входы / выходы в разделы.
Производительность сети — Gigabit Ethernet и 802.11ac WiFi
Давайте проверим производительность Gigabit Ethernet с iperf, начиная с полнодуплексной передачи данных:
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Client connecting to 192.168.1.52 , TCP port 5001
TCP window size : 332 KByte ( default )
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
[ 6 ] local 192.168.1.22 port 57042 connected with 192.168.1.52 port 5001
[ ID ] Interval Transfer Bandwidth
[ 6 ] 0.0 - 60.0 sec 3.24 GBytes 464 Mbits / sec
[ 4 ] 0.0 - 60.0 sec 5.46 GBytes 781 Mbits / sec
Типично для платформы Rockchip RK3399. Результат загрузки выглядит хорошо …
[ 4] local 192.168.1.22 port 5001 connected with 192.168.1.52 port 59110
[ 4] 0.0-60.0 sec 5.75 GBytes 822 Mbits/sec
а скачивание близко к пределу:
[ 3 ] local 192.168.1.22 port 57168 connected with 192.168.1.52 port 5001
[ ID ] Interval Transfer Bandwidth
[ 3 ] 0.0 - 60.0 sec 6.57 GBytes 940 Mbits / sec
Таким образом, Gigabit Ethernet работает так, как и ожидалось.
Время проверить работоспособность WiFi 5 (802.11ac). Обратите внимание, что у нас плата Khadas Edge Basic с модулем AP6356S, в то время как платы Edge Pro и Max поставляются с AP6398S, которые поддерживают RSDB (Real Simulataneous Dual Band) и должны предлагать еще лучшую производительность.
802.11ac WiFi результат загрузки:
[ 4 ] local 192.168.1.22 port 5001 connected with 192.168.1.87 port 34252
[ ID ] Interval Transfer Bandwidth
[ 4 ] 0.0 - 60.0 sec 1.55 GBytes 222 Mbits / sec
802.11ac WiFi результат скачивания:
[ 3] local 192.168.1.22 port 57168 connected with 192.168.1.52 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-60.0 sec 6.57 GBytes 940 Mbits/sec
Часто обнаруживали асимметрию между загрузкой и скачиванием, но обычно с преимуществом по части скачивания. В случае с Khadas Edge, наоборот, и нам пришлось дважды проверить это, чтобы подтвердить. Загрузка 222 Мбит / с очень хороша с используемым маршрутизатором, но скачивание 104 Мбит / с может быть лучше, так как некоторые другие платформы могут достигать чуть более 250 Мбит / с.
Альтернативный режим USB-C DisplayPort на Кhadas Captain
Когда мы подключили адаптер MINIX NEO-C plus USB-C к плате RockPro64 RK3399, чтобы использовать альтернативный режим USB-C DisplayPort через HDMI, он не работал как ожидалось(хотя сейчас это можно исправить), имелась проблема с Khadas Edge.
Просто перемещаем кабель HDMI, который был подключен к порту HDMI на Khadas Edge, к порту HDMI на адаптере MINIX USB-C, и через несколько секунд изображение заработало. Сейчас у нас есть доступ только к одному телевизору, поэтому нам не удалось протестировать настройки с двумя мониторами и такие вещи, как расширенный рабочий стол.
Заключение
Аппаратный дизайн выглядит солидно с быстрой флэш-памятью eMMC, отличной производительностью Gigabit Ethernet, приемлемой производительностью WiFi AC, двойным видеовыходом и многим другим.
Но, в то время как, в основном используется ,образ Ubuntu 18.04 LXDE, было несколько проблем, таких как ускоренная поддержка 3D-графики, даже после переустановки прошивки, и отсутствие аппаратного декодирования видео, что является повторяющимися проблемами на платформах RK3399. Мы также столкнулись с несколькими менее важными проблемами программного обеспечения, такими как сбой при установке языковых пакетов, а также с некоторыми потенциальными проблемами (энергопотреблением) при подключении жесткого диска USB, который время от времени отключались при подключении к порту USB 2.0.
Но, имейте в виду, что платы Khadas Edge и Captain еще не поставляются, поэтому это скорее провел бета-тестирование, и мы уверены, что Shenzhen Wesion рассмотрит проблемы и исправит многие из них, прежде чем заказы будут отправлены пользователям, в январе.
Краудфандинговая кампания Khadas Edge все еще продолжается, и вы можете поддержать проект на Indiegogo, если вы заинтересованы.
Благодарим сайт cnx-software.com за предоставленную информацию.
Оригинал статьи опубликован здесь.