OpenWRT编译成功之后,相应编译得到的文件会被放在编译的根目录下的bin/{TARGET}/下面。比如说我编译完之后的相应的文件都可以在bin/ar71xx/的文件夹下面找到,其中的packages文件夹里面包含了我们再配置文件里设定的所有编译好的软件包,这些软件包不一定都被编译进了固件当中,只有那些在配置文件中(也就是在make menuconfig的时候)一Ctrl+Y选中的软件包才会被编译进固件当中,一Ctrl+M选中的软件包如果需要的话需要单独再在openwrt中进行安装。
在编译的根目录下会有一个dl的目录,这个目录其实就是”download“的缩写,在编译的前期,需要熊网络下载的数据包都会放在这个目录下,这些软件包的一个特点就是会自动安装在所编译的固件中。如果我们需要膝盖源码包,只需要将更改好的源码包打包成相同的名字放在这个目录下,然后开始编译即可。编译时,会将软件包解压到build_dir目录下。也可以自己在dl里面创建自己的软件包,然后更改相关的配置文件,让openwrt可以识别这个文件包。
新建和编译自己的packages:对于自己新建的package,在不需要随固件一起安装时,也就是这个package是作为一个可选软件包的,可以利用SDK环境来单独编译,编译完成之后会生成一个ipk包,利用opkg installxxx.ipk来安装这个软件。
下面以建立一个helloworld为例(相关的原始例子说明可以在openwrt的官网上找到):
1.建立源码目录:
cd package
mkdir Helloworld ; cd Helloworld
mkdir src
touch src/Makefile /* Helloworld 编译Makefile */
touch ./Makefile /*建立顶层Makefile,这个Makefile文件是OpenWRT读的*/
(1)首先,编写helloworld程序
/****************
* Helloworld.c
* The most simplistic C program ever writ