惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Project Zero
Project Zero
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Google DeepMind News
Google DeepMind News
Recent Announcements
Recent Announcements
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
Visual Studio Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
G
Google Developers Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Recorded Future
Recorded Future
B
Blog RSS Feed
The GitHub Blog
The GitHub Blog
爱范儿
爱范儿
博客园 - 三生石上(FineUI控件)
D
DataBreaches.Net
博客园 - Franky
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Last Week in AI
Last Week in AI
NISL@THU
NISL@THU
T
Tailwind CSS Blog
博客园 - 【当耐特】
P
Privacy International News Feed
I
InfoQ
L
LINUX DO - 热门话题
H
Help Net Security
博客园 - 叶小钗
aimingoo的专栏
aimingoo的专栏
AWS News Blog
AWS News Blog
Scott Helme
Scott Helme
Cyberwarzone
Cyberwarzone
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Forbes - Security
Forbes - Security
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
WordPress大学
WordPress大学
T
Troy Hunt's Blog
Spread Privacy
Spread Privacy
V
V2EX
Cloudbric
Cloudbric
Security Latest
Security Latest
H
Heimdal Security Blog
S
Securelist
I
Intezer
F
Full Disclosure
V2EX - 技术
V2EX - 技术
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
小众软件
小众软件
Security Archives - TechRepublic
Security Archives - TechRepublic
L
Lohrmann on Cybersecurity
S
Schneier on Security
C
Cybersecurity and Infrastructure Security Agency CISA

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派 万字剖析:千问App深度体验报告(2026) - 少数派 在2026年,如何真正防止别人抄袭你的作品 - 少数派 怎么用 50 块搭个 AI 语音助手?我踩了 3 天坑 - 少数派 YeeroAI:让 AI 对话真正成为知识管理的一部分 - 少数派 爬泰山 - 少数派 「旅图显影」 App 更新:这次,我们补上了一点「手感」 - 少数派 假期出门太折磨?我的 23 条经验帮你规划惬意旅行 - 少数派 工作流会变吗 - 少数派 Claude Opus 4.6 怎么用最省钱?我测了 5 种方案 - 少数派 GPT Image 2 让图文并茂不再稀罕 - 少数派 用户侧出发——什么是AI,我要不要学习? - 少数派 找片、转存、整理、播放一条龙!让你的付费网盘值回票价 - 少数派 欢迎试用!日课一问2.0插件 - 少数派 自己做的MDeditor,原本想购买 Typora 试了两次支付不成功,干脆自己做一个 - 少数派 vibe coding了一个 3MB 的小工具,让 ~/Downloads 彻底告别混乱 - 少数派 因为受不了 Mac 的风扇策略,我做了一个风扇控制工具 - 少数派 别只怪模型 - 少数派 Warp 终端的 AI 功能怎么用?我测了一周的体验 - 少数派 AI 写代码老是出 bug?这 5 个配置我后悔没早知道 - 少数派 「新玩意」苹果出相机可能就这样:Sigma BF + 45mm F2.8 DG Contemporary - 少数派 一个面向2030年的AI操作系统是什么样子的:浅谈cola这款有灵魂的Agent - 少数派 别只看写代码 - 少数派 每天解决10个问题,还是一口气攻坚解决400个? - 少数派 AI 交易机器人怎么搭?我用 Claude 跑了一周实盘 - 少数派 Maptoposter Online:把你爱的城市画成艺术海报 - 少数派 Function Calling 怎么用?我测了 3 个模型发现差距真大 - 少数派 Legend Talk:我做了个 AI 圆桌,让 160 位思想家围着你的问题转 - 少数派 如何找到自己的蓝方?在小县城寻找压力测试 - 少数派 语音输入与软件接口|2026年聊AI时,我们都聊些什么(上) - 少数派 混动已经卖爆,纯电又来补刀——钛7闪充版简直“不讲武德” - 少数派 本月玩什么|朋友收藏、识质存在、沙罗周期 - 少数派 为什么要每天坚持输出? - 少数派 Claude API 挂了好几个小时,你的项目有备用方案吗? - 少数派 Function Calling 没你想的复杂——我用它做了个有点用的工具 - 少数派 登录系统立即播放视频或者图片音乐的软件 - 少数派 我为什么创建 FlipHTML5 下载工具 - 少数派 残局没电?多品牌外设电量统一管理软件EasyBluetooth已支持RTSS游戏内显示以及AIDA64 - 少数派 前往通义路的路 - 少数派 太好看了,媲美Sun的个人导航页,NAS部署星云门户 - 少数派 乌黑嘴唇“一键检测”上线了 - 少数派 派早报:Claude AI 接入多个创意软件生态、FILCO 生产方接手品牌等 - 少数派 【更新】BearCLI、Claude 连接器与 MCP 服务器 - 少数派 记了上千条流水,还是看不懂财务?我做了一个让 AI 读懂账本的工作台 - 少数派 MINI R56 升级原厂 Sport 模式 - 少数派 新玩意 | 一棵柠檬树(仿真版) - 少数派 Momenta的“物理AI”野望,需迈过“含摩量”这道关 - 少数派 网页直接投屏控制手机!NAS一键部署PandaScrcpy,流畅丝滑可远程。 - 少数派 众测|邀你一同探索随身 AI 硬件入口 YoooClaw C·ONE - 少数派 2050大会:分享时间是真诚 参会记 - 少数派 iPad 赋能电影创作:国内首部宣纸手绘长片《燃比娃》的幕后故事 - 少数派 AI的审美:我用 8 个大模型给 100 张旅行照片打分 - 少数派 普通人如何破圈?去参加一个本地协会 - 少数派 把极空间的图标全换了,主题DIY全攻略打造你的专属NAS桌面 - 少数派 电子便签墙,帮你实现便签自由 - 少数派 我如何用三个 CLI 工具取代文档创建需求 - 少数派 原来真的有人可以玩一辈子 - 少数派 社区速递 139 | 派友热议三月买了啥、复古单反尼康 Df 体验 - 少数派 06 作品的赏析与评价 - 少数派 TDS REVIEW|索尼 WF-1000XM6 降噪真无线耳机体验 - 少数派 35.98万起售的第二代腾势D9,我看重的不是堆料,而是不凑合 - 少数派 鼠须管 Squirrel 皮肤配置指北 - 少数派 从watch ultra2换到redmi watch6 - 少数派 派早报:阿里巴巴发布视频生成模型 HappyHorse 1.0 等 - 少数派 别迷信1M - 少数派 家人们天塌了!网盘“大封杀”,多个渠道多条路,NAS部署PanHub - 少数派 AI与人勾心斗角!NAS一键部署AI狼人杀,假日休闲必备。 - 少数派 电商必备!Comfyui工作流批量生图插件,一次生成12张!支持Nano banana pro模型 - 少数派 Comfyui工作流配置Gpt-image-2模型教程,0.03/张 - 少数派 OpenClaw第三方APi怎么配置?可使用Gpt-image-2模型 - 少数派 会员社区话题精选 Ep. 103 - 少数派
玩客云折腾记录(一):编译 ArmBian 系统 - 少数派
2021-11-10 · via 少数派

