家麟关注0.4862020.05.20 15:51:29字数 878阅读 3,903
此文主要是以Lean的Openwrt源码编译https://github.com/coolsnowwolf/lede
第一次编译,查了很多文章,只是把过程记录一下,方便以后自己查看
注意:
- 不要用 root 用户 git 和编译!!!
- 国内用户编译前最好准备好梯子
- 默认登陆IP 192.168.1.1, 密码 password
1.首先装好 Ubuntu 64bit,推荐 Ubuntu 18 LTS x64
2.命令行输入
sudo apt-get update sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3.5 python2.7 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler g++-multilib antlr3 gperf
3.使用下面命令下载好源代码,然后进入lede目录
git clone https://github.com/coolsnowwolf/lede cd lede
4.如果你需要那个什么乳酸菌+,进入lede路径下,编辑feeds.conf.default文件,将里面最后一行开头的注释#删除保存,如果还想要p@55w@11插件,在此文件末尾追加下面一行内容
src-git kenzo https://github.com/kenzok8/openwrt-packages #p@55w@11 src-git small https://github.com/kenzok8/small #p@55w@11依赖
feeds.conf.default
再执行以下命令
./scripts/feeds update -a ./scripts/feeds install -a make menuconfig
跳出配置界面,根据自己的硬件以及需要的插件,进行配置,
配置好选save,会保存到在lede目录下,文件名默认为.config
下面就以小娱C1路由器为例,进行配置
cpu型号可以参考这里的csv文件https://openwrt.org/supported_devices
去选择相应的硬件平台型号(小娱C1和C5硬件配置一样)
硬件型号
进入LuCI——>Themes,选择你想要的主题
主题
进入LuCI——>Applications,选择你想要的插件
插件
LuCI —> Applications 添加常用插件及应用说明
注意:根据路由器硬件flash的容量大小,插件不要选太多,保证编译出来的固件大小要小于flash的容量,我一开始选了很多插件,编译就失败了,或者即使编译成功了,刷机的时候就会提示容量固件太大了,那么就在要编译的插件选M,这样就可以让编译出来的固件没那么大了,之后刷机进入openwrt再手动安装编译成安装包的插件(当然,我编译小娱C1的flash只有32M,如果你的flash有128M,那就无所谓了)
LuCI ---> Applications ---> luci-app-accesscontrol #访问时间控制 LuCI ---> Applications ---> luci-app-adbyby-plus #广告屏蔽大师Plus + LuCI ---> Applications ---> luci-app-aria2 # Aria2下载工具 LuCI ---> Applications ---> luci-app-arpbind #IP/MAC绑定 LuCI ---> Applications ---> luci-app-autoreboot #支持计划重启 LuCI ---> Applications ---> luci-app-baidupcs-web #百度网盘管理 LuCI ---> Applications ---> luci-app-ddns #动态域名 DNS(集成阿里DDNS客户端) LuCI ---> Applications ---> luci-app-diskman #磁盘管理工具 luci-app-diskman ---> Include btrfs-progs #新型的写时复制 (COW) luci-app-diskman ---> Include lsblk #lsblk命令 用于列出所有可用块设备的信息 luci-app-diskman ---> Include mdadm #mdadm命令 用于创建、管理、监控RAID设备的工具 LuCI ---> Applications ---> luci-app-dockerman #Docker容器 LuCI ---> Applications ---> luci-app-filetransfer #文件传输(可web安装ipk包) LuCI ---> Applications ---> luci-app-firewall #添加防火墙 LuCI ---> Applications ---> luci-app-flowoffload #Turbo ACC网络加速(集成FLOW,BBR,NAT,DNS... LuCI ---> Applications ---> luci-app-frpc #内网穿透Frp客户端 LuCI ---> Applications ---> luci-app-guest-wifi #WiFi访客网络 LuCI ---> Applications ---> luci-app-hd-idle #硬盘休眠 LuCI ---> Applications ---> luci-app-kodexplorer #KOD可道云私人网盘 LuCI ---> Applications ---> luci-app-mwan3 #MWAN3负载均衡 LuCI ---> Applications ---> luci-app-mwan3helper #MWAN3分流助手 LuCI ---> Applications ---> luci-app-netdata #Netdata实时监控(图表) LuCI ---> Applications ---> luci-app-nfs #NFS网络共享 LuCI ---> Applications ---> luci-app-nlbwmon #网络带宽监视器 LuCI ---> Applications ---> luci-app-nps #内网穿透nps LuCI ---> Applications ---> luci-app-ntpc #NTP时间同步服务器 LuCI ---> Applications ---> luci-app-p910nd #打印服务器模块 LuCI ---> Applications ---> luci-app-passwall #不解释PassWall LuCI ---> Applications ---> luci-app-qbittorrent #BT下载工具(qBittorrent) LuCI ---> Applications ---> luci-app-qos #流量服务质量(QoS)流控 LuCI ---> Applications ---> luci-app-ramfree #释放内存 LuCI ---> Applications ---> luci-app-samba #网络共享(Samba) LuCI ---> Applications ---> luci-app-sfe #Turbo ACC网络加速(flowoffload二选一) LuCI ---> Applications ---> luci-app-sqm #流量智能队列管理(QOS) LuCI ---> Applications ---> luci-app-乳酸菌饮料-plus #乳酸菌饮料低调上网Plus+ luci-app-乳酸菌饮料-plus ---> Include s-s v贰瑞 Plugin #SS v贰瑞插件 luci-app-乳酸菌饮料-plus ---> Include v贰瑞 #v贰瑞代理 luci-app-乳酸菌饮料-plus ---> Include Trojan #Trojan代理 luci-app-乳酸菌饮料-plus ---> Include red---socks2 #red---socks2代理 luci-app-乳酸菌饮料-plus ---> Include Kcptun #Kcptun加速 luci-app-乳酸菌饮料-plus ---> Include 违禁软件 Server #乳酸菌饮料服务器 LuCI ---> Applications ---> luci-app-statistics #流量监控工具 LuCI ---> Applications ---> luci-app-syncdial #多拨虚拟网卡(原macvlan) LuCI ---> Applications ---> luci-app-transmission #BT下载工具 LuCI ---> Applications ---> luci-app-ttyd #网页终端命令行 LuCI ---> Applications ---> luci-app-unblockmusic #解锁网易云灰色歌曲3合1新版本 UnblockNeteaseMusic Golang Version #Golang版本 UnblockNeteaseMusic NodeJS Version #NodeJS版本 LuCI ---> Applications ---> luci-app-upnp #通用即插即用UPnP(端口自动转发) LuCI ---> Applications ---> luci-app-usb-printer #USB 打印服务器 LuCI ---> Applications ---> luci-app-verysync #微力同步 LuCI ---> Applications ---> luci-app-vlmcsd #KMS服务器设置 LuCI ---> Applications ---> luci-app-vnstat #vnStat网络监控(图表) LuCI ---> Applications ---> luci-app-vsftpd #FTP服务器 LuCI ---> Applications ---> luci-app-watchcat #断网检测功能与定时重启 LuCI ---> Applications ---> luci-app-webadmin #Web管理页面设置 LuCI ---> Applications ---> luci-app-wifischedule #WiFi 计划 LuCI ---> Applications ---> luci-app-wol #WOL网络唤醒 LuCI ---> Applications ---> luci-app-wrtbwmon #实时流量监测 LuCI ---> Applications ---> luci-app-xlnetacc #迅雷快鸟 LuCI ---> Applications ---> luci-app-zerotier #ZeroTier内网穿透
5.下载dl库(国内请尽量全局科学上网)
make -j8 download V=s
6.输入编译命令,即可开始编译你要的固件了。
make -j1 V=s #-j1 后面是线程数。第一次编译推荐用单线程
本套代码保证肯定可以编译成功。里面包括了 R20 所有源代码,包括 IPK 的。
二次编译:
cd lede git pull ./scripts/feeds update -a && ./scripts/feeds install -a make defconfig make -j8 download make -j$(($(nproc)+1)) V=s
如果需要重新配置:
rm -rf ./tmp && rm -rf .config make menuconfig make -j$(($(nproc)+1)) V=s
编译完成后输出路径:/lede/bin/targets
注:
如果 feeds update 出现一堆类似下面的警告:
WARNING: Makefile 'package/lean/shadowsocksR-libev-full/Makefile' has a dependency on 'libpcre', which does not exist
解决办法就是删掉 feeds 整个文件夹,在 lede 或 openwrt 目录下执行 rm -rf ./feeds
,然后再 update。
Openwrt USB/SATA 支持 的Kmod 及挂载
内核编译选项
make menuconfig
Base syste
Block-mount —Block device mounting and checking 支持设备挂载
Utilities
mount-utils
Kernel modules > Block Devices 支持设备类型 IDE AHCI SCSI
kmod-ata-core —-Sata接口核心>>支持的芯片组及传输协议 ID
Kernel modules > Filesystems 支持文系统类型 EXT3/4 /FAT/NTFS
Kmod-fs-ext4/vfat/ntfs
Extra packages 进到这里
automount,自动挂载磁盘
autosamba,自动smb共享
ipv6helper,支持IPv6
Extra packages
参考文章