OpenWRT rootfs 的生成过程[通俗易懂]

OpenWRT rootfs 的生成过程[通俗易懂]在include目录中有一个rootfs.mk,里面主要是:1.定义了opkg=2.定义了prepare_rootfsopkg=省略TARGET_DIR_ORIG:=$(TARGET_ROOTFS_DIR)/root.orig-$(BOARD)defineprepare_rootfs…省略…rootfs.mk被以下两个…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

在include目录中有一个 rootfs.mk ,里面主要是:
1.定义了 opkg =
2.定义了 prepare_rootfs

opkg = 省略
TARGET_DIR_ORIG := $(TARGET_ROOTFS_DIR)/root.orig-$(BOARD)
define prepare_rootfs
  ...省略...

rootfs.mk 被以下两个文件使用

root@localhost:/home2/lql/openwrt# grep "rootfs\.mk" include/  package/ scripts/ feeds/  -rn
include/image.mk:22:include $(INCLUDE_DIR)/rootfs.mk
package/Makefile:11:include $(INCLUDE_DIR)/rootfs.mk

这里我们看 package/Makefile,里面有这么一段:

$(curdir)/install: $(TMP_DIR)/.build $(curdir)/merge $(if $(CONFIG_TARGET_PER_DEVICE_ROOTFS),$(curdir)/merge-index)
	- find $(STAGING_DIR_ROOT) -type d | $(XARGS) chmod 0755
	rm -rf $(TARGET_DIR) $(TARGET_DIR_ORIG)
	mkdir -p $(TARGET_DIR)/tmp
	$(call opkg,$(TARGET_DIR)) install \
		$(call opkg_package_files,$(shell cat $(PACKAGE_INSTALL_FILES) 2>/dev/null))
	@for file in $(PACKAGE_INSTALL_FILES); do \
		[ -s $$file.flags ] || continue; \
		for flag in `cat $$file.flags`; do \
			$(call opkg,$(TARGET_DIR)) flag $$flag `cat $$file`; \
		done; \
	done || true

	$(CP) $(TARGET_DIR) $(TARGET_DIR_ORIG)

	$(call prepare_rootfs,$(TARGET_DIR),$(TOPDIR)/files)

这里面关键的地方是

$(call opkg,$(TARGET_DIR)) install \
		$(call opkg_package_files,$(shell cat $(PACKAGE_INSTALL_FILES) 2>/dev/null))

回头看rootfs.mk 里对 opkg 的定义

opkg = \
  IPKG_NO_SCRIPT=1 \
  IPKG_INSTROOT=$(1) \
  TMPDIR=$(1)/tmp \
  $(STAGING_DIR_HOST)/bin/opkg \
	--offline-root $(1) \
	--force-postinstall \
	--add-dest root:/ \
	--add-arch all:100 \
	--add-arch $(if $(ARCH_PACKAGES),$(ARCH_PACKAGES),$(BOARD)):200

最终展开就是

//类似于
staging_dir/host/bin/opkg  --offline-root root-sunxi    install  *.ipk

这条命令作用就是将*.ipk 文件安装到 root-sunxi 目录下
在这里插入图片描述
最终root-sunxi 目录下会有这文件
在这里插入图片描述
TODO
:可继续研究一下OpenWRT 的 Makefile

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/188505.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • wlan、wifi、蜂窝、无线局域网的区别「建议收藏」

    wlan、wifi、蜂窝、无线局域网的区别「建议收藏」1、WLAN跟无线局域网是相同概念,WLAN是缩写。2、无线局域网,英文全名:WirelessLocalAreaNetworks;简写为:WLAN。它相当便利的数据传输系统,它利用射频(RadioFrequency;RF)的技术,使用电磁波取代旧式双绞铜线(Coaxial)所构成的局域网络,在空中进行通信连接,使得无线局域网络能利用简单的存取架构让用户透过它,达到信息随身化。3、Wi-Fi,中文名无线保真,是一种可以将个人电脑、手持设备(如iPad、手机)等终端以无线方式互相连接的技术

    2022年7月11日
    97
  • linux中hdfs命令_linux下adb配置

    linux中hdfs命令_linux下adb配置Linux下的HDFS命令1.hdfs常用操作的命令格式  hadoopfs-ls对hdfs下一级目录的查看  hadoopfs-lsr对hdfs目录的递归查看  hadoopfs-mkdir创建目录  hadoopfs-put从linux上传文件到hdfs  hadoopfs-get从hdfs下载文件到linux  hadoopfs-text查看文件内容  hadoopfs-rm删除文件  hadoopfs-rm

    2022年10月5日
    0
  • 【转载】VS工具使用——代码生成函数关系图

    【转载】VS工具使用——代码生成函数关系图

    2021年11月18日
    87
  • 随机梯度下降法概述与实例分析_梯度下降法推导

    随机梯度下降法概述与实例分析_梯度下降法推导机器学习算法中回归算法有很多,例如神经网络回归算法、蚁群回归算法,支持向量机回归算法等,其中也包括本篇文章要讲述的梯度下降算法,本篇文章将主要讲解其基本原理以及基于SparkMLlib进行实例示范,不足之处请多多指教。梯度下降算法包含多种不同的算法,有批量梯度算法,随机梯度算法,折中梯度算法等等。对于随机梯度下降算法而言,它通过不停的判断和选择当前目标下最优的路径,从而能够在最短路径…

    2022年9月10日
    1
  • mysql获取当前时间+1天_mysql获取当前时间,前一天,后一天[通俗易懂]

    mysql获取当前时间+1天_mysql获取当前时间,前一天,后一天[通俗易懂]负责的项目中,使用的是mysql数据库,页面上要显示当天所注册人数的数量,获取当前的年月日,我使用的是CURDATE(),错误的sql语句eg:SELECTCOUNT(*)FROMUSERWHEREregisterDate>=CURDATE()ANDregisterDate<CURDATE()+1;虽然获取到的数量在测试环境中是正确的,但在发布到线上的时候,发…

    2022年10月5日
    0
  • Druid连接池监控的两个坑

    Druid连接池监控的两个坑阿里的Druid大家都知道是最好的连接池,其强大的监控功能是我们追求的重要特性。但在实际情况中也有不少坑,说下最近遇到的一个坑吧!问题1:不断打印error级别的错误日志sessionipchangetoomany下面是其报错的关键源码com.alibaba.druid.support.http.stat.WebSessionStat#addRemoteAddre…

    2022年7月23日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号