二、openwrt自定义编译包的过程

openwrt开发 专栏收录该内容
5 篇文章 0 订阅

Examaple

  • 如何开发一个自定义应用
    一定要在编译好的SDK环境进行
    1. 在packet下建立相关的自定义的包

    mkdir src
    touch Makefile
    同时在window在开始操作
    在这里插入图片描述
    在这里插入图片描述
    2. 拷贝一个makefile模板,进行修改
    $(eval ( c a l l B u i l d P a c k a g e . (call BuildPackage. (callBuildPackage.PKG_NAME))) 当前编译的包需 要再主机内使用
    我们可以从packet包 其他的包的Makefile复制来作为模板,在此基础上进行修改,此处用openwrt-17.01.4-17.01.4\package\kunteng\net\adbyby 的Makefile

  • 系统总Makefile–>package.Makefile—>hello.Makefile
    –>src.Makefile 调用关系

3. 进行源码文件中的源码设计与Makefile设计

  • hello的 Makefile ,要符合系统的Makefile规范
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk  //

PKG_NAME:=hello   //包名
PKG_VERSION:=1	//版本
PKG_RELEASE:=1.0  //发行日期

include $(INCLUDE_DIR)/package.mk

define Package/$(PKG_NAME)
	SECTION:=utils   //放着通用的东西
	CATEGORY:=hello  //类别
	TITLE:=hello test ipk  //题头
//	DEPENDS:=+libstdcpp  //依赖什么包
//	URL:=http://www.adbyby.com/  //下载地址
endef

define Package/$(PKG_NAME)/description  //描述

hello,my world!

endef

define Build/Prepare //准备些什么东西,在准备的时候要干什么事
	mkdir -p $(PKD_BUILD_DIR) //创建一个文件夹,在build_dir目录下
	$(CP) ./src/* $(PKD_BUILD_DIR)
endef

define Build/Configure //配置
endef

define Build/Compile  //编译过程 ,编译选项,类似gcc
	$(MAKE) -C $(PKG_BUILD_DIR) \ 	// make该目录的包
		$(TARGET_CONFIGURE_OPTS) \   //全局的编译属性
		CFLAGS="$(TARGET_CFLAGS)" \
		CPPFLAGS="$(TARGET_CPPFLAGS)"\
		LDFLAGS="$(TARGET_LDFLAGS)"
endef

define Package/$(PKG_NAME)/install  //如何安装
	$(INSTALL_DIR) $(1)/bin       //安装目录放在哪
	$(INSTALL_BIN) $(PKG_BUILD_DIR)/hello $(1)/bin/  //安装的bin文件放在哪
endef									//放在hello下 还有放在/bin下


$(eval $(call BuildPackage,$(PKG_NAME)))
//表明当前这个编译工具是要在主机上使用
  • 在hello目录的Makefile要引起src的 Makefile 进行编译,所以在src 下要创建一个Makefile,此Makefile是编译src里的文件
    在这里插入图片描述
    在这里插入图片描述

    • 完成,并把它们拖进linux
      在这里插入图片描述

      4. 进行 make menuconfig 的配置
      因为config.build的关系,它会自动被加载进menuconfig的菜单栏
      在这里插入图片描述

  • 选择对应的应用模块程序,选择 为M 进行模块类型编译

  • ‘’M‘’ 代表编译成一个单独的 ipk文件

  • ‘’*‘ 代表编译内核里重新编译个镜像

  • 保存退出
    在这里插入图片描述

    5. make package/hello/copmile V=s 模块指定编译
    在这里插入图片描述
    6. 编译完成后在 /bin/packages/i386_pentuum4/base 下找到对应的ipk包
    在这里插入图片描述

    • 以上操作在linux中完成

    • 把所编译的 hello.ipk 包拿出来

    • 下面操作在lede中完成
      7. python -m SimpleHTTPServer 8080 wget 方式进行ipk包传递/导入
      在这里插入图片描述

        * scp 方式进行包的传递*
      
scp book@192.168.1.106:/home/book/openwrt-gcc/c----openwrt-17.01.4.-17.01.4/bin/packages/1386_pentium4/base/hello_1-1.0_i386_pentium4.ipk    /tmp/

在这里插入图片描述

wget 的方式
在这里插入图片描述

8. opkg install hello_1-1.0_i386_pentium4.ipk
在这里插入图片描述

  • 成功
    在这里插入图片描述
  • 0
    点赞
  • 0
    评论
  • 3
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值