⑴ 【路由器】OpenWrt 手動編譯 ipk
.ipk 文件是可以通過 OpenWrt 的包管理軟體 opkg 直接安裝,好比 .deb 文件與 apt 的關系。雖然官方的軟體倉庫已經很豐富了,但是有時仍然需要從源碼編譯一些第三方的軟體使用,例如銳捷認證等
但是由於路由器平台通常與常用的伺服器或者個人 PC 的處理器架構不同,並且路由器的處理器本身性能較弱,幾乎不可能直接在路由器上進行編譯生成 .ipk 文件,因此需要交叉編譯來實現
而官方的 OpenWrt 倉庫就提供了一個方便使用的交叉編譯環境
以 Debian / Ubuntu 為例,參考 官網給出的要求 ,可以通過下面命令來進行安裝依賴包
安裝/更新好這些依賴之後,就可以通過 git 拉取 OpenWrt 倉庫了
通常由於倉庫較大以及網速問題,可能會需要很久,其實可以通過 --depth 來限制拉取的倉庫深度,或者通過鏡像站來加速拉取,當然也可以兩者同時採用
進入 openwrt 倉庫後,首先需要更新軟體包列表 feeds ,它是在 OpenWrt 中共用位置的包的集合。運行以下命令即可更新內置軟體包列表並鏈接到編譯工具中:
通常使用圖形化菜單界面來進行配置編譯選項,依次配置處理器架構、具體的處理器型號以及設備
以小米 mini 路由器為例,應該將他們配置成如下圖所示
這一步就是獲取對應設備交叉編譯所需的編譯鏈
可以先搜索有沒有已經配置好的含有 Makefile 的倉庫,有了適配過的 Makefile 文件就可以很方便的來編譯源碼生成 .ipk 文件了
以 minieap 為例, github 上有已經完成的倉庫,依次可以直接拉取來編譯
在拉取完成倉庫後,就可以再次配置編譯選項,將需要編譯成 .ipk 的功能配置成模塊編譯,也就是標記成 M
對於 minieap 來說,在 Network 找到對應選項並配置成 M 即可,如下圖
配置完成後就可以進行編譯了,編譯命令也很簡單,以 minieap 為例如下所示
編譯完成後, .ipk 文件會生成在 ./bin/packages/<YourArchitecture>/base 目錄下,將其拷貝到路由器上就可以通過 opkg 進行安裝使用了