主页 > 路由器 > 在Centos 7 VPS上编译新路由3(newifi 3)Openwrt固件

在Centos 7 VPS上编译新路由3(newifi 3)Openwrt固件

本文描述在搬瓦工双11 VPS上编译新路由3(newifi 3)Openwrt固件的过程
VPS采用的操作系统为Centos 7 64位系统(centos 6缺省安装的gcc版本小于4.8,不能编译,需要先升级gcc版本,可参考https://www.quyu.net/info/628.html)

1、安装依赖库
yum install -y subversion binutils bzip2 gcc gcc-c++ gawk gettext flex xz time
yum install -y ncurses-devel zlib-devel make patch unzip perl-ExtUtils-MakeMaker
yum install -y glibc glibc-devel glibc-static quilt ncurses-lib sed sdcc intltool sharutils bison wget

2、下载openwrt源码
如下步骤以非root用户登陆(adduser添加用户,passwd修改用户密码,su切换用户)
git clone https://github.com/openwrt/openwrt
cd openwrt/
切换到18.06.1发布分支,方便以后可以用官方源来安装插件
git checkout openwrt-18.06
git checkout 70255e3d624cd393612069aae0a859d1acbbeeae

3、配置
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
选择设备为newifi d2

4、编译
make V=99 -j1

---------------------------------------------------
补充:如果是编译最新的lede,对make、gcc、g++的版本有要求,需要升级

升级make至4.3:
wget http://mirrors.ustc.edu.cn/gnu/make/make-4.3.tar.gz
tar xf make-4.3.tar.gz
cd make-4.3/
# 安装到指定目录
./configure --prefix=/usr/local/make
make
make install
make -v
# 此时的 make 还是3.82 与环境变量有关系
whereis make
# 找一下都有哪些 make
cd /usr/bin/
mv make make.bak
# 把默认的 make 改名
ln -sv /usr/local/make/bin/make /usr/bin/make
# 建立一个软连接
make -v
# 查看一下大功告成
————————————————
用devtoolset升级gcc、g++至8.3,也可升级至7版本,将下面devtoolset-8改成devtoolset-7即可,注意每次编译前需执行scl切换开发环境:
sudo yum install centos-release-scl
sudo yum install devtoolset-8-gcc*
scl enable devtoolset-8 bash
gcc -v
----------
编译lede
adduser test
passwd test
su test
cd ~
git clone https://github.com/coolsnowwolf/lede
cd lede
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
make -j8 download V=s
make -j1 V=s

用devtoolset开发环境有一个问题,不能在64位系统上交叉编译32位程序,因此还需源码编译升级gcc:
wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.xz
tar xvf gmp-6.1.2.tar.xz
cd gmp-6.1.2
./configure --prefix=/usr/local/gmp
make && make install

wget http://www.mpfr.org/mpfr-current/mpfr-3.1.6.tar.gz
tar xvf mpfr-3.1.6.tar.gz
cd mpfr-3.1.6
./configure --prefix=/usr/local/mpfr --with-gmp=/usr/local/gmp
make && make install

wget ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz
tar xvf mpc-1.0.3.tar.gz
cd mpc-1.0.3
./configure --prefix=/usr/local/mpc --with-gmp=/usr/local/gmp -with-mpfr=/usr/local/mpfr
make && make install

vi /etc/ld.so.conf
#增加以下三行
/usr/local/gmp/lib
/usr/local/mpfr/lib
/usr/local/mpc/lib
#
ldconfig -v

wget ftp://ftp.gnu.org/gnu/gcc/gcc-6.4.0/gcc-6.4.0.tar.gz
tar xvf gcc-6.4.0.tar.gz
cd gcc-6.4.0
./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib --with-gmp=/usr/local/gmp --with-mpfr=/usr/local/mpfr --with-mpc=/usr/local/mpc
make -j2 # 这个过程比较慢, 大概要半个多小时
make install

# 改名 /usr/bin 下的 cpp, c++, gcc, g++, gcov 这些文件, 再执行 gcc --version 就能看到新的版本信息了
mv /usr/bin/cpp /usr/bin/cpp_old
mv /usr/bin/gcc /usr/bin/gcc_old
mv /usr/bin/g++ /usr/bin/g++_old
mv /usr/bin/gcov /usr/bin/gcov_old

ln -sv /usr/local/bin/gcc /usr/bin/gcc
ln -sv /usr/local/bin/g++ /usr/bin/g++
ln -sv /usr/local/bin/cpp /usr/bin/cpp
ln -sv /usr/local/bin/gcov /usr/bin/gcov

发表评论

新用户的评论需审核后才会显示;

电子邮件地址不会被公开;
必填项已用*标注