openwrt(LEDE)(ubuntu 16.04)编译配置个性路由器固件笔记 2019-11-29 倒腾笔记 暂无评论 281 次阅读 为了编译配置过程备忘,所以做了一下详细记录,集合了出错处理方法,个性设置方法。有基本linux基础的都能看懂。编译环境ubuntu 16.04,以netgear wndr4300为例,手头只有wndr4300可以折腾。 1. Ununtu 安装编译环境 ```bash sudo apt-get update sudo apt-get upgrade ``` 2. 创建安装目录 ```bash mkdir openwrt sudo chmod 777 openwrt cd openwrt ``` 3. 下载lede源代码 - 稳定版 ```bash git clone -b v18.06.4 https://git.openwrt.org/openwrt/openwrt.git ``` - 这是最新版源码,bug比较多,新手建议用稳定版 ```bash git clone https://github.com/lede-project/source.git ``` ```bash cd source ``` - 大雕lean源代码包含各种服务 ```bash git clone https://github.com/coolsnowwolf/lede cd lede ``` - 同步库更新本地分支 ```bash git 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 ``` - 有冲突时先将本地修改存储起来 ```bash git stash ``` - 可以看到保存的信息 ```bash git stash list ``` - Pull后还原暂存的内容 ```bash git stash pop stash@{0} ``` - 更新软件包 ```bash ./scripts/feeds update -a ./scripts/feeds install -a ``` ![](https://mtom.top/usr/uploads/2019/10/Xnip2019-10-11_12-56-57.png) ![](https://mtom.top/usr/uploads/2019/10/Xnip2019-10-11_12-58-39.png) 4. 测试编译环境: ```bash make defconfig ``` 5. 配置固件菜单:(新手参考[OpenWrt MenuConfig设置和LuCI插件选项说明](https://mtom.top/827.html)) ```bash make menuconfig ``` ![](https://mtom.top/usr/uploads/2019/10/Xnip2019-10-11_13-03-23.png) ![](https://mtom.top/usr/uploads/2019/10/Xnip2019-10-11_13-04-59.png) ![](https://mtom.top/usr/uploads/2019/10/Xnip2019-10-11_13-14-28.png) ![](https://mtom.top/usr/uploads/2019/10/Xnip2019-10-11_13-11-24.png) ![](https://mtom.top/usr/uploads/2019/10/Xnip2019-10-11_13-18-09.png) - 支持 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 6. 预先下载dl库,可以避免下载造成的编译失败 ```bash make download V=s ``` 7. 可以开始编译固件了 ```bash make V=99 或者 make -j1 V=s ``` 8. 第二次编译: - 进入LEDE目录 ```bash cd lede ``` - 同步更新大雕源码 ```bash git pull ``` - 更新Feeds ```bash ./scripts/feeds update -a ./scripts/feeds install -a ``` - 清除编译配置和缓存 ```bash rm -rf ./tmp ``` - 清除编译配置和缓存 ```bash rm -rf .config ``` - 进入编译配置菜单 ```bash make menuconfig ``` 9. 开始编译 n=线程数+1,例如4线程的I5填-j5 ```bash make -jn V=99 ``` - 编译过程需要2-3小时,具体有你的电脑配置决定,该干嘛干嘛,等编译好就可以刷入你的路由器,一般默认IP:192.168.1.1 登录名:admin 密码:password 10. 下面介绍一些个性设置方法 - 扩展128m分区 ```bash 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-full - Lede 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=262144 - ssr 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) ---> 12. 网件wndr4300 v1固件,2019年11月8日更新 - web管理界面升级扩展128M固件 [openwrt-ar71xx-nand-wndr4300-squashfs-sysupgrade-128M-2019-11-8.tar](https://odobagg-my.sharepoint.com/personal/lance_od_obagg_com/ERAI9mApNGdMksR0mM0sgU8BeVKj9CZGsAC-uloxOC524w?e=KUyhxv) - tftp刷机img固件 [openwrt-ar71xx-nand-wndr4300-ubi-factory-128M-2019-11-8.img](https://odobagg-my.sharepoint.com/personal/lance_od_obagg_com/EYAEqOT_bqRPh0qsmtw7U0ABkk6sPlkHdmJGPbgHa-t-kQ?e=cxsgcR) - openwrt x86 固件 2020年1月3日更新 [openwrt-x86-64-combined-squashfs-2020-1-3.img.gz](https://odobagg-my.sharepoint.com/personal/lance_od_obagg_com/EYz8B6RijWRDtmFRf55wAwkBiClPXzqCLSmIj_rUJRWyXA?e=vLQjTE) 标签: OpenWrt, LEDE, 编译, wndr4300, ubuntu 本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。