编译lede版openwrt

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

注意,【不要】用【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)

脚底按摩:砭石按摩刺激脚底反射区|c#中的PictureBox如何显示图片?