Мы уже рассматривали ODYSSEY-X86J4105 SBC с Windows 10. В сочетании с корпусом Re_Computer это типичный мини-ПК Intel Gemini Lake, но с изюминкой – разъемами Arduino и Raspberry Pi. Первый отлично работает в Windows, в то время как разъем Raspberry Pi – нет. Так что Linux – наш единственный вариант.
У нас было время протестировать Ubuntu 20.04 на одноплатном компьютере ODYSSEY-X86J4105. Мы установили Ubuntu не на внутреннюю флэш-память eMMC, где находится Windows 10, а на SSD M.2 SATA 128 ГБ. Сначала мы запустили обычную команду для проверки системной информации, затем запускаем тесты и проверяем, все ли функции работают, прежде чем сосредоточиться на разъемах Arduino и Raspberry Pi.
ODYSSEY-X86J4105 Ubuntu 20.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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 |
jaufranc@CNX-ODYSSEY:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.1 LTS Release: 20.04 Codename: focal jaufranc@CNX-ODYSSEY:~$ uname -a Linux CNX-ODYSSEY 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux jaufranc@CNX-ODYSSEY:~$ inxi -Fc0 System: Host: CNX-ODYSSEY Kernel: 5.4.0-42-generic x86_64 bits: 64 Console: tty 0 Distro: Ubuntu 20.04.1 LTS (Focal Fossa) Machine: Type: Desktop Mobo: WeiBu model: WTGLKC1R120 v: SD-BS-CJ41G-M-101-B 12/09/2019 18:14:02 serial: <superuser/root required> UEFI: American Megatrends v: SD-BS-CJ41G-M-101-B date: 12/09/2019 CPU: Topology: Quad Core model: Intel Celeron J4105 bits: 64 type: MCP L2 cache: 4096 KiB Speed: 998 MHz min/max: 800/2500 MHz Core speeds (MHz): 1: 1013 2: 1069 3: 1023 4: 1065 Graphics: Device-1: Intel UHD Graphics 605 driver: i915 v: kernel Display: server: X.org 1.20.8 driver: i915 tty: 80x24 Message: Advanced graphics data unavailable in console. Try -G --display Audio: Device-1: Intel driver: snd_hda_intel Sound Server: ALSA v: k5.4.0-42-generic Network: Device-1: Intel driver: iwlwifi IF: wlo2 state: down mac: 24:41:8c:a0:0e:42 Device-2: Intel I211 Gigabit Network driver: igb IF: enp2s0 state: up speed: 1000 Mbps duplex: full mac: 00:e0:4c:01:15:56 Device-3: Intel I211 Gigabit Network driver: igb IF: enp3s0 state: down mac: 00:e0:4c:01:15:57 Drives: Local Storage: total: 177.48 GiB used: 7.89 GiB (4.4%) ID-1: /dev/mmcblk0 model: DA4064 size: 58.24 GiB ID-2: /dev/sda model: MINIX SSD 128GB KHSA186335N size: 119.24 GiB Partition: ID-1: / size: 116.87 GiB used: 7.82 GiB (6.7%) fs: ext4 dev: /dev/sda1 Sensors: System Temperatures: cpu: 42.0 C mobo: N/A Fan Speeds (RPM): N/A Info: Processes: 207 Uptime: 9m Memory: 7.62 GiB used: 576.2 MiB (7.4%) Init: systemd runlevel: 5 Shell: bash inxi: 3.0.38 jaufranc@CNX-ODYSSEY:~$ df -h Filesystem Size Used Avail Use% Mounted on udev 3.8G 0 3.8G 0% /dev tmpfs 780M 1.8M 779M 1% /run /dev/sda1 117G 7.9G 104G 8% / tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/loop1 55M 55M 0 100% /snap/core18/1705 /dev/loop0 241M 241M 0 100% /snap/gnome-3-34-1804/24 /dev/loop2 28M 28M 0 100% /snap/snapd/7264 /dev/loop3 63M 63M 0 100% /snap/gtk-common-themes/1506 /dev/loop4 50M 50M 0 100% /snap/snap-store/433 /dev/mmcblk0p1 96M 76M 21M 79% /boot/efi tmpfs 780M 24K 780M 1% /run/user/125 tmpfs 780M 8.0K 780M 1% /run/user/1000 jaufranc@CNX-ODYSSEY:~$ lsblk -a NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 240.8M 1 loop /snap/gnome-3-34-1804/24 loop1 7:1 0 55M 1 loop /snap/core18/1705 loop2 7:2 0 27.1M 1 loop /snap/snapd/7264 loop3 7:3 0 62.1M 1 loop /snap/gtk-common-themes/1506 loop4 7:4 0 49.8M 1 loop /snap/snap-store/433 loop5 7:5 0 0 loop loop6 7:6 0 0 loop loop7 7:7 0 0 loop sda 8:0 0 119.2G 0 disk └─sda1 8:1 0 119.2G 0 part / mmcblk0 179:0 0 58.2G 0 disk ├─mmcblk0p1 179:1 0 100M 0 part /boot/efi ├─mmcblk0p2 179:2 0 16M 0 part ├─mmcblk0p3 179:3 0 57.4G 0 part └─mmcblk0p4 179:4 0 800M 0 part mmcblk0boot0 179:8 0 4M 1 disk mmcblk0boot1 179:16 0 4M 1 disk jaufranc@CNX-ODYSSEY:~$ sudo lshw -C cpu *-cpu description: CPU product: Intel(R) Celeron(R) J4105 CPU @ 1.50GHz vendor: Intel Corp. physical id: 37 bus info: cpu@0 version: Intel(R) Celeron(R) J4105 CPU @ 1.50GHz slot: SOCKET 0 size: 937MHz capacity: 2700MHz width: 64 bits clock: 100MHz capabilities: lm fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp x86-64 constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg cx16 xtpr pdcm sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave rdrand lahf_lm 3dnowprefetch cpuid_fault cat_l2 pti cdp_l2 ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust smep erms mpx rdt_a rdseed smap clflushopt intel_pt sha_ni xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts umip rdpid md_clear arch_capabilities cpufreq configuration: cores=4 enabledcores=4 threads=4 jaufranc@CNX-ODYSSEY:~$ sudo lshw -C memory *-firmware description: BIOS vendor: American Megatrends Inc. physical id: 0 version: SD-BS-CJ41G-M-101-B date: 12/09/2019 size: 64KiB capacity: 4544KiB capabilities: pci upgrade shadowing cdboot bootselect socketedrom edd int13floppy1200 int13floppy720 int13floppy2880 int5printscreen int14serial int17printer acpi usb biosbootspecification uefi *-memory description: System Memory physical id: 23 slot: System board or motherboard size: 8GiB *-bank:0 description: DIMM LPDDR4 Synchronous 2133 MHz (0.5 ns) product: 123456789012345678 vendor: ABCD physical id: 0 serial: 1234 slot: A1_DIMM0 size: 2GiB width: 16 bits clock: 2133MHz (0.5ns) *-bank:1 description: DIMM LPDDR4 Synchronous 2133 MHz (0.5 ns) product: 123456789012345678 vendor: ABCD physical id: 1 serial: 1234 slot: A1_DIMM1 size: 2GiB width: 16 bits clock: 2133MHz (0.5ns) *-bank:2 description: DIMM LPDDR4 Synchronous 2133 MHz (0.5 ns) product: 123456789012345678 vendor: ABCD physical id: 2 serial: 1234 slot: A1_DIMM2 size: 2GiB width: 16 bits clock: 2133MHz (0.5ns) *-bank:3 description: DIMM LPDDR4 Synchronous 2133 MHz (0.5 ns) product: 123456789012345678 vendor: ABCD physical id: 3 serial: 1234 slot: A1_DIMM3 size: 2GiB width: 16 bits clock: 2133MHz (0.5ns) *-cache:0 description: L1 cache physical id: 35 slot: CPU Internal L1 size: 224KiB capacity: 224KiB capabilities: synchronous internal write-back configuration: level=1 *-cache:1 description: L2 cache physical id: 36 slot: CPU Internal L2 size: 4MiB capacity: 4MiB capabilities: synchronous internal write-back unified configuration: level=2 jaufranc@CNX-ODYSSEY:~$ free -mh total used free shared buff/cache available Mem: 7.6Gi 493Mi 6.5Gi 42Mi 633Mi 6.9Gi Swap: 2.0Gi 0B 2.0Gi jaufranc@CNX-ODYSSEY:~$ sudo lshw -C network *-network description: Wireless interface product: Intel Corporation vendor: Intel Corporation physical id: c bus info: pci@0000:00:0c.0 logical name: wlo2 version: 03 serial: 24:41:8c:a0:0e:42 width: 64 bits clock: 33MHz capabilities: pm msi pciexpress msix bus_master cap_list ethernet physical wireless configuration: broadcast=yes driver=iwlwifi driverversion=5.4.0-42-generic firmware=46.6bf1df06.0 latency=0 link=no multicast=yes wireless=IEEE 802.11 resources: irq:44 memory:a1314000-a1317fff *-network description: Ethernet interface product: I211 Gigabit Network Connection vendor: Intel Corporation physical id: 0 bus info: pci@0000:02:00.0 logical name: enp2s0 version: 03 serial: 00:e0:4c:01:15:56 size: 1Gbit/s capacity: 1Gbit/s width: 32 bits clock: 33MHz capabilities: pm msi msix pciexpress bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation configuration: autonegotiation=on broadcast=yes driver=igb driverversion=5.6.0-k duplex=full firmware=0. 6-2 ip=192.168.1.13 latency=0 link=yes multicast=yes port=twisted pair speed=1Gbit/s resources: irq:22 memory:a1200000-a121ffff ioport:e000(size=32) memory:a1220000-a1223fff *-network description: Ethernet interface product: I211 Gigabit Network Connection vendor: Intel Corporation physical id: 0 bus info: pci@0000:03:00.0 logical name: enp3s0 version: 03 serial: 00:e0:4c:01:15:57 capacity: 1Gbit/s width: 32 bits clock: 33MHz capabilities: pm msi msix pciexpress bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation configuration: autonegotiation=on broadcast=yes driver=igb driverversion=5.6.0-k firmware=0. 6-2 latency=0 link=no multicast=yes port=twisted pair resources: irq:23 memory:a1100000-a111ffff ioport:d000(size=32) memory:a1120000-a1123fff jaufranc@CNX-ODYSSEY:~$ lsusb Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 005: ID 8087:0aaa Intel Corp. Bus 001 Device 006: ID 2886:800b Seeed Studio Seeeduino Zero Bus 001 Device 004: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller Bus 001 Device 003: ID 1a2c:0002 China Resource Semico Co., Ltd USB Keykoard Bus 001 Device 002: ID 04f2:1718 Chicony Electronics Co., Ltd HP USB Optical Mouse Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub jaufranc@CNX-ODYSSEY:~$ lspci 00:00.0 Host bridge: Intel Corporation Gemini Lake Host Bridge (rev 03) 00:00.1 Signal processing controller: Intel Corporation Celeron/Pentium Silver Processor Dynamic Platform and Thermal Framework Processor Participant (rev 03) 00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 605 (rev 03) 00:0c.0 Network controller: Intel Corporation Device 31dc (rev 03) 00:0e.0 Audio device: Intel Corporation Device 3198 (rev 03) 00:0f.0 Communication controller: Intel Corporation Celeron/Pentium Silver Processor Trusted Execution Engine Interface (rev 03) 00:12.0 SATA controller: Intel Corporation Device 31e3 (rev 03) 00:13.0 PCI bridge: Intel Corporation Gemini Lake PCI Express Root Port (rev f3) 00:14.0 PCI bridge: Intel Corporation Gemini Lake PCI Express Root Port (rev f3) 00:14.1 PCI bridge: Intel Corporation Gemini Lake PCI Express Root Port (rev f3) 00:15.0 USB controller: Intel Corporation Device 31a8 (rev 03) 00:17.0 Signal processing controller: Intel Corporation Device 31b4 (rev 03) 00:17.1 Signal processing controller: Intel Corporation Device 31b6 (rev 03) 00:17.2 Signal processing controller: Intel Corporation Device 31b8 (rev 03) 00:18.0 Signal processing controller: Intel Corporation Celeron/Pentium Silver Processor Serial IO UART Host Controller (rev 03) 00:18.1 Signal processing controller: Intel Corporation Celeron/Pentium Silver Processor Serial IO UART Host Controller (rev 03) 00:18.2 Signal processing controller: Intel Corporation Celeron/Pentium Silver Processor Serial IO UART Host Controller (rev 03) 00:18.3 Signal processing controller: Intel Corporation Celeron/Pentium Silver Processor Serial IO UART Host Controller (rev 03) 00:19.0 Signal processing controller: Intel Corporation Celeron/Pentium Silver Processor Serial IO SPI Host Controller (rev 03) 00:1c.0 SD Host controller: Intel Corporation Celeron/Pentium Silver Processor SDA Standard Compliant SD Host Controller (rev 03) 00:1e.0 SD Host controller: Intel Corporation Device 31d0 (rev 03) 00:1f.0 ISA bridge: Intel Corporation Device 31e8 (rev 03) 00:1f.1 SMBus: Intel Corporation Celeron/Pentium Silver Processor Gaussian Mixture Model (rev 03) 02:00.0 Ethernet controller: Intel Corporation I211 Gigabit Network Connection (rev 03) 03:00.0 Ethernet controller: Intel Corporation I211 Gigabit Network Connection (rev 03) |
Мы оценили процессор Intel Celeron J4105 с 8 ГБ ОЗУ и rootfs на 127 ГБ.
Особенности тестирования
Большинство устройств поддерживаются, но, поскольку могут быть некоторые проблемы с драйверами, мы также протестировали основные аппаратные функции платы:
- Мультимедиа
- По HDMI – видео ОК, звук ОК
- 3.5 аудиоразъем-ОК (наушники + микрофон)
- Хранилище
- флэш-память eMMC – OK (раздел Windows, но только для чтения)
- Слот MicroSD карты – Неудача (вывода из dmesg отсутствует вообще, не отображается с помощью lsblk)
- M.2 SATA SSD – ОК (см. тесты ниже)
- M.2 SATA NVMe SSD – не тестировался, так как у нас его нет
- USB
- Порты USB 2.0 – OK с мышью и клавиатурой
- Порт USB 3.0 – OK (~ 94 МБ/с чтение/запись в разделе USB HDD EXT-4)
- Порт USB-C 3.0 – Работает, но, по-видимому, ограничено 480 Мбит/с в соответствии со спецификациями USB 2.0 при тестировании с MINIX NEO Storage Plus с видеовыходом HDMI с разрешением до 1024 × 768, Gigabit Ethernet (192/177 Мбит/с через полнодуплексный режим iperf), данные через внутренний SSD емкостью 480 ГБ (39 МБ/с)
- Связь
- LAN1 (около HDMI) – ОК (полнодуплексный режим iperf: 883 Мбит/с/811 Мбит/с)
- LAN2 (около разъема постоянного тока) – ОК. Работает, но iperf full-duplex: 920 Мбит/с/185 Мбит/с. Только скачивание: 947 Мбит/с; только загрузка: 854 Мбит/с
- WiFi 5 – ОК (iperf DL: 326 Мбит/с; iperf UL: 426 Мбит/с) – Примечание: почему-то намного быстрее, чем в Windows 10…
- Bluetooth – ОК. Протестировано с телефоном Android Huawei Y9 Prime 2019 для передачи файлов с/на плату
Так что все не так уж плохо, за исключением того, что карта MicroSD не обнаруживается, а порт USB-C ограничен скоростью USB 2.0 (480 Мбит/с), что означает, что производительность ограничена, а вывод видео составляет только до 1024 × 768 через порт USB-C.
1 2 3 |
lsusb -t | grep Mass |__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=uas, 5000M |__ Port 1: Dev 13, If 0, Class=Mass Storage, Driver=uas, 480M |
В командной строке выше показаны два USB-накопителя, подключенные к плате. Dev 2 – это наш USB-накопитель на 1 ТБ, а Dev 13 – SSD на 480 ГБ, встроенный в концентратор USB-C. Мы можем подтвердить, что USB-SSD емкостью 480 ГБ обеспечивает скорость 450 МБ/с в Windows 10 с помощью CrystalDiskMark, поэтому проблема с USB Type-C возникает только в Ubuntu.
ODYSSEY-X86J4105 Ubuntu 20.04: тесты
Мы провели те же тесты Phoronix и SBC Bench, что и в нашем недавнем обзоре AMD Ryzen Embedded SBC с Ubuntu 20.04, в основном для того, чтобы убедиться, что нет никаких проблем, поскольку мы рассмотрели так много мини-ПК и плат Gemini Lake.
Комплекс тестов Phoronix
Начнем с Phoronix, демонстрирующего различия между ODYSSEY-X86J4105 и платой AMD.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Result Highlights Test Configuration Relative stream Scale 1.504 gmpbench Total Time 0.593 cachebench Write 0.254 cachebench R.M.W 0.349 dcraw R.T.P.I.C 0.704 encode-mp3 WAV To MP3 0.687 pybench T.F.A.T.T 0.736 Harmonic Mean Of MB/s Test Results Harmonic Mean MB/s > Higher Is Better ODYSSEY-X86J4105 - Ubuntu 20.04 ........................ 5821.26 |========= DFI GHF51 AMD Ryzen Embedded R1606G SBC - Ubuntu 20.04 . 6389.34 |========== |
Вы найдете полную информацию об OpenBenchmarking, но в таблице ниже сравниваются четыре из них.
Устройство | DFI GHF51 | MINIX NEO J50C-4 с SSD | ODYSSEY-X86J4105 с SSD |
---|---|---|---|
Процессор | Встроенный AMD Ryzen R1606G двухъядерный / четырехпоточный 2,6 / 3,5 ГГц 12 Вт TDP | Intel Pentium J5005 четырехъядерный 1,5 / 2,3 ГГц 10 Вт TDP | Intel Celeron J4105 четырехъядерный 1,5 / 2,5 ГГц 10 Вт TDP |
Тест CLOMP 3.3 OpenMP | 2.94 | 2.36 | 2.07 |
Производительность TSCP 1.81 AI Chess | 683,862 | 677,631 | 561,904 |
7-Zip сжатие | 7,272 | 7,598 | 6,614 |
PHPBench | 342,215 | 287,503 | 258,513 |
Как и ожидалось, ODYSSEY-X86J4105 является самой медленной платформой из-за используемого процессора, но результаты находятся в ожидаемом диапазоне.
SBC Bench
Также полезно запустить SBC Bench, чтобы проверить возможное дросселирование процессора.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
sudo ./sbc-bench.sh -c sbc-bench v0.7.2 Memory performance: memcpy: 5140.3 MB/s memset: 7115.9 MB/s Cpuminer total scores (5 minutes execution): 19.13,19.12,19.11,19.10,19.09,19.08,19.07,19.03,19.02,19.01,19.00,18.99,18.98,18.88,18.12 kH/s 7-zip total scores (3 consecutive runs): 8393,8364,8403 OpenSSL results: type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes aes-128-cbc 317301.18k 681485.08k 859691.26k 938578.94k 964498.77k 966109.87k aes-128-cbc 317315.63k 682137.07k 859967.57k 939272.87k 964463.27k 967289.51k aes-192-cbc 298524.05k 598992.43k 732979.63k 790139.22k 807313.41k 809249.45k aes-192-cbc 298388.94k 599605.29k 732354.05k 789578.07k 806387.71k 808621.40k aes-256-cbc 281482.88k 534618.41k 633138.35k 680344.23k 694553.26k 694850.90k aes-256-cbc 281446.87k 535112.02k 633773.65k 679372.80k 694796.29k 695817.56k Full results uploaded to http://ix.io/2uwg. Please check the log for anomalies (e.g. swapping or throttling happenend) and otherwise share this URL. |
Опять же, результаты ожидаемые, но система неправильно сообщила о температуре, установленной на 20° C. В этом комментарии приведены результаты теста SBC для систем AMD Ryzen Embedded R1606G и Intel Pentium J5005, а также Raspberry Pi 4 8 ГБ.
Хранилище
SATA SSD (Rootfs – EXT4):
1 2 3 4 5 6 7 8 9 |
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 50916 67034 15018 16301 14094 53831 102400 16 134076 162520 175457 180377 28217 116004 102400 512 209073 206677 160343 156161 74120 211372 102400 1024 111073 103392 145065 145888 79299 112152 102400 16384 134530 127520 220647 209008 103790 140662 |
В Windows 10 мы получили скорость последовательного чтения 442 МБ/с и скорость последовательной записи 219 МБ/с, но почему-то она намного медленнее в Ubuntu 20.04 с 220 МБ/с и 134 МБ/с.
Нам также хотелось проверить производительность флэш-памяти eMMC в Ubuntu, но, как упоминалось ранее, раздел будет доступен только для чтения, и даже при повторном монтировании для чтения/записи нам не удалось получить разрешения на запись в него каких-либо файлов.
Тест GPU
Итоговый тест дня: Unigine Heaven Benchmark 4.0.
Среднее значение 4,2 кадра в секунду/106 баллов для сравнения на Intel Pentium J5005 – 4,7 кадра в секунду/119 баллов и 5,4 кадра в секунду/135 баллов на AMD Ryzen Embedded R1606G. Никаких дефектов во время теста не выявлено, как, к примеру, с Ryzen Embedded SBC.
Разъем Arduino
Мы использовали разъем Arduino в Windows, поэтому мы просто воспроизвели шаги в Ubuntu 20.04, за исключением того, что нам пришлось установить IDE Arduino. Обязательно добавьте текущего пользователя в группу dialout, чтобы избежать проблем с разрешениями:
1 |
sudo adduser $USER dialout |
После выхода из системы у нас все еще было сообщение об отказе в разрешении в среде Arduino IDE, поэтому мы перезагрузили плату, и все заработало.
Важнно, Ubuntu схож с Windows 10, и как только вы войдете в IDE Arduino, перейдите по ссылке:
- File-> Preferences и добавьте https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json в поле URL-адреса Additional Boards Manager.
- Затем Tools->Board->Boards Manager чтобы добавить поддержку плат Seeed SAMD.
- Выберите плату Seeeduino Zero и последовательный порт / dev / ttyACM0
… и соответствующим образом изменили скетч Blink:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
int ledpin = 6 // the setup function runs once when you press reset or power the board void setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(ledpin, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(ledpin, HIGH); // turn the LED on (HIGH is the voltage level) delay(500); // wait for a second digitalWrite(ledpin, LOW); // turn the LED off by making the voltage LOW delay(500); // wait for a second } |
Наконец, прошиваем программу на MCU Arduino…
… и успех! Светодиод мигает. Обратите внимание, что разъем Arduino несовместим с Shields, поэтому вы не можете просто вставить экран сверху, а вместо этого вам придется провести такую проводку, как сделали мы. По поводу программной совместимости мы не беспокоимся, потому что на плате установлен микроконтроллер Microchip SAMD21.
Разъем Raspberry Pi
Мы ожидали, что часть Arduino будет простой, поскольку она просто работала в Windows 10. Пришло время протестировать разъем Raspberry Pi. Возможно, нам следует сначала проверить распиновку, если мы собираемся подключить Pi HAT.
Он достаточно близок к разъему Raspberry Pi, и мы ожидали, что многие Raspberry Pi HAT будут совместимы. Поэтому мы изначально решили использовать Grove AI HAT, который в основном полагается на интерфейс SPI … Но после разговора с представителями компании Seeed Studio, связано ли это с SPI на плате и изменением номеров GPIO в коде, компания сказала нам что все гораздо сложнее, поскольку фреймворк x86 еще не поддерживается.
У нас нет других HAT, поэтому мы вернулись к тестированию Raspberry Pi GPIO с нашей макетной платой и светодиодами, а также датчиком освещенности BH1750 для тестирования I2C.
В основном мы следовали инструкциям в Wiki. Начнем с GPIO. Подключаем светодиод к GPIO 337 (контакт 7), и нам нужно будет экспортировать ввод-вывод, установить направление и значение 1, чтобы включить светодиод:
1 2 3 4 |
cd /sys/class/gpio echo 337 | sudo tee export echo "out" | sudo tee direction echo 1 | sudo tee value |
Чтобы выключить его:
1 |
echo 0 | sudo tee value |
Все прекрасно работает. Seeed Studio рекомендует экспортировать GPIO, как только вы закончите, но мы не понимаем, зачем это может быть необходимо:
1 2 3 |
echo "in" | sudo tee direction cd .. echo 337 | sudo tee unexport |
Для справки, определены четыре блока GPIO.
1 2 3 4 5 6 7 8 |
ls -l total 0 --w------- 1 root root 4096 ส.ค. 18 20:12 export lrwxrwxrwx 1 root root 0 ส.ค. 18 20:00 gpiochip297 -> ../../devices/platform/INT3453:03/gpio/gpiochip297 lrwxrwxrwx 1 root root 0 ส.ค. 18 20:00 gpiochip332 -> ../../devices/platform/INT3453:02/gpio/gpiochip332 lrwxrwxrwx 1 root root 0 ส.ค. 18 20:00 gpiochip352 -> ../../devices/platform/INT3453:01/gpio/gpiochip352 lrwxrwxrwx 1 root root 0 ส.ค. 18 20:00 gpiochip432 -> ../../devices/platform/INT3453:00/gpio/gpiochip432 --w------- 1 root root 4096 ส.ค. 18 20:34 unexport |
Также можно использовать прерывания, и компания предоставляет скрипт Python для тестирования, который можно установить следующим образом:
1 2 3 4 5 |
cd ~ sudo apt install python3-pip sudo pip3 install python-periphery wget https://files.seeedstudio.com/wiki/ODYSSEY-X86J4105864/Documents/IRQtest.zip unzip IRQtest.zip |
Теперь мы можем запустить тестовую программу:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
sudo python3 IRQtest.py GPIO IRQ test on pin 412 Press Ctrl-C to terminate Check poll falling 1 -> 0 interrupt, current value = True Starting thread... Got interrupt! Value = False -------------------- NEXT CYCLE Check poll falling 1 -> 0 interrupt, current value = True Starting thread... Got interrupt! Value = False -------------------- NEXT CYCLE Check poll falling 1 -> 0 interrupt, current value = True Starting thread... |
Далее мы можем попробовать I2C. Как упоминалось ранее, мы подключили датчик освещенности BH1750 I2C к 3,3 В, GND, IC2 clock и Data ping и проверили, обнаружит ли плата датчик:
1 2 3 4 5 6 7 8 9 10 |
sudo i2cdetect -r -y 0 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- |
Упс… ничего не обнаружено… Итак, заходим в BIOS, все «специальные функции» были установлены на GPIO.
Мы не можем вспомнить, меняли ли мы это раньше, поскольку они не должны быть значениями по умолчанию, но в любом случае мы изменили их все, чтобы включить I2C, SPI, UART и SPI.
Когда мы вернулись в Ubuntu, у нас все еще был тот же результат команды i2cdetect. Поэтому мы внимательно прочитали Wiki… и выполнили две команды, чтобы снова проверить устройства I2C:
1 2 3 4 |
ls /sys/bus/pci/devices/*/i2c_designware.0/ | grep i2c i2c-1 ls /sys/bus/pci/devices/*/i2c_designware.1/ | grep i2c i2c-2 |
I2C designware 0 должен представлять I2C6 (контакты 27 и 28), а designware 1 – для I2C5 для контактов 3 и 5, к которым подключен наш датчик освещенности. Итак, давайте попробуем еще раз с устройством I2C 2:
1 2 3 4 5 6 7 8 9 10 |
udo i2cdetect -r -y 2 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- 23 -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- |
Успех! Датчик освещенности обнаружен!
К SPI ничего не подключали, но SPI определяется ядром:
1 2 |
ls /sys/bus/pci/devices/0000\:00\:19.*/pxa2xx-spi.*/spi_master/ | grep spi spi1 |
Если мы хотим получить к нему доступ из пользовательского пространства, нам нужно будет выполнить несколько команд:
1 2 3 4 5 |
wget https://files.seeedstudio.com/wiki/ODYSSEY-X86J4105864/Documents/SPI-Enable.zip unzip SPI-Enable.zip cd spi-enable/ chmod +x acpi-add acpi-upgrades install_hooks sudo ./install_hooks && sudo acpi-add spidev* |
Как только это будет сделано, перезагрузим плату, и мы увидим два устройства SPI:
1 2 3 |
ls -l /dev/spi* crw------- 1 root root 153, 0 ส.ค. 18 21:32 /dev/spidev1.0 crw------- 1 root root 153, 1 ส.ค. 18 21:32 /dev/spidev1.1 |
В отличие от разъема Arduino, разъем Raspberry Pi позволяет вставлять большую часть Raspberry Pi HAT прямо на плату, но пока работает низкоуровневое программное обеспечение, вам придется работать над конфигурацией системы и модификациями программного обеспечения, работающего на Raspberry Pi, чтобы он работал на плате x86. Это включает в себя конфигурации BIOS и ввода-вывода, изменение кода в соответствии с именами GPIO и т. д. Насколько нам известно, нет библиотеки «WiringPix86», которая могла бы упростить процесс.
Заключительные слова
Seeed Studio ODYSSEY-X86J4105 – симпатичная и довольно уникальная маленькая плата, с которой нам было весело поэкспериментировать. Вот основные выводы:
- В Windows 10 она работает так же, как стандартный мини-ПК Intel Gemini Lake, и все работает с ожидаемой производительностью, но вы сможете управлять только разъемом Arduino, поскольку в настоящее время GPIO Raspberry Pi недоступны.
- В Ubuntu 20.04 производительность соответствует ожиданиям, но также есть некоторые проблемы с неработающей картой MicroSD и ограничением порта USB-C до 480 Мбит / с, по крайней мере, с многофункциональным адаптером MINIX NEO Storage Plus USB-C. Разъемами ввода-вывода Arduino и Raspberry Pi можно управлять в Linux, но вам, возможно, придется потратить некоторое время на перенос программного обеспечения, особенно для ввода-вывода Raspberry Pi.
Некоторых людей может беспокоить шум вентилятора, хотя его можно настроить или отключить в BIOS.
Нам хотелось бы поблагодарить Seeed Studio за присланный образец для обзора. Если вам интересно, есть три варианта платы с ценой от 188 до 258 долларов плюс доставка:
- ODYSSEY – X86J4105800 (188 долларов США) без флэш-памяти eMMC (можно загружать с M.2 или USB-накопителя)
- ODYSSEY – X86J4105864 (218 долларов США) с флеш-памятью eMMC емкостью 64 ГБ с предварительно загруженной неактивированной версией Windows 10 Enterprise. Именно этот вариант рассмотрен в обзоре.
- ODYSSEY – X86J4105864 (258 долларов США) с предварительной загрузкой флэш-памяти eMMC емкостью 64 ГБ с активированной версией Windows 10 Enterprise. Такое же оборудование, как указано выше, но с лицензией Windows.
Если вы хотите получить полноценный мини-ПК с корпусом Re_Computer, вы можете подумать о приобретении мини-ПК Odyssey Blue J4105 с SATA SSD 128 ГБ, за 239 долларов плюс доставка.
Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.