1. 项目概述与整体思路HICKPI主板配上全志H618这颗芯片再加上Ubuntu或Armbian镜像用一张SD卡就能把这台小主机跑起来。这篇记录我从拿到板子到系统稳定运行的全过程包括镜像怎么选、SD卡怎么烧、第一次开机怎么配置以及后续使用中踩过的坑和总结下来的优化手段。先说说这块板子的定位。H618是一颗四核Cortex-A53架构的处理器主频1.5GHz左右带Mali-G31 GPU支持4K视频解码。它属于全志家族里非常成熟的一颗中端芯片功耗低、发热小、周边接口齐全很适合做桌面级迷你电脑、轻量NAS、智能终端或者软路由这类场景。HICKPI主板围绕H618做了比较完整的接口布局包括HDMI输出、千兆网口、USB接口、TF卡槽、调试串口和GPIO排针基本覆盖了一块开发板该有的全部扩展能力。很多人拿到这类板子第一反应是“先装个系统试试”。但不同板子、不同芯片、不同镜像之间的适配情况差异很大直接下个镜像写卡很容易翻车。这篇内容适合正好有H618相关板子、准备通过SD卡安装系统的开发者也适合刚入门ARM嵌入式、想搞清楚刷机整个链条的朋友参考。标题里提到Ubuntu和Armbian两个系统这里先解释一下我的选择思路。Armbian是专门为ARM开发板优化的系统基于Debian/Ubuntu底层做裁剪内置大量板级适配硬件加速、内核模块、温度控制这些问题基本开箱即用。Ubuntu则是面向通用场景的桌面级系统生态完整、软件新、用起来顺手。对HICKPI这种定位的板子来说如果追求稳定省事Armbian是首选如果折腾桌面应用和开发环境Ubuntu官方镜像也值得一试。我实际两块都装过后续内容会分别说明差异和配置方式。2. 安装前的准备工作2.1 需要的硬件与工具清单一张TF卡建议A1或A2规格、Class10以上容量不小于16GB推荐32GB做桌面系统64GB以上做NAS或媒体中心一个读卡器尽量选支持UHS-I速度的否则写卡时间翻倍HDMI线、显示器或电视用于首次启动后的界面确认键鼠套装USB接口即可网线或无线网卡虽然系统通常自带WiFi驱动但初始配置时网线更容易排查问题5V/3A以上的USB-PD电源如果想带硬盘等外设建议直接上5V/5A或带独立供电方案的电源适配器电源是我特别想提醒的。H618这块板子整体功耗不高但如果你插着USB硬盘、无线网卡再接一堆外设瞬时电流很容易超载。表现为系统突然重启、SD卡读写出错、USB设备不断断连。我自己遇到过好几次供电不足导致的诡异故障最后排查下来全是电源的问题。不要省这个钱好的电源能省一大半调试时间。2.2 镜像下载与版本选择要点先说Armbian。Armbian官网提供针对不同芯片和板型的镜像搜索时要看准H618对应的固件名。官方镜像通常分两个大类一个带桌面环境一个纯净的服务器版。对于刚上手的朋友不要直接选桌面版因为H618的GPU驱动在桌面环境下偶尔会有兼容性问题先跑一遍服务器版确认硬件工作正常再决定要不要装桌面。再说Ubuntu。Ubuntu官方也提供ARM架构的镜像但要注意官方通用镜像并没有针对H618做过定制内核支持主要靠社区维护。下载镜像时认准带有“preinstalled-server-arm64”或“desktop-arm64”字样的版本。桌面版镜像体积比较大写卡和首次启动都会更慢要有心理准备。镜像下载后建议校验一下SHA256值很多朋友下载完直接写卡结果卡在内核解压阶段查了很久才发现是镜像包下载不完整。官方网站提供的校验值就在下载页面旁边花十秒钟验证一下能省掉后面一晚上的抓狂。2.3 烧录工具的选择烧录SD卡的工具主流就两类图形化的balenaEtcher和命令行里的dd。balenaEtcher跨平台下载即用选择镜像、选择SD卡、点击烧录三步完成写完之后还会自动校验一遍对新手非常友好。缺点是写卡速度相对慢一些尤其是大容量镜像。dd命令则适合熟悉终端的用户速度更快可控性更强还可以在写卡时跳过不必要的校验环节。命令格式是sudo dd if镜像文件路径 of/dev/sdX bs4M statusprogress oflagsync其中/dev/sdX是你的SD卡设备名注意是整块设备不是分区比如/dev/sdb而不是/dev/sdb1。写完之后再执行一次sync确保缓存落盘。另外我还用过Raspberry Pi Imager来烧录这类板子的镜像它同样支持自定义镜像文件界面简洁烧录速度和Etcher接近。如果你手头正好装了它完全可以直接用。工具没有绝对好坏能稳定完成任务的都是好工具。3. SD卡烧录实操全流程3.1 用balenaEtcher完成一次完整烧录整个流程概括下来就是插卡、选镜像、等进度条、拔卡。但有几个细节值得展开说。第一步先插上TF卡打开balenaEtcher点击“Flash from file”选中下载好的镜像。如果镜像文件是.img.xz压缩格式Etcher能自动解压不需要提前解压。第二步点击“Select target”选择目标SD卡。一定要确认选的是TF卡而不是电脑硬盘尤其是笔记本电脑用户内置硬盘在设备列表里就在TF卡旁边选错就是整个磁盘被清空。我会先拔掉所有外接USB存储设备再操作从根源上杜绝误选。第三步点击“Flash”等待写入和校验完成。整个过程取决于SD卡速度和镜像大小32GB镜像在UHS-I卡上大约需要五到十分钟。中间不要拔卡不要断开电源不要为了省时间跳过校验。烧录完成后把TF卡重新插拔一次或者用sync命令让系统重新识别分区布局。很多朋友烧完直接拔卡再插到板子上发现分区表读取异常其实就是缓存没有刷盘导致的这不是镜像问题重新插拔一次就正常了。以下是一次烧录时间和卡速的参考表现读取速度约90MB/s的卡烧录16GB镜像大约需要四分钟读取速度约40MB/s的卡烧录同样镜像可能超过十五分钟校验阶段占用时间约等于写入时间的一半不建议跳过这个步骤3.2 用dd命令手动烧录的注意事项如果你的工作环境没有图形界面或者SSH远程操作dd命令是最灵活的方案。完整流程如下# 1. 查看SD卡设备名 lsblk # 2. 卸载SD卡上的所有分区假设设备名为/dev/sdb sudo umount /dev/sdb* # 3. 写入镜像 sudo dd ifarmbian_xxx.img of/dev/sdb bs4M statusprogress convfsync # 4. 确认写盘完成 sync写完后用lsblk检查一下分区结构是否出现正常情况应该能看到一个FAT分区boot分区和一个ext4分区rootfs分区。如果只有整块盘而没有分区大概率是镜像包坏了或烧录过程被中断。dd命令有几个常见的坑。第一个是bs参数设置不当。bs4M是比较稳妥的选择太小导致写盘慢太大比如64M以上在某些读卡器上会出错。第二个是设备名选错这个前面强调过了。第三个是忘记卸载直接写入系统会同时挂载分区并导致缓存冲突结果看起来写入了实际上数据是花的。简单说dd命令虽然强大但也很“直肠子”它不会给你任何提示和后悔的机会操作前务必反复确认设备名。3.3 烧录完成后的卡分区检查与空间扩容系统镜像默认的rootfs分区往往没有占满整张SD卡第一次启动后系统会自动扩容。不过偶尔会遇到自动扩容失败的情况尤其是在Ubuntu通用镜像上。如果启动后发现磁盘空间只有几个GB另外几十GB处于未分配状态需要手动扩容。推荐在系统启动后使用armbian-configArmbian自带工具里的“Freeze”和“Install”功能它能自动检测分区并扩容。Ubuntu上则可以使用growpart和resize2fs完成sudo apt install cloud-guest-utils sudo growpart /dev/mmcblk0 2 sudo resize2fs /dev/mmcblk0p2这里/dev/mmcblk0是主板自带TF卡槽在Linux下的设备名分区编号2对应rootfs分区。具体分区号要以你的实际分区表为准执行lsblk能看得很清楚。分区扩容这个步骤看起来不紧急但对后续使用影响极大。安装几个软件包、跑起Docker容器、写日志文件几十GB的空间很快就消耗掉。如果一直顶着那几GB的rootfs跑迟早会遇到“No space left on device”导致系统假死。4. 首次启动与系统初始化4.1 开机流程与启动介质确认把烧录好的SD卡插入主板背面的TF卡槽连接好HDMI线、网线、键鼠然后接上电源开机。HICKPI这类板卡通常没有电源开关插电即开机这是ARM开发板的通用习惯。开机后显示器上会滚过大量内核日志然后进入系统登录提示符。第一次启动会比后续慢不少因为系统要完成rootfs扩容、生成SSH主机密钥、预置一大堆配置。等提示符出现后默认账号和密码要看镜像里的说明文件Armbian和Ubuntu预置账号通常是root或默认用户名密码往往是1234之类首次登录会强制修改。这里记录的启动现象可以作为判断问题的一个参考屏幕上出现开机Logo但不进入系统大概率是GPU驱动或启动参数问题完全没有信号输出检查HDMI线、分辨率个别镜像需要修改config.txt或extlinux.conf里的显示参数电源灯亮但串口无输出先确认镜像和板卡匹配再检查电源是否足够4.2 通过串口调试进行无头启动排查不是每个场景都有显示器和HDMI线可用很多开发者直接用调试串口完成整个上手过程。HICKPI主板上预留了调试串口排针接口通过USB转TTL模块连接系统启动日志会完整输出到串口终端同时也能直接登录操作。串口调试在启动阶段就比HDMI管用因为它是主板最早进入输出的外设端口之一。连接时注意电平匹配H618平台串口电平是3.3VUSB转TTL模块也要选3.3V的。接线的顺序GND接到模块的GNDTXD接模块的RXD交叉连接RXD接模块的TXD然后打开串口终端工具如minicom或PuTTY波特率设置为115200确认无临时电源干扰后上电。如果终端有日志输出说明主板、镜像、SD卡整个链路是健康的。如果完全没有输出优先检查接线和模块驱动如果只输出几行就没有了再用最小系统方式排查是在哪个启动阶段卡住的。4.3 系统初始配置建议第一次进入系统后按顺序做这几件事第一步修改root密码和创建普通用户。长期用root用户跑服务不是一个好习惯特别是接入了公网之后。日常开发用一个普通用户需要root权限时使用sudo。第二步更新系统软件源和安装基础工具。Armbian的官方源在国内访问速度还行Ubuntu则可以考虑切换到合适的镜像源这会大幅提升apt install速度。sudo apt update sudo apt upgrade -y sudo apt install -y htop git curl wget ntpdate第三步配置网络固定IP地址。如果打算拿这块板子当服务器长期用不要依赖DHCP分配到的动态IP。通过路由器后台绑定MAC地址和IP或者直接修改网络配置文件设置为静态IP能免去后面每次重启都要重新找IP的麻烦。5. 常见问题与排查技巧实录5.1 TF卡与读卡器兼容性问题问题现象烧录时经常报错提示写入失败或校验失败排查思路先换一个读卡器再换一张TF卡逐个排除变量最终确认部分老款读卡器对高容量卡支持不好尤其是USH-I模式切换异常解决方案选用大厂读卡器或在烧录时把卡格式化为FAT32再写入这个问题出现过很多次。同一张卡在单位电脑的读卡器上反复烧录失败拿回家换了个稍贵点的读卡器一次成功。TF卡市场水很深标称速度参数和实际表现往往对不上。给HICKPI这类板子选卡时优先买有官方质保的知名品牌不要贪便宜买白片卡。5.2 启动卡死在引导阶段另一种常见现象是通电后电源灯亮网口灯亮但HDMI无信号、串口无输出或者串口打印几行内核信息之后就再也不动了。排查按照以下顺序进行第一步确认电源功率。更换一个更大电流的电源适配器观察现象是否变化。第二步确认SD卡接触正常。TF卡槽有些情况会因卡扣松动导致接触不良拔出来重新插紧试试。第三步换一个镜像版本。同一板型在不同版本的内核上启动阶段的表现会差很多。如果最新版起不来试试上个稳定版本。第四步查看是否有硬件短接引脚需要设置启动模式。部分板卡有自动识别电源状态的逻辑个别主板默认从eMMC启动而未从SD卡启动这时候需要看说明书确认是否有启动介质切换的跳线。这类问题的排查核心就是“最小系统法”只保留板子、SD卡、电源和串口其他外设全部拔掉。如果最小系统能启动就是你接某个外设时引入的问题如果最小系统也起不来问题只可能在板子、卡、镜像、电源这四者之间。5.3 网络无法识别或掉线启动后网口灯亮但ping不通网关或者WiFi连不上也是很常见的情况。排查顺序是查看ip a输出的网口名和MAC地址是否正常尝试手动配置IPsudo dhclient eth0检查网线是否支持千兆部分老旧网线在千兆协商失败后不会自动降级对WiFi模块确认天线连接和驱动加载情况这里特别提一个容易被忽略的点H618平台的有线网卡对某些路由器兼容性一般表现为设备经常断连或协商速率异常低。手动把网卡速率固定到百兆模式反而比千兆模式更稳定。5.4 系统温度与散热处理H618芯片本身发热不大但长时间满载运行比如编译或跑视频转码外壳表面温度能达到50℃以上。常规散热方案就是加一个铝散热片或者小风扇。实测下来不加散热片时的CPU温度在重度负载下会接近70℃加上一个带硅脂的铝散热片后能稳定在55℃以内。如果放在密闭铁盒里长期运行还是建议加一个小风扇形成风道风噪和功耗都算可接受范围。温度方面还可以通过修改/sys/class/thermal/thermal_zone0/temp来实时查看温度值也可以通过设置cpufreq调速策略来降低高负载时的功耗和发热。6. 工具选型与系统优化经验6.1 Armbian与Ubuntu镜像的取舍好多朋友会纠结到底装哪个系统。我的建议是先装Armbian把系统跑顺之后再根据需求尝试Ubuntu。理由很简单Armbian在“板卡能正常开机并用起来”这件事上投入了大量适配工作内核配置、设备树、硬件加速全都帮你调好了。Ubuntu则把重点放在软件生态和通用性上对特定板卡的适配并不如Armbian细致。如果是跑Docker、轻量NAS、软路由Armbian足够稳定如果做桌面用安装桌面环境后Ubuntu的软件生态和快捷键习惯更接近日常使用。但要注意H618的GPU在桌面环境下的性能上限摆在那里不要期待它能流畅跑大型软件浏览网页、看视频、写代码这种轻量应用没有问题。6.2 使用zram与swap缓解内存压力这类板子常见的配置是2GB或4GB内存运行多任务时容易吃紧。开启zram后系统会把一部分内存压缩存放相当于变相扩容。Armbian默认就在用zram-tools管理这个功能Ubuntu则需要手动安装开启。sudo apt install zram-tools配置文件里设置ALGOlz4和SIZE2048然后重启服务或者直接重启系统。观察一下内存占用会发现同样的工作负载下内存压力小了不少。如果跑的应用确实需要更多内存再创建一个swap文件存放在SD卡上容量设为内存大小即可。不过SD卡的随机读写寿命有限不要过度依赖swap能用zram压缩解决的尽量用zram。6.3 更换SD卡与迁移系统的技巧玩了一段时间觉得系统卡顿或空间不够想把系统迁移到一张更大的TF卡上完全不需要重新烧录和配置。用dd把整块SD卡克隆到新卡上即可sudo dd if/dev/sdb of/dev/sdc bs4M statusprogress克隆完毕后把新卡插回板子正常启动后执行一次分区扩容就能把多出来的空间利用起来。这个操作对Armbian和Ubuntu都适用是一种非常可靠的系统迁移方式。整个过程需要十几分钟到半小时取决于卡的读写速度。迁移前记得用fstrim对原卡做一次trim回收迁移后的新卡写入性能会更好一些。虽然TF卡的使用寿命有限但配合这类系统做好定期备份使用周期可以拉得很长。6.4 最后再分享一个调试小技巧遇到系统起不来、日志又没有头绪的时候先在U-Boot启动阶段按一下回车键进入命令行用U-Boot自带的printenv查看当前环境变量重点确认bootcmd和bootargs两行。H618平台大多数启动问题都出在设备树加载或者root设备指定错误这两处在U-Boot环境下直接调整bootargs里的root参数再用boot命令启动可以快速验证是不是这部分配置引起的。这个方法在开发板上比反复烧录镜像高效得多省下不少等待写卡的时间。花几分钟看一眼U-Boot的启动流程比盲目换镜像重新烧录要靠谱太多了。