
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