OpenWrt 固件定制编译教程
环境准备与源码下载
访问 lede的源码仓库,按照说明进行到make menuconfig。
make menuconfig 完整配置
确认路由器架构
访问 OpenWrt官方设备支持列表,搜索路由器型号,确认以下信息:
- Target System(目标平台,如
MediaTek Ralink ARM
) - Subtarget(如
Filogic 8x0(MT798x)
) - Target Profile(设备型号,如
GL.iNet GL-MT3000
)
LuCI
LuCI ---> Collections ---> <*> luci
LuCI ---> Applications --->
<*> luci-app-adblock # 去广告
<*> luci-app-adblock-fast
<*> luci-app-commands # 网页 Shell
<*> luci-app-ddns # 动态域名解析
<*> luci-app-dockerman # docker
<*> luci-app-firewall # 防火墙
<*> luci-app-hd-idle # 硬盘休眠
<*> luci-app-mwan3 # 多 WAN 管理
<*> luci-app-ntpc # 时间同步服务器
<*> luci-app-ocserv # VPN 服务器
<*> luci-app-openssl #
<*> luci-app-openvpn # OpenVPN 客户端
<*> luci-app-p910nd # 打印服务器
<*> luci-app-usb-printer # USB 打印服务器(hackpascal 优化)
<*> luci-app-qos # QoS 管理
<*> luci-app-samba # 网络共享(Samba)
<*> luci-app-shadowsocks # 科学上网(Shadowsocks)
<*> luci-app-syncdial # 多拨虚拟网卡(macvlan)
<*> luci-app-transmission # BT 下载
<*> luci-app-upnp # 通用即插即用
<*> luci-app-vsftpd # FTP 服务器
<*> luci-app-webshell # 网页终端
<*> luci-app-wifischedule # 定时开关wifi
<*> luci-app-wol # 网络唤醒
<*> luci-app-xunlei # 迅雷下载
<*> luci-app-zerotier # 内网穿透
LuCI ---> Themes ---> <*> luci-theme-bootstrap # 默认主题
LuCI ---> Modules---> Translations ---> <*> Chinese Simplified (zh_Hans) # 中文语言包
Base system
Base system ---> <*> block-mount # 添加USB挂载
Base system ---> <*> librt (libpthread 会自动联动选中) # 添加USB挂载
Kernel Module
添加高速数据支持
Kernel modules ---> Block Device --->
<*> kmod-block2mtd
<*> kmod-scsi-core
<*> kmod-scsi-generic # USB 转 IDE / SATA
Kernel modules ---> Filesystems --->
<*> kmod-fs-ext4 # ext4 文件系统
<*> kmod-fs-nfs
<*> kmod-fs-nfs-common
<*> kmod-fs-ntfs # NTFS 只读
<*> kmod-fs-vfat # FAT32 支持
<*> kmod-fuse # FUSE 文件系统
Kernel modules ---> USB Support --->
<*> kmod-usb-net # USB 转网卡驱动
<*> kmod-usb-net-ipheth # iPhone USB 共享网络
<*> kmod-usb-net-rndis # 安卓 USB 共享网络
<*> kmod-usb-ohci # OHCI 控制器
<*> kmod-usb-uhci # UHCI 控制器
<*> kmod-usb2 # USB 2.0 支持
<*> kmod-usb3 # USB 3.0 支持
<*> kmod-usb-hid # USB 键盘鼠标支持
<*> kmod-usb-storage # USB 存储支持
<*> kmod-usb-storage-extras
Utilities
Utilities --->
<*> docker
<*> docker-compose
<*> dockerd
<*> usbutils # lsusb 命令
Utilities ---> Filesystem --->
<*> ntfs-3g # NTFS 读写支持(占用较多cpu)
Utilities ---> libimobiledevice --->
<*> libimobiledevice-utils # Apple 设备通讯库
<*> libplist-utils # Apple property list 解析工具
<*> libusbmuxd-utils # USB 复用守护进程工具
<*> usbmuxd # USB 复用守护进程
Languages
Python
Mail --->
<*> msmtp # 邮箱服务
继续lede的教程
下载 dl 库,编译固件 (-j 后面是线程数,第一次编译推荐用单线程)
make download -j8 V=s
在make download之后使用如下命令检查文件完整性(小于1k的文件属于下载不完整):
find dl -size -1024c -exec ls -l {} \;
如果存在这样的文件可以使用
find dl -size -1024c -exec rm -f {} \;
命令将它们删除,然后重新执行make download下载并反复检查,确认所有文件完整可大大提高编译成功率,避免浪费时间。
开始编译
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin make -j1 V=s
刷入路由器
编译好固件之后刷入路由器。参考此教程
参考链接
p3terx zone
Rvan’s Blog