编译出的文件系统在ap-openwrt/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/root-ramips
---target/linux/ 目录里面是各个平台(arch)的相关代码
---target/linux//config-3.10 文件就是配置文件了
---build_dir/toolchain-* 对应硬件的工具链的目录
---staging_dir/toolchain-* 是工具链的安装位置
- tools - 编译时需要一些工具,tools里包含了获取和编译这些工具的命令。里面是一些Makefile,有的可能还有patch。每个Makefile里都有一句 $(eval$(call HostBuild)),表示编译这个工具是为了在主机上使用的。
- toolchain - 包含一些命令去获取kernel headers, C library, bin-utils, compiler, debugger
- target - 各平台在这个目录里定义了firmware和kernel的编译过程。
- package - 包含针对各个软件包的Makefile。openwrt定义了一套Makefile模板,各软件参照这个模板定义了自己的信息,如软件包的版本、下载地址、编译方式、安装地址等。
- include - openwrt的Makefile都存放在这里。
scripts - 一些perl脚本,用于软件包管理。
- dl - 软件包下载后都放到这个目录里
- build_dir - 软件包都解压到build_dir/里,然后在此编译
- staging_dir - 最终安装目录。tools, toolchain被安装到这里,rootfs也会放到这里。
- feeds -
bin - 编译完成之后,firmware和各ipk会放到此目录下。
单独编译应用
在顶层目录
rm bin/ramips/packages/base/xxx.ipk
make package/xxx/compile V=s
安装这个应用opkg install xxx.ipk
卸载应用 opkg remove xxx
查看有安装了哪些ipk包 opkg list-installed
top顶层文件夹会有一个叫dl的目录,所有从因特网下载的软件包源代码都会在编译前期放在这个目录,然后会自动加进去编译菜单中,也就是make menuconfig的时候,出现在编译菜单一些软件包。如果我们需要更改这些源码包里面的内容,只需要将更改好的源码包打包成相同的名字放在这个目录下,然后开始编译即可。编译时,会将软件包解压到build_dir目录下。所以当软件包的Makefile里的URL路径不可用,可以自己在其他网站手动下载源代码,并且放到 "dl" 文件夹。内核源码在build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7628/linux-3.10.14里面编译出来的,应该是dl/linux-3.10.14.tar.xz解压到里面的,target/linux//config-3.10 文件就是配置文件?了