网络技术——Lean的OpenWRT Lede固件编译

1,660次阅读
No Comments

前言

最近开始折腾OpenWRT的固件,自己也买了台软路由开始折腾。

编译固件

  1. 安装Ubuntu 18.04系统 我这边选用的是 Vultr 这家服务商的VPS进行搭建的,经过测试完全没有问题。 当然了,在自己的机器上安装虚拟机也是个可行的选项,但是要注意的是!在整个编译过程中,必须保持全程科学上网,否则将有大概率编译失败,不过还是推荐直接用国外地区的VPS进行编译。 网络技术——Lean的OpenWRT (选择5美刀的配置就够了,系统选择 Ubuntu 64位) (2020-05-05更新:5美刀的机器内存跟不上,编译到一半会报错,内存溢出,选择10美刀的机器,系统依旧是Ubuntu 18.04 64位)
  2. 创建普通用户 编译OpenWRT用root用户可能会出错,所以这边要新建一个普通用户来进行编译
<code class="">sudo useradd -r -m -s /bin/bash lede
</code>

创建一个用户名为lede的用户并指定bash为终端

<code class="">sudo passwd lede
</code>

给用户lede添加一个密码

<code class="">sudo chmod +w /etc/sudoers 
sudo vim /etc/sudoers
</code>

编辑用户权限

网络技术——Lean的OpenWRT 在 User privilege specification 加入与root用户相同的权限

<code class="">:wq
</code>

保存并退出vim编辑器

<code class="">sudo chmod -w /etc/sudoers
</code>

去掉w权限

  1. 下载源代码 源代码来自恩山Lean大佬Github仓库链接
<code class="">su lede
cd ~
</code>

切换到刚才创建的新用户(输入密码不会显示)并且进入用户根目录

<code class="">sudo apt-get update
</code>

升级软件源

<code class="">sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3.5 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
</code>

安装编译所需软件包

<code class="">git clone https://github.com/coolsnowwolf/lede
cd lede
</code>

克隆源码仓库

<code class="">./scripts/feeds update -a
./scripts/feeds install -a
</code>

升级、安装附属包

<code class="">make menuconfig
</code>

进入菜单开始配置系统固件 (空格选定,上下左右控制方向)

网络技术——Lean的OpenWRT Target System 选择 x86

网络技术——Lean的OpenWRT Target Image 里面一定要选择squashfs

网络技术——Lean的OpenWRT LuCI - Application 可以定制你要的系统插件,例如(不可描述)等

完成之后可以Exit保存退出

<code class="">screen -S compile
make -j1 V=s 
</code>

启用一个screen开始编译,这样可以关闭SSH窗口,下一次登录时用screen -r返回之前的对话 -j1是代表用一个线程,V=s代表输出全部过程,第一次编译建议使用单线程。 整个编译过程在我测试过程中,使用 Vultr 新加坡地区的服务器,5美元的配置,耗时约3个半小时 编译完成就不截图了,应该按照正常的流程走是不会报错的

网络技术——Lean的OpenWRT 最后在 lede/bin/targets/x86/64 目录下能够找到 img 的固件文件,编译成功