YSC's blog

  1. 1. 准备
  2. 2. 编译
  3. 3. 附加说明

本文以编译 vlmcsd 为例说明如何使用 OpenWRT 编译第三方软件包。

准备

安装 OpenWRT SDK 所需要的软件包,可以在 这里 找到主流 Linux 发行版的安装命令。
我使用的是 Ubuntu 17.10,安装命令如下:

sudo apt-get install build-essential subversion libncurses5-dev zlib1g-dev gawk gcc-multilib flex git-core gettext libssl-dev

下载对应固件的 OpenWRT SDK,可以在 https://downloads.openwrt.org/ 找到。
下载完成后解压,解压命令 tar xf openwrt-sdk-filename.tar.xz

解压后 cd 到解压出来的文件夹中

编译

将要编译的软件包代码 clone 到 package 目录

git clone https://github.com/ysc3839/openwrt-vlmcsd.git package/vlmcsd

执行 make menuconfig 并选中你要编译的软件。我这里编译时是自动选中的,所以直接保存即可。

执行 make package/vlmcsd/compile V=s 开始编译。

V=s 参数代表输出所有编译信息,可以不加。但如果编译出错,要加上此参数才能看到错误信息。

加上 -jN 指令可以让 N 个编译任务同时运行。这里的 N 建议设为 CPU 核心数+1,比如我的 CPU 是 8 核心,参数就是 -j9

对于本文的例子,因为只编译一个软件包,加上此参数并不能带来明显的速度提升,所以我说不加的。

编译后生成的 ipkg 可以在 bin 目录中找到。

附加说明

文中的 openwrt-vlmcsd 项目 fork 自 cokebar/openwrt-vlmcsd。我修正了 bug 并做了部分改进。

cokebar 还为 vlmcsd 编写了 luci 界面 luci-app-vlmcsd,可以参考本文的方法来编译。

KMS 有自动发现内网中激活服务器的功能。如果你安装了 luci-app-vlmcsd,选择 Auto activate自动激活 选项并应用即可。

如果你没安装 luci-app-vlmcsd,可以手动编辑 /etc/dnsmasq.conf,在文件最后面加入:

srv-host=_vlmcs._tcp.lan,hostname.lan,1688,0,100

保存后重启 dnsmasq: /etc/init.d/dnsmasq restart

在 Windows 中执行 nslookup -type=srv _vlmcs._tcp.lan 可以检测是否设置成功。

本文作者 : ysc3839
本文使用 CC BY-NC-SA 4.0 International 协议 进行许可。
本文链接 : https://blog.ysc3839.com/post/vlmcsd-and-openwrt-sdk.html

本文最后更新于 天前,文中所描述的信息可能已发生改变