本文将介绍如何从零到一编译 Armbian 系统,适配这台设备的代码来源,并对玩客云小设备进行刷机。为之后的折腾做一个前置准备。

写在前面

最近有几个有趣的小想法想实践一下,希望使用低功耗、低成本的硬件跑一些持续性的独立的服务。最初的想法是入手一个树莓派得了,开发板尺寸小巧,资源丰富。然而搜索价格的时候发现最新版的树莓派,如果搭配上一些常用配件,加一个定制外壳,算下来成本几乎能和我之前的 NUC 裸机价格一较高下。

那么,有没有性价比更高的方案呢?

为什么选择搭载 Amlogic S805 的玩客云

于是,目光就锁定到了同为 ARM 架构的廉价 SoC 上,前一阵群里有同学推荐过“玩客云”,搜索了一番,发现虽然芯片其实是几年前的款,但是性能并不差,拥有一个千兆网口,并且机器自带一个金属外壳 。因为我不需要使用 GPIO 接口 ,所以相比较树莓派而言,一套 50 元左右的小主机,性价比高非常多。

玩客云小设备的外观
玩客云小设备的外观

而且设备因为使用了廉价的 ARM 芯片,不光运行过程中的温度不算高,日常功耗也非常低。

实际使用过程中的功耗也比较低
实际使用过程中的功耗也比较低

