【搬家】linux下交叉编译环境的建立

 //原文发布在我原来的blog,原文发布时间:2012.3.15

学校上网换了上网助手,所以以前配置在路由器上的拨号软件不能运行了,不过幸运的是没多长时间新版上网助手的加密方式就被破解出来了。

换上了xujif版的上网助手确实好用多了,但这学期我换了一个新手机,可以使用wifi上网了,但直接使用笔记本建立无线热点却不认,使用Connectify配置的WLAN不和笔记本在同一网段内,共享啊,还有远程关机是个问题,所以我又有了想把上网助手配置到路由上的想法了。

根据xujif博客“拨号助手pppd插件–用openwrt路由共享上网”,自己进行了初步尝试,但他编译完成的pppd插件是基于2.4.5的,而我的路由器上的pppd版本是2.4.4,尝试了好几个固件都是这个版本的,遂进行交叉编译。

我使用的编译环境是虚拟机下的ubuntu10.10,根据网上一篇openwrt编译教程,我简略的写下建立交叉编辑环境的步骤以及所遇到的问题。

1.首先安装交叉编译环境所需的软件包

    sudo apt-get install gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils subversion libncurses5-dev ncurses-term zlib1g-dev

    然后

sudo apt-get update

更新软件包

2.获取OpenWrt源代码和安装包,更新

1.svn checkout svn://svn.openwrt.org/openwrt/trunk
2.cd trunk
3../scripts/feeds update -a
4../scripts/feeds install -a

3.配置编译选项
make menuconfig
这一步是配置交叉编译的环境,由于我用的路由器DB120是BCM6358芯片的,所以修改这个选项就可以了。保存并退出配置
4.编译交叉编译环境
make V=99
V=99表示输出详细的debug信息,加上-j 2,则是使用双核编译,如make -j 2 V=99理论上可加快编译速度,我没感觉出来,不建议使用
这一步耗时比较长,主要是有些文件是需要随时下载的,有些文件下载速度10k以内,我执行这部花费了4个小时。
当然网上有帖子说可以中断编译,之后用迅雷下载好,放到哪个文件夹,我没试过,主要不知道去那里去下载。
这步之后,在trunk文件夹下出现了一个名为staging_dir的文件夹,表明bcm 63xx的OpenWrt和相对工具链已经编译好了。
staging_dir的文件夹,网上有帖子说是99M大小,可我的却是159.8M,应该是版本原因。

5.设置系统变量
这步我也不是很清楚是否必须执行,因为我在编译文件的时候就出现了致命错误,staging_dir的系统变量没有设置,不清楚怎么回事了。
但最好还是要设置一下的好。可以用export命令查看和添加系统变量。

6.进行编译
切换到当前需要编译的文件目录下,使用make进行编译,我有制作好的makefile文件,里面设置好所需要交叉编译的gcc路径(一般是”$HOME/trunk/staging_dir/toolchain-mips_gcc-4.6-linaro_uClibc-0.9.33/bin/”因版本略有不同),之后编译就可以了。

 

本文参考网上的2篇流传甚广的帖子,在此把原文地址贴出来以示尊敬。

http://www.openwrt.org.cn/hdwiki/index.php?doc-view-6

http://bbs.xmlad.com/viewthread.php?tid=521&extra=page%3D1

还有就是在配置编译环境过程中,对我帮助甚大的xujif和gaoqin表示感谢。

本人认识浅显,如有错误疏漏之处,请高手指出。

你可能感兴趣的:(linux,openwrt,交叉编译,cumt,路由上网)