轉(zhuǎn)自編譯 ArmBian 系統(tǒng)
本文將介紹如何從零到一編譯 Armbian 系統(tǒng),適配這臺(tái)設(shè)備的代碼來(lái)源,并對(duì)玩客云小設(shè)備進(jìn)行刷機(jī)垒棋。為之后的折騰做一個(gè)前置準(zhǔn)備霍比。
寫在前面
最近有幾個(gè)有趣的小想法想實(shí)踐一下沛婴,希望使用低功耗翠勉、低成本的硬件跑一些持續(xù)性的獨(dú)立的服務(wù)积担。最初的想法是入手一個(gè)樹(shù)莓派得了惩猫,開(kāi)發(fā)板尺寸小巧芝硬,資源豐富。然而搜索價(jià)格的時(shí)候發(fā)現(xiàn)最新版的樹(shù)莓派轧房,如果搭配上一些常用配件拌阴,加一個(gè)定制外殼,算下來(lái)成本幾乎能和我之前的 NUC 裸機(jī)價(jià)格一較高下奶镶。
那么迟赃,有沒(méi)有性價(jià)比更高的方案呢?
為什么選擇搭載 Amlogic S805 的玩客云
于是厂镇,目光就鎖定到了同為 ARM 架構(gòu)的廉價(jià) SoC 上纤壁,前一陣群里有同學(xué)推薦過(guò)“玩客云”,搜索了一番捺信,發(fā)現(xiàn)雖然芯片其實(shí)是幾年前的款酌媒,但是性能并不差,擁有一個(gè)千兆網(wǎng)口,并且機(jī)器自帶一個(gè)金屬外殼 秒咨。因?yàn)槲也恍枰褂?GPIO 接口 喇辽,所以相比較樹(shù)莓派而言,一套 50 元左右的小主機(jī)雨席,性價(jià)比高非常多菩咨。
玩客云小設(shè)備的外觀而且設(shè)備因?yàn)槭褂昧肆畠r(jià)的 ARM 芯片,不光運(yùn)行過(guò)程中的溫度不算高舅世,日常功耗也非常低旦委。
實(shí)際使用過(guò)程中的功耗也比較低玩客云采用的芯片方案是 Amlogic S805,和著名的 Hard Kernel 幾年前推出過(guò)的開(kāi)發(fā)板“ODROID-C1+”幾乎完全一致雏亚。這個(gè)板子性能基本是樹(shù)莓派3B的兩倍缨硝,前文中提到的玩客云的成本大概是目前二手樹(shù)莓派3的1/5~1/6。
S805 和樹(shù)莓派3之間的性能比較如果追求絕對(duì)的性能罢低,在價(jià)格差不多的情況下查辩,可以考慮入手搭載 S905 芯片的“電視盒子”,性能和最新的樹(shù)莓派4相比也不落下風(fēng)网持,甚至在一些環(huán)節(jié)中性能高出不少宜岛。不過(guò)缺點(diǎn)嘛也是有的,目前這類機(jī)器受限于成本問(wèn)題功舀,很少有利于散熱的金屬外殼萍倡;因?yàn)樾阅芨撸l(fā)熱量也會(huì)更大辟汰。不過(guò)即便如此列敲,綜合成本也只是樹(shù)莓派4的十幾分之一。
系統(tǒng)選擇及“源碼溯源“
相對(duì)于硬件而言帖汞,軟件系統(tǒng)也非常重要戴而。
擁抱 Linux 讓我們的設(shè)備有了無(wú)窮的可能性,樹(shù)莓派有 Raspberry Pi OS(Raspbian)翩蘸,玩客云則因?yàn)榇钶d了和 Hard Kernel 之前產(chǎn)品一致的 Soc 所意,所以可以使用 ArmBian。
在正式介紹如何為玩客云更換系統(tǒng)催首,以及編譯一份干凈的新版鏡像之前扶踊,我要介紹一下這個(gè)系統(tǒng)的由來(lái),因?yàn)檫@里有太多前人的無(wú)私貢獻(xiàn)翅帜。
Armbian 官方代碼
Armbian 主要開(kāi)源項(xiàng)目狀況2014年末姻檀,Armbian 立項(xiàng),或許是暴風(fēng)雨來(lái)臨之前的沉寂涝滴,在 GAP一年多之后的2016年绣版,Armbian 開(kāi)始了每年千萬(wàn)行代碼變動(dòng)的爆發(fā)式成長(zhǎng)胶台。截止目前為止,官方項(xiàng)目已經(jīng)支持了接近 150 個(gè)不同的硬件設(shè)備的適配杂抽。
來(lái)自戰(zhàn)斗民族的 Armbian TV 分支
在2018年7月的時(shí)候诈唬,一名網(wǎng)名是150balbes的戰(zhàn)斗民族網(wǎng)友出手了,他開(kāi)始為各種官方原本并不支持的硬件做適配缩麸,過(guò)程中吸引了來(lái)自全世界有相同硬件折騰需求的網(wǎng)友铸磅,他第一個(gè)適配的 SoC 就是我們本文的主角同源的 s90x 系列的芯片。
在2020年的光棍節(jié)前杭朱,他或許是覺(jué)得直接在官方原有的代碼文件上進(jìn)行修改阅仔,每次上游代碼(Armbian)更新,他需要合并的內(nèi)容太多了弧械,畢竟Armbian是一個(gè)每年千萬(wàn)行代碼變更的項(xiàng)目八酒,于是他刪除了原本開(kāi)發(fā)了幾個(gè)月的代碼,在官方原有開(kāi)發(fā)模式上新增了一個(gè)只有他自己使用的發(fā)布類型(dev)刃唐,將之前的代碼遷移了過(guò)來(lái)羞迷。隨后他開(kāi)始了專注于將 Armbian 適配到電視盒子上,并且將自己的分支命名為 armbian-tv画饥,持續(xù)更新到了現(xiàn)在衔瓮。
來(lái)自阿拉伯網(wǎng)友 moham96 的分支
阿拉伯網(wǎng)友 moham96 很快關(guān)注到了俄羅斯小伙子的項(xiàng)目,并立馬 fork 了一份抖甘,升級(jí)了項(xiàng)目使用的 Linux 內(nèi)核到 4.x 版本热鞍,并針對(duì)設(shè)備 Mac 地址設(shè)置方式進(jìn)行了調(diào)整。
來(lái)自國(guó)內(nèi)網(wǎng)友 leo357449107 的分支
前文提到的 150balbes 在春天的時(shí)候進(jìn)行了一次分支的重構(gòu)衔彻,其實(shí)這次重構(gòu)非嘲郑“暴力”,原作者直接刪除了之前一直在維護(hù)的 Build-Armbian 項(xiàng)目米奸,重新 fork 了一份新的 Armbian。
一般情況問(wèn)題不大爽篷,但是如果有其他開(kāi)發(fā)者正在基于他的代碼進(jìn)行開(kāi)發(fā)的話悴晰,就會(huì)遇到類似下面的狀況:
2021/01/23 leo357449107 我正在愉快地Dubug的時(shí)候,上游把代碼刪了逐工,我也把代碼回滾了铡溪,然后,就沒(méi)有然后了泪喊。
估計(jì)也是沒(méi)辦法棕硫,網(wǎng)友 leo 只好在 GitHub 上尋找了一份原來(lái)項(xiàng)目的 fork 版本(上文中的 moham96 的分支),再次進(jìn)行 fork袒啼,并提交了自己的代碼變更哈扮。
隨后網(wǎng)友 leo 的版本也就此停止了更新和維護(hù)(Armbian 20.12 Buster with Linux 5.9.0-rc7)纬纪,不過(guò)在停更之前,他為玩客云使用的 Armbian 帶來(lái)了下面的內(nèi)容:
添加了快速將系統(tǒng)刷入 eMMC 的功能滑肉,添加了一些方便使用的軟件源切換腳本包各。驗(yàn)證了設(shè)備兩個(gè) USB 端口其實(shí)都是正常可用的靶庙,調(diào)整和關(guān)閉都可以根據(jù)修改啟動(dòng)分區(qū)的 dtb (Device tree)來(lái)實(shí)現(xiàn)问畅。使用了 meson8b-odroidc1t_noHDMI.dtb 替換了 meson8b-odroidc1t.dtb,讓硬件作為服務(wù)器用途使用的時(shí)候六荒,可以更加省電护姆。支持關(guān)閉默認(rèn)的 USB 網(wǎng)卡支持,可以節(jié)約一些編譯時(shí)間掏击。
來(lái)自國(guó)內(nèi)網(wǎng)友 witallwang 的分支
今年4月9日卵皂,有一位網(wǎng)友在 leo 的基礎(chǔ)上繼續(xù)進(jìn)行了一些實(shí)用的調(diào)整。
將內(nèi)核版本升級(jí)到了 linux-5.10.y更新了構(gòu)建補(bǔ)丁铐料,調(diào)整了啟動(dòng)硬件使用的 dtb 文件渐裂。
可惜的是,因?yàn)樯嫌蔚闹袛嗄瞥停@個(gè)系統(tǒng)的版本也被停留在了Armbian 的老版本 (Armbian 20.12 Buster, Linux 5.10.28)柒凉。
品嘗最新版本的 Armbian
如果我們將上面的幾份代碼進(jìn)行合并,是不是就可以讓玩客云的硬件繼續(xù)使新版本的 Armbian 系統(tǒng)篓跛,以及或許更新的 Linux 內(nèi)核了呢膝捞?在萌生了這個(gè)想法之后,我將上面的代碼分別溯源和進(jìn)行了一些整理合并愧沟。
整理“硬分叉”的代碼
將 150balbes 的老代碼以及最新代碼提交合并回 armbian蔬咬,修正時(shí)間軸:
https://github.com/soulteary/armbian-build-s805/tree/codebase-merge-150balbes
將 leo 的代碼變更合并到已經(jīng)合并到 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-150balbeshttps://github.com/soulteary/armbian-build-s805/commits/codebase-on-offical
幾位作者的代碼變更時(shí)間軸可以參考下面的日志沐寺。
| * 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
編譯過(guò)程記錄
相信上文已經(jīng)交代清楚了玩客云 S805 Soc 使用的 Armbian 系統(tǒng)代碼的來(lái)源林艘,所以在編譯的時(shí)候,你可以根據(jù)自己的需求進(jìn)行選擇混坞,以及二次開(kāi)發(fā)狐援。
編譯或者開(kāi)發(fā) Armbian 系統(tǒng)鏡像的方法,其實(shí)非常簡(jiǎn)單究孕。(如果你希望了解完整的細(xì)節(jié)啥酱,可以閱讀官方文檔。)下文將以合并到最新版本的 150balbes 的源碼為基礎(chǔ)進(jìn)行敘述厨诸。
先將代碼 clone 到本地或者服務(wù)器镶殷。
git clone https://github.com/soulteary/armbian-build-s805.git --branch=codebase-on-150balbes
如果你不希望針對(duì)系統(tǒng)進(jìn)行調(diào)整,不在意歷史提交記錄微酬,并且想在國(guó)內(nèi)的機(jī)器構(gòu)建绘趋,也可以使用下面的方式加速下載源碼:
git clone https://github.com/soulteary/armbian-build-s805 --depth=1 --branch=codebase-on-150balbes
完整代碼差不多接近1個(gè)GB颤陶,所以下載的時(shí)候需要有一些耐心。
建議使用按量付費(fèi)的海外云主機(jī)進(jìn)行下載和構(gòu)建埋心,可以節(jié)約不少時(shí)間指郁。如果你的硬盤空間比較緊張,可以考慮在 Git Clone 完畢之后拷呆,刪除根目錄的 .git 目錄闲坎,完整源碼尺寸可以降低一半到 500MB 左右。
此外茬斧,折騰 Armbian 系統(tǒng)編譯腰懂,需要提前預(yù)留15G以上的磁盤空間,因?yàn)槌舜a之外项秉,默認(rèn)構(gòu)建選項(xiàng)下绣溜,編譯后的產(chǎn)物會(huì)占用 10G 以上的空間。
du -hs armbian-build-s805
13G armbian-build-s805
開(kāi)始構(gòu)建之前娄蔼,如果你是在國(guó)內(nèi)的話怖喻,需要執(zhí)行下面的命令,將代碼中的一些依賴的下載方式切換為國(guó)內(nèi)岁诉,避免因?yàn)榫W(wǎng)絡(luò)問(wèn)題锚沸,導(dǎo)致系統(tǒng)無(wú)法構(gòu)建。
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//' {}
命令執(zhí)行完畢之后涕癣,可以繼續(xù)執(zhí)行下面的命令進(jìn)行檢查哗蜈,順利的話,將不會(huì)有任何輸出(因?yàn)槎继鎿Q完畢了):
find . -type f -name ".sh" | xargs -I {} cat {} | grep "http://github.com/"
find . -type f -name ".conf" | xargs -I {} cat {} | grep "http://w1.fi/"
在構(gòu)建過(guò)程中坠韩,你可能會(huì)看到一個(gè)編譯錯(cuò)誤:
fit_image.c:19:10: fatal error: libfdt.h: No such file or directory
這個(gè)錯(cuò)誤的原因是 150balbes 的老版本代碼對(duì)于缺少一個(gè)開(kāi)發(fā)依賴距潘,這個(gè)問(wèn)題作者在新版代碼中修正了,因?yàn)樯衔奶岬降臍v史原因只搁,這個(gè)問(wèn)題被“繼承”了下來(lái)音比。不過(guò)因?yàn)檫@個(gè)問(wèn)題的觸發(fā)場(chǎng)景是無(wú)線網(wǎng)卡開(kāi)啟熱點(diǎn),所以本身不具備無(wú)線能力的玩客云氢惋,其實(shí)可以忽略掉硅确。當(dāng)然,如果你需要使用無(wú)線網(wǎng)卡明肮,那么可以對(duì)此進(jìn)行一個(gè)簡(jiǎn)單的依賴修復(fù):
apt install libfdt-dev (轉(zhuǎn)載者嘗試后 發(fā)現(xiàn)安裝以后編譯不能成功!所以別安裝!)
在上面的步驟就執(zhí)行完畢之后缭付,便可以通過(guò)下面的命令進(jìn)行構(gòu)建啦:
./compile.sh BOARD=設(shè)備名稱 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
這里的“設(shè)備名稱”柿估,是我們?cè)?config/boards 里存放的文件名稱,所以根據(jù)分支的不同陷猫,我們會(huì)使用到的名稱有:s805秫舌、s812的妖、odroidc1。而“配置類型”則是 config/kernel 中足陨,我們使用的 設(shè)備名稱-*.conf 的配置文件的具體類型嫂粟,根據(jù)實(shí)際分支的不同,我們可以選擇使用的名稱有:leagcy墨缘、edge星虹、current、dev镊讼。這里沒(méi)有好壞宽涌,根據(jù)自己的實(shí)際代碼情況來(lái)即可。
第一次執(zhí)行 complie.sh 會(huì)觸發(fā)安裝各種開(kāi)發(fā)依賴蝶棋,下載各種源碼包卸亮,耗時(shí)會(huì)比較長(zhǎng),一般會(huì)在十來(lái)分鐘左右玩裙。
正式進(jìn)行系統(tǒng)鏡像構(gòu)建兼贸,根據(jù)硬件規(guī)格的不同,時(shí)間長(zhǎng)度會(huì)有變化吃溅,以常見(jiàn)的 16核心的筆記或者服務(wù)器來(lái)說(shuō)溶诞,實(shí)際測(cè)試的構(gòu)建時(shí)間都在五至十分鐘左右。
編譯過(guò)程火力全開(kāi)的機(jī)器命令完全執(zhí)行完畢之后罕偎,在目錄中的 output/images 目錄中就能夠看到新鮮出爐的鏡像啦很澄。
構(gòu)建不同代碼分支、版本颜及、內(nèi)核的鏡像
按照上面的方法甩苛,很輕松的就能夠得到不同代碼基、不同 Linux 內(nèi)核俏站、不同 Armbian 版本的系統(tǒng)鏡像讯蒲。
比如:
Armbian_21.11.0-trunk_Aml-s805_focal_current_5.9.0_minimal.imgArmbian_21.11.0-trunk_Aml-s805_focal_current_5.10.0_minimal.imgArmbian_21.08.0-trunk_Aml-s812_focal_current_5.9.0-rc7_minimal.imgArmbian_20.12_Aml-s812_focal_current_5.9.0-rc7_minimal.img
如果你的軟件對(duì)于系統(tǒng)內(nèi)核有特別的需求,可以考慮使用 https://github.com/xdarklight/linux 這個(gè)倉(cāng)庫(kù)中的內(nèi)核對(duì) Armbian 官方內(nèi)核進(jìn)行替換肄扎。不過(guò)因?yàn)橄到y(tǒng)依賴的緣故墨林,可以直接升級(jí)到的最高版本是“meson-mx-integration-5.10-20201115”。
在系統(tǒng)鏡像構(gòu)建完畢之后犯祠,我們就可以進(jìn)行刷機(jī)這個(gè)步驟了旭等。
刷機(jī)前的準(zhǔn)備
給這臺(tái)機(jī)器換系統(tǒng)的難度非常低,如果采用我們熟悉的“五星評(píng)價(jià)”的方式來(lái)描述難度的話衡载,我覺(jué)得難度只有一顆星搔耕,其中大半顆還都在拆卸上面。
以往不少帖子會(huì)建議大家購(gòu)置 USB 轉(zhuǎn) TTL 線痰娱,以及購(gòu)買燒錄探針以及電烙鐵弃榨,但是隨著網(wǎng)友對(duì)于這臺(tái)設(shè)備的開(kāi)發(fā)菩收,其實(shí)我們可以用更簡(jiǎn)單的方式來(lái)為這臺(tái)設(shè)備更換系統(tǒng),而不需要購(gòu)置這些裝備鲸睛,以及進(jìn)行焊接操作娜饵。
我的刷機(jī)模式采用了網(wǎng)友“尉遲申棠”的《無(wú)TTL線刷機(jī)》方案,整個(gè)操作流程大體分為四步官辈,整個(gè)流程時(shí)間大概在十五分鐘~二十分鐘左右:
拆機(jī)取出 S805 開(kāi)發(fā)板短接并通過(guò) S805 刷機(jī)工具刷入開(kāi)放的 UBoot使用 U 盤自動(dòng)刷入網(wǎng)友制作的啟動(dòng)系統(tǒng)作為基礎(chǔ)借助上面的系統(tǒng)作為跳板箱舞,用覆蓋的方式刷入我們自己的系統(tǒng)
拆機(jī)過(guò)程細(xì)節(jié)記錄
設(shè)備拆機(jī)可以采用我下面這張圖片中的工具,把家用的剪指甲刀的受力臂拆下來(lái)钧萍,塞進(jìn)玩客云背部 SD 卡上方的貼片縫隙中褐缠,然后用螺絲刀或者其他的工具,把這個(gè)貼滿了雙面膠的背板撬下來(lái)风瘦,扭下6顆螺絲之后队魏,接下來(lái)就可以使用短接金屬線來(lái)進(jìn)行刷機(jī)了。
群里的同學(xué)郵寄了一臺(tái)小設(shè)備万搔,順帶一起拆啦胡桨,正好湊齊新版和老版兩種主板。
連帶群友的機(jī)器一起拆了刷機(jī)過(guò)程細(xì)節(jié)記錄
刷機(jī)需要使用短接的方式瞬雹,來(lái)迫使玩客云的主板進(jìn)入 USB 引導(dǎo)模式昧谊。短接的工具可以考慮找一根買電子產(chǎn)品時(shí)的綁線,然后把金屬線漏出來(lái)即可酗捌。(上圖中圖一的線被媳婦稱呼為“通往天堂的鑰匙”)
需要注意的是呢诬,新舊版本不太一樣,v1.3版的新主板短接在前面胖缤,而老主板的短接位置在背后尚镰。(順手安裝完畢了,忘記拍圖了哪廓,不過(guò)網(wǎng)絡(luò)上圖很容易就能搜到狗唉,就不補(bǔ)啦)
刷機(jī)完畢,登陸系統(tǒng)后涡真,順便看一眼 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
常見(jiàn)問(wèn)題:刷入引導(dǎo)失敗
此外寓调,如果你采用 MacOS 上的虛擬機(jī)進(jìn)行刷機(jī)丈咐,很有可能會(huì)失敗,因?yàn)樵O(shè)備在通過(guò) USB 公對(duì)公數(shù)據(jù)線和 USB_Burning_Tool 刷機(jī)的過(guò)程中材部,可能會(huì)快速重啟切換模式东亦,這時(shí)如果是使用虛擬機(jī)杏节,會(huì)因?yàn)樵O(shè)備握手重連虛擬機(jī)時(shí)間過(guò)長(zhǎng),導(dǎo)致刷機(jī)失敗。提示 “Romcode/狀態(tài)切換/設(shè)備識(shí)別/命令結(jié)果返回錯(cuò)誤”拢锹。
如果使用直接安裝的 Windows 系統(tǒng)進(jìn)行 U-Boot 刷入,就不會(huì)出現(xiàn)這個(gè)問(wèn)題了萄喳,這個(gè)設(shè)備重連導(dǎo)致失敗的情況卒稳,至多出現(xiàn)一次。
USB Burning 過(guò)程常見(jiàn)問(wèn)題:為什么要刷兩次機(jī)
第一次是刷入引導(dǎo)他巨,第二次是為了避免折騰 TTL 短接充坑,利用網(wǎng)友構(gòu)建的自動(dòng)安裝鏡像,完成 eMMC (embedded MMC) 刷機(jī)染突,而這個(gè)系統(tǒng)的版本和內(nèi)核都比較舊捻爷,所以第三次才是真實(shí)的刷機(jī),刷入我們自己的系統(tǒng)份企。
如果你愿意的話也榄,也可以對(duì)比分析“eMMC刷機(jī)包”中的腳本,在構(gòu)建自己鏡像的時(shí)候做一些調(diào)整司志,減少一次刷機(jī)的過(guò)程甜紫。
常見(jiàn)問(wèn)題:制作的二次刷機(jī)鏡像不起作用
玩客云在引導(dǎo)時(shí),USB 接口存在不能正確掛載 U 盤的情況骂远,所以如果你制作的系統(tǒng)鏡像沒(méi)有被正確的加載囚霸,可以斷掉電源重新拔插一遍 U 盤再試試引導(dǎo)。
另外激才,因?yàn)樵O(shè)備供電能力有限(本身低功耗)拓型,所以使用的 U 盤也盡量使用傳統(tǒng) U 盤,而不要使用固態(tài)硬盤魔改的 U 盤瘸恼,可能帶不動(dòng)劣挫。
參考資料
上文雖然已經(jīng)提到了許多來(lái)自網(wǎng)友的智慧結(jié)晶,但其實(shí)在整個(gè)過(guò)程中钞脂,還參考和學(xué)習(xí)了其他的網(wǎng)友的經(jīng)驗(yàn)揣云。
如果你希望更進(jìn)一步,從 U-Boot 引導(dǎo)開(kāi)始折騰冰啃,或者適配給其他的設(shè)備邓夕,或許這些資料對(duì)你也會(huì)有用處,所以我將它們按照話題進(jìn)行了分類阎毅,并列舉在了下面焚刚。
如何構(gòu)建適用于玩客云的引導(dǎo)固件?
玩客云的啟動(dòng)模式 《玩客云Amlogic S805 適配Win10 arm32記錄 - 3 》 by @pigworld《編譯Amlogic S805通用U-Boot關(guān)鍵步驟》by @Couchp95如何構(gòu)建玩客云( S805 )適用的 U-Boot:《How to build kernel,uboot,android sepatately》 by @cary.wu“在玩客云上添加SD卡和USB啟動(dòng)支持” by @jocoverUnofficial mirror of uboot sources by @not-aml
如何編譯構(gòu)建適用于玩客云的 ARM Linux 操作系統(tǒng)以及內(nèi)核扇调?
Kernel Amlogic S802 S805 S812 by @takitr《玩客云armbian 高版本內(nèi)核 Linux 5.7.0 自編譯版本 Ubuntu 20.04 LTS》 by @suixin2020
如何為這臺(tái)小 ARM 設(shè)備構(gòu)建容器鏡像
《Building Multi-Arch Images for Arm and x86 with Docker Desktop》by @ ADAM PARCO
玩客云網(wǎng)卡工作不正常矿咕?
《解決玩客云Armbian下千兆網(wǎng)卡無(wú)法工作問(wèn)題》 by @Couchp95https://github.com/endlessm/linux-meson by @endlessm
其他資料
《Amlogic S805 Datasheet》 by @Hardkernel
最后
文章至此,玩客云的 Armbian 折騰過(guò)程就結(jié)束了。后續(xù)的文章里碳柱,我將展開(kāi)我想折騰的腦洞捡絮,用這臺(tái)50元成本的設(shè)備,做一些有趣的實(shí)驗(yàn):一臺(tái)能夠快速實(shí)現(xiàn)異地組網(wǎng)的設(shè)備莲镣,讓你和你的基友快速聯(lián)網(wǎng)打游戲福稳;一臺(tái)能夠隨身攜帶的電子筆記服務(wù)器;一臺(tái)完善獨(dú)立的密碼記錄本瑞侮;一臺(tái)低功耗的監(jiān)控探針的圆。
--EOF