1. 下载编译需要的环境
sudo apt-get install gcc g++ build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch flex bison make autoconf texinfo unzip sharutils subversion ncurses-term zlib1g-dev ccache upx lib32gcc1 libc6-dev-i386 uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev libglib2.0-dev xmlto qemu-utils automake libtool -y
2. 下载openwrt源码
git clone https://github.com/openwrt/openwrt.git
3. 下载安装可用的“feeds”
上述步骤会产生一个名为openwrt的目录,在终端输入
cd openwrt
./scripts/feeds update -a
./scripts/feeds install -a
4. 配置编译选项
make menuconfig
选择你需要的板子架构及型号,和你所需要的驱动等内容编译进内核或编译成模块。
5. 编译
make V=s
6. 得到固件
编译完成后,会在目录openwrt/bin/
下找到你需要的固件。
7. 若需要重新编译
需要清理掉已经做过的某些编译操作。根据需要选择下面一个命令执行。
# 清理掉包括已编译好:固件、软件包
make clean
#清理掉包括已编译好:交叉编译工具、固件、软件包
make dirclean
#清理掉所有内容,这个清理将返回OpenWrt原始状态
make distclean
8. 若需要编译shadowsocks-libev
git clone https://github.com/shadowsocks/openwrt-shadowsocks.git package/shadowsocks-libev
git clone https://github.com/shadowsocks/luci-app-shadowsocks.git package/luci-app-shadowsocks
然后输入make menuconfg
在编译选项中,选择luci-app-shadowsocks(luci-app)
、shadowsocks-libev(network)
编译进内核。若找不到该文件所在编译选项中的目录,出现编译选项界面后输入/
,再输入所需要查询的名字,就会返回你所需要的文件所在的目录。