哪个男孩子不想拥有一份属于自己的定制化路由器固件呢?LEDE Openwrt是一套由大神Lean编写的稳定且更新很勤的固件,不需要太多的专业知识就可以定制化一套属于自己的路由器固件。网络上编译的教程很多,但大都鱼龙混杂,有的已经过时。于是总结了一下编译这一路踩下的坑,帮助后面的同学们能快速地学习。

  作者的Github仓库: [https://github.com/coolsnowwolf/lede]




准备工作

  1. 选择一个合适的用来编译的机器选择一个合适的用来编译的机器 

    1. 如果你选择用本地机器进行编译:

      1. 请准备好一个好的梯子(非常重要)

  2. 使用 GitHub Actions(推荐)

    1. 可以参考作者博客,作者的 GitHub 仓库

  3. 使用 VPS 编译

    1. 可以使用 vultr.com,按小时计费,可保存镜像,编译后即可销毁停止计费,之后重新开启一个实例然后使用快照恢复即可(注:2021.10.1 后 vultr 会按照镜像大小进行收费)

    2. 如果这篇文章对你有帮助,可以通过我的购买链接注册账户,关联信用卡或Paypal后将获得100美元的额度(30天有效)

    3. 如果你选择vultr这家提供商,推荐选择 High Frequency,1 CPU,64G 即可(第一次编译推荐用单线程,多核CPU无用武之地而且更贵

  4. 注意事项

    1. 不要用 root 用户进行编译!!!

    2. 国内用户编译前最好准备好足够的能量值使用魔法

    3. 固件默认登陆IP 192.168.1.1 密码 password 装好 Ubuntu 64bit

    4. 推荐 Ubuntu 20.04 LTS x64 剩余磁盘空间推荐40G以上 至少要有1G的RAM,如果不足可以增加swap分区作为补充 SWAP虚拟内存一键配置脚本

    5. 如果你使用WSL或WSL2进行编译: 

      由于wsl的PATH路径中包含带有空格的Windows路径,有可能会导致编译失败,请在将 make -j1 V=smake -j$(($(nproc) + 1)) V=s 改为

      首次编译:

    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin make -j1 V=s

          二次编译:

    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin make -j$(($(nproc) + 1)) V=s
  5. 安装必要组件

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

  6. 下载源代码

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

PLUS:

  如果你有某需求,请按下面方法操作

# 修改lede目录下的 feeds.conf.default 文件
nano ~/lede/feeds.conf.default
# 加入下面这行
src-git helloworld https://github.com/fw876/helloworld

  之后ctrl+O 回车 ctrl+x 进行保存 

  在之后编辑配置文件的时候请注意:某V开头的core与X开头的core不能共存,只能选择其中的一个

定制固件

  1. 配置编译

./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig

  2. 然后你会看到这个界面

menuconfig.png
menuconfig.png

(menuconfig,原图来源于本人账号)

  3. 我们需要根据路由器的CPU架构来选择前两项,请大家在这个清单里找到自己的CPU架构进行合适地修改:               https://ssr.tools/1366

  4. 路由管理界面的主题在这里进行修改:LuCI ——> Themes ,将喜欢的主题按 y 选中即可

  5. 在LuCI ——> Applications中选择自己需要的插件,插件列表注释如下:

     https://www.right.com.cn/forum/thread-344825-1-2.html

  6. 保存配置

      通过左右键移动到Save选项,回车,进入如下的界面

18cccff2378c0c81a835ccd9a66fa58ce036b277.png
18cccff2378c0c81a835ccd9a66fa58ce036b277.png

  小 tips:

建议你先以别的文件名保存,然后通过xftp之类的软件将保存在lede文件夹下的配置文件保存到本地。下次编译的时候可以将本地的配置文件上传到lede文件夹下,下次 make menuconfig 时可以左右键选择load,然后输入你的配置文件名载入配置文件。

  7. 下载dl库(国内请尽量全局使用魔法)

make -j8 download V=s

  8. 开始编译(-j1 后面是线程数。第一次编译推荐用单线程)

make -j1 V=s

      引用lede大神的话:

本套代码保证肯定可以编译成功。里面包括了 R21 所有源代码,包括 IPK 的。




如果你需要二次编译:

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

如果你需要修改配置:

cd lede git pull ./scripts/feeds update -a && ./scripts/feeds install -a rm -rf ./tmp && rm -rf .config make menuconfig make -j$(($(nproc) + 1)) V=s


如果您遇到任何问题,都可以在下方评论,我会尽力帮助您。如果文章中有不足之处甚至纰漏也烦请您可以在评论区或私信进行斧正,我很乐意听到大家的意见哦!

欢迎转载,转载请注明来源:

blog.metaphorme.com