自己动手编译最新OpenWrt稳定版

Posted ganzy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自己动手编译最新OpenWrt稳定版相关的知识,希望对你有一定的参考价值。

1.安装ubuntu 20.04.3

sudo apt-get update -y

sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3 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 wget curl swig rsync

2.下载源码:

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

git clone https://github.com/openwrt/openwrt

3.查看并切换到新的稳定版tag(分支):

cd openwrt

git tag

自己动手编译最新OpenWrt稳定版_openwrt

git checkout v21.02.2

自己动手编译最新OpenWrt稳定版_openwrt_02

4.​自定义要安装的包,修改openwrt的include/target.mk文件,在

DEFAULT_PACKAGES:=\\

       base-files \\

       ca-bundle \\

       dropbear \\

       fstools \\

       libc \\

       libgcc \\

       libustream-wolfssl \\

       logd \\

       mtd \\

       netifd \\

       opkg \\

       uci \\

       uclient-fetch \\

       urandom-seed \\

       urngd

后面加上自己想要编译的内容:

DEFAULT_PACKAGES:=base-files libc libgcc busybox dropbear mtd uci opkg netifd fstools uclient-fetch logd default-settings luci luci-app-aliddns luci-app-upnp luci-app-adbyby-plus luci-app-autoreboot luci-app-ssr-plus ddns-scripts_aliyun luci-app-vlmcsd luci-app-ramfree luci-app-flowoffload

Compile OpenWrt参考资料:


https://github.com/openwrt/openwrt

https://github.com/coolsnowwolf/lede



如何编译移植lean的固件到官方固件:https://www.bandwh.com/net/38.html

科学上网插件:

https://github.com/kenzok8/small-package


编译Openwrt固件安装软件内核版本不一致问题解决:

https://www.haiyun.me/archives/1075.html



esirplayground/Compile_OpenWrt_Tutorial:如何编译自己需要的 OpenWrt 固件:

https://github.com/esirplayground/Compile_OpenWrt_Tutorial



sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3 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 wget curl swig rsync




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

git clone https://github.com/openwrt/openwrt


拷贝lede/packgage/lean文件夹到openwrt/package 里面,自定义要安装的包,修改openwrt的include/target.mk文件,在DEFAULT_PACKAGES:=base-files libc libgcc busybox dropbear mtd uci opkg netifd fstools uclient-fetch logd 后面加上自己想要编译的内容


下载源代码及切换目录



添加部分插件源,例如Helloword,(不需要的可跳过这步)

以下方式二选一


下载仓库方式:命令行输入以下命令"git clone https://github.com/fw876/helloworld.git package/lean/luci-app-ssr-plus"


添加feeds方式:命令行输入以下命令"echo src-git helloworld https://github.com/fw876/helloworld >>feeds.conf.default"


cd openwrt

git tag

git checkout v19.07.0


vi include/target.mk



./scripts/feeds update -a

./scripts/feeds install -a

make menuconfig


git clone https://github.com/fw876/helloworld.git package/lean/luci-app-ssr-plus


vi feeds.conf.default


src-git helloworld https://github.com/fw876/helloworld

src-git lienol https://github.com/xiaorouji/openwrt-passwall


首先装好 Ubuntu 64bit,推荐 Ubuntu 20.04 LTS x64


命令行输入 sudo apt-get update ,然后输入 sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3 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 wget curl swig rsync


使用 git clone https://github.com/coolsnowwolf/lede 命令下载好源代码,然后 cd lede 进入目录


./scripts/feeds update -a

./scripts/feeds install -a

make menuconfig

make -j8 download V=s 下载dl库(国内请尽量全局科学上网)


输入 make -j1 V=s (-j1 后面是线程数。第一次编译推荐用单线程)即可开始编译你要的固件了。


git clone -b 19.07 https://github.com/kenzok8/small-package


wget https://downloads.openwrt.org/releases/19.07.8/targets/x86/64/openwrt-19.07.8-x86-64-generic.manifest


看看md5版本号是怎么生成的:


grep vermagic include/kernel-defaults.mk

$(SH_FUNC) grep =[ym] $(LINUX_DIR)/.config | LC_ALL=C sort | md5s > $(LINUX_DIR)/.vermagic


在编译前指定内核版本号:



#查看Openwrt官方源内核版本:


wget https://downloads.openwrt.org/releases/19.07.8/targets/x86/64/packages/Packages.gz

zgrep -m 1 "Depends: kernel (=.*)$" Packages.gz | sed -e s/.*-\\(.*\\))/\\1/ > .vermagic

#取而代之

sed -i -e s/^\\(.\\).*vermagic$/\\1cp $(TOPDIR)\\/.vermagic $(LINUX_DIR)\\/.vermagic/ include/kernel-defaults.mk



编译后指定内核版本:



sed -i s/eac88df3cb49b94d68ac3bc78be57f95/68143adfcb7fc62a239c4be112fe40de/ /usr/lib/opkg/status


以上是关于自己动手编译最新OpenWrt稳定版的主要内容,如果未能解决你的问题,请参考以下文章

自己动手添加一个OpenWrt开机启动脚本

怎么在ubuntu系统上编译定制openwrt固件

openwrt编译x86镜像

求问各路大神,openwrt编译没生成sysupgrade.bin怎么办

openwrt固件怎么下载

如何升级Nginx到最新稳定版