VPS编译OpenWrt定制固件

玩openwrt路由器的朋友很多人知道lean的固件,会玩git的基友也会编译,但是在自己的电脑上编译的时间耗时,所以想到用国外vps来编译,一来不用老盯着电脑,二来不用挂代理,国内的话网络太慢很容易编译失败。

我编译所用的系统版本:ubuntu 14.04.6 LTS (推荐) 因为我的vps硬盘不大,我编译x86的固件,看了下需要12.6G的空间,所以还是选择比较精简的系统。

首先,根据说明文档先更新并安装以下依赖包:

sudo apt-get update
sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint

为了能持续编译,怕网络不稳定ssh断了,所以建议开个screen守护一下shell:

apt -y install screen
screen -S buildlede

记住编译不能使用root用户,所以这里先新建一个用户来编译:

useradd -r -m -s /bin/bash lede
su lede

拉取源码:

cd /home/lede && git clone https://github.com/coolsnowwolf/lede.git
cd lede

下载和安装一些需要用到的包:

git pull && ./scripts/feeds update -a && ./scripts/feeds install -a

打开菜单选择编译前的设置项:

make menuconfig

这里make menuconfig是设置编译选项,是最关键的自定义你编译固件的步骤,首先根据CPU架构选择编译的类型,然选择路由器型号,如果万一没有的话可以编译相同硬件规格路由器的固件,有时也能用上;进入luci选项,进入modules/translations可以选择固件语言,进入themes选择主题,进入applications选择功能。功能参考如下: Applications.jpg

配置完成之后开始编译(-j后面是线程数,建议cpu核心多的话直接拉满,否则你用单线程我估计得编译4小时以上)

make -j8 V=s

编程成功之后,固件会保存在如下路径:

/home/lede/lede/bin/targets/x86/64/

squashfs.png 因为我的系统一刷好,所以我一般直接用这个来升级,其他的路由器类型看实际情况。

最后,安装玩固件后,ssh进路由器输入神秘代码

echo 0xDEADBEEF > /etc/config/google_fu_mode

才会在WEB界面显示畅游全球的功能。

补充说明:当你挂起screen,下次想重新连上screen时,有时会出现screen session的状态为Attached但是却连不上的情况,比如提示“There is no screen to be resumed matching XXX”,解决方法如下:

screen -ls // 列出状态为Attached的session id

screen -D  -r <session-id>

解释:-D -r 先删除前一用户再登陆。

dark
sans