Обзор ODYSSEY-X86J4105 SBC с Ubuntu 20.04 — протестированы разъемы Raspberry Pi и Arduino

Мы уже рассматривали 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 информация о системе

Мы можем проверить некоторую информацию о системе:

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.

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.

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 GHF51MINIX NEO J50C-4 с SSDODYSSEY-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.942.362.07
Производительность
TSCP 1.81
AI Chess
683,862677,631561,904
7-Zip сжатие7,2727,5986,614
PHPBench342,215287,503258,513

Как и ожидалось, ODYSSEY-X86J4105 является самой медленной платформой из-за используемого процессора, но результаты находятся в ожидаемом диапазоне.

SBC Bench

Также полезно запустить SBC Bench, чтобы проверить возможное дросселирование процессора.

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):

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, чтобы избежать проблем с разрешениями:

sudo adduser $USER dialout

После выхода из системы у нас все еще было сообщение об отказе в разрешении в среде Arduino IDE, поэтому мы перезагрузили плату, и все заработало.

Важнно, Ubuntu схож с Windows 10, и как только вы войдете в IDE Arduino, перейдите по ссылке:

  1. File-> Preferences и добавьте https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json в поле URL-адреса Additional Boards Manager.
  2. Затем Tools->Board->Boards Manager чтобы добавить поддержку плат Seeed SAMD.
  3. Выберите плату Seeeduino Zero и последовательный порт / dev / ttyACM0

… и соответствующим образом изменили скетч Blink:

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.

40-контактный разъем — ODYSSEY-X86J4105 против Raspberry Pi 2/3/4

Он достаточно близок к разъему 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, чтобы включить светодиод:

cd /sys/class/gpio
echo 337 | sudo tee  export
echo "out" | sudo tee direction
echo 1 | sudo tee value

Чтобы выключить его:

echo 0 | sudo tee value

Все прекрасно работает. Seeed Studio рекомендует экспортировать GPIO, как только вы закончите, но мы не понимаем, зачем это может быть необходимо:

echo "in" | sudo tee direction
cd ..
echo 337 | sudo tee unexport

Для справки, определены четыре блока GPIO.

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 для тестирования, который можно установить следующим образом:

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

Теперь мы можем запустить тестовую программу:

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 и проверили, обнаружит ли плата датчик:

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:

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:

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 определяется ядром:

ls /sys/bus/pci/devices/0000\:00\:19.*/pxa2xx-spi.*/spi_master/ | grep spi
spi1

Если мы хотим получить к нему доступ из пользовательского пространства, нам нужно будет выполнить несколько команд:

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:

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 долларов плюс доставка:

  1. ODYSSEY – X86J4105800 (188 долларов США) без флэш-памяти eMMC (можно загружать с M.2 или USB-накопителя)
  2. ODYSSEY – X86J4105864 (218 долларов США) с флеш-памятью eMMC емкостью 64 ГБ с предварительно загруженной неактивированной версией Windows 10 Enterprise. Именно этот вариант рассмотрен в обзоре.
  3. ODYSSEY – X86J4105864 (258 долларов США) с предварительной загрузкой флэш-памяти eMMC емкостью 64 ГБ с активированной версией Windows 10 Enterprise. Такое же оборудование, как указано выше, но с лицензией Windows.

Если вы хотите получить полноценный мини-ПК с корпусом Re_Computer, вы можете подумать о приобретении мини-ПК Odyssey Blue J4105 с SATA SSD 128 ГБ, за 239 долларов плюс доставка.

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

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

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

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

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