编译OpenWRT固件

前言

编译环境,我是使用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等等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

java-superchen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值