Openwrt编译(centos7 openwrt17.0)
最近因为某些原因,需要使用Openwrt和SS。
于是就开始了各种入坑之路。
首先是Openwrt的编译。
网上的教程许多都已经过时了,最新的openwrt和lede似乎有合并的迹象,目前的版本是17.0.X
在此记录一下自己的编译心得。
我用的环境是centos7.
基本上其他发行版的linux操作都差不多。
都是安装基础环境-》GIT openwrt的交叉变异工具-》install各种源码-》make编译。
一、安装各种基础编译组建
yum install asciidoc autoconf binutils bison build-essential bzip2 flex gawk gettext git libncurses5-dev libssl-dev libxml-parser-perl libz-dev patch quilt subversion uglifyjs unzip xsltproc zlib1g-dev
如果后面编译的时候提示缺少XX组件,请按照提示找。。。具体是什么组件我忘了。如果是其他发行版的linux,有的组件名字可能不一致,具体请baidu或者google。
二、git各种源码
从此处开始,请不要使用root账号操作!!!
从此处开始,请不要使用root账号操作!!!
从此处开始,请不要使用root账号操作!!!
不然会有各种神奇的问题。。。
新建openwrt文件夹:mkdir openwrt
进入openwrt目录 cd openwrt
git源代码:git clone git://github.com/openwrt/openwrt.git
此时会开始下载git环境并下载基础的代码,具体源码还不会下载到本地,因此本命令速度较快,直到后面make时候才会在线下载。
三、修改feed.conf文件
这个文件里面记录了feed各个组件的git地址,里面有个oldpackage的git,请把前面的#注释取消掉,不然很多功能组件你会发现在编译的时候找不到。
四、编译
第一次编译需要配置编译的选项:make menuconfig
会调用配置菜单-》选择你路由的CPU类型-》型号,以及需要的各种功能。。。
此处空格键为选中,*为编译进固件,M为编译成ipk但是不集成进固件之中。
最后用make V=99编译。 V=99表示显示详情,如果出错可以在这里看到出错的信息。
由于第一次编译会在网络下载各种tar源码文件,而大多数文件都是在国外的站点,因此下载很慢甚至下载失败都会导致编译失败。
解决方法1:ss出去,然后下载相关的源码。
2.找国内的镜像点,下载相应的tar放入openwrt/dl文件夹下
反正我第一次拿服务器的配置来编译,花了大概一个小时左右。
五、后记
如果编译成功,第二次编译相对速度就会比较快。
编译好的固件位于openwrt/bin/targets/目录下,该目录下还会有CPU下型号的文件夹,如bin/targets/ramips/mt7620/openwrt-ramips-mt7620-zbt-wr8305rt-squashfs-sysupgrade.bin
最后的bin就是固件啦,刷入你的路由器就行了。