搜索
查看: 5154|回复: 0

OpenWrt基本知识

[复制链接]

714

主题

354

回帖

2669

积分

管理员

本论坛第一帅

积分
2669

热心会员推广达人宣传达人突出贡献优秀版主荣誉管理论坛元老

QQ
发表于 2018-5-25 11:00:49 | 显示全部楼层 |阅读模式 来自 甘肃陇南

1. 编译OpenWrt

OpenWrt编译系统 – 安装
OpenWrt编译 – 说明

2. OpenWrt目录结构

2.1 bin(输出)

bin目录存放make的结果:
OpenWrt编译好的开发环境,比如toolchain, SDK,Image制作工具
package安装包(ipk包)
烧入路由器的bin文件

2.2 build_dir(编译源码)

build_dir存放的是软件源码目录,解压缩后的程序源码均放在该目录,build_dir下的子目录如下:
host:建立目标工具链时的临时目录,比如automake, autoconf, flex, sison, gettext,libtool等
linux-ar71xx_generic: 存放kernel,mtd等源码
target-mips_r2_uClibc-0.9.33.2:package编译的临时目录, 比如存放bzip, curl等等
toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2: 对应硬件的工具链的目录,存放的是编译toolchain所需的一些源码包,比如uClibc, binutils,gcc等源码包

2.3 staging_dir(编译输出)

用于存放构建目标系统(如MIPS, ARM等)镜像的工具软件
host: 宿主系统使用的工具
target-mips_r2_uClibc-0.9.33.2: 目标系统使用的软件包
toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2: 目标系统的工具链
build_dir是编译的地方,那么这里就是把build_dir的结果放在了staging_dir目录了。
2.4 dl (下载包)


软件源码包download目录,通过网络下载的软件包(.tar.bz2, .tar.gz, *.tar.xz)均存放在此目录,一般编译某个软件时会从此目录找对应的软件源码包,然后解压到指定的源码目录中
如果此目录没有对应软件的源码包,则根据此软件Makefile文件中指定的网络地址去下载,下载好的软件包会自动存放在该目录
2.5 docs(文档目录)

存放的是.tex文件,需要使用latex编译输出PDF后才可以阅读

2.6 package

存放基础的软件包
比如busybox, hostapd, firewall, fuse
一个子目录对应一个软件包,软件包组成:
Makefile文件:内部包含着软件的名字和版本,以及下载该软件包服务器网络地址;
patch目录:下载好对应版本的软件包后,打上对应的patch;
files目录:存放此程序的默认配置文件;

2.7 feeds

存放扩展的软件包, 指导如何下载和编译对应的模块
make之后的新增目录。里面存放的就是按照feeds.conf.default文件中列举的要处理的文件,所展开得到的目录。目录中存放的东西,和package目录中大致相似。
feeds中的软件扩展了OpenWrt的基本功能,它将所有的软件链接到package/feeds中。这些软件大多数都是编译成.ipk格式的。这里面有内核模块文件,各种软件的源码,以及patch文件和Makefile用来下载源码的。
./scripts/feeds update -a: 升级所有扩展软件源列表 (这一步的结果是:产生$(TOPDIR)/feeds目录,存放的就是执行 feeds.conf.default文件后的结果:从指定svn中下载的文件)
./scripts/feeds install -a:安装所有扩展软件 (这一步的结果是:在package目录中多了一个feeds目录,里面存放的子目录是到$(TOPDIR)/feeds目录的链接)
在$(TOPDIR)/Makefile中有如下定义:
# update all feeds, re-create index files, install symlinks
package/symlinks:
[pre]
        $(SCRIPT_DIR)/feeds update -a
        $(SCRIPT_DIR)/feeds install -a
[/pre]

所以使用make package/symlinks即可执行以上两步操作。
2.8 include

存放的是编译时所需要的一些通用的Makefile脚本, 编译时会include该目录中的makefile脚本
2.9 scripts

存放一些程序的脚本,可通过./script/feeds search/install 进行搜索或者安装相关软件;
2.10 toolchain

OpenWrt编译目标toolchain时依赖的Makefile、配置文件和源码。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
有志者,事竟成,破釜沉舟,百二秦关终属楚. 苦心人,天不负, 卧薪尝胆 ,三千越甲可吞吴
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表