
玩开发板也有十来个年头了从早期ARM9单板一路摸到现在的友善M6算是对这个牌子知根知底。这次项目里需要一块视频处理能力强、接口齐全、还能顺便跑点轻量AI推理的板子对比了一圈之后还是选了友善M6。整个折腾过程从烧录系统、串口调试到网络配置、应用部署踩了不少坑也积累了一些实打实的经验。这篇记录我尽量按实际操作的顺序写涉及友善串口助手这类工具时会把细节展开比如注册版有哪些功能差异、串口参数到底该怎么设、乱码和断连又是怎么回事。不管你是刚拿到板子的新手还是已经在做项目的老手这篇内容应该都能帮你少走一些弯路。1. 友善M6这块板子我为什么选它1.1 先看清M6的接口布局再决定怎么接线友善M6的接口布局说实话是比较典型的单板电脑风格但细节上做了不少取舍。拿到板子第一件事不是上电而是把接口认全。正面最显眼的是HDMI输出接口支持4K分辨率输出旁边还有DP接口这就意味着它可以同时接两块屏做双屏异显的工控界面或者多媒体终端都很方便。Type-C接口不仅负责供电还承担数据传输和DP显示输出功能这一点在做便携设备原型验证的时候特别有用一根线同时解决电源和显示。另外板载了千兆网口、两个USB 3.0口、一个USB 2.0口以及M.2插槽可以接NVMe固态硬盘。40Pin GPIO排针也保留下来了兼容树莓派的引脚定义意味着市面上绝大多数树莓派扩展板可以直接怼上去用。这个细节在当前同类板卡里并不算常见很多国产板子故意改引脚定义来绑定自家配件友善M6没有搞这种闭门锁客的操作给开发者省了不少事。1.2 从选型角度聊聊这板子的定位选型的时候我列过一张对比表把主控方案、内存、接口丰富度、系统支持、社区活跃度这几项都过了一遍。友善M6用的是瑞芯微RK3588S这颗SoC八核架构四个大核加四个小核GPU和NPU也都有。内存直接上了LPDDR5有8GB和16GB两个版本。这颗芯片在家用播放器、边缘计算盒子、智能终端这些领域用得非常多软件适配相对成熟不像一些小众芯片动不动就碰上内核编译不过、驱动缺文档的情况。软件方面官方提供Ubuntu、Debian、Android等镜像而且更新频率还可以。这点对于做产品原型很重要。我见过太多板子出厂之后系统镜像半年不更新内核版本老掉牙外设驱动全靠自己改。友善M6的官方固件维护算是比较上心的至少我用的这段时间里遇到过的问题基本都能在社区或者官方文档里找到线索。提示选板子别只看CPU主频接口布局和系统维护周期往往才是影响开发效率的关键。M6这个组合在3000元以内档位里属于全能型选手但如果你只需要做纯网络设备那选它确实有点浪费了。2. 开箱之后先别急供电、散热与配件准备2.1 供电要求与实测数据这块板子的供电规格是12V/2A官方电源适配器是最稳妥的选择但如果你手上没有也可以用支持12V输出的PD诱骗线配合PD充电头来供电。实测下来正常桌面环境下不带外设时整板功耗大概在6W到10W之间浮动带一块NVMe固态加USB外设峰值能到18W左右。这就要求电源至少留够50%的余量12V/3A会更稳。我最初图省事用过一个杂牌12V/1.5A的电源适配器结果系统在负载高的时候直接重启日志里没有任何内核报错排查了很久才发现是电压跌落。所以说供电这个问题千万别省开发板的稳定性对电源纹波和电流余量很敏感尤其当你外接USB移动硬盘这类启动电流大的设备时供电不足会引发各种奇奇怪怪的问题。另外Type-C供电口旁边有电源指示灯上电之后会亮起。如果灯亮但系统没起来优先检查启动介质和HDMI线不要第一时间怀疑板子坏了。2.2 散热方案与被动散热设计RK3588S这个芯片性能强但发热也不含糊。M6出厂状态是带散热片的我做压力测试的时候发现如果只用原装散热片长时间跑8核全开的高负载任务芯片温度能到80多度。这时候虽然不会立刻降频但持续高温对寿命和稳定性都不是好事。我自己加了一个5V供电的小风扇注意风扇电压要用5V不能直接接12V。因为板子上的风扇接口是5V的直接接12V风扇会烧。用那种4020规格的静音风扇配合一个简单的温控调速器待机温度能控制在45度以下满载也能压在70度左右。注意M6上有专门的风扇供电接口但接口规格和树莓派不太一样。接线之前先确认针脚定义正负极接反轻则风扇不转重则烧毁板载稳压电路。看不清丝印的时候用万用表蜂鸣档量一下最稳妥。3. 系统烧录与首次启动3.1 镜像选择和烧录工具我用这些就成功了系统这块我建议直接用官方提供的Ubuntu镜像省心。从友善官网下载镜像的时候注意看清版本说明M6有两类镜像一类是带桌面环境的一类是精简版服务器镜像。如果只是做后台服务或者跑推理任务精简版更合适内存占用低不少如果要做带界面的应用那就用桌面版。烧录工具我用的是官方推荐的balenaEtcher跨平台、界面简单选镜像文件、选目标盘、点Flash就完事了。下载镜像之后第一件事是校验SHA256这个步骤不能省我遇到过镜像下载不完整导致烧录后启动失败的情况折腾了半天最后发现压根不是板子的问题而是镜像损坏了。如果你打算把系统装到M.2 NVMe固态里操作流程稍微有点不同先用SD卡启动系统确认系统运行正常后再把镜像写到NVMe盘上最后修改启动顺序。M6的启动顺序是EMMC优先于SD卡SD卡优先于NVMe所以如果板载EMMC里有系统就会优先从EMMC启动。你需要用官方提供的设置工具切换启动源这个后面会详细说。3.2 从SD卡到NVMe启动的切换细节关于启动源切换友善M6的设计和树莓派有点区别。树莓派是通过config.txt里的引导参数来控制的而M6是在系统里通过一个官方的配置脚本来切换。首次启动建议先把系统烧到SD卡里插上SD卡连接显示器和键盘启动。进入系统之后打开终端输入官方提供的切换工具命令会弹出一个图形化界面让你选择启动介质。选择NVMe固态之后系统会把启动引导程序写到NVMe盘上下次开机就会从NVMe启动了。切换完成之后需要彻底关机断电再拔掉SD卡重新上电。这一步我踩过一个坑直接把装好系统的NVMe盘插上以为插电就能启动结果卡在引导界面不动。原因就是BootLoader还在SD卡上NVMe盘上只有根文件系统。正确的顺序一定是先进系统用官方工具切换启动源之后再拔SD卡。另外NVMe盘的分区表建议用GPT格式MBR格式在某些固件版本下可能会有兼容性问题。4. 串口调试实操友善串口助手从安装到排障4.1 串口硬件连接与针脚确认串口调试这块是这次经验记录里最有价值的部分之一。M6的调试串口引脚在板上单独排出来了一共有四个针脚其中关键的三个是GND、TX、RX。接线方式很简单开发板的TX接USB转串口工具的RX开发板的RX接工具的TXGND接GND千万别接反。我第一次接的时候就是TX和RX搞反了串口终端里一片空白什么输出都没有。后来用万用表量了一下电压才想起来是交叉接。另外需要注意M6调试串口的电平是3.3V如果你的USB转串口模块是5V电平的最好加一个电平转换芯片。直接用5V模块虽然大概率不会烧但如果板子上的串口引脚没有做过电平保护长期使用会有风险。推荐用常见的CH340或者CP2102芯片的USB转串口小板这些小板输出电平基本都是3.3V兼容性很好。驱动方面Windows下基本是免驱的Linux下内核自带驱动即插即用。4.2 参数设置与乱码排查串口终端软件我平时用友善串口助手比较多这个工具功能实用波特率范围宽界面也不花哨适合直接上手。连接M6的调试串口时参数这样设置波特率1500000对你没看错M6的默认调试串口波特率是1.5M数据位8停止位1校验位None流控位必须关掉。如果你打开串口后看到满屏乱码别急着怀疑工具坏了八成是波特率设置错了。M6的BootLoader阶段和内核阶段可能会用不同的波特率早期打印信息可能是115200内核启动之后会切换到1500000。我电脑上配置过两个串口会话都会随时切换。第一步用1500000连接开机就能看到u-boot的滚动输出如果没看到再把波特率改成115200试试。还有一种情况是USB转串口模块质量不行在1500000这个高波特率下丢数据。便宜的模块标称能支持2M波特率实际跑起来波形变形严重串口里全是乱码或者重复字符。我自己换过三根线最后是用CP2102的模块稳定跑通了1.5M波特率。提示串口助手连接不上时可以先短接TX和RX做回环测试。在软件里发送一段字符如果收到同样的字符说明USB转串口模块没问题收不到的话板子或者线材肯定有一方有问题这样可以快速缩小排查范围。4.3 友善串口助手的高级功能与注册版差异友善串口助手免费版已经能满足基础的调试需求但如果你经常做协议调试我会建议考虑注册版。注册版主要多出几个实用的功能一是定时发送功能可以设置多个不同的发送周期和内容适合模拟周期性上报数据的设备。二是数据统计功能能够实时显示接收和发送的字节数在验证通信协议完整性的时候很实用。三是可以直接读取和保存收发日志方便后续做问题回溯和分析。我用注册版印象最深的一点是它的“多国字符显示”支持处理中文日志的时候不会出现乱码。另外它的界面布局也可以自定义调整可以把发送区和接收区独立出来对多窗口调试特别友好。因为串口工具这类软件属于小工具类注册版相当于支持作者持续维护更新长远看对使用者也是好事。如果你主要就是拿串口看看log不经常做协议交互那免费版完全够用没必要额外掏钱。但如果你做的是Modbus、私有帧协议这类持续双向通信的场景注册版多出来的定时发送和数据统计功能会让你的调试效率提高不少。4.4 串口无输出、断连问题的排查套路串口调试中我最常遇到的三个问题分别是完全没输出、输出乱码、过一会儿断连。针对这三个问题我整理了一个排查顺序表分享给大家现象排查顺序解决方式完全没输出接线是否交叉波特率是否正确USB转串口驱动是否正常重新确认TX/RX交叉连接切换波特率测试换USB口或重装驱动输出乱码波特率不匹配模块在高波特率下波形失真先确认BootLoader和内核的波特率差异换CP2102或FT232芯片的模块运行一段时间断连USB转串口模块过热板卡供电不稳串口软件缓冲区溢出给模块加散热检查电源适配器启用流控或增大缓冲区其中断连问题最容易让人误判是系统崩溃。我有一次跑程序串口输出一段时间后突然停止还在想是不是内核panic后来发现是USB转串口小板过热导致驱动崩溃。重新插拔USB接口就恢复了但过一会儿又断最终换了个模块才算解决。5. 系统基础配置与网络调试经验5.1 用户、权限和软件源设置拿到系统之后第一件事我建议改密码和创建自己的用户。默认账号是友善官方提供的直接拿来做日常开发和运维会有安全隐患。用adduser命令创建新用户再通过usermod命令把新用户加到sudo组里。软件源方面友善M6的Ubuntu镜像默认配置的是官方源在国内网络环境下更新速度可能比较慢。建议把软件源更换成国内镜像站。我自己的经验是直接用清华源或者阿里源速度提升非常明显。切换的方法是编辑/etc/apt/sources.list文件把里面的地址替换成对应镜像站的地址然后执行apt update。注意CPU架构是arm64不需要额外配置镜像站会自动适配。5.2 有线与无线网络的配置技巧M6的有线网络只要插上网线就能自动获取IP这个没什么好说的。我在实际使用时发现一个有意思的细节千兆网口的LED灯在正常连接时会亮绿色有数据传输时黄色灯会闪烁。如果绿灯不亮先检查网线多数情况下是网线坏了或者没插到位。无线网络方面M6板载WiFi 6模块在Ubuntu桌面版下可以直接用图形界面连接WiFi。服务器版系统的话需要用到NetworkManager的命令行工具。比如扫描WiFi列表nmcli dev wifi list连接某个WiFinmcli dev wifi connect SSID password 密码。这里有一个实用小技巧如果你在的WiFi网络频段比较复杂可以用nmcli命令指定频段连接防止连上2.4G却想在5G频段下测试速度。在复杂办公环境里2.4G频段干扰特别严重实测M6板载网卡的5G连接速度可以稳定跑到800Mbps以上而2.4G环境下经常只有100Mbps左右甚至更低。如果做项目部署我建议直接把网络配置写成Netplan的方式而不是用NetworkManager。Netplan配置简洁清晰重启后配置不会丢适合无人值守场景。配置文件里只需要声明网卡、设置DHCP或者静态IP然后netplan apply就能生效。6. 常见问题与排查技巧实录6.1 启动失败类问题排查启动失败是很多新手用户最头疼的问题。我把碰到的启动问题归成三类上电无反应、卡死在启动早期、启动到一半黑屏。上电无反应首先要确认电源规格我用12V/1.5A的电源踩过一次坑。如果换电源还不行那就把板子上的所有外设都拔掉只留电源和HDMI线最小系统模式启动测试。卡死启动早期这个问题最典型的特征是显示器的画面停在BootLoader阶段就不动了。这种时候用串口调试是最直接的连上友善串口助手设置1500000波特率看打印信息一般能找到卡住的最后一行代码。如果是kernel panic或者挂载根文件系统失败多半是系统镜像损坏或者SD卡/NVMe盘有问题重新烧录基本能解决。启动到一半黑屏的情况比较特殊。M6板载HDMI输出在某些老款显示器上兼容性不佳会出现内核起来但显示器黑屏的现象。这时候可以用SSH方式登录系统确认系统正常运行后再去调整显示分辨率。直接在/boot分区或者系统配置文件里把默认分辨率改成显示器支持的规格重启就能解决。6.2 内存占用与GPU性能测试的一个小案例我实际做过的测试是这样的系统默认桌面环境开机之后剩余可用内存大约6GB左右8GB版本。跑了一个基础的OpenGL图形测试同时在后台开启一个4路视频解码任务整体CPU占用率大概在35%左右GPU占用率约50%系统响应依然流畅没有出现明显的画面卡顿。做性能压测的时候记得打开温度监控在终端里用sensors命令可以查看CPU和主板温度。如果连续满载跑一段时间温度飙到85度以上就要考虑加强散热了。风扇建议选支持PWM调速的型号这样系统可以根据温度自动调节转速兼顾静音和散热。6.3 固件升级与恢复指南友善M6早期的固件版本存在一些小毛病比如某些USB外设在休眠唤醒后失效以及HDMI在某些分辨率下会闪屏。这些问题在不同批次和不同固件版本上表现不一样如果你也遇到类似情况先去官方下载最新的固件升级。固件升级操作不复杂保住数据重新烧录系统再恢复。但这里我强烈建议做一次完整备份。我的做法是用dd命令把整个系统盘做成镜像文件之后出问题可以直接恢复省去重新配置环境的时间。比如把NVMe盘备份到移动硬盘dd if/dev/nvme0n1 of/path/to/backup.img bs4M statusprogress。对于刚接触这块板子的朋友我建议先别急着搞各种花哨配置老老实实把基础环境跑通把串口和网络调好再一步步深入学习。开发板这东西用熟了一块其他架构的板子也就能触类旁通了。希望这篇经验记录能帮你顺利玩转友善M6。