玩客云采用的芯片方案是 Amlogic S805,和著名的 Hard Kernel 几年前推出过的开发板“ODROID-C1+”几乎完全一致。这个板子性能基本是树莓派3B的两倍,前文中提到的玩客云的成本大概是目前二手树莓派3的1/5~1/6。

S805 和树莓派3之间的性能比较
S805 和树莓派3之间的性能比较

如果追求绝对的性能,在价格差不多的情况下,可以考虑入手搭载 S905 芯片的“电视盒子”,性能和最新的树莓派4相比也不落下风,甚至在一些环节中性能高出不少。不过缺点嘛也是有的,目前这类机器受限于成本问题,很少有利于散热的金属外壳;因为性能更高,发热量也会更大。不过即便如此,综合成本也只是树莓派4的十几分之一。

系统选择及“源码溯源“

相对于硬件而言,软件系统也非常重要。

拥抱 Linux 让我们的设备有了无穷的可能性,树莓派有 Raspberry Pi OS(Raspbian),玩客云则因为搭载了和 Hard Kernel 之前产品一致的 Soc ,所以可以使用 ArmBian。

在正式介绍如何为玩客云更换系统,以及编译一份干净的新版镜像之前,我要介绍一下这个系统的由来,因为这里有太多前人的无私贡献。

Armbian 官方代码

Armbian 主要开源项目状况
Armbian 主要开源项目状况

2014年末,Armbian 立项,或许是暴风雨来临之前的沉寂,在 GAP一年多之后的2016年,Armbian 开始了每年千万行代码变动的爆发式成长。截止目前为止,官方项目已经支持了接近 150 个不同的硬件设备的适配。

来自战斗民族的 Armbian TV 分支

https://github.com/150balbes/build

在2018年7月的时候,一名网名是150balbes的战斗民族网友出手了,他开始为各种官方原本并不支持的硬件做适配,过程中吸引了来自全世界有相同硬件折腾需求的网友,他第一个适配的 SoC 就是我们本文的主角同源的 s90x 系列的芯片。

在2020年的光棍节前,他或许是觉得直接在官方原有的代码文件上进行修改,每次上游代码(Armbian)更新,他需要合并的内容太多了,毕竟Armbian是一个每年千万行代码变更的项目,于是他删除了原本开发了几个月的代码,在官方原有开发模式上新增了一个只有他自己使用的发布类型(dev),将之前的代码迁移了过来。随后他开始了专注于将 Armbian 适配到电视盒子上,并且将自己的分支命名为 armbian-tv,持续更新到了现在。

来自阿拉伯网友 moham96 的分支

https://github.com/moham96/Build-Armbian

阿拉伯网友 moham96 很快关注到了俄罗斯小伙子的项目,并立马 fork 了一份,升级了项目使用的 Linux 内核到 4.x 版本,并针对设备 Mac 地址设置方式进行了调整。

来自国内网友 leo357449107 的分支

https://github.com/Leo357449107/Build-Armbian/tree/20.11

前文提到的 150balbes 在春天的时候进行了一次分支的重构,其实这次重构非常“暴力”,原作者直接删除了之前一直在维护的 Build-Armbian 项目,重新 fork 了一份新的 Armbian。

一般情况问题不大,但是如果有其他开发者正在基于他的代码进行开发的话,就会遇到类似下面的状况:

2021/01/23 leo357449107 我正在愉快地Dubug的时候,上游把代码删了,我也把代码回滚了,然后,就没有然后了。

估计也是没办法,网友 leo 只好在 GitHub 上寻找了一份原来项目的 fork 版本(上文中的 moham96 的分支),再次进行 fork,并提交了自己的代码变更。

随后网友 leo 的版本也就此停止了更新和维护(Armbian 20.12 Buster with Linux 5.9.0-rc7),不过在停更之前,他为玩客云使用的 Armbian 带来了下面的内容:

  • 添加了快速将系统刷入 eMMC 的功能,添加了一些方便使用的软件源切换脚本。
  • 验证了设备两个 USB 端口其实都是正常可用的,调整和关闭都可以根据修改启动分区的 dtb (Device tree)来实现。
  • 使用了 meson8b-odroidc1t_noHDMI.dtb 替换了 meson8b-odroidc1t.dtb,让硬件作为服务器用途使用的时候,可以更加省电。
  • 支持关闭默认的 USB 网卡支持,可以节约一些编译时间。

来自国内网友 witallwang 的分支

https://github.com/witallwang/Build-Armbian

