前言、為什么要適配Alpine Linux
為什么不是更多用戶的Ubuntu,Debian,這是很多朋友第一時(shí)間會(huì)問的問題。 首先Alpine Linux占用的資源更小,使用更輕量的包管理系統(tǒng),5M的最小rootfs是其他發(fā)行版沒法比的。 其次Luckfox pico系列板子的Flash和RAM資源都比較少(除了最新的MAX版本),Alpine Linux是最優(yōu)選擇。
也有很多朋友沒聽說過Alpine Linux,擔(dān)心不好用,接下來可以燒錄固件體驗(yàn)一下。
一、下載固件并燒錄
在文章鏈接下載nand固件壓縮包之后,解壓縮之后打開SocToolKit軟件,在未接電的情況下按住BOOT按鈕不放, 然后插入USB。 軟件界面檢測到maskrom設(shè)備后,點(diǎn)擊搜索路徑按鈕,找到剛剛解壓的目錄,確認(rèn)。 然后把所有下載項(xiàng)目都勾選上,點(diǎn)擊下載按鈕。

二、連接串口并登錄
下載完成后,拔出USB斷電,連接串口開始配置系統(tǒng)。

按Luckfox官方wiki的指引接好串口后,打開串口工具軟件,給開發(fā)板接上網(wǎng)線和電源,就可以看到開發(fā)板的啟動(dòng)信息了。 鏡像已開啟了串口接入時(shí),終端root賬戶免密登錄配置,不需要再輸入賬戶和密碼了。

簡單查看一下根文件系統(tǒng)是否可以寫入,就可以開始下一步的配置了。

三、網(wǎng)絡(luò)配置
資源少的板子不會(huì)安裝各種網(wǎng)絡(luò)工具,ifconfig和ip命令是最常用的配網(wǎng)和查看工具。
Alpine Linux提供了網(wǎng)絡(luò)服務(wù),可以通過編輯/etc/network/interfaces文件實(shí)現(xiàn)靜態(tài)IP或者DHCP動(dòng)態(tài)獲取IP。以下就是將板子的IP網(wǎng)絡(luò)配置成192.168.50.59,網(wǎng)關(guān)配置成192.168.50.1的模版。
`auto eth0
iface eth0 inet static
address 192.168.50.59
netmask 255.255.255.0
gateway 192.168.50.1`
建議使用靜態(tài)IP,這樣方便ssh遠(yuǎn)程登錄到開發(fā)板。配置好之后,需要將networking服務(wù)啟動(dòng)才可以使用。 鏡像默認(rèn)已經(jīng)開啟了該服務(wù),如果發(fā)現(xiàn)能ping通局域網(wǎng)和外網(wǎng)ip,但是無法解析域名,需要將/etc/resolv.conf文件里的域名解析服務(wù)器換成當(dāng)?shù)氐姆?wù)器IP。
本文的鏡像默認(rèn)是使用網(wǎng)線接入網(wǎng)絡(luò),這樣才能發(fā)揮包管理器和網(wǎng)絡(luò)優(yōu)勢。USB的RNDIS是沒有配置好的,建議插入網(wǎng)線使用。
四、ssh遠(yuǎn)程登錄
鏡像里默認(rèn)安裝和配置了ssh遠(yuǎn)程服務(wù),已開啟root遠(yuǎn)程登錄配置,只需要接入串口的情況下,輸入passwd
命令修改root賬戶密碼,然后就可以使用ssh客戶端進(jìn)行登錄了。例如Termius的配置案例如下

配置好就直接ssh遠(yuǎn)程連接就好了。
五、包管理器APK的使用
和大多數(shù)的人一樣,給板子適配發(fā)行版的最大理由就是不想編譯,直接安裝軟件包。
Ubuntu的包管理器命令很多,用了這么多年命令行的我也沒記住,只記得更新和裝軟件包而已。
Alpine Linux的包管理器命令沒這么復(fù)雜,記住3個(gè)就行了。
- apk update,更新本地索引
- apk add,安裝軟件包
- apk del,刪除軟件包
就這么簡單,沒什么復(fù)雜的。例如安裝gcc,只需要運(yùn)行apk add gcc命令即可。

安裝完可以運(yùn)行g(shù)cc -v查看版本情況

Nand flash的空間不是很大,不建議安裝大型的軟件包,例如安裝gcc后,剩余空間只有38.2M。
這時(shí)候使用apk del gcc命令可以刪除gcc軟件包和它的依賴。

刪除gcc后,剩余空間又變成80多M了。
我提供的鏡像已修改成阿里源,正常的話安裝速度都很快,覺得慢可以自行更換其他源。 修改一下/etc/apk/repositories文件就可以了。 大多數(shù)情況下,apk安裝和刪除軟件包都會(huì)自動(dòng)處理相關(guān)依賴,怎么來就怎么走,不會(huì)殘留垃圾。
六、服務(wù)管理
由于板子資源少,自然能跑的服務(wù)也不多,鏡像里默認(rèn)使用的是OpenRC來管理服務(wù)。
所有可用的服務(wù)都在/etc/init.d/目錄下。 常見的命令有以下幾個(gè)。
- rc-status查看默認(rèn)級別的運(yùn)行服務(wù)
- rc-update add 添加服務(wù)到運(yùn)行級別服務(wù)清單
- rc-update del 從對應(yīng)運(yùn)行級別服務(wù)清單刪除服務(wù)
- rc-service 管理服務(wù)啟停
添加和刪除服務(wù)時(shí),需要增加運(yùn)行級別標(biāo)識(shí),例如常見的default,boot等等。 一般使用默認(rèn)運(yùn)行級別default即可,特殊的服務(wù)需要自行搜索一下相關(guān)配置。 舉個(gè)例子,現(xiàn)在我們先查看一下默認(rèn)級別都有什么服務(wù)。 在終端里運(yùn)行rc-status命令,運(yùn)行后終端結(jié)果如下

然后分別嘗試以下把sshd服務(wù)禁止啟動(dòng),再把sshd服務(wù)開啟啟動(dòng)。 只需要運(yùn)行rc-update del sshd就可以禁止sshd服務(wù)啟動(dòng)了。 同樣的,運(yùn)行rc-update add sshd default就可以在啟動(dòng)時(shí)開啟sshd服務(wù)。

不想重啟板子,重新啟動(dòng)服務(wù)可以用rc-service來管理當(dāng)前系統(tǒng)的服務(wù)程序。
-
USB接口
+關(guān)注
關(guān)注
9文章
712瀏覽量
58482 -
RAM
+關(guān)注
關(guān)注
8文章
1398瀏覽量
119775 -
DHCP
+關(guān)注
關(guān)注
0文章
107瀏覽量
20688 -
Flash存儲(chǔ)
+關(guān)注
關(guān)注
0文章
40瀏覽量
8537 -
Ubuntu系統(tǒng)
+關(guān)注
關(guān)注
0文章
93瀏覽量
4521
發(fā)布評論請先 登錄

「幸狐Luckfox pico開發(fā)板」適配Alpine Linux上篇
評論