从零开始编译OpenWRT/LEDE固件

admin

(注意:仅使用非root账户操作,用root用户编译会出错。)
sudo apt-get upgrade
3.安装基础环境:

使用git clone https://github.com/coolsnowwolf/lede 命令下载好源代码,


./scripts/feeds update -a

make defconfig
7.配置固件菜单:


此处以斐讯K2 PSG1218为例:
Subtarget --> MT7620 based boards
添加luci网页界面
添加简体中文
添加网页界面主题
设置完毕,保存,最后选择Exit。
8.预先下载dl库,可以避免下载造成的编译失败。

make V=99 -j2              # -j参数设定全速编译 (-j参数可能会导致系统卡死,不建议老爷机使用)
再次等待很长时间,第一次时间较长。
10.生成的bin文件路径:bin/targets/系列名/
11.编译好的固件名格式为 lede-xxxx-generic-xxx-squashfs-sysupgrade.bin 将bin文件复制到U盘或者电脑桌面,在breed下刷入固件,浏览器登录192.168.1.1,LEDE的管理界面。

12. 如果再次编译,需要先删除 build_dir 目录下的设置文件。或者执行命令 make clean

以下是个性化设置:
x86编译要点
1. 编译所有文件系统支持,包括ext2/ext3/ext4,还有NTFS,甚至是LVM;
2. 加入一个文本编辑器,例如vim或者nano,因为日常使用中需要用文本编辑器修改各种配置文件;
3. 加入所有关于无线网卡的驱动,模块,各种支持程序;
4. 一些其他常见应用--蓝牙、加密、PGP、SSL、SSH、virtual**、USB支持、3G上网卡;
5. 编译时要到网上下载相关源码,所以可以日后下载的包尽量不选择编译;
6. 编译好的文件在当前目录的bin文件夹下,如果是brcm-2.4,则 ls bin/brcm-2.4/ 就可以看到很多熟悉的文件了。


         
修改 vim feeds/luci/modules/luci-base/root/etc/config/luci 文件
config core main
        option mediaurlbase /luci-static/material
               
        option zh_cn "普通话 (Chinese)"
config internal themes
        option Material "/luci-static/material"

修改位置:vim package/base-files/files/bin/config_generate
generate_static_system() {
delete system.@system[0]
set system.@system[-1].hostname='LEDE'
set system.@system[-1].zonename='Asia/Shanghai'       #这句话要加上,不然还是UTC
lan) ipad=${ipaddr:-"192.168.1.1"} ;;       #修改默认IP

修改位置:vim package/kernel/mac80211/files/lib/wifi/mac80211.sh

set wireless.default_radio${devidx}.device=radio${devidx}
set wireless.default_radio${devidx}.mode=ap
set wireless.default_radio${devidx}.encryption=psk2   #wifi加密方式,没有是none

如果之前编译过固件,build_dir里可能会有之前的设置,需要一起修改或者删除,新编译的固件才会更新设置。


修改vim package/base-files/files/etc/banner文件。
修改路由连接数
net.netfilter.nf_conntrack_max=65535


Base system
取消选中dnsmasq
选中dnsmasq-full
因为dnsmasq-full支持ipset功能,对于基于域名的xx很有用。


Network->File Transfer中选中
curl
wget
【两个下载工具】


Network->IP Addresses and Names中选中
bind-dig
ddns-scripts_No-IP_com。(用来支持no-ip.com的ddns服务)
一个是测试工具;另一个是某个ddns支持,还有其他ddns支持,也可以酌情选中。


Network->Routing and Rediction中选中
ip-full
这个很关键。


Network中选中
iperf3
ipset
一个是测试工具;
另一个是ipset,用于支持基于域名的xx。


Network->Web Servers/Proxies选中那些SS,如果您需要使用SS的话。


Utilities->Editors中选
nano (也可以选vim)


Utilities->Shells中选中
bash


点击Save,保存为.config。
一路Exit退出。在输入make开始编译。


1.263148s