1.首先安装编译需要Linux环境,其他Linux也可以,版本较多,实机安装和虚拟机安都可以,按装步奏自行解决。
2.这里以UBUNTU最新18.04为例。按装完成后一般是英文界面要更换中文请在左下角的更多中选择Language Support 项,即为“语言支持”项,我们需要访问此项来改变界面语言。
2.1. 选择下方的 Install/remove Languages。
2.2. 在“支持的语言”列表中找到“Chinese(simplified)”,在右端打上勾,点击apply
2.3. 弹出对话框,输入管理员密码。后系统自动安装中文语言库。
2.4. 安装完成后在Language for menus and widows:中将下载好的中文(简体)按住鼠标拖拽到最上面,后点Close关闭对话窗。
2.5. 重启系统。
3.更换UBUNTU的更新服务器到国内。
3.1.更多中选择软件和更新
3.2.选择下载自:其他站点。找到中国的服务器地址选择即可。
4.更新UBUNTU系统软件,在更多中选择“终端”输入:
sudo apt-get update
sudo apt-get upgrade
5.安装编译基础环境(官网资料)(对应自己的Linux版本,多选一)
Arch Linux
pacman -S --needed subversion asciidoc bash bc binutils bzip2 fastjar flex git gcc util-linux gawk intltool zlib make cdrkit ncurses openssl patch perl-extutils-makemaker rsync unzip wget gettext libxslt boost libusb bin86 sharutils b43-fwcutter findutils time
Alpine Linux 3.7
apk add asciidoc bash bc binutils bzip2 cdrkit coreutils diffutils findutils flex g++ gawk gcc gettext git grep intltool libxslt linux-headers make ncurses-dev patch perl python2-dev tar unzip util-linux wget zlib-dev
Debian 7 Wheezy
apt-get install libncurses5-dev zlib1g-dev gawk
Debian 8 Jessie
sudo apt-get install build-essential libncurses5-dev gawk git subversion libssl-dev gettext unzip zlib1g-dev file python
Debian 9.4 Stretch
sudo apt install build-essential libncurses5-dev gawk git subversion libssl-dev gettext zlib1g-dev swig unzip time
Fedora 24
dnf install subversion binutils bzip2 gcc gcc-c++ gawk gettext git-core flex ncurses-devel ncurses-compat-libs zlib-devel zlib-static make patch unzip perl-ExtUtils-MakeMaker perl-Thread-Queue \
glibc glibc-devel glibc-static quilt sed sdcc intltool sharutils bison wget openssl-devel
Fedora 26
dnf install @c-development @development-tools @development-libs zlib-static which bzip2 file wget
openSUSE 13.2
zypper install asciidoc bash bc binutils bzip2 fastjar flex git-core gcc-c++ gcc util-linux gawk gtk2-devel intltool jikes zlib-devel mercurial make genisoimage ncurses-devel libopenssl-devel patch perl-ExtUtils-MakeMaker python-devel rsync ruby sdcc unzip wget gettext-tools libxslt-tools zlib-devel subversion
openSUSE 42.3
zypper install patterns-openSUSE-devel_basis zlib-devel-static git-core
Ubuntu 12.04 LTS
sudo apt-get install build-essential subversion git-core libncurses5-dev zlib1g-dev gawk flex quilt libssl-dev xsltproc libxml-parser-perl mercurial bzr ecj cvs unzip
Ubuntu, Kubuntu 17.10
sudo apt-get install build-essential subversion libncurses5-dev zlib1g-dev gawk gcc-multilib flex git-core gettext libssl-dev
Centos x86-64 (some packages require EPEL)
yum install subversion binutils bzip2 gcc gcc-c++ gawk gettext flex ncurses-devel zlib-devel zlib-static make patch unzip perl-ExtUtils-MakeMaker glibc glibc-devel glibc-static quilt ncurses-libs sed sdcc intltool sharutils bison wget git-core openssl-devel xz
Gentoo
$ echo \
app-arch/{bzip2,fastjar,sharutils,unzip,zip} \
app-text/asciidoc dev-java/{icedtea:7,jikes,oracle-jdk-bin} \
dev-libs/{libusb-compat,libxslt,openssl} dev-util/intltool \
dev-vcs/{git,mercurial} net-misc/{rsync,wget} \
net-wireless/b43-fwcutter sys-apps/{gawk,util-linux} \
sys-devel/{bc,bin86,binutils,dev86,flex,gcc[gcj],gettext} \
sys-libs/{ncurses,zlib} virtual/{cdrtools,perl-ExtUtils-MakeMaker} \
x11-libs/gtk+:2 \
| sed 's/\s/\n/g' \
| sort \
| sudo tee /etc/portage/sets/openwrt-prerequisites \
&& sudo emerge -DuvNa '@openwrt-prerequisites'
自己对应安装的Linux版本,从上面找到对应的命更新编译环境。
6.下载OPENWRT/LEDE源码
mkdir lede #新建一个目录
sudo chmod 777 lede #修改权限(重要)
cd lede #进入目录
git clone https://git.openwrt.org/openwrt/openwrt.git #openwet最新源码包地址
git clone https://git.lede-project.org/source.git #LEDE最新源码包地址(2018年openwrt和LEDE合并后会自动跳转到OPENWRT的源码地址上)(和上一命令二选一)
7.源码下载完成后,选择用OPENWRT编译还是用LEDE编译。
用 LEDE 17.01编译时输入以下命令后回车:
git checkout lede-17.01
用 OpenWrt 18.06编译时输入以下命令后回车:
git checkout openwrt-18.06
用以上命令时请注意对应的目录,一般是在SOURCE目录下。
8.更新源码中的软件。
在源码目录下执行如:cd source #进入源码的主目录
./scripts/feeds update -a #下载最新软件
./scripts/feeds install -a #把下载完的新软件进行安装
以上完成后,就可以编译你自已的OPENWRT/LEDE固件了。说明一下,我是在home根目录下自己建了个LEDE的目录,用的也是LEDE的源码地址,系统在下载LEDE源码是自动跳转到openwrt源码的下载地址了,并自动在我建的LEDE目录下生成了source目录,所有源码也下载到了source目录下了,特此说明一下,避免小白们看不懂。
注:以上步奏基本都可以国内完成(如有完成不了同样是下面的原因),下面的步奏就要求能访问国外的网络下进行。所以在国内一定要用梯子,也就是要--翻----墙--,这个在国内一般是不被允许的,所以自行想办法(要是无法完成,你是编译不了自已的固件的)。
9.测试一下编译环境是不是正常: make defconfig (也可不作这步,只要是按上面一步步来的一般不会有问题)
10.开始自己固件的编译
源码主目录下输入:
make menuconfig #运行编译软件的功能配置)
编译界面打开了(哈哈全是英文)
简单说一下,没有说的可以不管。(以后有时间详细给大家说下怎么选择,所有的工能基本都能实现如:USB设备挂载、打印机网络共享、广告屏蔽、网络下载、多次拨号叠加、---翻---墙--等)
操作方法:上下键:移动选标 左右键:移动编辑界面下边的功能选标(如:Exit退出、Help帮助、Save保存、load加载) 回车键:进入 ESC键双击:返回上一级 空格键:选择(*是编译时加入此功能和对应文件,M是编译时只是显示没有对文件)
Target System (Broadcom BCM63xx) ---> #选择你要需要生成那种CPU的固件
Target Profile (Alcatel RG100A) ---> #固件界面显示的型号(如:阿尔卡特rg100a)——>
LuCI ---> #界面工能添加——>
1.Collections #web界面样式
你随便选一个就行,多选也可但是会加大固件的体积。
2.Modules --->Translations --->Chinses (zh-cn) #web界面加入中文,只选这一个,多选也可但是会加大固件体积
3.Applications #web界面里有的功能
luci-app-qos #qos限速
保存退出。
11.最后生成刷机用的BIN固件(三选一)
make V=99 #生成固件并显示成生的每一个步奏及正确性。速度最慢,建议首次生成时使用(3小时左右)。
make V=s #生成固件忽略不影响固件主功能的错误
make -j4 V=s #调用CPU全部性能来生成固件,相对速度最快,但首次生成时不建议使用。
等完成后,会在openwrt源码主目录下有一个BIN目录,在BIN目录下边多级目录下找你的BIN刷机文件吧。详细的就不叙述了。
所有要输入的命令都用红色标注了,蓝色是要注意的提示信息,水平有限,如有错误和不足欢迎指正。有些网友说OPENWRT老是生成不成功,原因有两个,一个是你的编译环境有问题,系统支持的软件不是最新的,二一个是---翻--墙--或梯子有问题有些地址不通,导致下载下来的软件不全。也有可能你用的教程太老,有些软件下载地址失效了。用我的试试,一定成功,这是最新的。