三、 开始编译
1. OpenWrt 的配置具备什么样的特性,拥有哪些功能,包含什么软件包,比如说,固件是针对何种架构、哪款芯片、什么型号的设备而定制的。
比如说,我的那个固件呀,是专门针对小米路由3G设备定制的,该设备所采用的固件呢,又是为MediaTek MIPS架构的MT7621的芯片去定制的。
使用命令:
随后,你的终端会转变为一个借助键盘去操作的GUI界面,要是终端过小,那么没办法进行配置!
根据每一个选项的字面意思(不懂英文的自行翻译)来进行配置。
大部分功能以及配置,都会占用硬盘空间,所以要是添加过量功能和软件包,那么就会导致固件大小以及实际安装之后的大小变得过大!
2. 根据你上一步的配置,下载编译需要的源码(包括软件包)
这一步的操作,会使得编译的时候,因为下载出现错误而导致的编译失败情况得以减少,并且还能够节省编译所需要花费的时间。
使用命令:
make download -j【CPU线程数】 V=s
复制代码
请根据自己电脑的CPU来设置,例如本人的这条命令为:
有的时候,因为网络环境对其产生了影响,就会出现下载失败这种情况,或者是出现卡住的状况,在这样的时候,能够借助“Ctrl + C”快捷键去终止操作,接着去执行下面的命令,随后再次执行上面的命令来进行下载。还有个小技巧,有的时候没办法通过“curl”工具去下载特定的文件,又或者是自动下载时文件地址不正确,或者是由于失效从而导致一直下载失败,在这个时候,可以直接借助搜索引擎去搜索想要下载的文件名,下载到电脑之后,放到“dl”目录下面,并且执行下面的命令之后,继续执行上面的命令,一直到完全处于正常状态(没有报错)。
推荐多执行几次,确保所需软件包的源码下载正确、完整。
3. 开始编译
官方建议采用是唯一单个线程,就是那种要用到特定指令(make -j1 V = s)去进行编译的线程,这种方式会致使错误显示在最底部位置,原因在于每一个不同线程各自执行一些对应命令的时候顺序是不一样的,所以呢,每一个错误信息返回的精准时间也是不相同的,这样就存在一种可能性,就是错误信息会被其他线程产生的正确信息给推挤到终端的后面最终显示出来。
于开始之前所给出的建议是,去检查“dl/”这个目录之下,那下载而来的源文件,一般而言小于1M的属于下载错误的情况,建议重新进行下载。(类似这样的情况,比方说php 8.1.3的大小为11.7M,在Linux系统下显示为12M)
我个人推荐:
采用全线程编译方式,在遇到错误而导致终止之后,再次施行多线程编译操作(或许能够解决那种难以捉摸的问题,不过我未曾遇到此种情况),针对同一问题若未消失便去查看错误:存在清晰明显报错信息的,依据该报错信息进行解决,对于不存在报错信息的,更换为单线程编译来查看错误(执行make -j1 V=sc)。
目前我遇到的错误:
1. 自行改动修补文件之后的语法差错,报错自动终止之后修正语法差错接着多线程编译。
2. 同一个文件,然而两个软件包都予以提供了;报错之后软件自动中止,接着重新配置 OpenWrt,对于冲突的软件包要从二者之中选择其一(OpenWrt 自身携带的软件包应优先予以保留(鉴于兼容性方面的需求))。
使用命令:
从我电脑的配置情况来看,最终编译成功所实际耗费的时间,这时间是取决于功能以及软件包数量的, 编译成功实际花费时间是这样的:
由于运用的是WSL,有着性能损耗情况,所以实际上编译速度理应能够更快一些才对。
未经允许不得转载:openwrt技术分享 » OpenWrt系统编译教程:配置功能与下载源码的实用技巧

openwrt技术分享
微信关注,获取更多