前段时间折腾 Raspberry Pi,顺便看了一下现在 SBC 的市场,感觉还是挺有意思的。如果我们把 RPi4 的性能作为一根标杆的话,大约有两派
- 高端派:我看到有不少价格接近百元大关乃至更高,直接提供了类似 NVMe 的选项,更好的内存等等
- 低端派:通过一些阉割获得低于 35$ 的售价,但是其实很多阉割后性能仍然不错
今天提到的 Orange Pi 大约有一些型号,如 5 LTS 可能已经开始走向高端派,而我比较感兴趣的 3 zero 系列还属于低端,即便是 4G 内存的版本,加运费、税之后大约 33$,而美国这边 RPi4 的 4G 买二手的也要 50-60$,看起来是不是妥妥的低配呢。做这个东西的也是国内的公司,尺寸对于 zero 的板子来说还是挺不错的,配了个 USB/ethernet/hdmi 另外加上蓝牙和 Wi-Fi,感觉特别大方,LTS 的板子要大不少,跟 RPi 类似
硬件
我们可以细致的比较一下这么几个设备
- Raspberry Pi 3 (b+) / 4,简写为 RPi 3 / 4,4 我们拿 4G 版本为例
- Orange Pi 3 zero,简写为 OPi3 zero,以及 Orange Pi 5 4G 版本,简写为 OPi 5
- Beelink Mini S12 Pro mini PC,现在有折扣大约 170$,简写为 Beelink
这样可以看到大概的档次区别
方面 | RPi 3 | OPi 3 zero | RPi 4 | OPi 5 | Beelink |
价格 | ~40$ | ~35$ | ~60$ | ~90$ | 170$ |
处理器 | 1.4GHz 64bit 4 core Cortex-A53 | 1.5GHz 64bit 4 core Cortex-A53 | 1.8GHz 64bit 4 core Cortex-A72 | 2.4/1.8GHz 64bit 8 core (4 Coretex-A76+4 Coretex-A55) | 3.4GHz 64bit 12th Gen Intel Alder Lake N100 Celeron |
内存 | LPDDR2 1G | LPDDR4 1/1.5/2/4G | LPDDR4-3200 1/2/4/8G | LPDDR4x 4/8/16/32G | DDR4-3200 16G/1ch |
显卡 | VideoCore 400MHz for video / 300MHz for graphics | Mali-G31 MP2 | VideoCore VI | Mali-G610 | Intel UHD |
显示连接 | full HDMI 1.3 | micro HDMI | 2x micro HDMI 2.0 | full HDMI 2.1 DP 1.4 | 2x full HDMI |
AI 加速 | NPU 6Tops | ||||
有线连接 | 300M ethernet | G-ethernet | G-ethernet | G-ethernet | G-ethernet |
无线连接 | BLE 4.2 / Wifi 802.11ac BCM2837 | BLE 5.0 / Wifi 802.11ac AW859A | BLE 5.0 / Wifi 802.11ac BCM4345 | BLE 5.0 / Wifi 802.11ac AP6275P | BLE 5.2 / Wifi 802.11.ax |
USB | 4×2.0 | 1×2.0 (可扩展到 3×2.0) | 2×2.0 2×3.0 | 2×2.0 1×3.0 1xType-C | 4×3.2 |
PCIe | N/A | N/A | N/A | M2 2.0 | M2 |
系统盘 | tf (不含) | tf (不含) | tf (不含) | 32G eMMC tf (不含) | 500G NVMe SATA |
IO | 40 pin GPIO | 26 pin GPIO + 13 pin GPIO | 40 pin GPIO | 26 pin GPIO | N/A |
相机 | CSI | N/A | 2-lane MIPI CSI | 4-lane MIPI CSI | N/A |
屏幕 | DSI | N/A | 2-lane MIPI DSI | 2x 4-lane MIPI D PHY | N/A |
供电 | micro USB | USB type C, 3A | USB type C, 2.5A | USB type C, 4A | DC 12V, 3A |
功率 |
这里面 Arm 的 Cortex 系列内核里面 5x 是效率小核,而 7x 是性能大核,需要注意的是即便两者频率一样大核跑起来也会比小的快很多(可能一倍的性能差异),这就是为什么 RPi4 会比 RPi3 强大很多,这里的 OPi3 最多只能看成是 RPi3 级别的产品,而且体验下来可以很明显感到不如 RPi4 那种顺溜感。
装机
试了试 Debian 的官方镜像,感觉是拿 Armbian 魔改的,虽然留了个 Armbian 的链接,似乎对我买来的 4G 的板子没法用。为啥要搞 Armbian?这个官方的版本
- 连的是华为云或者阿里云的 repo,在美国这边似乎有点慢
- 内核大概是定制了一个,但是没有提供对应的 header,要编译一个对应的内核模块都不行
整体过程还算比较顺利,除了碰到了自己一张坏 tf 卡导致装机中老是到某个步骤就挂机。换了卡之后 dd 镜像,然后一番配置下来都挺顺利。没能编译内核模块比较不爽,不晓得反应一下能不能给 headers
比较遗憾的大概也是 armbian 和原生 debian 的一些选择上的区别。debian 的网络使用的比较适合服务器类型的 dhcpcd.service 而 armbian 选择了更适合桌面系统的 network manager。我们可以通过如下操作替换掉 network manager
# apt install dhcpcd5
# systemctl stop NetworkManager
# # edit /etc/dhcpcd.conf
# systemctl start dhcpcd
# systemctl disable NetworkManager
# systemctl enable dhcpcd
# apt purge network-manager
# apt autoremove
编译内核模块的原因当然是为了弄个 wifi dongle,这条路走不通(似乎 RTL8188 相关的配置不能直接用在这个片子上)之后只好用自带的网卡,结果 hostapd 设置并不成功,不晓得是不是提供的驱动/固件有点问题。这个不行的话还是很难用到户外没有网络的情形下。
内核 headers
根据这个文档,我们找了台比较 powerful 的主机,由于不是 ubuntu,我们首先装了个 virtual box,里面安装了 ubuntu,用来作为开发机,感觉就是编译几个 package 不知道为啥需要 sudo,所以还是在虚拟机里面操作比较谨慎。大概配置给了 8G ram + 8 core + 40G 硬盘(默认的 25G 太小很快就会挂掉)。由于 virtual box 安装的用户没有 sudo 权限,需要进入 recovery mode 添加权限。密码竟然就是创建用户的密码,为啥不默认打开 sudo…
进入虚拟机之后按照说明
git clone https://github.com/orangepi-xunlong/orangepi-build.git -b next
cd orangepi-build
./build.sh
这里好像装了一坨东西,还是从国内的镜像上面下载的,感觉很慢。选择好了相应的板子、内核,就会开始下载,然后确认一下,进而开始编译内核,最后可以拿到内核 + headers。然后我们需要把这个文件传递回 host,用来 copy 给板子上的系统。为啥不直接在系统里面安装呀,无语。编译了大约半小时,把 output/debs/ 里面的 package copy 到板子上安装,即可编译其他的内核模块了。
AP 两种方式
事实上在手册上提到了一个 create_ap 的脚本,这个提供了某种程度的自动化方案,我们可以通过以下命令建立一个 AP,需要注意的是这个网卡/驱动不支持 virtual AP,所以必须使用
# create_ap --no-virt wlan0 end0 <SSID> <Passphrase>
里面的 –no-virt 选项,否则会造成网络设备锁死(只能掉电重启)。其实如果仔细看这个实现,我们可以发现它其实也利用了 hostapd,生成的配置文件可以 cpoy/paste 稍加修改放在 /etc/hostapd/hostapd.conf,这样就可以使用 systemd 启动了
beacon_int=100
ssid=<SSID>
interface=wlan0
driver=nl80211
channel=1
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
ignore_broadcast_ssid=0
ap_isolate=0
hw_mode=g
wpa=3
wpa_passphrase=<Passphrase>
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
rsn_pairwise=CCMP
这样我们就可以使用原生的 wifi chip。当然有了内核 headers,我们一样可以配置 hostapd 使用 RTL8188EUS 芯片实现一样的效果。但是这样就会占用一个 USB 插头。如果不是用原生的 wifi chip 连接家里面的网络的话,前者可能是个更好的选择。比如可以使用 Raspberry Pi 开发,而部署换到 Orange Pi 3 Zero 上即可。
其他
其实 100+ 的价位甚至可以买到一些 SFF 主机(比如上面比较的 Beelink)了,SBC 的可扩展性却没有 SFF 主机那么好(比如换个内存什么),但是功耗上应该是有不少的优势。看想拿这个东西来做什么了呢。