使用腾讯云轻量应用服务器编译一个属于自己的Openwrt固件
前言
前段时候我使用家里老旧的笔记本大家了一个单臂路由来玩,受限于单臂路由做主路由的性能限制,所以我入手了一个USB3.0转千兆网卡,来组成双网卡的主路由,实现我自己的需求,但是使用的群里大佬固件存在不兼容bug导致网卡运行时间十几个小时之后usb网卡就会重启,所以我就自己编译了一个固件,在网络上我没有什么合适的教程,中间有一定的波折。所以这里我就记录一下使用腾讯云的轻量应用服务器编译的过程,让大家少走坑。
编译OpenWrt的时候大部分时间都花在了编译环境搭建上,因为编译需要很多依赖,好在Lean大已经帮我整理好了,只需要按照步骤进行即可。
前期准备
- 一台服务器(确实没有虚拟机也可以)建议买一台服务器。地址在相关链接当中。
- lean推荐的是Ubuntu 20.04 LTS x64系统,购买或者的安装虚拟机的时候注意一下系统。
- 有一定的动手能力,伸手党、手残党看到这里就可以不要看了。
环境搭建
这里我们使用的是腾讯云的香港区域的轻量应用服务器,就免去了按照系统的步骤,记得按照要求选择镜像。通过ssh工具登录ubuntu。登录之后需要更新一下源,腾讯默认是自己的源,速度非常快。
这是我选择的服务器配置。
如果短期使用可以购买一个月的,配置越高编译速度越快(主要看核心数)
注意:
- 不要用 root 用户进行编译!!!
- 编译好的固件,默认登陆IP 192.168.1.1, 密码 password
依赖安装
sudo apt 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 进入目录。这里在强调一遍,编译建议使用腾讯云香港地区的轻量应用服务器,要不就自行开全局代理(这里不做解释说明)。不使用香港地区服务器或者代理可能会因为一些源被屏蔽导致编译失败。
cd lede
./scripts/feeds update -a
./scripts/feeds install -a
make defconfig
make defconfig会检查所需的编译工具是否齐全,并生成默认的编译配置文件.config
配置编译选项
在终端输入:
make menuconfig
界面是这个样子的。
后期看同学们的需求考虑是不是出一个讲解
进入后你可以利用键盘上的上下键选择你要编译的平台,比如X86平台,或者其他平台,然后在选择一些必要的软件包。选择过程中,按Enter是进入配置,英文输入法下按Y是确定选择,按N是取消选择,全部选择配置好后,按两下Esc就是退出选择,最后保存退出即可生成.config配置文件。
下载源码
配置完成后需要下载你选择的软件和必要的文件,OpenWrt仅有编译及配置指令,各种依赖的代码包在上游网站及代码仓库里,编译时会下载大量源代码
make -j8 download V=s ----下载dl库
这一步如果使用的是代理看代理的网速和稳定性来决定时间,如果是香港地区的服务器,等一下下就好。
编译系统
安装screen
建议使用screen 来把编译的进程挂在后台,防止因为各种原因断开终端(一般是网络波动或者误操作)丢失会话编译就会中断,使用screen挂在后台运行就不会有这个问题。
安装screen:
sudo apt install screen
screen 使用-S命令创建一个会话:
screen -S openwrt
按键盘上 Ctrl +A +D 可以挂载到后台,如果需要查看后台的会话输入:
screen -ls
执行上面的命令你会看到我们挂载到后台的openwrt会话,切换到openwrt会话:
screen -r openwrt
如果你只有一个会话可以省略后面的openwrt,默认进入第一个,如果有多个在编译,可以在新建窗口时,使用不同的名称进行区别。
编译及线程
make V=s -j1
-j1 后面是线程数。第一次编译推荐用单线程,如果对自己有信心,服务器配置有几个核心就写几,就开始编译自己要的固件了,简单还是复杂都由自己说了算。
最后
作者站点
个人博客地址是:https://www.hipyt.cn/
作者QQ
281582721
第一次写OpenWrt的内容,不到之处,请批评指正。
本文相关链接
版权属于:青阳のBlog
本文链接:https://www.hipyt.cn/305.html
作品采用:《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
转载时须注明出处及本声明
4 条评论
我想搞个,但是腾讯服务器上没有一个月都是按年来买
学习了,感谢
screen的方式很好OωO
就很棒,虽然我也会