使用者工具

網站工具


openwrt:start

参考 :
从零开始学习OpenWrt
OpenWrt 开发 (二) 搭建开发环境

ENV

sudo apt-get install g++
sudo apt-get install libncurses5-dev
sudo apt-get install zlib1g-dev
sudo apt-get install bison
sudo apt-get install flex
sudo apt-get install unzip
sudo apt-get install autoconf
sudo apt-get install gawk
sudo apt-get install make
sudo apt-get install gettext
sudo apt-get install gcc
sudo apt-get install binutils
sudo apt-get install patch
sudo apt-get install bzip2
sudo apt-get install libz-dev
sudo apt-get install asciidoc
sudo apt-get install subversion
sudo apt-get install sphinxsearch
sudo apt-get install libtool
sudo apt-get install sphinx-common

sudo apt-get install subversion
sudo apt-get install g++ flex patch
sudo apt-get install libncurses5-dev zliblg-dev
sudo apt-get install git-core
sudo apt-get install libssl-dev
sudo apt-get install gawk
sudo apt-get install xz-util

下載OpenWrt

源码下载:

OpenWrt社区同时使用SVN和Git两种版本管理工具,其中SVN查看和下载命令如下:

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

SVN版本连接不稳定,推荐使用Git版本,它直接托管在github上,下面的链接给出了各个版本的下载地址:github-openwrt

git clone git://github.com/openwrt/openwrt.git

编译

將feeds.conf.default修改為feeds.conf:

cp feeds.conf.default feeds.conf 

更新软件包:

./scripts/feeds update -a
./scripts/feeds install -a

编译配置:

make defconfig

配置菜單:

make menuconfig

编译

make V=s

以上命令开始编译源码,其中“V=s”是一个编译选项,s - step,它会显示编译过程,方便定位编译错误。

make
make V=99
make -j V=99

(make是編譯命令,V=99表示輸出debug信息,V一定要大寫,如果要讓CPU全速編譯,就加上 -j 參數,第一次編譯最好不帶-j參數。) 編譯過程保持聯網(會從網上下載一些源碼包),所以斷網可能造成編譯中斷,編譯所需時間與電腦CPU及網絡環境有很大關系,第一次編譯時間較久,快則半小時長則2、3個小時,之後的編譯所需時間較短。編譯完成後會在源碼文件目錄出現bin文件夾(如trunk/bin/XXXX),如果你手裡的路由是原版固件需要刷OpenWrt需要選用XXX-factory.bin固件,如果路由已經刷了OpenWrt,選用升級固件XXXX-sysupgrade.bin升級用的,在升級界面升級即可。進到文件夾找到你需要的固件傳出(通過郵箱、網盤、U盤等),開始刷機吧。

编译和安装交叉工具链

1,生成交叉工具链

Toolchains 这篇文章对工具链和交叉工具链进行较简明的介绍,可以科普一下。
如果想自己编译获得 openwrt 的交叉工具链,只需要在 openwrt 的 menuconfig 顶层配置界面中,勾选上“Build the OpenWrt based Toolchain”,然后保存退出。
输入“make V=s”,生成的交叉工具链将在“openwrt/bin/ar71xx/OpenWrt-Toolchain-ar71xx-for-mips_34kc-gcc-4.8-linaro_uClibc-0.9.33.2.tar.bz2”下找到。

2,安装交叉工具链

openwrt 交叉工具链和一般的 linux 软件包一样,需要将其解压到需要安装的目录中,然后设置环境变量即可。下面是安装步骤。
1 ) 解压交叉工具链压缩包
  这里我们演示将交叉工具链安装到 ubuntu 的“/opt”目录下。首先切换到 openwrt 的根目录下,输入如下命令:

sudo tar jxvf ./bin/ar71xx/OpenWrt-Toolchain-ar71xx-for-mips_34kc-gcc-4.8-linaro_uClibc-0.9.33.2.tar.bz2 -C /opt/

提示输入超级用户密码后,系统将交叉工具链压缩包解压到 ubuntu 系统的/opt/目录下。

2 )设置环境变量

sudo vi /etc/bash.bashrc

在最后一行添加

export PATH=/opt/OpenWrt-Toolchain-ar71xx-for-mips_34kc-gcc-4.8-linaro_uClibc-0.9.33.2/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/bin:$PATH
export STAGING_DIR=/opt/OpenWrt-Toolchain-ar71xx-for-mips_34kc-gcc-4.8-linaro_uClibc-0.9.33.2/

保存退出。

需要注意的是:
1,上述的设置包含了环境变量PATH的设置和STAGING_DIR的设置,前者主要让shell能搜索到你的toolchain工具,后者不设置会报warning。
2,环境变量的表示方法“$PAHT”与Windows相似,不同的是,它的分隔符是冒号“:”。
3,这些路径的设置最好不要手动敲,而是直接拷贝,手动敲很容易敲错,我就在这个问题上踩过坑。

执行命令:

source /etc/bash.bashrc

3 )检查是否安装成功

mips-openwrt-linux-gcc -v

此时应打印出交叉编译工具的一些信息,表示安装成功。

安装了toolchain,就可以尝试编译第一个程序“hello_world”,编译好后,传到开发板,执行时,报错“permission denied”,这个是文件的权限问题,可以用“ls -l”查看文件的权限,然后用“chmod 777 hello_world”将它修改为可执行权限,然后运行就OK啦

openwrt/start.txt · 上一次變更: 2018/08/17 01:55 由 eddie