openwrt(LEDE)(ubuntu 16.04)编译配置个性路由器固件笔记
为了编译配置过程备忘,所以做了一下详细记录,集合了出错处理方法,个性设置方法。有基本linux基础的都能看懂。编译环境ubuntu 16.04,以netgear wndr4300为例,手头只有wndr4300可以折腾。
Ununtu 安装编译环境
1
2sudo apt-get update
sudo apt-get upgrade创建安装目录
1
2
3mkdir openwrt
sudo chmod 777 openwrt
cd openwrt下载lede源代码
- 稳定版
1
git clone -b v18.06.4 https://git.openwrt.org/openwrt/openwrt.git
- 这是最新版源码,bug比较多,新手建议用稳定版
1
git clone https://github.com/lede-project/source.git
1
cd source
- 大雕lean源代码包含各种服务
1
2git clone https://github.com/coolsnowwolf/lede
cd lede - 同步库更新本地分支
1
2
3
4git branch -a ----查看分支(如果直达18.06.2,这条和下面tag命令不需要)
git tag ----查看版本
git checkout v18.06.4 ----签出V18.06.4
git pull origin v18.06.4 ----更新V18.06.4 - 有冲突时先将本地修改存储起来
1
git stash
- 可以看到保存的信息
1
git stash list
- Pull后还原暂存的内容
1
git stash pop stash@{0}
- 更新软件包
1
2./scripts/feeds update -a
./scripts/feeds install -a
测试编译环境:
1
make defconfig
配置固件菜单:(新手参考OpenWrt MenuConfig设置和LuCI插件选项说明)
1
make menuconfig
支持 iPv6:
Extra packages —> ipv6helper (选定这个后下面几项自动选择了)
Network —> odhcp6c
Network —> odhcpd-ipv6only
LuCI —> Protocols —> luci-proto-ipv6
LuCI —> Protocols —> luci-proto-ppp打开适用于VMware的VM Tools
Utilities —> open-vm-tools
预先下载dl库,可以避免下载造成的编译失败
1
make download V=s
可以开始编译固件了
1
make V=99 或者 make -j1 V=s
第二次编译:
- 进入LEDE目录
1
cd lede
- 同步更新大雕源码
1
git pull
- 更新Feeds
1
2./scripts/feeds update -a
./scripts/feeds install -a - 清除编译配置和缓存
1
rm -rf ./tmp
- 清除编译配置和缓存
1
rm -rf .config
- 进入编译配置菜单
1
make menuconfig
- 开始编译 n=线程数+1,例如4线程的I5填-j5
1
make -jn V=99
- 编译过程需要2-3小时,具体有你的电脑配置决定,该干嘛干嘛,等编译好就可以刷入你的路由器,一般默认IP:192.168.1.1 登录名:admin 密码:password
- 下面介绍一些个性设置方法
扩展128m分区
1
sed -i s/'23552k(ubi),25600k@0x6c0000(firmware)'/'120832k(ubi),122880k@0x6c0000(firmware)'/ target/linux/ar71xx/image/legacy.mk
开启FPU方法
选型好了之后,执行make kernel_menuconfig,Kernel type →选中 MIPS FPU Emulator
默认没有开FPU,要在global build settings -> Kernel build options里面,把Compile the kernel with MIPS FPU Emulator选中支持ipv6及转发
Kernel modules > Netfilter Extensions>kmod-ipt-nat6配置dnsmasq-full
Base system>dnsmasq-fullLede 17.01.5 高通fast-path打补丁
wget https://github.com/lede-project/source/commit/b87b4734c6e56fa45ec612350e2aa480ed2d8dd6.patch
patch -p1 < b87b4734c6e56fa45ec612350e2aa480ed2d8dd6.patch
(略过了4.9内核)
把 target/linux/generic/hack-4.4内所有文件拷贝到 patches-4.4
Kernel modules > Network Support >kmod-fast-classifier,kmod-shortcut-fe修改默认语言主题:
修改
vim feeds/luci/modules/luci-base/root/etc/config/luci
文件
config core main
option lang ‘zh_cn’
option mediaurlbase /luci-static/bootstrap
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密码修改登录密码(可以用files大法,文件在/etc下的shadow,在“管理权”设置好密码,直接SCP备份shadow文件,以下各项同样方法配制)
修改shadow文件,位于package/base-files/files/etc
root:1$BuM.Ox4e$X/RX2ftRaBzzVzoL6TkI0/:17943:0:99999:7::: —————-root后面的两个root::17943之间一串乱码就是加密后的密码(需要在“管理权”设置好SCP上去打开复制下来,不能直接填入明文),此处示例为admin。修改路由连接数(可以用files大法,文件在ect下的sysctl.conf)
修改sysctl.conf文件,位于package/base-files/files/etc
net.netfilter.nf_conntrack_max=262144ssr plus+服务菜单显示命令
echo 0xDEADBEEF > /etc/config/google_fu_mode源更新不了,opkg被神经病锁定不能安装app,删除/var/lock/opkg.lock
软件包列表更新提示:timeout 太短。
Collected errors:
* opkg_conf_load: Could not lock /var/lock/opkg.lock: Resource temporarily unavailable.解决办法:在 SSH 中操作,别在 LuCI 中。
echo “nameserver 114.114.114.114”>/tmp/resolv.conf rm -f /var/lock/opkg.lock opkg update自己替换“总览”页面
/feeds/luci/modules/luci-mod-status/luasrc/view/admin_status/index.htm压缩虚拟盘
cd C:\Program Files (x86)\VMware\VMware Workstation
vmware-vdiskmanager.exe -k “G:\Ubuntu\Ubuntu 64 位.vmdk”加入x86的多核心以及大内存支持
Processor type and features —>
Symmetric multi-processing support
Processor family (Core 2/newer Xeon) —>#自行选择处理器平台
Supported processor vendors —>#自行选择处理器平台
(2) Maximum number of CPUs #自行编辑
SMT (Hyperthreading) scheduler support#超线程支持
Multi-core scheduler support
High Memory Support (64GB) —>
- 网件wndr4300 v1固件,2019年11月8日更新
web管理界面升级扩展128M固件
openwrt-ar71xx-nand-wndr4300-squashfs-sysupgrade-128M-2019-11-8.tartftp刷机img固件
openwrt-ar71xx-nand-wndr4300-ubi-factory-128M-2019-11-8.imgopenwrt x86 固件 2020年1月3日更新
openwrt-x86-64-combined-squashfs-2020-1-3.img.gz