openwrt+linux编译环境,openwrt交叉编译环境

首先下载OpenWrt-SDK-Linux-i686-1.tar.bz2包,解压缩

tar jxf  OpenWrt-SDK-Linux-i686-1.tar.bz2

为了方便,可以做个链接

ln -s /root/OpenWrt-SDK-Linux-i686-1/staging_dir_mipsel/bin/mipsel-linux-uclibc-gcc /usr/bin/mepsel-gcc

然后使用

/root/OpenWrt-SDK-Linux-i686-1/staging_dir_mipsel/bin/mipsel-linux-uclibc-gcc

来编译你的程序就可以了,有Make文件的,可以修改Make文件的CC行,使用mepsel-gcc编译。

有人跟我问,说链接的时候可能出错,我编译的都是简单的程序,实际上对于大型源码,需要链接的,请参考网上一个达人的编译办法Debian 下编译OpenWrt 和使用搭建交叉编译环境(buildroot)

编译OpenWrt后也就有了交叉编译需要的工具链(ToolChain),工具链其实在官方DownLoad是可以直接获取到的.

我们是在虚拟机下做这些的,首先给Debian更新一下sshd以便我们能方便操作。

su -

注销光盘源(vi /etc/apt/sources.list 然后在光盘源前加个#)

apt-get update

apt-get install ssh openssh-server

更新OpenWrt编译环境所需的软件包。

apt-get install build-essential bison flex zlib1g-dev libncurses5-dev subversion quilt intltool ruby fastjar unzip gawk

可以开始了。

cd /usr/src

svn co svn://svn.openwrt.org/openwrt/branches/backfire/

经过一段时间后,从官方SVN仓库获得用于编译最新发行版backfire的脚本。

接下来用普通用户权限来完成吧。

在root权限下先chown 用户  /usr/src/backfire

ctrl + D 退出root

开始下载源码和编译(友情提醒:过程漫长,需要有高速的带宽,建议在睡觉前执行.)

cd backfire

make menuconfig

选择好你要编译的硬件目标和所带的软件,rg100-a aa只要把前几个选项里的bcm 63xx勾上就好了。

make V=99

于是开始了漫长的下载源码和编译过程,一觉醒来再看看吧。

最后你会发现在/usr/src/backfire/生成了一个叫做staging_dir大约99M的文件夹,表明bcm 63xx的OpenWrt和相对工具链已经编译好了。

执行以下命令,进入mips编译环境

(注意,注释掉的可以不用输.要特别注意,涉及的路径和内核一定要对!!不要跟我说编译出来的是X86的,那就是你环境变量都没设对,自己分析一下../staging_dir下的toolchain目录是哪个,不要抄我这个,我这个是RG100A的,且源码路径在/usr/src/backfire...)export PATH=$PATH:/usr/src/backfire/staging_dir/toolchain-mips_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/bin

#export AR=/usr/src/backfire/staging_dir/toolchain-mips_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/bin/bin/mips-openwrt-linux-ar

#export AS=/usr/src/backfire/staging_dir/toolchain-mips_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/bin/mips-openwrt-linux-as

#export LD=/usr/src/backfire/staging_dir/toolchain-mips_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/bin/mips-openwrt-linux-ld

#export NM=/usr/src/backfire/staging_dir/toolchain-mips_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/bin/mips-openwrt-linux-nm

export CC=mips-openwrt-linux-gcc

export CPP=mips-openwrt-linux-cpp

export GCC=mips-openwrt-linux-gcc

export CXX=mips-openwrt-linux-g++

export RANLIB=mips-openwrt-linux-uclibc-ranlib

export ac_cv_linux_vers=2.6.32

export LDFLAGS="-static"

export CFLAGS="-Os -s"

复制代码内核路径在:/usr/src/backfire/build_dir/linux-brcm63xx/linux-2.6.32.27

然后我们开始编译锐捷:

tar -zxf mentohust-0.3.1.tar.gz

cd mentohust-0.3.1

./configure --host=mips-openwrt-linux   --disable-encodepass --disable-notify --prefix=/tmp

make

make install

cd /tmp

ls

这就是OpenWrt/backfire用于bcm 63xx版的锐捷,传到rg100-a试试吧,运行之前记得到官网Download下libpcap的ipk在路由上opkg install libpcap*.ipk后,mentohust才能找到网卡。

Debian 下编译OpenWrt 和使用搭建交叉编译环境(buildroot)

编译OpenWrt后也就有了交叉编译需要的工具链(ToolChain),工具链其实在官方DownLoad是可以直接获取到的.

我们是在虚拟机下做这些的,首先给Debian更新一下sshd以便我们能方便操作。

su -

注销光盘源(vi /etc/apt/sources.list 然后在光盘源前加个#)

apt-get update

apt-get install ssh openssh-server

更新OpenWrt编译环境所需的软件包。

apt-get install build-essential bison flex zlib1g-dev libncurses5-dev subversion quilt intltool ruby fastjar unzip gawk

可以开始了。

cd /usr/src

svn co svn://svn.openwrt.org/openwrt/branches/backfire/

经过一段时间后,从官方SVN仓库获得用于编译最新发行版backfire的脚本。

接下来用普通用户权限来完成吧。

在root权限下先chown 用户  /usr/src/backfire

ctrl + D 退出root

开始下载源码和编译(友情提醒:过程漫长,需要有高速的带宽,建议在睡觉前执行.)

cd backfire

make menuconfig

选择好你要编译的硬件目标和所带的软件,rg100-a aa只要把前几个选项里的bcm 63xx勾上就好了。

make V=99

于是开始了漫长的下载源码和编译过程,一觉醒来再看看吧。

最后你会发现在/usr/src/backfire/生成了一个叫做staging_dir大约99M的文件夹,表明bcm 63xx的OpenWrt和相对工具链已经编译好了。

执行以下命令,进入mips编译环境

(注意,注释掉的可以不用输.要特别注意,涉及的路径和内核一定要对!!不要跟我说编译出来的是X86的,那就是你环境变量都没设对,自己分析一下../staging_dir下的toolchain目录是哪个,不要抄我这个,我这个是RG100A的,且源码路径在/usr/src/backfire...)export PATH=$PATH:/usr/src/backfire/staging_dir/toolchain-mips_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/bin

#export AR=/usr/src/backfire/staging_dir/toolchain-mips_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/bin/bin/mips-openwrt-linux-ar

#export AS=/usr/src/backfire/staging_dir/toolchain-mips_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/bin/mips-openwrt-linux-as

#export LD=/usr/src/backfire/staging_dir/toolchain-mips_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/bin/mips-openwrt-linux-ld

#export NM=/usr/src/backfire/staging_dir/toolchain-mips_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/bin/mips-openwrt-linux-nm

export CC=mips-openwrt-linux-gcc

export CPP=mips-openwrt-linux-cpp

export GCC=mips-openwrt-linux-gcc

export CXX=mips-openwrt-linux-g++

export RANLIB=mips-openwrt-linux-uclibc-ranlib

export ac_cv_linux_vers=2.6.32

export LDFLAGS="-static"

export CFLAGS="-Os -s"

复制代码

内核路径在:/usr/src/backfire/build_dir/linux-brcm63xx/linux-2.6.32.27

然后我们开始编译锐捷:

tar -zxf mentohust-0.3.1.tar.gz

cd mentohust-0.3.1

./configure --host=mips-openwrt-linux   --disable-encodepass --disable-notify --prefix=/tmp

make

make install

cd /tmp

ls

这就是OpenWrt/backfire用于bcm 63xx版的锐捷,传到rg100-a试试吧,运行之前记得到官网Download下libpcap的ipk在路由上opkg install libpcap*.ipk后,mentohust才能找到网卡。

你可能感兴趣的:(openwrt+linux编译环境,openwrt交叉编译环境)