openwrt(LEDE)(ubuntu 16.04)编译配置个性路由器固件笔记

为了编译配置过程备忘,所以做了一下详细记录,集合了出错处理方法,个性设置方法。有基本linux基础的都能看懂。编译环境ubuntu 16.04,以netgear wndr4300为例,手头只有wndr4300可以折腾。

Ununtu 安装编译环境
sudo apt-get update
sudo apt-get upgrade
创建安装目录
mkdir openwrt
sudo chmod 777 openwrt
cd openwrt
下载lede源代码
git clone -b v18.06.4 https://git.openwrt.org/openwrt/openwrt.git #稳定版
#git clone https://github.com/lede-project/source.git #这是最新版源码,bug比较多,新手建议用稳定版。
cd source
git clone https://github.com/coolsnowwolf/lede #大雕lean源代码包含各种服务
cd lede
同步库更新本地分支
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
有冲突时先将本地修改存储起来
git stash

git stash list #可以看到保存的信息

Pull后还原暂存的内容
git stash pop [email protected]{0}
更新软件包
./scripts/feeds update -a
./scripts/feeds install -a
测试编译环境:
make defconfig

配置固件菜单:
make menuconfig
按照路由器芯片选择
按路径选择编译luci
上面路径设置中文语言
按路径设置web主题
按路径选择需要的服务插件
预先下载dl库,可以避免下载造成的编译失败。
make download V=s 
可以开始编译固件了。
make V=99 或者 make -j1 V=s

编译过程需要2-3小时,具体有你的电脑配置决定,该干嘛干嘛,等编译好就可以刷入你的路由器,一般默认IP:192.168.1.1 登录名:admin 密码:password

下面介绍一些个性设置方法

扩展128m分区
sed -i s/'23552k(ubi),[email protected](firmware)'/'120832k(ubi),[email protected](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 [email protected][0]
add system system
set [email protected][-1].hostname='LEDE'
set [email protected][-1].timezone='CST-8' #正八区
set [email protected][-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)  --->

网件wndr4300 v1固件,2019年11月8日更新

web管理界面升级扩展128M固件:openwrt-ar71xx-nand-wndr4300-squashfs-sysupgrade-128M-2019-11-8.tar

tftp刷机img固件:openwrt-ar71xx-nand-wndr4300-ubi-factory-128M-2019-11-8.img

openwrt x86 固件 2020年1月3日更新

openwrt-x86-64-combined-squashfs-2020-1-3.img.gz

2+