Несколько недель назад мы получили комплект разработчика 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:
1 2 3 4 |
sudo apt-get install libusb-dev git parted ccache p7zip-full git clone https://github.com/khadas/utils cd util git pull |
Но, изначально мы столкнулись с небольшой проблемой:
1 2 3 4 5 6 7 8 9 10 11 |
./INSTALL Installing Amlogic flash-tool... =============================================== Host PC: Ubuntu 18.04 =============================================== Installing USB rules... Error: Ubuntu 18.04 haven't been verified! |
К сожалению, это будет работать только с Ubuntu 16.04:
1 2 |
sudo snap install docker sudo docker run -ti ubuntu:16.04 |
Но, установка не завершилась, а попытка изменить сценарий, чтобы заставить его работать в Ubuntu 18.04, оказалась не очень хорошей идей – ноутбук переключается в режим «только чтение», а при перезагрузке компьютера, чтобы «решить проблему», компьютер больше не загружается. Нам потребовалось 6 часов, чтобы найти решение …
В конце концов, мы переключились на ноутбук с Ubuntu 16.04 чтобы исправить наш основной ноутбук.
1 |
./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:
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 |
./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! |
Следующий шаг – скачать прошивку, распаковать ее:
1 2 |
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 выдаст ошибку:
1 |
ERROR: You should put your board enter upgrade mode! |
Мы использовали метод TST (Terry’s Smart Tweezers), чтобы войти в режим обновления прошивки, и подключили соответствующие кабели, как показано ниже.
Не имеет значения какой порт USB тип C используется для питания и передачи данных. Чтобы войти в режим обновления прошивки, нажимаем функциональную клавишу три раза в течение 2 секунд, и начнет мигать синий светодиод, указывая, что активирован режим обновления. Теперь мы можем запустить команду для сохранения прошивки:
1 2 3 4 5 6 7 8 9 |
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 с ноутбука, так будет проще скопировать / вставить вывод контакта следующим образом:
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 |
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 по умолчанию, что является неплохой идеей.
1 2 3 4 5 6 7 8 9 |
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 не включены в ядре. Это достаточно легко сделать самостоятельно.
1 2 3 4 5 6 |
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:
1 2 |
ls / sys / class / gpio / export gpiochip0 gpiochip128 gpiochip32 gpiochip64 gpiochip96 unexport |
Определения GPIO немного отличаются, и не похоже, что все включены в текущем образе Ubuntu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
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 уже установлены.
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 |
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 после его установки:
1 |
apt install glmark2 - es2 |
Результат составил 42, при этом некоторые тесты были увеличены до 50 кадров в секунду, потому что видео выводилось на 720p50. Но, затем мы повторили тест glmark2-es2 в неэкранном режиме и решили установить gimp. Через некоторое время произошла ошибка, и драйверы 3D GPU перестали работать:
1 2 3 4 |
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, соединение часто прерывалось, прерывая воспроизведение видео или копирование файла. Вот как это будет выглядеть в журнале ядра:
1 2 3 4 5 6 7 8 9 |
[ 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, поэтому мы установили тайские шрифты:
1 |
sudo apt install fonts - thai - tlwg |
Мы хотели установить поддержку тайского языка и соответствующую клавиатуру, но это не удалось из-за проблем с разрешениями:
1 |
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
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 не завершился:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
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…
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 |
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, и результаты были соответствующие:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
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 МБ / с.
В качестве примечания: поскольку тесты занимают время на жестком диске, мы попытались выполнить некоторую отладку / мониторинг, сначала проверив системный журнал, но он заполнен сообщением, связанным с ИК-пультом дистанционного управления:
1 2 3 4 5 6 7 8 9 |
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 тоже не работал:
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 |
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, но вместо этого использовался:
1 |
watch -n1 iostat -hm |
для того, чтобы контролировать входы / выходы в разделы.
Производительность сети – Gigabit Ethernet и 802.11ac WiFi
Давайте проверим производительность Gigabit Ethernet с iperf, начиная с полнодуплексной передачи данных:
1 2 3 4 5 6 7 8 |
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 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. Результат загрузки выглядит хорошо …
1 2 |
[ 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 |
а скачивание близко к пределу:
1 2 3 |
[ 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 результат загрузки:
1 2 3 |
[ 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 результат скачивания:
1 2 3 |
[ 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 за предоставленную информацию.
Оригинал статьи опубликован здесь.