—树莓派和Arduino接头测试
之前,我们已经通过 Windows 10评测ODYSSEY-X86J4105 SBC了。它与Re Computer外壳结合使用时,就是一个典型的 Intel Gemini Lake 迷你 PC。但有一点不同就是:它拥有Arduino 和树莓派接口。后者在 Windows 中运行良好,但与此同时树莓派接头就不太行。所以Linux应该是我们唯一的选择了。
我现在有足够的时间在 ODYSSEY-X86J4105 单板计算机上安装和测试 Ubuntu 20.04了。所以,我并没有在 Windows 10 所在的内部 eMMC 闪存上安装 Ubuntu,而是在 128GB M.2 SATA SSD 上安装。我首先运行一些常用的命令来检查系统信息,然后运行基准测试, 并检查所有的功能是否正常。接着再把评测的重点放在Arduino和树莓派头上。

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) |
一个带有8GB RAM的英特尔赛扬J4105处理器和拥有127GB分区的根文件系统,这些配置对我来说还是十分不错的。
功能测试
看起来ODYSSEY-X86J4105支持大多数设备,但由于驱动程序可能会存在一些问题,因此我还是测试了主板的主要硬件功能:
- 多媒体
- HDMI – 视频正常,音频正常
- 3.5 音频插孔 – 正常(耳机 + 麦克风)
- 存储
- eMMC 闪存– 正常(Windows分区,但只读)
- MicroSD 卡插槽 –失败(根本没有 dmesg 输出,未与 lsblk 一起显示)
- M.2 SATA SSD硬盘– 正常(见下面的基准测试)
- M.2 SATA NVMe SSD硬盘– 未测试(因为我还没有)
- USB
- USB 2.0 端口 – 正常,可以使用鼠标和键盘
- USB 3.0 端口 – 正常(在 USB HDD EXT-4 分区上读/写约 94MB/s)
- USB-C 3.0 端口 – 可以工作但显然限制为了480 Mbps,根据 USB 2.0 规范使用MINIX NEO Storage Plus测试时,HDMI 视频输出高达 1024×768,千兆以太网(perf 全双工:192Mbps/177Mbps), 480GB SSD数据读写速度 39MB/s
- 联网
- LAN1(接近 HDMI) – 正常(iperf 全双工:883Mbps/811Mbps)
- LAN2(靠近 DC 插孔)– 正常。有效,iperf 全双工:920Mbps/185Mbps。仅下载:947 Mbps;仅上传:854 Mbps
- WiFi 5 – 正常(iperf 下载:326 Mbps;iperf 上传:426 Mbps) – 注意:出于某种原因,它比 Windows 10 快得多
- 蓝牙 – 正常。使用华为 Y9 Prime 2019 Android 手机进行测试,可将文件传入/传出板子

所以,除了未检测到 MicroSD 卡、USB-C端口被限制在USB 2.0速度下(480Mbps)、通过 USB-C 端口的视频输出最高仅达 1024×768以外,其他各方面表现得都不算太糟糕。
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 是我 1TB USB 的数据驱动器,Dev 13 是嵌入到 USB-C 集线器中的 480GB SSD。我可以通过 CrystalDiskMark 确认 480GB USB SSD 在 Windows 10 中数据传输速度达到 450MB/s,所以 USB Type-C 的问题只会发生在 Ubuntu 中。
ODYSSEY-X86J4105 Ubuntu 20.04 基准测试
我在最近的AMD Ryzen嵌入式SBC评测中使用了与Ubuntu 20.04相同的Phoronix和SBC Bench基准,主要是为了确保的确没有问题。因为我们已经评测过很多Gemini Lake迷你PC和板卡了。
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 带固态硬盘 | ODYSSEY-X86J4105 带固态硬盘 |
---|---|---|---|
处理器 | AMD 锐龙嵌入式 R1606G 双核/四线程 2.6 / 3.5 GHz 12W TDP | Intel Pentium J5005 四核 1.5 / 2.3 GHz 10W TDP | 英特尔赛扬 J4105 四核 1.5/2.5 GHz 10W TDP |
CLOMP 3.3 OpenMP 基准测试 | 2.94 | 2.36 | 2.07 |
TSCP 1.81 AI 国际象棋表演 | 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来检查潜在的CPU节流也很有用。
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℃。查看此评论,可以了解 AMD Ryzen Embedded R1606G 和 Intel Pentium J5005 系统以及树莓派4( 8GB )的SBC Bench 结果。
存储
SATA SSD(Rootfs – EXT4):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
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 MB/s 的连续读取速度和 219MB/s 的连续写入速度,但不知何故,它在 Ubuntu 20.04 中相当慢,分别为 220MB/s 和 134 MB/s。
我本来还想在 Ubuntu 中检查 eMMC flash性能,但如前所述,该分区是只读的,即使重新挂载为读/写,我也无法获得向其写入任何文件的权限。
GPU 基准测试
当天基于Unigine Heaven Benchmark 4.0的最终基准测试结果如下:

