不管是自编译固件,还是自编译应用程序,都需要先搭建自编译的环境,今天我们就来讲解一下如何搭建OpenWrt系统的自编译环境。有英文基础的人可以详细了解一下OpenWrt官网里这篇文章:https://openwrt.org/docs/guide-developer/build-system/install-buildsystem。
1、操作系统
因为OpenWrt系统采用的是Linux内核,因此自编译操作系统我们也选用Linux或Unix的系统,像Debian、Red Hat、Fedora等等,个人偏向于采用Ubuntu(Debian的衍生系统),系统稳定且更新及时。我也采用过CentOS系统,但个人感觉自编译的成功率没有Ubuntu的高,当然这仅仅是我个人很粗浅的认知,每个系统都会有各自的闪光点,可能只是我习惯了使用Ubuntu系统而已。
硬件方面,你可以直接使用安装了Ubuntu系统的台式电脑或笔记本电脑,也可以采用虚拟机技术VM或Docker,都能很好的完成自编译操作系统的搭建工作,但就方便性而言,建议还是采用虚拟机技术,采用虚拟机技术后在同一硬件环境下可以方便的安装同一系统的不同版本,因为有些编译过程,对系统版本的要求很高,如果你只安装了Ubuntu的最新版本20.04,对于某些只支持在18.04版本下编译的应用程序就会出现无法编译的情况,所以会存在需要安装多个不同版本号的系统的需求。另外,采用虚拟机技术,也可以方便我们随时远程访问主机进行编译工作,而不受时间及空间的限制。至于具体采用哪种虚拟机技术,我试过很多种,我觉得都OK,大家不必纠结于此,那一种你拿手就用那一种。本网站OpenWrt自编译部分讲解时,我使用的是在原台式电脑裸机的基础上,采用VMware的ESXI虚拟机技术搭建的Ubuntu系统,为方便管理里面也搭建了OpenWrt的软路由环境。
关于如何安装ESXI虚拟机以及如何在ESXI虚拟机下安装Ubuntu系统,不在本篇讲解,大家可以参考本网站的“关联应用 – 虚拟机技术 – VMware”部分的内容。
2、添加必要的程序包文件
为了能够顺利进行后续OpenWrt系统的编译过程,在安装好Ubuntu操作系统后,还必须添加编译时要用到的专用程序包文件:
sudo apt update sudo apt install build-essential ccache ecj fastjar file g++ gawk \ gettext git java-propose-classpath libelf-dev libncurses5-dev \ libncursesw5-dev libssl-dev python python2.7-dev python3 unzip wget \ python3-distutils python3-setuptools rsync subversion swig time \ xsltproc zlib1g-dev
注:不同的操作系统,需要安装的程序包文件是不一样,具体还请参考OpenWrt官网的指导文件。
3、编译注意事项
至此,搭建OpenWrt系统的自编译环境的工作就算完成了,后续就可以进行固件自编译及应用程序自编译的过程了。但有两条注意事项必须记住,否则编译过程很可能无法完成:
1)一定要用非root用户进行编译;
2)国内编译时最好先准备好“梯子”。