从零开始编译LEDE固件 默认中文material主题

从零开始编译LEDE固件 默认中文material主题

首先我分享一个自己编译的:网件WNDR3700v4-lede-SNAPSHOT固件

从网上找了一些openwrt、lede固件编译的教程,一步步做下去,虽然中间走了些弯路,但后来还是顺利编译成功了,这才发现编译简单的LEDE固件也没那么难。目前只编译了WNDR3700V4的固件,其它机型固件也是同样的编译方法,只是机型设置不同,添加的功能更多,配置更多、更容易出错,这时候就比较考验技术了(这个...对我来说是不存在的)。下面就简单说一下搭建环境、编译固件流程。

1.如果是windows系统,可以先安装VMware 12 虚拟机,下载ubuntu16.04 LTS 64位版http://verify.iso.mirrors.ustc.edu.cn/ubuntu-releases/16.04.3/ubuntu-16.04.3-desktop-amd64.iso
,新建虚拟机并安装ubuntu,过程略。

传统的 Unity 桌面环境,其应用程序启动器的容器——Launcher,一直坚定地待在屏幕的左侧。

如果不习惯的话可以用命令修改:

按下 Ctrl + Alt + t 键盘组合键调出终端,在终端中输入以下命令:

gsettings set com.canonical.Unity.Launcher launcher-position Bottom

按下回车,即可把启动器放到屏幕底部了。

2.按CTRL+ALT+T进入终端,更新软件列表,下载安装更新。(以下都用非root账户操作,用root用户编译会出错。)
sudo apt-get update
sudo apt-get upgrade

3.安装基础环境(逐条执行命令):
sudo apt-get install build-essential -y
sudo apt-get install subversion -y
sudo apt-get install git-core -y
sudo apt-get install libncurses5-dev -y
sudo apt-get install zlib1g-dev -y
sudo apt-get install gawk -y
sudo apt-get install flex -y
sudo apt-get install quilt -y
sudo apt-get install libssl-dev -y
sudo apt-get install xsltproc -y
sudo apt-get install libxml-parser-perl -y
sudo apt-get install mercurial -y
sudo apt-get install bzr -y
sudo apt-get install ecj -y
sudo apt-get install cvs -y
sudo apt-get install unzip -y

4.建立工作目录,修改权限,进入工作目录。
mkdir lede
sudo chmod 777 lede
cd lede

5.下载lede源代码
git clone -b lede-17.01 https://git.lede-project.org/source.git(17.01稳定版源码,推荐使用,感谢@helansnow 的提醒)
git clone https://github.com/lede-project/source.git(这是最新版源码,bug比较多,新手建议用稳定版。)
cd source

6.更新软件包
./scripts/feeds update -a
./scripts/feeds install -a

7.测试编译环境:
make defconfig

8.配置固件菜单:
make menuconfig

选择Soc、机型,<*>,表示将软件包编译进固件,,表示软件包会被编译,但不会编译进固件。

添加图形界面 luci

添加简体中文

添加Material主题,如果不喜欢可以不加。

设置完毕后,保存设置,然后选择Exit退出。

9.预先下载dl库,可以避免下载造成的编译失败。
make download V=s

10.废话少说,吸了N次屁股之后,文件终于下载完毕,可以开始编译固件了。
make V=99 -j                              # -j参数设定全速编译,经测试 -j参数可能会导致ubuntu16.04卡死,去掉该参数就好了

11.生成的文件在bin/系列名/ 下面

12.将编译好的固件lede-ar71xx-generic-wndr3700v4-squashfs-sysupgrade.bin复制到主机,在breed下刷入固件,浏览器登录192.168.1.1,就可以看到LEDE的界面了。

以下是个性化设置:

以上设置组件时只精简了此机型用不到的usb模块和IPv6支持,以腾出空间装中文和Material主题,其它未修改,所以第一次登录还是英文界面,需要手动选择中文。为了使用方便,可以在源码里修改默认的语言、主题、时区、主机名、IP地址、wifi等等。

修改默认语言主题:
修改 vim feeds/luci/modules/luci-base/root/etc/config/luci 文件

config core main
option lang "zh_cn"
option mediaurlbase /luci-static/material
option resourcebase /luci-static/resources

config internal languages
option zh_cn "普通话 (Chinese)"

config internal themes
option Bootstrap "/luci-static/bootstrap"
option Material "/luci-static/material"

修改主机名,设定时区,IP地址
修改位置:vim package/base-files/files/bin/config_generate

generate_static_system() {
uci -q batch <<-EOF
delete system.@system[0]
add system system
set system.@system[-1].hostname='LEDE'
set system.@system[-1].timezone='CST-8'                    #正八区
set system.@system[-1].zonename='Asia/Shanghai'       #这句话要加上,不然还是UTC

lan) ipad=${ipaddr:-"192.168.1.1"} ;;       #修改默认IP

修改WIFI名称
修改位置:vim package/kernel/mac80211/files/lib/wifi/mac80211.sh
set wireless.radio${devidx}.disabled=0          #改为0显示wifi

set wireless.default_radio${devidx}=wifi-iface
set wireless.default_radio${devidx}.device=radio${devidx}
set wireless.default_radio${devidx}.network=lan
set wireless.default_radio${devidx}.mode=ap
set wireless.default_radio${devidx}.ssid=LEDE               #wifi名称
set wireless.default_radio${devidx}.encryption=psk2   #wifi加密方式,没有是none
set wireless.default_radio${devidx}.key=password       #wifi密码

其它还有很多可以修改的地方,有兴趣可以自行百度。如果之前编译过固件,build_dir里可能会有之前的设置,需要一起修改或者删除,新编译的固件才会更新设置。

修改后的固件,登录界面已经是中文了,地区、WiFi等默认设置已经变成自定的。

SSH/TELNET显示信息修改方式:
修改vim package/base-files/files/etc/banner文件。

修改路由连接数

vim package/base-files/files/etc/sysctl.conf

net.netfilter.nf_conntrack_max=65535

发表评论

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