1. 安装编译需要的rpm包
yum install subversion binutils bzip2 gcc gcc-c++ gawk gettext flex ncurses-devel zlib-devel make patch unzip perl-ExtUtils-MakeMaker glibc glibc-devel glibc-static quilt ncurses-lib sed sdcc intltool sharutils bison wget git-core openssl-devel xz zlib-static
**** 最后的zilb-static 一定要安装,要不然make defconfig检查通不过 ***
会报如下错误:
==========
Build dependency: Please install a static zlib. (Missing libz.a or zlib.h)
Prerequisite check failed. Use FORCE=1 to override.
make: *** [staging_dir/host/.prereq-build] Error 1
==========
2. 新建一个普通用户
官方建议用普通用户编译源码。这里我们就新建一个。我就用onlyellow表示
useradd onlyellow
3. 切换到普通用户,下载OpenWRT源码
git clone git://git.openwrt.org/openwrt.git
4. 下载完成后,配置代理(可选)
因为后续编译源码过程中,还需要联网下载一些源码。 所以最好配置个代理加快下载速度。
直接配置代理方法这里不再赘述。
例如:
export HTTP_PROXY=http://192.168.10.100:8118
export HTTPS_PROXY=http://192.168.10.100:8118
export http_proxy=http://192.168.10.100:8118
export https_proxy=http://192.168.10.100:8118
***PS***
编译过程中会用wget命令从http和https网站上下载很多东西,所以http和https代理都要设置。
我一开始只export http代理,发现有些包下载依然很慢。检查发现原来有些下载源是https。配置https_proxy后下载速度飙升。
5. 用screen
万一ssh断了不会影响编译。建议使用
6. feed增加包
cd openwrt
cp feeds.conf.default feeds.conf
./scripts/feeds update -a
./scripts/feeds install -a
7. 检查环境
make defconfig
8. 选择目标环境
make menuconfig
9. 编译
make //(直接编译)
make V=99 //(带输出debug信息编译)
make -j N V=99 //(带输出debug信息并且并行编译。N为你想使用的cpu核数。如果不带参数默认是1。)