美文网首页
编译lede版openwrt

编译lede版openwrt

作者: 晓函 | 来源:发表于2022-05-08 20:09 被阅读0次

注意,【不要】用【root用户】编译。
你需要创建一个其他账户,然后创建一个目录,给这个账户权限,进入这个目录后,开始按照教程编译。

创建新用户,看这里
https://www.jianshu.com/p/f5a2f7a08a76

如果编译?进入lede大佬的仓库,里面有简单教程,
https://github.com/coolsnowwolf/lede
下面我写了更详细的教程。

首次编译

更新源和包

sudo apt update -y
sudo apt full-upgrade -y

安装依赖项

sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \
bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \
git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libglib2.0-dev libgmp3-dev libltdl-dev \
libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libssl-dev libtool lrzsz \
mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pip qemu-utils \
rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev

下载源代码

git clone https://github.com/coolsnowwolf/lede
cd lede

开启 $科学世界

vim ./feeds.conf.default
#找到helloworld这行注释掉,如果没有则自己添加
src-git helloworld https://github.com/fw876/helloworld

更新 feeds 并选择配置

./scripts/feeds update -a
./scripts/feeds install -a
#开始配置
make menuconfig

我是R6100,根据硬件选好target system / subtarget / target profile。


image.png

后面就是选好要编译进去的包,不要选太多,超过路由flash大小就不好了。

Luci里面选好Applications包和主题

image.png
注意:==r plus会增大2-4m

Extra packages选择自动挂载硬盘


image.png

Network里面选好transmission的包


image.png

其他的一般支持一般都默认配置好的,不用特别配置,想要扩展更多,具体看下图
ps:不要选太多,超过路由flash大小就不好了。

image.png

下载 dl 库,编译固件 (-j 后面是线程数,第一次编译推荐用单线程)

make download -j8
#这条命令编译要耗时几小时
make V=s -j1
#可以用这条命令后台编译,不用担心中断
nohup make V=s -j1 > make.log & tail -f make.log
小知识:nohup可以让命令在后台运行,即使退出 shell 后也能保持进程运行。它通过阻止进程接收SIGHUP(信号挂起)信号来实现这一点,该信号通常在进程退出终端时发送到进程

编译完成后在
/lede/bin/targets/ath79/nand/ 下面生成有编译好的固件包
factory.img适用于从原厂系统刷到openwrt,
sysupgrade.tar则是从openwrt刷到另一个版本openwrt
这这里编译生成的具体包名是:

#升级包(openwrt升级用)
openwrt-ath79-nand-netgear_r6100-squashfs-sysupgrade.tar
#刷机包(原厂固件刷机用)
openwrt-ath79-nand-netgear_r6100-squashfs-factory.img

ps:openwrt v21版本,不能在低于v20的老版本直接升级,需要刷到原厂固件,然后用刷factory.img

错误1:如果生成的是initramfs-kernel或rootfs,没有sysupgrade/factory ,
因为你编译出来的固件大小超过了设定的大小。设定的大小一般为设备出厂默认的闪存flash大小,r6100是25m

二次编译

二次编译就很快了,只需要修改

a.同版本openwrt
变更配置(有两种方式:重新配置/修改配置),然后直接编译,

【完全清空配置再编译】先删除.config文件和tmp,因为如果直接menuconfig,你减去的包他不会删除,只会新增包。

rm -rf ./tmp && rm -rf .config
make menuconfig
make V=s -j$(nproc)

【修改上次配置再编译】你也可以不删除.config文件,menuconfig完成后,手动编辑config文件,删除不要的包,再删除tmp

rm -rf ./tmp
vim .config
make menuconfig
make V=s -j$(nproc)

b.不同版本openwrt
拉取新版本代码,然后使用之前的配置,直接编译

cd lede
git pull
./scripts/feeds update -a
./scripts/feeds install -a
make defconfig
make download -j8
make V=s -j$(nproc)

相关文章

网友评论

      本文标题:编译lede版openwrt

      本文链接:https://www.haomeiwen.com/subject/xixqurtx.html