今年4月9日,有一位网友在 leo 的基础上继续进行了一些实用的调整。

  • 将内核版本升级到了 linux-5.10.y
  • 更新了构建补丁,调整了启动硬件使用的 dtb 文件。

可惜的是,因为上游的中断,这个系统的版本也被停留在了Armbian 的老版本 (Armbian 20.12 Buster, Linux 5.10.28)。

如果我们将上面的几份代码进行合并,是不是就可以让玩客云的硬件继续使新版本的 Armbian 系统,以及或许更新的 Linux 内核了呢?在萌生了这个想法之后,我将上面的代码分别溯源和进行了一些整理合并。

整理“硬分叉”的代码

将 150balbes 的老代码以及最新代码提交合并回 armbian,修正时间轴:

https://github.com/soulteary/armbian-build-s805/tree/codebase-merge-150balbes

将 leo 的代码变更合并到已经合并到 armbian 代码中:

https://github.com/soulteary/armbian-build-s805/commits/codebase-merge-leo357449107

将 witallwang 的代码变更合并到 armbian 代码中:

https://github.com/soulteary/armbian-build-s805/commits/codebase-merge-witallwang

抽取 leo 和 witallwang 的代码变更,合并到 150balbes 的最新代码以及 armbian 最新代码中:

https://github.com/soulteary/armbian-build-s805/commits/codebase-on-150balbes https://github.com/soulteary/armbian-build-s805/commits/codebase-on-offical

几位作者的代码变更时间轴可以参考下面的日志。

| * 82d18dbad (origin/codebase-on-150balbes, codebase-on-150balbes) s805 with kernel 5.10.x
|/  
| * b8a13a355 (origin/codebase-20211107) fix script
| * aa688d0f4 fix filename
| * 27860835d rm build flag
| * 68ec3eac6 (origin/codebase-merge-witallwang, codebase-merge-witallwang) merge part of https://github.com/witallwang/Build-Armbian/commit/1691d4516893363ae2aaa63a2b73a68e780fbff2
| * e15a48946 (origin/codebase-merge-leo357449107, codebase-merge-leo357449107) merge part of https://github.com/Leo357449107/Build-Armbian/commit/5770744a0004740e378b87b86645919ee33fb630
| *   e170397d9 (origin/codebase-merge-150balbes, codebase-merge-150balbes) Merge pull request 
#1 from 150balbes/armbian-tv
| |\  
| | * e7bdaef83 v20210814

编译过程记录

相信上文已经交代清楚了玩客云 S805 Soc 使用的 Armbian 系统代码的来源,所以在编译的时候,你可以根据自己的需求进行选择,以及二次开发。

编译或者开发 Armbian 系统镜像的方法,其实非常简单。(如果你希望了解完整的细节,可以阅读官方文档。)下文将以合并到最新版本的 150balbes 的源码为基础进行叙述。

先将代码 clone 到本地或者服务器。

git clone https://github.com/soulteary/armbian-build-s805.git --branch=codebase-on-150balbes

如果你不希望针对系统进行调整,不在意历史提交记录,并且想在国内的机器构建,也可以使用下面的方式加速下载源码:

git clone https://github.com.cnpmjs.org/soulteary/armbian-build-s805.git --depth=1 --branch=codebase-on-150balbes

完整代码差不多接近1个GB,所以下载的时候需要有一些耐心。

建议使用按量付费的海外云主机进行下载和构建,可以节约不少时间。如果你的硬盘空间比较紧张,可以考虑在 Git Clone 完毕之后,删除根目录的 .git 目录,完整源码尺寸可以降低一半到 500MB 左右。

此外,折腾 Armbian 系统编译,需要提前预留15G以上的磁盘空间,因为除了代码之外,默认构建选项下,编译后的产物会占用 10G 以上的空间。

du -hs armbian-build-s805
13G armbian-build-s805

开始构建之前,如果你是在国内的话,需要执行下面的命令,将代码中的一些依赖的下载方式切换为国内,避免因为网络问题,导致系统无法构建。

find . -type f -name "*.sh" | xargs -I {} sed -i 's/\/\/github.com\//\/\/github.com.cnpmjs.org\//' {}
find . -type f -name "*.conf" | xargs -I {} sed -i 's/\/\/github.com\//\/\/github.com.cnpmjs.org\//' {}
find . -type f -name "*.conf" | xargs -I {} sed -i 's/http:\/\/w1.fi\//git:\/\/w1.fi\//' {}

