OrangePi 之初体验

前段时间折腾 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 3OPi 3 zeroRPi 4OPi 5Beelink
价格~40$~35$~60$~90$170$
处理器1.4GHz 64bit 4 core Cortex-A531.5GHz 64bit 4 core Cortex-A531.8GHz 64bit 4 core Cortex-A722.4/1.8GHz 64bit 8 core (4 Coretex-A76+4 Coretex-A55)3.4GHz 64bit 12th Gen Intel Alder Lake N100 Celeron
内存LPDDR2 1GLPDDR4 1/1.5/2/4GLPDDR4-3200 1/2/4/8GLPDDR4x 4/8/16/32GDDR4-3200 16G/1ch
显卡VideoCore 400MHz for video / 300MHz for graphicsMali-G31 MP2VideoCore VIMali-G610Intel UHD
显示连接full HDMI 1.3micro HDMI2x micro HDMI 2.0full HDMI 2.1
DP 1.4
2x full HDMI
AI 加速NPU 6Tops
有线连接300M ethernetG-ethernetG-ethernetG-ethernetG-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
USB4×2.01×2.0 (可扩展到 3×2.0)2×2.0 2×3.02×2.0 1×3.0 1xType-C4×3.2
PCIeN/AN/AN/AM2 2.0M2
系统盘tf (不含)tf (不含)tf (不含)32G eMMC
tf (不含)
500G NVMe
SATA
IO40 pin GPIO26 pin GPIO + 13 pin GPIO40 pin GPIO26 pin GPION/A
相机CSIN/A2-lane MIPI CSI4-lane MIPI CSIN/A
屏幕DSIN/A2-lane MIPI DSI2x 4-lane MIPI D PHYN/A
供电micro USBUSB type C, 3AUSB type C, 2.5AUSB type C, 4ADC 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 主机那么好(比如换个内存什么),但是功耗上应该是有不少的优势。看想拿这个东西来做什么了呢。

OrangePi 之初体验

留下评论