在 Intel Pentium J5005上是4.7 fps / 119 分,在AMD 锐龙嵌入式 R1606G 上是 5.4 fps / 135 分。相对比之下,其结果平均为 4.2 fps / 106 分。测试结果是没有问题的,因为,在基准测试期间我没有得到任何与我使用 Ryzen Embedded SBC 测试经验相反的结果。
Arduino 接口
我们可以在 Windows 中使用Arduino接口,所以我只是在 Ubuntu 20.04 中复制了这些步骤,只是我必须安装 Arduino IDE。确保将当前用户添加到dialout 组上以避免权限问题:
1 |
sudo adduser $USER dialout |
退出登录后,我在 Arduino IDE 中仍然还是有一条权限被拒绝的消息,所以我重新启动了电路板,然后就一切正常了。
Ubuntu 中的重要步骤与 Windows 10 中的几乎都是相同的,进入 Arduino IDE 后,请转到:
- File->Preferences并将https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json添加到Additional Boards Manager URL字段
- 然后Tools->Board->Boards Manager添加对Seeed SAMD Boards 的支持
- 选择SeeeduinoZero板和/dev/ttyACM0串口
我重新连接了面包板上的小电路来控制连接到 D6 数字引脚的 LED。

并相应地修改了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 } |
最后,我将程序刷入了 Arduino MCU中。

成功了!LED可以闪烁了。请注意,Arduino 接头与 Shields 不兼容,因此你不能只在顶部插入一个Shields 板。相反,你必须像我在这里所做的那样弄一些接线。我倒是不担心软件兼容性,因为该板嵌入了 Microchip SAMD21 微控制器。
树莓派接头
如我想的那样, Arduino 部分其实是很容易的,因为它在 Windows 10 中可以工作。现在是时候测试树莓派排针接头了。如果我们要连接 Pi HAT,我们也许应该先检查引脚排列。

通过对比,它与树莓派接口足够相似,我希望许多树莓派HAT 都能兼容。所以我最初决定使用主要依赖 SPI 接口的 Grove AI HAT,但是在与矽递科技(Seeed Studio )讨论是否只是在板上启用 SPI 和更改代码中GPIO 编号的问题后,该公司告诉我这比较复杂,因为x86框架现在还不支持。
因为我没有任何其他尚未送出的HAT了,所以我又用了我的面包板和LED测试了树莓派的GPIO,外加一个BH1750光传感器来测试I2C。

我主要是按照Wiki 中的说明进行了操作。让我们从 GPIO 开始。我将 LED 连接到 GPIO 337(引脚 7),我需要导出 IO,将方向和值设置为 1 从而打开 LED:
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 |
一切都进行得很顺畅。对了,矽递科技建议在完成后要取消导出 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.3V、GND、IC2 时钟和数据 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 。

当我回到 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),而i2c_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 接头相反,树莓派接头是允许直接在板上插入大部分树莓派 HAT的。但是当低级软件正在运行时,你必须要进行系统配置并修改树莓派上运行的软件,使其能在 x86 板上工作。这要包括 BIOS 、 I/O 配置、修改代码以匹配 GPIO 名称等。据我所知,现在还没有人制作过可以简化流程的“WiringPix86”库。
结论
矽递科技的 ODYSSEY-X86J4105 是一款不错、且相当独特的小板,我个人感觉很不错。以下是它的一些主要的点:
- 在Windows 10 中,它的性能就像标准的 Intel Gemini Lake 迷你 PC。一切都符合预期的性能,但只能控制 Arduino 接头,因为目前无法访问树莓派GPIO接头。
- 在Ubuntu 20.04 中,性能符合预期,但也存在一些问题。MicroSD 卡无法工作、USB-C 端口限制为 480 Mbps,至少需要在 MINIX NEO Storage Plus USB-C 多功能适配器的情况下运行。Arduino 和树莓派I/O 接头都可以在 Linux 中控制,但是可能需要花一些时间来移植软件,尤其是对于树莓派 I/O。
另外,有些人可能会为风扇噪音所困扰,尽管可以在 BIOS 中调整或禁用。
我也十分感谢矽递科技给我寄的评测样本。如果你们有兴趣,该板有 3 种规格。价格从 188 美元到 258 美元不等,还需要另外加运费:
- ODYSSEY – X86J4105800(188 美元)不带 eMMC 闪存(您可以从 M.2 或 USB 存储启动)
- ODYSSEY – X86J4105864(218 美元),带有 64GB eMMC 闪存,预装了未激活的 Windows 10 企业版。这就是我的评测内容。
- ODYSSEY – X86J4105864(258 美元),预加载 64GB eMMC 闪存,激活版本的 Windows 10企业版。与上述用的是相同硬件,但具有 Windows 许可证。
如果你想获得带有 Re_Computer 机箱的完整迷你 PC,你可以考虑购买带有 128GB SATA SSD 的Odyssey Blue J4105 迷你 PC,就像我在这部分评测中测试过的那样。它的售价是 239 美元,需另加运费。

文章翻译者:Taylor Lee,瑞科慧联(RAK)高级嵌入式开发工程师,有丰富的物联网和开源软硬件经验,熟悉行业主流软硬件框架,对行业发展动向有着敏锐的感知力和捕捉能力。