x86 openwrt固件编译

2017年十月四日我在珠海,中秋之际写下这篇文章,祝各位看官花好月圆,有情人终成眷属。

最近一直在玩Openwrt,以前上学的时候接触一丁丁,但是只限于烧写别人编译好的固件,这次要真刀实干了,学习了一周各种百度,终于在虚拟机中把openwrt跑起来了,写下此篇留念,后续将会陆续更新。

  • 开发环境的安装
  • Openwrt的准备
  • openwrt配置编译
  • 编译openwrt

开发环境的安装

openwrt的内核是Linux内核,所以整个开发是基于Linux平台上的开发,因为我们大多数人使用的是windows系统,我选择使用虚拟机来安装Linux系统。单击下面的链接即可以下载VM

此时还需要一个Linux镜像文件,单击下载Linux 
Linux的安装过程我就不详细说了,安装完成的界面如下图所示《建议配置》: 
x86 openwrt固件编译

x86 openwrt固件编译


进如Ubuntu桌面,按住ctr+alt+T进入命令行模式,至此虚拟机搭建完成。 
x86 openwrt固件编译


Openwrt的准备

首先需要下载Openwrt的源代码,SVN已经停用了,现在只能够从git上获取源代码。再此之前你需要为Ubuntu安装更新先输入 sudo apt-get update 输入密码,再输入 sudo apt-get upgrade 直到安装更新完成! 
x86 openwrt固件编译

接下来要获取源码了,首先需要安装必要的支持库,以及支持的各种依赖包 
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源码!等待结束! 
x86 openwrt固件编译 
因为我已经有openwrt目录了,所以我用op文件夹演示!

输入 ls ,查看op目录下,有openwrt文件夹,你们的应该是在openwrt目录下有一个openwrt文件夹,内部的这个文件夹就是源码包! 
输入 
cd openwrt 
切换至openwrt目录, 
输入 ls命令,文件夹组成如下: 
x86 openwrt固件编译

现在更新源码包!

./scripts/feeds update -a 
x86 openwrt固件编译

安装feeds更新,更新呢完成之后输入下一跳命令安装,假如你不安装的话就没有第三方源码包给你选了! 
./scripts/feeds install -a 
x86 openwrt固件编译 
安装更新之后,输入 
make defconfig 
检查编译前的环境

x86 openwrt固件编译

好了,现在可以来配置编译了! 
输入 make menuconfig

x86 openwrt固件编译

targetsystem选择x86,target img选择生成 vbox或者vmware镜像文件,我都选了,嘻嘻! 
x86 openwrt固件编译 
好了,现在保存退出。 
下面就是见证奇迹的时刻了!

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指的是文件系统,看你是选择了那个文件系统!