搭建环境
Ubuntu,2 CPUs,RAM 2G,Disk 40GB
准备环境
sudo apt-get update
sudo apt-get install gcc g++ quilt libssl-dev xsltproc libxml-parser-perl build-essential libncurses5-dev sphinxsearch libtool sphinx-common binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils subversion libncurses5-dev ncurses-term zlib1g-dev subversion git-core gawk libz-dev asciidoc -y
创建文件夹 & 权限
mkdir openwrt
sudo chmod 777 openwrt
cd openwrt
下载源码(2选1)
git clone git://git.openwrt.org/15.05/openwrt.git
git clone git://git.openwrt.org/14.07/openwrt.git
更新软件
./scripts/feeds update -a
./scripts/feeds install -a
检查依赖文件(2选1)
make defconfig
make prereq
下次编译前直接更新源码
cd /openwrt/openwrt
svn update
./scripts/feeds update -a
./scripts/feeds install -a
配置界面
make menuconfig
选项
- Target System > Ralink RT288x/RT3xxx
- 添加 LUCI(LUCI > collections > LUCI)
- 添加中文(LuCI > Modules > Translations > Chinese (zh-cn) (NEW) )
操作
Y
(Y 键) 将被编译并包含入固件中 *
(M 键) 将被编译,但并不包含入固件。可以在使用过程中使用 opkg 命令安装此包 N
(N 键) 将不会被编译
首次编译
模式 1:第一次编译建议make V=s
,开始 9:41--结束 11:39 近 2 小时
模式 2:
ulimit -s 10240 --防止爆栈
make V=99 -j24 --24 为线程数
开始 00:27--结束 1:42 1 小时 15 分
固件生成的路径
/root/openwrt/openwrt/bin/ath25/
清理工作
make clean -- 除了清除生成的目录,还想清除交叉编译工具(以及工具链目录)
make dirclean -- 除所有相关的东西,包括下载的软件包,配置文件,feed 内容等
make distclean -- 清除所有生成文件
磁盘使用情况
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 9.6G 28G 26% /
问题集
1.make defconfig
提示错误
Build dependency: Please do not compile as root.
Prerequisite check failed. Use FORCE=1 to override.
make: _*_ [tmp/.prereq-build] Error 1
解决
vi include/prereq-build.mk
define Require/non-root
注释
#\[ "$$(shell whoami)" != "root" \]\`
endef
$(eval $(call Require,non-root,
Please do not compile as root.
))
2.固件大小超过 16MB 不生成 bin, 去掉一些编译选项。
3.解决编译时间太长 ssh 断线
apt-get install screen
screen -S openwrt(或者在 putty 设置 NOOP)
更新 2015-11-15