前言
编译环境,我是使用Ubuntu16.04.07 LTS 64位版
1.安装Ubuntu16.04.07 LTS 64
作者写这篇文章的时候lede源码使用debian11编译,对于的就是Ubuntu 20,至于为什么要安装ub16是因为最开始我不清楚要使用ub20安装,用ub16安装的时候出现了问题,找到了解决方法正好分享一下
Ubuntu16.04.07 LTS 64安装的时候会出现一个bug,如果开始安装界面选了中文之后就会出现
提示错误信息:无法安装busybox-initramfs,向目标系统中安装busybox-initramfs软件包时出现一个错误。
在网上找了相关资料,发现很多文章都说是虚拟机或者Ubuntu Server的BUG,安装的时候语言选择英文就可以解决。
关键点一共有三个地方,首先在进入第一个安装界面的时候,先选择英文!!!千万不能选择简体中文,后面还有机会修改系统的语言:
在一开始选择English
这里可以直接选中文,这样就不会出现问题了
后面按照提示安装,建议磁盘大小直接给100G就行,直接安装在一个磁盘里
安装完成之后,我们用不能直接用root登录,需要用普通用户登录然后提权,但是root密码我们不清楚,所以我们在普通用户设置下root密码
sudo passwd
2.环境准备
注意:仅使用非root账户操作,用root用户编译会出错
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev
下载源代码,建立工作目录,进入工作目录
源码地址:GitHub - coolsnowwolf/lede: Lean's LEDE source
git clone https://github.moeyy.xyz/https://github.com/coolsnowwolf/lede
由于Github访问比较慢,我使用了地址加速
lede文件夹里的一个叫做“feeds.conf.default”的文件
里面可以补一行
src-git lienol https://github.com/Lienol/openwrt-package
这句话的功能是在接下来的更新和安装feed的时候,可以调用SRC源 Lienol先生 的Package包, Lienol先生自主开发的PassWall具有非常好的性能,强烈推荐使用。
更新软件包 (feeds都是一些插件)
./scripts/feeds update -a
如果是二次编译可以清空下配置
make clean && ./scripts/feeds clean
因为 Lienol 的Package包 和lean大的部分 Package包 冲突,所以不好意思,要删掉 Lienol 的部分Package包
rm -rf feeds/lienol/lienol/ipt2socks
rm -rf feeds/lienol/lienol/shadowsocksr-libev
rm -rf feeds/lienol/lienol/pdnsd-alt
rm -rf feeds/lienol/package/verysync
rm -rf feeds/lienol/lienol/luci-app-verysync
以上命令直接复制按回车确认即可。
下面我们运行新命令
./scripts/feeds install -a
编译菜单
make menuconfig
选择Soc、机型,<*>,表示将软件包编译进固件,,表示软件包会被编译,但不会编译进固件。
添选择选择CPU型号、路由器型号,<*>,表示将软件包编译进固件,,表示软件包会被编译,但不会编译进固件。
此处以斐讯K2 PSG1218为例:
Target System --> MediaTek Ralik MIPS
Subtarget --> MT7620 based boards
Target Images --> Phicomm PSG1218
添加luci网页界面
LuCI --> Collections -->luci
添加简体中文
LuCI --> Modules --> Translations -->Chinese(zh-cn)
添加网页界面主题
LuCI --> Themes -->luci-theme-openwrt (喜欢哪个主题就选择那个主题)
设置完毕,保存,最后选择Exit。
-
首次编译建议只选择架构,其它都不要动,这样编译成功率会更高。如果不打算调整组件则输入
make defconfig
,它会检测编译环境并生成默认的编译配置文件。
预下载编译所需的软件包
make download -j8 V=s
-j8
是指使用8个线程下载,理论上是数字越大下载越快,但似乎有个上限,实测5线程以上其实速度相差不了多少,在网络好的情况下,基本在5分钟以内能下载完。
文件下载完毕,开始编译固件。
make V=99 -j2
-j参数设定全速编译 (-j参数可能会导致系统卡死,不建议老爷机使用)
- 生成的bin文件路径:bin/targets/系列名/
- 编译好的固件名格式为 lede-xxxx-generic-xxx-squashfs-sysupgrade.bin 将bin文件复制到U盘或者电脑桌面,在breed下刷入固件,浏览器登录192.168.1.1,LEDE的管理界面。
- 如果再次编译,需要先删除 build_dir 目录下的设置文件。或者执行命令 make clean
以下是个性化设置:
x86编译要点
1. 编译所有文件系统支持,包括ext2/ext3/ext4,还有NTFS,甚至是LVM;
2. 加入一个文本编辑器,例如vim或者nano,因为日常使用中需要用文本编辑器修改各种配置文件;
3. 加入所有关于无线网卡的驱动,模块,各种支持程序;
4. 一些其他常见应用--蓝牙、加密、PGP、SSL、SSH、virtual**、USB支持、3G上网卡;
5. 编译时要到网上下载相关源码,所以可以日后下载的包尽量不选择编译;
6. 编译好的文件在当前目录的bin文件夹下,如果是brcm-2.4,则 ls bin/brcm-2.4/ 就可以看到很多熟悉的文件了。
以上设置组件时只精简了此机型用不到的usb模块和IPv6支持,以腾出空间装中文和Material主题,其它未修改,所以第一次登录还是英文界面,需要手动选择中文。为了使用方便,可以在源码里修改默认的语言、主题、时区、主机名、IP地址、wifi等等。