这个pdf很好,对openwrt的入门有很大帮助:
http://www.ccs.neu.edu/home/noubir/Courses/CS6710/S12/material/OpenWrt_Dev_Tutorial.pdf
下面是我根据这个pdf做的笔记(不准确的地方,欢迎指正)。
1.openwrt使用buildroot编译过程
问题:什么是openwrt buildroot?
文件系统通常要包含很多第三方软件,比如busybox,udhcpc,tftp,apache,sqlite,PHP,iptable,DNS等,为了避免繁杂的移植工作。buildroot应运而生。通过menuconfig配置我们需要的功能,不需要的功能去掉,再执行make指令编译,buildroot就会自动从指定的服务器上下载源码包,自动编译,自动搭建成我们所需要的嵌入式根文件系统。
Buildroot实际上是一个编译的脚本,它包括一组Makefiles文件和补丁文件,主要用于简单系统或嵌入式系统的编译,支持多种CPU的架构,其中包括x86、ARM、MIPS和PowerPC等。它可以生成交叉编译的工具链,文件系统,内核镜像和bootloader镜像等。OpenWRT Buildroot是创建OpenWRT系统首选的工具链,OpenWRT Buildroot的主要任务就是生成交叉编译链和文件系统。
所以前期准备工作是配置目标平台和需要用到的软件包,然后buildroot的执行过程如下:
1.下载交叉编译工具、内核头文件等;
2.交叉编译工具安装在源码根目录的staging_dir/中;
3.下载软件压缩包到源码根目录的dl/中;
4.创建生成目录:源码根目录的build_dir/;解压软件包到这个目录,并在此进行软件包和应用的编译;
5.创建目标目录:源码根目录的build_dir/target-xxx/root和目标文件系统(包含最终的根文件系统);
6.用户的应用拷贝到相应的目标文件系统内,并压缩成系统固件映像。
2.openwrt关于BuildPackage的内容
pkg_ *定义软件包信息相关的变量,如在哪里下载,版本信息• PKG_NAME -The name of the package, as seen via menuconfig and ipkg
• PKG_VERSION -The upstream version number that we're downloading
• PKG_RELEASE -The version of this package Makefile