编译官方OpenWrt
hgczgsvshh
2024年09月17日 09:56
收录于文集
共1篇
OpenWrt项目

准备

WSL或者其它Linux系统、互联网。


说明

除去安装编译依赖这一步,剩余步骤均不得以root用户运行。

实际执行中可能会遇到文中没有提及的报错。

建议第一次编译不要添加三方软件源,先把基础固件编译出来试试,节省时间。


安装编译依赖

sudo apt update -y

sudo apt full-upgrade -y

sudo apt install -y ack antlr3 aria2 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 libfuse-dev libltdl-dev \libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libreadline-dev libltdl-dev libpython3-dev libssl-dev libtool lrzsz \mkisofs msmtp nano ninja-build p7zip p7zip-full patch pkgconf python2.7 python3 python3-pip libpython3-dev qemu-utils \rsync scons squashfs-tools subversion swig texinfo uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev python3-pyelftools python3-setuptools

*遇到选择界面则选Y。

*可以多执行几遍,完全安装成功则会输出0 upgraded, 0 newly installed, 0 to remove...


克隆官方源码

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

*如果遇到RPC错误( RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: CANCEL (err 8))则执行以下命令,如果以下命令依旧报错则建议检查互联网连接情况。

git config --global http.version HTTP/1.1

git config --global http.postBuffer 157286400


更新源码

cd openwrt

git pull


添加三方软件源

cd openwrt

sed -i '1i src-git kenzo https://github.com/kenzok8/openwrt-packages' feeds.conf.default

sed -i '2i src-git small https://github.com/kenzok8/small' feeds.conf.default

*以上软件源地址仅为示例,请添加所需要的软件源地址。

*执行一次则会添加一次,请勿重复执行,重复则需编辑feeds.conf.default删除重复项。


更新软件源并安装软件源下的软件

./scripts/feeds update -a

./scripts/feeds install -a

*可以多执行几遍,第一条完全完成则会输出Already up to date.,第二条完全完成则会输出Installing all packages from feed...

*如需卸载所有已安装的软件包,则运行此命令./scripts/feeds uninstall -a


配置镜像

make defconfig

make menuconfig

*此步骤为界面选择,需要使用方向键,空格键操控。

*Targer System、Subtarget按照架构选择,x86机器分别选择x86、x86_64。

*Targer Image中的Root filesystem partition size可设置为1024(扩大软件包可用空间)。

*Base system中建议取消安装dnsmasq(较大概率会有冲突),转而安装dnsmasq-full。 

*Luci中的Applications为选择软件包,按空格键选中为*,如果想要的软件包没有出现,则检查软件源是否添加,添加后是否更新,更新后是否安装。

*配置完成选择Save保存,保存后选择Exit后退出。


预下载并检查下载完整性

make download -j8 V=s

find dl -size -1024c -exec ls -l {} \;

*当检测出小于1K的文件(损坏的文件)则执行删除命令并重新执行预下载,删除命令find dl -size -1024c -exec rm -f {} \;


构建镜像

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

*WSL下编译的可选执行命令(减少因空格路径问题导致的编译失败概率)。

make V=s -j 28

*j 后面表示编译时调用的CPU线程数,建议设置为1(个人习惯拉满,大不了重新编译👼)。

*编译完成后镜像输出目录为home\username\openwrt\bin\targets


后记

如何通过控制台设置pppoe连接?

控制台输入vi /etc/config/network

找到config interface wan

按i进入编辑模式

设置option prote 'dhcp'为option prote 'pppoe'

新增option username ‘宽带账号’

新增option password ‘宽带密码’

确认无误后按ecs退出编辑,再输入:wq并回车保存。


如何安装WEB管理界面?

后期需要WEB管理界面,联网状态下在控制台执行以下命令

opkg update

opkg install luci


如何自定义WEB管理界面地址?

控制台输入vi /etc/config/network

找到config interface lan

按i进入编辑模式。

将默认的192.168.1.1修改为自定义地址

确认无误后按ecs退出编辑,再输入:wq并回车保存。


如何修改WEB管理界面为中文?

后台找到System>Softwave。

点击Update lists更新软件包列表。

更新完成后搜索zh,找到luci-i18n-base-zh-cn点击安装。

最后在System>System中找到language and Style选项,选择简体中文即可。


教程参考以下信息

https://openwrt.org/zh-cn/doc/howto/build

https://gist.github.com/daopk/0a95772d582cafb202142ff7871da2fc

https://github.com/coolsnowwolf/lede?tab=readme-ov-file