在Ubantu虚拟机上编译OpenWrt系统

一、下载OpenWrt源码

git clone https://github.com/openwrt/openwrt.git         #这个是OpenWrt官方提供的最新LEDE版本,内核支持到4.14.x
git clone https://github.com/openwrt/chaos_calmer.git    #这个是OpenWrt维护的chaos_calmer版本,一般叫15版本,内核支持到3.18.x

可以选择去OpenWrt的官方github源去选择下载你需要的源码:https://github.com/openwrt

*需要注意下载的源码和你需要编译的OpenWrt所需功能需要版本匹配,不然会有一大堆问题。

*补充:git openwrt源码的目录要更改权限为777

chmod 777 #openwrt的目录

二、在Ubantu下搭建编译环境

sudo apt-get update     #安装环境包之前先Update
sudo apt-get install libtool texinfo sharutils subversion libssl-dev autoconf automake gcc-multilib bison screen gcc g++ binutils patch bzip2 flex make gettext unzip libc6 git-core git ncurses-term build-essential libncurses5-dev zlib1g-dev gawk quilt asciidoc libz-dev zlib-bin lib32z1-dev 

这里可以选择一个一个包单独下载,可以检查下载的情况,减少出错的可能性。

三、通过feeds添加OpenWrt的功能扩展包

3.1 看看有哪些扩展包包含在feeds里面:

gedit feeds.conf.default

3.2 如果需要用到某些功能,可以通过feeds来添加,fees功能超级强大。以后会用到,现在先不进行操作。

3.3 将feeds.conf.default改名为feeds.conf:

cp feeds.conf.default feeds.conf
3.4 更新扩展:
./scripts/feeds update -a
3.5 安装扩展:
./scripts/feeds install -a

四、配置编译选项

这是比较关键的一步,可以选择你需要用到功能模块。

4.1 进入功能模块选择界面:

make menuconfig
4.2 根据自己路由器的主板CPU情况,选择目标机器:(这里以学生党最普遍的斐讯K2为例子) 在Ubantu虚拟机上编译OpenWrt系统_第1张图片

如果不清楚路由器的主板型号,可以百度查,有或者链接上路由器之后,通过SSH查看:

cat /proc/cpuinfo
4.3 对于开发者,如果需要SDK包,可以选择Build the OpenWrt SDK,然后在bin/targets/ramips/mt7620里就会生成SDK 在Ubantu虚拟机上编译OpenWrt系统_第2张图片
4.4 选择Luci界面 在Ubantu虚拟机上编译OpenWrt系统_第3张图片 在Ubantu虚拟机上编译OpenWrt系统_第4张图片 在Ubantu虚拟机上编译OpenWrt系统_第5张图片
4.5 添加LuCI的中文界面

Luci→Modules→Translations→Chinese(zh-cn)

4.6 添加中文支持

Kernel Modules→Native Language Support→kmod-nls-utf8

4.7 注意

一开始学习编译的时候,不推荐选择太多,知道这个逻辑就可以了。等以后需要真正结合具体功能的时候,在进行添加选择就可以了。

五、编译

make V=s

这需要漫长的等待,因为需要下载很多的dl包。如果你以后会使用相同的openwrt源代码进行编译,推荐把dl文件夹备份一下,以后就不用等待下载时间了。

但是不同版本的OpenWrt使用的dl包是不一样的,不要混为一谈。

六、编译结果

编译的结果都会放在bin文件夹里面,在里面找就可以了。现在一般是:bin/targets/ramips/mt7620

里面可能会有很多.bin固件文件,openwrt-ramips-mt7620-psg1218a-squashfs-sysupgrade.bin才是我们需要拿到的。

七、重新编译

make clean

这个命令会保存dl文件和.config文件。如果需要全部清除,请用:

make distclean 

但是用这个命令之前,最好把dl文件转移到其他地方留着备用。而且这个命令的特点是会更换.feeds。

八、结束

做到这一步,你就已经完全结束了,可以拿这个固件去烧到你的路由器上面去了。怎么烧?如果你还没学会怎么烧,应该不会查到这篇文章的。

刷固件教程:https://blog.csdn.net/H845165367/article/details/78808911

按照这个教程去刷完Breed,你就可以随意用你编译出来的固件了,也不怕变砖。


你可能感兴趣的:(OpenWrt)