在CentOS环境下进行OpenWrt编译

openwrt编译环境搭建

因为想要将路由升级为X86_64平台的软路由,并且主机上使用Proxmox VE搭建虚拟环境,同时跑OpenWrt和基于CoreOS的Docker环境,这就需要自己编译一个支持KVM虚拟机的OpenWrt镜像(官方给出的预编译64位镜像不支持KVM,只有32位镜像支持KVM),所以要先为编译OpenWrt准备编译环境。目前的OpenWrt官方教程由于之前和LEDE项目的分分合合,可用性很差,以下为根据对过程的回忆勉强写下的记录。仅供参考。

编译机是租用GCP平台的VPS,4核vCPU,15G内存,30G硬盘,CentOS 7.0系统。按时间收费,不进行编译工作的时候关机,所以实际使用费用并不高。

一、搭建编译环境

由于CentOS使用yum包管理系统,所以不需要像apt-get一样更新源。我们直接运行

更新已安装的所有软件包。

然后开始安装编译OpenWrt所需的依赖包。

至此,依赖包应该都安装完成了,yum包管理系统的"Development Tools"真的很给力,当然我们之后还会进行依赖包检查,如果仍有缺失的依赖包,就按照提示进行安装即可。

二、正式编译前的代码准备工作

首先我们现在github上下载OpenWrt的源代码。

上述代码为OpenWrt项目主干代码。也可以通过添加-b xxxxx选择某个发行版的代码,例如:

现在我们已经有了OpenWrt的源代码,cd进入openwrt文件夹,运行如下代码再运行一次代码更新。

然后我们运行如下命令,更新OpenWrt源并将更新的软件包安装好。虽然官方说可以只更新不安装,但是如果想在编译时选择Luci,此步不可忽略。

至此,我们正式完成了所有的准备工作,即将开始正式编译。

三、配置编译参数、正式编译及编译完成后的清理

配置编译参数

现在我们已经做完了所有准备工作,该开始配置编译镜像的参数了。运行下列命令启动一个基于ncurses的文本配置界面。

该命令运行你自定义内核选项,主要需要启用的有如下选项。

保存后退出。

然后我们运行如下命令,进行编译镜像的参数配置。

其中我们会看到很多选项,大类如下

可以看到选项非常多,以下说明几个常用的功能所需要启用的选项。

当然还有很多其他的选项,要耐心进行逐项检查,以免白白浪费时间。选择完毕之后保存退出。

正式编译

现在我们终于可以开始编译了。使用如下指令开始编译。

其中-j 4指使用4个处理器核心进行编译,V=s指显示所有编译信息。要注意的是使用多个核心进行编译有可能出现随机错误。

编译会耗费较长时间,编译完成之后生成的镜像会出现在~/openwrt/bin文件夹中,去选取对应的镜像下载即可。

清理工作

最后我们进行编译完成之后的清理工作,可以使用如下三个命令。

 

评论