OpenWrt编译软件包

首先需要在虚拟机上搭建好OpenWrt环境,具体可见我的另一篇文章《OpenWrt环境搭建和编译过程

正常来说,我们可以通过OpenWrt官网下载软件包(根据自己设备的平台架构),直接放入到设备进行安装,而不需要自己去编译,官网下载地址:https://openwrt.org/docs/techref/instructionset/start

当然少数时候也需要我们自己进行编译。我这边以编译Snort (NIDS) 为例,列出编译软件包的步骤(编译好交叉工具链的前提下)。

1、进入到OpenWrt主目录。

2、输入如下命令:
$ ./scripts/feeds update -a #更新软件列表,不更新有很多软件包都找不到
$ ./scripts/feeds install -a #安装软件列表
$ make defconfig #生成配置文件
$ make menuconfig

3、进入到配置界面,找到路径 Network->Firewall->snort,按y选定,并保存退出。若不知道需要安装的包在什么路径,可以输入 / 进入查找界面。

4、编译,输入如下命令:
$ make package/feeds/packages/snort/compile V=99
如果你的 CPU 有多个线程,可以加上 -j线程数 来使用多线程编译,例如:make package/aria2/compile V=99 -j4 #启用4个线程
编译出错的话,可以通过下面命令查看编译出错的信息:
$ make package/feeds/packages/snort/compile V=s

5、进入到bin/packages/xxxx/packages目录下,Snort的ipk包已经编译好,以及Snort依赖库的ipk包。
注:xxxx为不同架构名称不一致,根据自己的架构进入到相应目录即可。
libdaq_2.2.2-1_aarch64_generic.ipk
libdnet_1.12-1_aarch64_generic.ipk
libpcre_8.43-1_aarch64_generic.ipk
snort_2.9.11.1-8_aarch64_generic.ipk

6、将编译生成的ipk包,上传到目标板上安装运行。

  • 通过scp命令即可将生成软件包远程复制到目标板

  • 使用opkg install/remove即可安装卸载软件包

    Snort安装顺序:
    libdnet->libdaq->libpcre->libuuid->libnghttp->snort(libuuid和libnghttp也是snort依赖库,可以在bin/packages/xxxx/base目录下找到)

附1:使用SSH登录系统并使用Opkg管理软件包,命令如下:

命令描述
opkg update从OpenWrt包存储库中获取可用包的列表
opkg list显示可用包及其说明的列表
opkg list | grep -e searchterm按包名称或其描述中的搜索词筛选列表
opkg install packagename安装包
opkg remove packagename卸载以前安装的软件包

附2:软件包相关介绍
https://openwrt.org/packages/start

参考:https://www.mivm.cn/openwrt-sdk-package-foundation/

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1. 下载SDK 首先需要从OpenWrt官网下载SDK。选择与路由器硬件平台对应的SDK,例如:如果你的路由器是MT7620A芯片,则需要下载MT7620A SDK。 2. 解压SDK 将下载的SDK解压到任意目录下,例如:/opt/mt7620a_sdk。 3. 进入SDK目录 打开终端,进入SDK目录,例如:cd /opt/mt7620a_sdk。 4. 配置SDK 执行make menuconfig命令,进入SDK配置界面,进行以下配置: - Target System: 选择路由器的芯片类型,例如:MediaTek Ralink MIPS - Target Profile: 选择路由器的型号,例如:MT7620A based boards - Target Images: 选择编译软件包的目标平台,例如:ramips/mt7620a 5. 添加软件包源 执行以下命令,添加软件包源: echo "src/gz openwrt_custom http://openwrt.inkworm.com/chaos_calmer/15.05/mt7620a/packages/custom" >> /etc/opkg/customfeeds.conf opkg update 6. 安装编译工具 执行以下命令,安装编译工具: opkg install gcc make libpthread libstdcpp 7. 编写Makefile文件 在任意目录下创建一个文件夹,例如:/opt/my_package,并在该文件夹下创建一个名为Makefile的文件。在Makefile文件中编写软件包编译规则。 以下是一个简单的Makefile文件示例: ``` include $(TOPDIR)/rules.mk PKG_NAME:=hello-world PKG_VERSION:=1.0 PKG_RELEASE:=1 include $(INCLUDE_DIR)/package.mk define Package/hello-world SECTION:=utils CATEGORY:=Utilities TITLE:=Hello World DEPENDS:=@TARGET_ramips_mt7620a endef define Package/hello-world/description This is a Hello World package. endef define Build/Compile $(MAKE) -C $(PKG_BUILD_DIR) $(TARGET_CONFIGURE_OPTS) endef define Package/hello-world/install $(INSTALL_DIR) $(1)/bin $(INSTALL_BIN) $(PKG_BUILD_DIR)/hello-world $(1)/bin/ endef $(eval $(call BuildPackage,hello-world)) ``` 8. 编译软件包 执行以下命令,编译软件包: make package/hello-world/compile V=s 编译完成后,在SDK目录下的bin目录中可以找到编译好的软件包。 9. 安装软件包编译好的软件包拷贝到路由器上,并执行以下命令安装: opkg install hello-world_1.0-1_ramips_24kec.ipk 安装完成后,在路由器上执行hello-world命令即可看到输出结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半砖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值