在OpenWrt系统的官方应用程序库里,集成了很多很多有用的程序,你可以通过opkg install命令很方便的安装,但是总是会有一些特殊的应用是游离在外的,或者是官方收集的是早期版本的应用而你想采用最新版本的,这时你就需要进行应用程序的自编译来生成应用的安装程序文件(.ipk)。今天我们就来讲解一下OpenWrt应用程序自编译(1)-KMS的实现过程。
首先我们需要搭建OpenWrt系统的自编译环境(参考网站前期文章),再利用SDK工具来完成自编译过程。在自编译之前,先重申两条原则:1)不要用roo账户或sudo命令进行自编译,一定要用普通账户!!!;2)编译的目录路径中不要带空格。切记切记,否则自编译过程无法正常进行。
下面以安装了OpenWrt19.07.3版本的树莓派3B+为例,来说明KMS的自编译全过程:
1、下载、安装SDK并进行配置
先要找到相应的SDK下载地址,进入OpenWrt官网首页
点左边的“Downloads”,进入下载页
点“Stable Release builds“进入发布版平台
选”19.07.3/“进入相应的版本空间
进入”targets/”目录
树莓派的分类为brcm2708,因此进入“brcm2708/”目录
树莓派3B+属brcm2710分类,进入“brcm2710/”目录
这里我们就可以发现相应的SDK文件了,可通过点击直接下载,然后通过WinSCP上传至自编译环境(注:以Ubuntu20.04为例)的相应目录下,如 /home/hzshw;也可以通过下载命令直接下载
cd /home/hzshw wget https://downloads.openwrt.org/releases/19.07.3/targets/brcm2708/bcm2710/openwrt-sdk-19.07.3-brcm2708-bcm2710_gcc-7.5.0_musl.Linux-x86_64.tar.xz
将文件解压并删除原压缩文件
tar xf openwrt-sdk-19.07.3-brcm2708-bcm2710_gcc-7.5.0_musl.Linux-x86_64.tar.xz rm openwrt-sdk-19.07.3-brcm2708-bcm2710_gcc-7.5.0_musl.Linux-x86_64.tar.xz
这时用 ls 命令查看,就会发现在/home/hzshw目录下多了一个 openwrt-sdk-19.07.3-brcm2708-bcm2710_gcc-7.5.0_musl.Linux-x86_64 目录,用 cd 命令进入该目录
ls cd openwrt-sdk-19.07.3-brcm2708-bcm2710_gcc-7.5.0_musl.Linux-x86_64
目录里包含的就是SDK的初始环境,接下来我们还必须进一步配置SDK环境
更新feeds列表并安装
./scripts/feeds update -a ./scripts/feeds install -a make menuconfig #采用缺省状态,直接退出保存设置即可
注:这里运行make menuconfig命令后后续自编译时就不会出现要求配置的界面了,当然你放在后面运行也是可以的。
这时自编译要用到的SDK工具就配置好了,下一步就可以进入应用程序的自编译过程了。
2、KMS的自编译
KMS在OpenWrt平台上应用,可具体参考如下网站:
1)vlmcsd分项目
源码:https://github.com/cokebar/openwrt-vlmcsd
2)luci-app-vlmcsd分项目
源码:https://github.com/cokebar/luci-app-vlmcsd
将KMS及对应的Luci源程序先下载到SDK的 package 目录下
git clone https://github.com/cokebar/openwrt-vlmcsd.git package/openwrt-vlmcsd git clone https://github.com/cokebar/luci-app-vlmcsd.git package/luci-app-vlmcsd
然后编译
make package/openwrt-vlmcsd/compile V=s make package/luci-app-vlmcsd/compile V=s
在 bin/packages/aarch64_cortex-a53/base 目录下就可以发现自编译生成的KMS及对应的Luci文件
vlmcsd_svn1113-1_aarch64_cortex-a53.ipk
luci-app-vlmcsd_1.0.2-1_all.ipk
通过WinSCP将以上两个文件上传至树莓派3B+软路由,通过 opkg install 命令安装即可。