说明:本文介绍如何为 OpenWrt 单独编译 ipk 插件,部分软件可能需要同时编译依赖文件才能让软件正常运行,考虑到编译过程其实相差不大,这里提供一个小小的示例,可以举一反三。

openwrt.png

前提:必须先完整编译一次固件才能单独编译 ipk 软件包。在此大前提下,若需要单独更新 OpenWrt 某个插件或者需要增加安装某个插件的时候,则可以单独编译对应的 ipk 插件进行安装,而不必编译整个系统。

克隆源码

以编译 Rosy 主题为例:

# 进入 OpenWrt 目录
cd ~/openwrt/

# 克隆 Rosy 主题源码到 package 目录
git clone https://github.com/rosywrt/luci-theme-rosy.git package/luci-theme-rosy

配置组件

make menuconfig

进入 LuCI --> Themes 选项找到 luci-theme-rosy

然后配置该选项为'M',保存退出。M表示选中插件但不编译进固件。如下:

<M> luci-theme-rosy....................... Rosy Theme

编译插件

make package/luci-theme-rosy/luci-theme-rosy/compile V=99
注:V=99 表示输出详细的 debug 信息

我这里是 x86_64 架构,编译完成插件包默认存放路径:~/openwrt/bin/packages/x86_64/base目录下

上传 IPK 软件包到 OpenWrt

scp luci-theme-rosy_git-19.069.38477-5ed9705-1_all.ipk root@192.168.199.1:/tmp

安装 IPK 软件包

SSH 进入路由器,安装tmp目录下的 ipk 软件包,例如

opkg install /tmp/luci-theme-rosy_git-19.069.38477-5ed9705-1_all.ipk

清理编译

编译完成,若需要清理刚刚编译的插件,可通过以下命令:

make package/luci-theme-rosy/luci-theme-rosy clean

写在最后

虽然 OpenWrt 编译出的内核模块也是一个 ipk 包,它们的名字基本会以 kmod- 作为前缀,但它是无法独立地运行的,内核对内核模块进行严格的版本检查,即使一个小版本号不一致也会导致加载的不成功,因此对于新手用户尽量不要尝试卸载 / 安装内核模块,这极大可能会影响 Open­Wrt 正常使用。


相关推荐

文章作者:喵斯基部落
原文地址:https://www.moewah.com/archives/4658.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。非商业转载及引用请注明出处(作者、原文链接),商业转载请联系作者获得授权。