为了达到自己编写一个程序打包成ipk,并能在OpenWRT上运行的目的。我在网上找了些学习的资料。
本人参考的是:如何在OpenWRT上做开发
感谢该网友的耐心解答。虽然有现成的步骤,博主还是喜欢亲自实践一下,写下自己的实践过程。
第一步:生成SDK
make menuconfig 选上 “Build the OpenWRT SDK”
在 trunk目录下,执行:
$ make menuconfig
选择对应的"Target System"与"Target Profile",并选上"Build the OpenWrt SDK"。
然后 Save,退出。再make一次。
$ make V=99
make 完成之后,在 bin/ar71xx/ 目录下会生成SDK的压缩文件:
OpenWrt-SDK-ar71xx-generic_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-i686.tar.bz2
第二步:安装SDK
将上面所生成的 OpenWrt-SDK-ar71xx-generic_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-i686.tar.bz2 复制到其它路径下(指可以不在OpenWrt的源码路径下),再解压出来。
比如我将其放到 ~/Workspace/OpenWRT/ 路径下:
$ cp bin/ar71xx/OpenWrt-SDK-ar71xx-generic_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-i686.tar.bz2 ~/Workspace/OpenWRT $ cd ~/Workspace/OpenWRT $ tar jxvf OpenWrt-SDK-ar71xx-generic_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-i686.tar.bz2
在 ~/Workspace/OpenWRT/ 路径下就生成了 OpenWrt-SDK-ar71xx-generic_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-i686 目录。
据说这个目录结构跟 OpenWrt的源码目录结构差不多。
第三步:创建项目程序
其实,这里可以是任意我们想要加入的程序,库等。这里就以helloword为例。
在任意路径下,创建helloword项目。比如这里还是在 ~/Workspace/OpeWRT 目录下。
$ cd ~/Workspace/OpenWRT $ mkdir helloword $ cd helloword $ touch helloword.c Makefile
在 ~/Workspace/OpenWRT/ 目录下创建了 helloword 目录,并生成 helloword.c与Makefile文件。
如下为 helloworld.c的内容:
#include <stdio.h> int main() { printf("This is my hello word!\n"); return 0; }
Makefile的内容:
helloworld : helloworld.o $(CC) $(LDFLAGS) helloworld.o -o helloworld helloworld.o : helloworld.c $(CC) $(CFLAGS) -c helloworld.c clean : rm *.o helloworld
首先,确保在程序没问题,在本地能正常编过。为了检验一下,可以就地 make 一下,看程序本身有没有问题。
这个程序都如些之简单了,本人自己了make了一下,OK,再run了一下,正常。
第四步:将项目加入到OpenWrt的packages中
明日继续~