ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

开放规格Linux开发板全解析:122块板子选型与入门实战

2026/8/27 14:29:02 拓冰建站 浏览量
开放规格Linux开发板全解析:122块板子选型与入门实战 最近一直在整理嵌入式 Linux 相关的东西手头攒了一批开发板的资料。前两天有个朋友问我推荐一款适合做开源项目、资料齐全、不被厂商绑架的 Linux 板子我直接把整理好的清单丢给了他——122 块开放规格Open-Spec的 Linux Hacker Boards从几十块钱的入门小板到能跑桌面环境的性能怪兽全都有。他看完之后跟我说信息量太大反而不知道从哪下手了。这也是我写这篇文章的初衷。光把 122 块板子列出来没什么意义真正的价值在你拿到这份目录之后怎么理解开放规格这四个字的分量怎么在这么多选择里找到最适合自己的那块板子以及板子到手之后从哪一步开始折腾。这篇文章就围绕这些展开把我整理目录时的判断逻辑、实际测试中积累的选型经验和踩坑记录都摊开来讲。1. 先搞懂Open-Spec Hacker Board到底在说什么1.1 三个关键词背后的门槛这个目录名字里每个词都有明确的指向先说清楚理解了这些你才知道为什么这张清单值得收藏。Open-Spec开放规格说的是硬件层面的开放核心是原理图、PCB 版图、元器件清单BOM这些设计文件对公众可见。大部分情况下你拿不到原厂那种完整的 CAD 工程文件但至少原理图和 PCB 的 PDF 版本、关键元器件的选型理由、电源树的设计逻辑这些是必须公开的。别小看这点市面上大量开发板其实只给数据手册和引脚图坏了或者想改设计只能对着黑盒瞎猜。Linux在这里不只是能跑 Linux这么简单。真正的门槛是主线内核支持。很多板子厂商自己维护一个内核分支里面塞了一堆没上主线的驱动这板子看着挺美一旦厂商停止维护你的 BSP 就永远停留在某个老内核版本上想升级自己改吧。而上了主线内核的板子跟着内核社区走长期维护是有保障的。Hacker Boards强调的是这类板子的使用方式——专门为折腾而生。GPIO、I2C、SPI、UART、PWM、CAN 这些接口全部引出Boot 方式多样SD 卡、eMMC、SPI Flash、网络启动还支持各种扩展板HAT、Cape、DIP 等。它是让你改的不是让你摆在桌上看的。1.2 为什么能跑 Linux远不够我见过太多人买第一块板子的时候只看 CPU 型号和内存大小结果拿到手发现三个致命问题第一外设驱动只有厂商闭源二进制。比如某个 WiFi 模块官方只给了编译好的 .ko 文件内核版本一升级就完蛋你又拿不到源码重新编译这块板子就废了。真正的 Open-Spec 板子WiFi、蓝牙、以太网这些关键外设的驱动要么已经进入内核主线要么有开源的驱动源码。第二文档短缺。数据手册确实开放了但是板级细节——DDR 布线的等长约束、阻抗控制要求、电源时序——这些真正决定你能不能自己复刻一块板子的关键信息被藏得严严实实。Open-Spec 板子通常会把完整的硬件设计文件打包放在 GitHub 上你可以直接用 KiCad 或 EAGLE 打开看。第三生态封闭。树莓派为什么成功配件生态功不可没。但树莓派的原理图是不公开的虽然有大量第三方逆向相比之下 BeagleBone 系列把完整的 BOM 和设计文件全部开放你可以照着 BOM 清单自己买元器件焊一块出来。这种自由度是能跑 Linux这个标准完全无法衡量的。1.3 你手上的Hacker Board解决了什么问题对我们这种做嵌入式开发、DIY 项目或者学习教育的人来说Open-Spec Linux 板子解决的核心痛点有三个可复现性项目做完了想批量生产硬件设计文件公开找工厂打样就行不受板子厂商供货影响。可维护性内核、驱动、Bootloader 全开源出了问题自己就能修不用祈求厂商更新。可学习性PCB 文件开源意味着你直接学习到一块可量产级别的板子是怎么设计出来的这对硬件工程师的成长价值极高。我整理这份 122 块板子的目录就是想把这些散落在各个厂商、各个社区、各个论坛的信息集中起来按架构、性能、生态、价位做分类让每个人都能快速定位到适合自己的那块板子。2. 122 块板子的全景分类从 MCU 到桌面级2.1 按处理器架构分类ARM、RISC-V、x86 三分天下打开这份目录首先按处理器架构可以分成三大阵营ARM 架构占据了绝对主流。从 Cortex-A7 到 Cortex-A72从 32 位到 64 位从几百 MHz 到 2GHz 以上覆盖了全部性能区间。ARM 生态最成熟主线内核支持度也最好各种现成的操作系统镜像、驱动、文档都是最丰富的。新手闭着眼睛选 ARM 基本不会错。RISC-V 架构是最近几年增长最快的分支。虽然数量上还比不过 ARM但这个架构的意义在于指令集完全开放没有任何 IP 授权限制。StarFive 的 VisionFive 2、Sipeed 的 LicheeRV、Milk-V 的 Duo 系列这些都是目录里的常客。不过要泼盆冷水RISC-V 板子的 GPU 驱动和多媒体加速目前还是短板跑跑 Linux 命令、做做服务器应用没问题想当桌面机用还是差点意思。x86 架构的板子数量不多但每个都是硬角色。这类板子多用于需要完整 x86 软件生态兼容的场景比如运行 Windows 程序、使用某些只有 x86 版的二进制工具链或者做边缘计算网关。LattePanda、UP Board 是典型代表价格普遍比同性能的 ARM 板子贵一截。2.2 按性能与用途分层从入门学习到边缘计算下面这张表是我把目录里的板子按性能和用途快速分了五档档次定位代表板子典型配置参考价格区间入门级学习 Linux 基础、GPIO 控制Raspberry Pi Zero、NanoPi NEOARM Cortex-A7/A53256MB-512MB 内存50-150 元中级通用嵌入式开发、IoT 网关Raspberry Pi 4、Orange Pi 5、Rock Pi 44 核 A72/A532GB-8GB 内存300-800 元高性能桌面体验、AI 推理、边缘计算Rockchip RK3588 系列、Jetson 系列8 核 A76A558GB-32GB 内存1000-5000 元开发调试板芯片原厂评估、驱动开发BeagleBone Black、STM32MP157 系列定位独特调试接口齐全200-600 元极客专供掌上电脑、复古游戏、自制手机PinePhone、PineBook、ClockworkPi形态各异折腾空间巨大500-2000 元看到这个分层你就明白了122 块板子铺开之后用户群体是高度分化的。有人需要的就是一块能跑 GPIO 点灯教程的小板子有人需要的是能部署大模型的 AI 边缘盒子还有人想要的是能塞进口袋的 Linux 终端。目录的价值就是把这种分化梳理清楚不让你在选型阶段埋下隐患。2.3 一个关键指标主线内核支持度在分类之外我整理这份目录时最看重的一个横切指标是主线内核支持度。把每块板子对应到 mainline kernel 里的设备树文件合并情况大致能分三档完全主线支持所有板载设备驱动都已合入内核主线你直接用multi_v7_defconfig或defconfig编译内核就能跑。代表BeagleBone Black、Raspberry Pi 全系GPU 部分除外、Rockchip 大部分板子。部分主线支持核心 SoC 已经支持但部分板载芯片比如声卡 codec、WiFi 模块还没有进入主线需要额外的 out-of-tree 补丁。代表部分全志芯片的板子。厂商 BSP 专用全靠厂商维护的内核分支主线不可用。这类板子我会在目录里特别标注谨慎选择除非你有特殊原因否则不建议作为主力开发板。这个指标直接决定了你的板子能用几年。厂商 BSP 的内核版本一旦停滞你后续想用的新特性、新协议栈、安全补丁全都进不来。主线支持度好的板子每一次内核大版本更新都有社区帮你验证这种长期维护带来的安全感是花多少钱都买不来的。3. 选型方法论在这 122 块板子里找到你的那一块3.1 先画需求边界再看目录我见过太多人选板子是从哪块看着酷开始的。这个思路要反过来先明确你的三个边界条件预算范围。这不是废话嵌入式开发板有个现象50 元的板子和 500 元的板子差距不只是性能还有配套资料的完整度、社区活跃度、配件丰富度。预算 300 元以内基本就是入门级和轻中级的选择预算 1000 元以上就可以考虑带 NPU 的高性能板子了。软件需求。你要跑什么东西如果只是跑个 Python 脚本控制 GPIO任何板子都行如果要跑 Docker 容器做服务器内存至少 2GB 起步如果要跑 YOLO 做实时目标检测没有 NPU 加持的板子基本别指望实时性。先把你手头最大的应用跑起来看一眼资源占用再定硬件规格。接口需求。数一下你的项目需要哪些外设接口。需要双千兆网口需要 M.2 NVMe 插槽需要 HDMI 输入需要多个 USB 3.0有些需求会直接排除掉一大半候选板子。比如你做路由器项目双千兆网口就是硬指标这直接就把大部分单网口的开发板排除了。3.2 三个硬性指标帮你过滤掉坑在上面的边界条件基础上我还会用以下三个硬性指标逐项检查指标一板子有原理图吗去 GitHub 或者厂商官网搜一下有没有公开的原理图 PDF、PCB 文件、BOM 清单。三个都有才算达标。我整理目录时发现有些产品号称开源硬件结果找遍全网只能找到一张引脚图——这明显是挂羊头卖狗肉。指标二社区活跃度怎么样一个板子的活跃用户群直接决定你遇到问题能不能搜到答案。可以看几个指标官方论坛的帖子数量和响应速度、Stack Overflow 上相关问题的密度、GitHub 上第三方项目和 issue 活跃度、甚至淘宝店里卖家的评价量。用户基数大的板子你能搜到几乎任何问题的解决方案这个收益在开发阶段会体现得无比明显。指标三配件好买吗板子本身便宜没用配套的屏幕、摄像头、扩展板、外壳要买得到才行。我这里的经验是选生态完整的板子比选参数高的板子划算得多。树莓派的摄像头、MIPI 屏、各种 HAT 扩展板淘宝上随便买有些小众板子光是找一根匹配的排线就能让你等两周快递。3.3 按场景直接给的选型建议下面是我在整理目录过程中总结的高频选型路径直接抄作业即可纯入门、预算极低闭眼入全志芯片的方案吧Orange Pi Zero 2 或者 NanoPi NEO 系列。几十块钱就能跑 Debian、UbuntuGPIO 也够折腾虽然性能弱了点但学习 Linux 基础操作和驱动开发完全够用。做小型服务器、软路由、NAS首选 Rockchip RK3328、RK3399、RK3568 这些芯片的板子原因是 Rockchip 主线内核支持好、性能释放成熟、周边生态也完整。NanoPi R4S、Rock Pi 系列、Orange Pi 5 都是这个方向上的热门选手。做 AI 边缘计算目前性价比最高的是瑞芯微的 RK3588 系列板子集成 6 TOPS NPU可以离线跑大多数轻量级模型。预算再高的可以考虑带 Jetson 模块的方案软件生态JetPack SDK虽然偏闭源但社区容量大资料好找。玩 RISC-V、关注未来架构趋势VisionFive 2 是目前最成熟的 RISC-V Linux 板主线内核支持度不错能跑完整桌面环境虽然卡顿。Milk-V Duo 这种小核心板适合做嵌入式 RISC-V 微系统功耗极低。纯粹的硬件黑客想自己改板子BeagleBone Black 是永远绕不开的经典。它的完整设计文件在 GitHub 上公开BOM 清单精确到一颗电容你完全可以照着资料自己复刻一块。这种深度开放程度122 块板子里能做到的屈指可数。4. 实操拿到板子之后的第一小时4.1 别急着接屏幕先接串口我玩过的板子没有一百也有八十了每次拿到手的第一件事永远是接串口。不是接 HDMI 接屏幕而是找板子上的 UART 调试串口引脚通过 USB 转 TTL 线连到电脑上。WHY因为串口是你和这块板子之间最原始、最可靠的通信通道。不管板子上跑的是什么系统、有没有装图形界面、有没有网络只要你往串口发数据就能看到 U-Boot 的启动日志、内核的解压过程、系统的登录提示符。如果板子出了问题串口是第一个告诉你我死在哪里的工具。串口接线有几个容易踩的坑直接列出来电平要匹配大部分 ARM 开发板是 3.3V TTL 电平电脑的 USB 转串口模块一般也支持 3.3V但有部分模块是 5V 的接上就可能烧毁 GPIO。买之前确认模块支持 3.3V 输出。TX 接 RXRX 接 TX这是新手最容易搞反的。板子的 TX发送要接到转接模块的 RX接收反过来同理。插反了的现象是完全没输出检查一下接反没。共地必须接除了 RX、TX 之外GND 也一定要连上。两个设备之间不共地信号电平都没有参考点数据全是乱的。串口接好之后用终端工具picocom、minicom、Screen 或者 Windows 的 MobaXterm打开对应的串口设备波特率一般从 115200 开始试大多数板子都是这个值。上电之后能看到完整的启动日志这块板子就算点亮了。4.2 搭建交叉编译环境别用板子本身编译大软件很多新手喜欢直接在板子上跑apt install build-essential然后直接本地编译我强烈不建议。开发板的 CPU 相比 PC 来说太弱了编译一个大型软件耗时巨大而且内存小的话还可能直接 OOM。在 PC 上通过交叉编译工具链为板子架构编译软件效率差好几倍。做法是# 以 Ubuntu/Debian 为例安装通用的 ARM 交叉编译工具链 sudo apt install gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu # 如果是 32 位 ARMCortex-A7 等 sudo apt install gcc-arm-linux-gnueabihf binutils-arm-linux-gnueabihf # 验证是否安装成功 aarch64-linux-gnu-gcc --version然后编译一个最简单的程序测试// hello.c #include stdio.h int main(void) { printf(Hello from ARM board!\n); return 0; }# 交叉编译 aarch64-linux-gnu-gcc -o hello hello.c # 用 file 命令查看生成的文件架构 file hello # 输出类似: ELF 64-bit LSB executable, ARM aarch64把编译好的文件拷贝到板子上chmod x hello ./hello就能执行。这个流程跑通你就有了一个完整的PC 编译、板子运行的开发循环。4.3 内核、设备树、文件系统三件套的理解与操作网上教程讲到烧写系统经常一上来就让你用 dd 命令把镜像写到 SD 卡但你不理解底层逻辑出了问题根本没法排查。嵌入式 Linux 系统的组成其实就三块1. BootloaderU-Boot上电第一段执行代码负责初始化 DDR 内存、串口、存储控制器然后加载内核到内存并跳转过去。大多数板卡的 U-Boot 已经刷写在板载 SPI Flash 或 eMMC 上你不需要天天碰它但要会进它的命令行通常是上电时按任意键或者按空格/回车键。2. 内核KernelLinux 内核本体可能在 SD 卡的分区里、可能在 eMMC 里、也可能在 U-Boot 的 boot 命令指定的任意地址。内核需要配套的**设备树Device Tree BlobDTB**文件来描述这块板上挂了哪些硬件、各自用什么地址和中断。3. 根文件系统rootfs包含/bin、/etc、/usr、/lib这些目录的完整 Linux 用户空间。内核启动后会挂载 rootfs 并执行/sbin/init或 systemd。理解和这三大件相关的是很多板子的官方镜像其实是一个可以直接 dd 到 SD 卡的完整系统但如果你想自己定制内核你就需要把内核和设备树单独编译然后在 U-Boot 里手动指定加载路径。下面是一个典型的编译内核流程以 mainline 内核为例# 下载主线内核源码 git clone --depth 1 https://github.com/torvalds/linux.git cd linux # 安装交叉编译工具链前面已装 # 配置文件的选择可以从板子厂商提供的 config 开始也可以用当前内核默认的 defconfig # 以 Rockchip RK3588 为例 make ARCHarm64 CROSS_COMPILEaarch64-linux-gnu- rockchip_linux_defconfig # 菜单方式微调内核选项 make ARCHarm64 CROSS_COMPILEaarch64-linux-gnu- menuconfig # 编译内核 make ARCHarm64 CROSS_COMPILEaarch64-linux-gnu- -j$(nproc) # 编译设备树文件 make ARCHarm64 CROSS_COMPILEaarch64-linux-gnu- dtbs编译完成后arch/arm64/boot/Image就是内核镜像文件arch/arm64/boot/dts/rockchip/rk3588-evb.dtb以具体板子为准就是设备树。把这两个文件放进 SD 卡的 boot 分区覆盖官方镜像里的同名文件你的定制内核就生效了。4.4 小技巧从官方镜像制作可定制系统如果你还不想完全脱离官方系统有一个折中方案把官方镜像 dd 到 SD 卡之后不要直接改那些文件而是用 chroot 或挂载的方式来修改 rootfs# 假设 SD 卡是 /dev/sdbrootfs 在第二个分区 sudo mkdir /mnt/sdroot sudo mount /dev/sdb2 /mnt/sdroot # 挂载必要的虚拟文件系统 sudo mount --bind /dev /mnt/sdroot/dev sudo mount --bind /proc /mnt/sdroot/proc sudo mount --bind /sys /mnt/sdroot/sys # chroot 进入板子的文件系统 sudo chroot /mnt/sdroot # 现在你就在板子的系统环境里了可以安装软件、修改配置 apt update apt install vim htop exit # 退出后取消挂载 sudo umount /mnt/sdroot/dev sudo umount /mnt/sdroot/proc sudo umount /mnt/sdroot/sys sudo umount /mnt/sdroot这个技巧的用途很广批量制作相同配置的 SD 卡、在 PC 上直接打包你想要的软件环境、甚至修改启动脚本修复变砖的系统。不用在板子上慢慢操作速度和效率都高得多。5. 常见问题与排查技巧实录5.1 板子完全不启动排查顺序要讲逻辑你接好串口插上 SD 卡上电结果屏幕上啥都没有。这时候不要慌按照下面的顺序排查90% 的问题出在前面几步顺序检查项操作方法常见原因1电源测量板子的 5V/3.3V 供电引脚电压劣质电源适配器负载能力不足上电瞬间电压跌落2串口接线用万用表测 TX 引脚是否在发送数据TX/RX 接反、没共地、波特率不对3启动介质SD/eMMC确认 SD 卡镜像刷写完整重新 dd 一次镜像损坏、SD 卡质量差、接触不良4U-Boot 是否运行串口是否有 U-Boot 的版本号输出SPI Flash 里 U-Boot 损坏需要短接 boot 引脚恢复5内核是否加载看 U-Boot 之后是否有内核启动日志DTB 不匹配、内核镜像损坏、bootcmd 配置错误这里有一个容易忽略的点很多板子的 SD 卡启动是有条件的。比如某些板子需要你在 U-Boot 命令行里输入特定命令才会从 SD 卡启动默认是从 eMMC 启动。还有一些板子要求 SD 卡里必须包含特定的分区表和 boot 标志否则 U-Boot 根本不认。拿到手先看板子的官方 wiki把如何从 SD 卡启动这一节的细节看清楚能避免很多弯路。5.2 内核编译报错首先检查这三个原因编译内核报错的频率远比你想象的高但绝大多数错误的原因其实很集中错误一头文件不匹配。交叉编译工具链和内核源码版本之间不兼容典型报错是error: unknown type name u64之类的 struct 定义错误。解决办法升级或降级工具链尽量使用发行版自带的稳定工具链不要盲目追新。错误二defconfig 选错了。不同 SoC 的 defconfig 不能混用。比如你用rk3399_defconfig去编译 RK3588 的内核能编过但起不来。检查一下你用的配置文件对应的平台。错误三编译参数问题。内存不足导致编译进程被杀把 -j 并发数调小或者是缺少libssl-dev、libelf-dev之类的依赖包导致生成证书工具编译失败。这种错误信息末尾通常会有 recipe for target ... failed 这样的字样直接看最上面最开始报错的那个文件是哪个解决对应依赖即可。提示真正编译内核时建议先用-j$(nproc -1)这种稍微保守的参数避免资源占用过大导致卡死或被 OOM killer 误杀。5.3 烧写/启动类疑难杂症速查这里整理几个我在实际折腾中遇到的高频问题基本都有现成的解法板子能进 U-Boot但每次启动都随机卡死。先怀疑电源。开发板供电不足的典型症状就是随机重启、随机卡住。不用看别的先换一个好一点的 5V/3A 电源和一条支持足够电流的 USB-C 线很多问题直接消失。SD 卡明明刷好了板子就是不从 SD 卡启动。检查 eMMC 里是否有残留系统。有些板子 eMMC 启动的优先级高于 SD 卡eMMC 里哪怕有个半损坏的镜像U-Boot 也会优先从那里启动。解决进 U-Boot 命令行用mmc list查看存储设备然后用mmc dev 1切换设备再用ls mmc 1:1确认里面内容必要时通过mmc erase清空 eMMC。内核启动过程中卡在某个模块初始化。不是硬件故障多半是设备树里某个外设的节点配置有问题。比如 I2C 上挂了一个不通的触摸屏控制器驱动的 probe 就会反复重试甚至 panic。解决用systemd.unitrescue.target或者修改内核 cmdline加上no_console_suspend、earlycon等调试参数先把启动日志的完整输出拿到手再定位具体是哪个驱动卡住了。系统启动后没有网络。先dmesg | grep eth确认网卡驱动是否识别到硬件然后用ifconfig -a看看有没有看到网卡接口名eth0、enP2p1s0 之类的。有线网卡常见问题是 DTB 里没有正确使能 PHY 芯片的复位 GPIO无线网卡常见问题是 WiFi 固件文件没有放进/lib/firmware目录。这两类问题都是厂商 BSP 里最常见的坑主线内核反而很少出现。板子变砖了。别慌绝大多数开发板都有救砖套路。多数板子的 SoC 内置了 MaskROM 模式通过短接板子上的特定触点、或者按住 BOOT 键上电就能进入 USB 下载模式用 Rockchip 的upgrade_tool、Amlogic 的update_tool、或全志的sunxi-fel就可以重新烧写 U-Boot 到 SPI Flash 或 eMMC。拿到一枚新板子建议第一件事就去查清楚它的 MaskROM 进入方式记在笔记里——万一砖了这是唯一起死回生的通道。6. 最后的实操心得和对这份目录的扩展想法整理这 122 块板子的目录本质上不是在收集硬件参数而是在积累对一个生态的完整认知。每一块板子背后都代表着一套设计决策、一个目标用户群、一个社区的文化氛围。Open-Spec 这个特性决定了你选的不只是一块硬件而是一个可以持续学习、持续修改、持续生长的技术平台。我个人现在最常用的板子是两块一块 RK3588 的大板做边缘 AI 服务和日常编译一块 RISC-V 的小板研究新架构的软件适配。两块板子都是开放规格设计原理图存在我平板里偶尔遇到驱动问题或者想改外设配置直接翻图纸对比效率比去论坛发帖提问高得多。我也建议你养成这个习惯拿到一块新板子先花一晚上看它的原理图把电源树、时钟树、外设总线结构摸清楚这比看一百篇开箱评测都值。最后再分享一个小技巧整理这种大型目录的时候与其用 Excel 堆参数不如用 Git 仓库来管理每个板子建一个子目录放上官方 wiki 链接、原理图 PDF、核心芯片的数据手册、以及你整理的一条条实测记录。一旦你积累了十几块板子的笔记回头看这个仓库你会发现自己真正理解的已经超出了那些规格表本身。遇到新的团队同事参与项目直接把这套资料丢过去能省下大量的基础沟通成本。这大概就是整理目录最大的附加价值了。