命令执行完毕之后,可以继续执行下面的命令进行检查,顺利的话,将不会有任何输出(因为都替换完毕了):

find . -type f -name "*.sh" | xargs -I {} cat {} | grep "//github.com/"
find . -type f -name "*.conf" | xargs -I {} cat {} | grep "http://w1.fi/"

在构建过程中,你可能会看到一个编译错误:

fit_image.c:19:10: fatal error: libfdt.h: No such file or directory

这个错误的原因是 150balbes 的老版本代码对于缺少一个开发依赖,这个问题作者在新版代码中修正了,因为上文提到的历史原因,这个问题被“继承”了下来。不过因为这个问题的触发场景是无线网卡开启热点,所以本身不具备无线能力的玩客云,其实可以忽略掉。当然,如果你需要使用无线网卡,那么可以对此进行一个简单的依赖修复:

apt install libfdt-dev

在上面的步骤就执行完毕之后,便可以通过下面的命令进行构建啦:

./compile.sh BOARD=设备名称 BRANCH=配置类型 RELEASE=focal BUILD_MINIMAL=yes BUILD_DESKTOP=no KERNEL_ONLY=no KERNEL_CONFIGURE=no COMPRESS_OUTPUTIMAGE=sha,gpg,img DOWNLOAD_MIRROR=china MAINLINE_MIRROR=tuna EXTRAWIFI=no

这里的“设备名称”,是我们在 config/boards 里存放的文件名称,所以根据分支的不同,我们会使用到的名称有:s805、s812、odroidc1。而“配置类型”则是 config/kernel 中,我们使用的 设备名称-*.conf 的配置文件的具体类型,根据实际分支的不同,我们可以选择使用的名称有:leagcy、edge、current、dev。这里没有好坏,根据自己的实际代码情况来即可。

第一次执行 complie.sh 会触发安装各种开发依赖,下载各种源码包,耗时会比较长,一般会在十来分钟左右。

正式进行系统镜像构建,根据硬件规格的不同,时间长度会有变化,以常见的 16核心的笔记或者服务器来说,实际测试的构建时间都在五至十分钟左右。

编译过程火力全开的机器
编译过程火力全开的机器

命令完全执行完毕之后,在目录中的 output/images 目录中就能够看到新鲜出炉的镜像啦。

构建不同代码分支、版本、内核的镜像

按照上面的方法,很轻松的就能够得到不同代码基、不同 Linux 内核、不同 Armbian 版本的系统镜像。

比如:

  • Armbian_21.11.0-trunk_Aml-s805_focal_current_5.9.0_minimal.img
  • Armbian_21.11.0-trunk_Aml-s805_focal_current_5.10.0_minimal.img
  • Armbian_21.08.0-trunk_Aml-s812_focal_current_5.9.0-rc7_minimal.img
  • Armbian_20.12_Aml-s812_focal_current_5.9.0-rc7_minimal.img

如果你的软件对于系统内核有特别的需求,可以考虑使用 https://github.com/xdarklight/linux 这个仓库中的内核对 Armbian 官方内核进行替换。不过因为系统依赖的缘故,可以直接升级到的最高版本是“meson-mx-integration-5.10-20201115”。

在系统镜像构建完毕之后,我们就可以进行刷机这个步骤了。

刷机前的准备

给这台机器换系统的难度非常低,如果采用我们熟悉的“五星评价”的方式来描述难度的话,我觉得难度只有一颗星,其中大半颗还都在拆卸上面。

以往不少帖子会建议大家购置 USB 转 TTL 线,以及购买烧录探针以及电烙铁,但是随着网友对于这台设备的开发,其实我们可以用更简单的方式来为这台设备更换系统,而不需要购置这些装备,以及进行焊接操作

我的刷机模式采用了网友“尉迟申棠”的《无TTL线刷机》方案,整个操作流程大体分为四步,整个流程时间大概在十五分钟~二十分钟左右:

  1. 拆机取出 S805 开发板
  2. 短接并通过 S805 刷机工具刷入开放的 UBoot
  3. 使用 U 盘自动刷入网友制作的启动系统作为基础
  4. 借助上面的系统作为跳板,用覆盖的方式刷入我们自己的系统

拆机过程细节记录

