x86 openwrt固件编译
2017年十月四日我在珠海,中秋之际写下这篇文章,祝各位看官花好月圆,有情人终成眷属。
最近一直在玩Openwrt,以前上学的时候接触一丁丁,但是只限于烧写别人编译好的固件,这次要真刀实干了,学习了一周各种百度,终于在虚拟机中把openwrt跑起来了,写下此篇留念,后续将会陆续更新。
- 开发环境的安装
- Openwrt的准备
- openwrt配置编译
- 编译openwrt
开发环境的安装
openwrt的内核是Linux内核,所以整个开发是基于Linux平台上的开发,因为我们大多数人使用的是windows系统,我选择使用虚拟机来安装Linux系统。单击下面的链接即可以下载VM。
此时还需要一个Linux镜像文件,单击下载Linux
Linux的安装过程我就不详细说了,安装完成的界面如下图所示《建议配置》:
进如Ubuntu桌面,按住ctr+alt+T进入命令行模式,至此虚拟机搭建完成。
Openwrt的准备
首先需要下载Openwrt的源代码,SVN已经停用了,现在只能够从git上获取源代码。再此之前你需要为Ubuntu安装更新先输入 sudo apt-get update 输入密码,再输入 sudo apt-get upgrade 直到安装更新完成!
接下来要获取源码了,首先需要安装必要的支持库,以及支持的各种依赖包
sudo apt-get install build-essential subversion git-core libncurses5-dev zlib1g-dev gawk flex quilt libssl-dev xsltproc libxml-parser-perl mercurial bzr ecj cvs unzip
这是很多条命令,建议一条一条的输入,方面查找错误。官网参考
接下来下载Openwrt源码:
在当前用户目录下输入
mkdir openwrt
创建openwrt文件夹
输入 cd openwrt
进入openwrt文件夹
输入命令(以下命令均用非管理员权限):
git clone https://github.com/openwrt/openwrt.git
获取Openwrt源码!等待结束!
因为我已经有openwrt目录了,所以我用op文件夹演示!
输入 ls ,查看op目录下,有openwrt文件夹,你们的应该是在openwrt目录下有一个openwrt文件夹,内部的这个文件夹就是源码包!
输入
cd openwrt
切换至openwrt目录,
输入 ls命令,文件夹组成如下:
现在更新源码包!
./scripts/feeds update -a
安装feeds更新,更新呢完成之后输入下一跳命令安装,假如你不安装的话就没有第三方源码包给你选了!
./scripts/feeds install -a
安装更新之后,输入
make defconfig
检查编译前的环境
好了,现在可以来配置编译了!
输入 make menuconfig
targetsystem选择x86,target img选择生成 vbox或者vmware镜像文件,我都选了,嘻嘻!
好了,现在保存退出。
下面就是见证奇迹的时刻了!
No ,差点忘了还要把luci配置进去
luci>collection>下面的都选中!
luci>aplycation下面选中 luci-app-uhttpd……………………… uHTTPd Webserver Configuration
(其实target imge里面那些你都可以试一试,target profile 选择默认的吧,我没选,你可以试一下要不要选择成X86_x64,我想选了应该没影响)
好了,保存退出!
编译openwrt
编译,输入
make V=99
当然还有其他的一些命令,我就不详细说明了,那些大牛已经有非常详细说明啦!
慢慢等着吧,快的半个小时,慢的等到你怀疑人生!
编译成功会生成镜像: openwrt-x86-generic-combined-ext4.vmdk
那个ext4指的是文件系统,看你是选择了那个文件系统!