设备拆机可以采用我下面这张图片中的工具,把家用的剪指甲刀的受力臂拆下来,塞进玩客云背部 SD 卡上方的贴片缝隙中,然后用螺丝刀或者其他的工具,把这个贴满了双面胶的背板撬下来,扭下6颗螺丝之后,接下来就可以使用短接金属线来进行刷机了。

拆机方法和过程一览

拆机方法和过程一览

群里的同学邮寄了一台小设备,顺带一起拆啦,正好凑齐新版和老版两种主板。

连带群友的机器一起拆了
连带群友的机器一起拆了

刷机过程细节记录

刷机需要使用短接的方式,来迫使玩客云的主板进入 USB 引导模式。短接的工具可以考虑找一根买电子产品时的绑线,然后把金属线漏出来即可。(上图中图一的线被媳妇称呼为“通往天堂的钥匙”)

需要注意的是,新旧版本不太一样,v1.3版的新主板短接在前面,而老主板的短接位置在背后。(顺手安装完毕了,忘记拍图了,不过网络上图很容易就能搜到,就不补啦)

刷机完毕,登陆系统后,顺便看一眼 CPU 信息。

root@aml:~# lscpu
Architecture:          armv7l
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    1
Core(s) per socket:    4
Socket(s):             1
Model:                 1
Model name:            ARMv7 Processor rev 1 (v7l)
BogoMIPS:              2.00
Flags:                 half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4 vfpd32

常见问题:刷入引导失败

此外,如果你采用 MacOS 上的虚拟机进行刷机,很有可能会失败,因为设备在通过 USB 公对公数据线和 USB_Burning_Tool 刷机的过程中,可能会快速重启切换模式,这时如果是使用虚拟机,会因为设备握手重连虚拟机时间过长,导致刷机失败。提示 “Romcode/状态切换/设备识别/命令结果返回错误”。

如果使用直接安装的 Windows 系统进行 U-Boot 刷入,就不会出现这个问题了,这个设备重连导致失败的情况,至多出现一次。

USB Burning 过程
USB Burning 过程

常见问题:为什么要刷两次机

第一次是刷入引导,第二次是为了避免折腾 TTL 短接,利用网友构建的自动安装镜像,完成 eMMC (embedded MMC) 刷机,而这个系统的版本和内核都比较旧,所以第三次才是真实的刷机,刷入我们自己的系统。

如果你愿意的话,也可以对比分析“eMMC刷机包”中的脚本,在构建自己镜像的时候做一些调整,减少一次刷机的过程。

常见问题:制作的二次刷机镜像不起作用

玩客云在引导时,USB 接口存在不能正确挂载 U 盘的情况,所以如果你制作的系统镜像没有被正确的加载,可以断掉电源重新拔插一遍 U 盘再试试引导。

另外,因为设备供电能力有限(本身低功耗),所以使用的 U 盘也尽量使用传统 U 盘,而不要使用固态硬盘魔改的 U 盘,可能带不动。

参考资料

上文虽然已经提到了许多来自网友的智慧结晶,但其实在整个过程中,还参考和学习了其他的网友的经验。

如果你希望更进一步,从 U-Boot 引导开始折腾,或者适配给其他的设备,或许这些资料对你也会有用处,所以我将它们按照话题进行了分类,并列举在了下面。

如何构建适用于玩客云的引导固件?

如何编译构建适用于玩客云的 ARM Linux 操作系统以及内核?

如何为这台小 ARM 设备构建容器镜像

玩客云网卡工作不正常?

其他资料

最后

文章至此,玩客云的 Armbian 折腾过程就结束了。后续的文章里,我将展开我想折腾的脑洞,用这台50元成本的设备,做一些有趣的实验:一台能够快速实现异地组网的设备,让你和你的基友快速联网打游戏;一台能够随身携带的电子笔记服务器;一台完善独立的密码记录本;一台低功耗的监控探针。

--EOF


如果你觉得内容还算实用,欢迎点赞分享给你的朋友,在此谢过。


本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载、或重新修改使用,但需要注明来源。 署名 4.0 国际 (CC BY 4.0)

本文作者: 苏洋

创建时间: 2021年11月10日 统计字数: 11442字 阅读时间: 23分钟阅读 本文链接: https://soulteary.com/2021/11/10/low-power-device-trial-notes-wyk-part-1.html