转自:   http://www.znck007.com/forum.php?mod=viewthread&tid=21571

由于openwrt编译教程资料很多,不同的cpu芯片只需要选择对应的芯片类型,新手就能成功编译openwrt。

所以创客开源精神造福全人类,创客你我,关注@智能创客 微信znck007



第一部分:安装虚拟机+ubuntu系统

 

安装虚拟机:VMware 8.0

下载地址:http://pan.baidu.com/s/1i3vb5dV





 

安装ubuntu:ubuntu-12.04.1-desktop-i386

下载地址:http://pan.baidu.com/s/1mgkMb92



VMware+ubuntu 安装教程下载:http://pan.baidu.com/s/18MZfg

中文和英文界面差不多,按教程指示安装吧!





第二部分:设置虚拟机ubuntu和windows共享文件(方便复制文件到本机)

 

登陆ubuntu系统后,点击左边的文件夹。右击新建个文件夹。



 

设置为共享

 

ubuntu会提示你安装共享,确定下一步安装,网络好大概要3分钟左右。



 

ok了,我们在本机windows,打开网上领居,就能看到共享文件夹了。

之后我们会在这里文件夹里编译openwrt,就可以直接复制编译出来的文件了。





第三部分:安装编译开发环境

 

打开终端



 

装svn工具

sudo apt-get install subversion

安装git工具

sudo apt-get install git-core

安装依赖的库文件

sudo apt-get install gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils ncurses-term zlib1g-dev libncurses5-dev gawk openssl libssl-dev







第四部分:下载openwrt官方源码

 

ls  显示当前目录

cd pcfile  //进入pcfile文件夹

mkdir openwrt //新建openwrt文件夹







 

cd openwrt //进入openwrt文件夹

使用svn下载源码(这个过程网络快也要几个小时哦,慢就等一天吧呵呵)

svn co svn://svn.openwrt.org/openwrt/trunk



 

cd trunk //进入trunk文件夹

为了支持更多软件

./scripts/feeds update -a

./scripts/feeds install -a



openwrt是用非root用户名编译的,如果是root则修改,对于ubuntu不用修改。

gedit include/prereq-build.mk

define Require/non-root

# [ "$$(shell whoami)" !="root" ]

enddef





第五部分:编译openwrt源码

make menuconfig //打开编译菜单

 

首先选择Target System为Atheros AR7xxx/AR9xxx,

因为我们的TL-WR703N的主芯片是属于Atheros公司的Atheros AR7240 CPU

其次选择Target Profile是选择路由器的型号,我们选择(TP-LINK TL-WR703N)



提醒:部分电脑请使用空格才能选择为*(多击空格让他变成*才能选上)



 

//先择编译功能(默认可以都选上这些,但会有点大5M多,了解的可以只选自己想要的功能)

Base system—> <*> block-mount (挂载)

Kernel modules—> Filesystems—>  <*> kmod-fs-ext4 (挂载)

Kernel modules—> Native Language Support—>  <*> kmod-nls-utf8 (编码)

Kernel modules—> Sound Support—>  <*> kmod-sound-core (声卡)

Kernel modules—> Sound Support—>  <*> kmod-usb-audio (声卡)

Kernel modules—> USB Support—>  <*> kmod-usb-cm109 (声卡)

Kernel modules—> USB Support—>  <*> kmod-usb-serial (串口)

Kernel modules—> USB Support—>  <*> kmod-usb-serial-ch341 (ch341)

Kernel modules—> USB Support—>  <*> kmod-usb-serial-cp210x (cp210x)

Kernel modules—> USB Support—>  <*> kmod-usb-serial-ftdi (ftdi)

Kernel modules—> USB Support—>  <*> kmod-usb-storage (u盘)

Kernel modules—> USB Support—>  <*> kmod-usb-storage-extras (u盘)

Kernel modules—> Video Support—>  <*> kmod-video-core (视频)

Kernel modules—> Video Support—>  <*> kmod-video-uvc (视频)

Kernel modules—> Video Support—>  <*> kmod-video-videobuf2 (视频)

Libraries—> <*> alsa-lib (视频)

LuCI—> Collections—<*> luci

LuCI—> Translations—<*> luci-i18n-chinaes

Multimedia—> <*> mjpg-streamer (视频)

Utilities—> Filesystems—>  <*> badblocks (u盘)

Utilities—>  <*> alsa-utils-tests (声卡)

save保存配置





然后再修改固件内存文件:

首先修改trunk/tools/firmware-utils/src/mktplinkfw.c搜索到fw_max_len,然后将id
= "4M"下面的修改成:

fw_max_len = 0x7c0000





另外还需下面修改:Imagebuilder 目录下target/linux/ar71xx/image/Makefile, 把703n最后的4Mlzma改成了8Mlzm

$(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWR703,tl-wr703n-v1,TL-WR703N,ttyATH0,115200,0x07030101,1,8Mlzma))

否则出现如下错误:[mktplinkfw] kernel length aligned to 914864

[mktplinkfw] *** error: images are too big

make[3]: [install] Error 255 (ignored)







然后执行 make V=99第一次编译需要1-2个小时,需心等待吧,可以去干点别的事哇哇!





第六部分:复制编译好的固件,然后刷到openwrt里吧!

 

在windows里,网上领居,然后在“共享文件夹里”的openwrt\trunk\bin\ar71xx 里就看到编译出来的固件了!

openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-sysupgrade.bin

值得注意的事:

1、国内有时无法连接到国外的openwrt网下载(导致下载异常等具体看屏幕打印的异常日志),你就需要用vpnFQ。

2、openwrt官方的固件一直在更新,如何发现编译完成刷到开发板后,无法安装某个驱动或安装包,请使用正确下载源。

新手编译开发OpenWrt入门教程(自定义固件、ubuntu学习)的更多相关文章

  1. Apple Watch开发快速入门教程

     Apple Watch开发快速入门教程  试读下载地址:http://pan.baidu.com/s/1eQ8JdR0 介绍:苹果为Watch提供全新的开发框架WatchKit.本教程是国内第一本A ...

  2. Python开发的入门教程(一)-数据类型、变量

    介绍 Python第一门课程,是Python开发的入门教程,将介绍Python语言的特点和适用范围,Python基本的数据类型,条件判断和循环,函数,以及Python特有的切片和列表生成式. Pyth ...

  3. 游戏控制杆OUYA游戏开发快速入门教程

    游戏控制杆OUYA游戏开发快速入门教程 1.2.2  游戏控制杆 游戏控制杆各个角度的视图,如图1-4所示,它的硬件规格是本文选自OUYA游戏开发快速入门教程大学霸: 图1-4  游戏控制杆各个角度的 ...

  4. iOS开发 ReactiveCocoa入门教程 第二部分

    ReactiveCocoa 是一个框架,它允许你在你的iOS程序中使用函数响应式(FRP)技术.加上第一部分的讲解,你将会学会如何使用信号量(对事件发出数据流)如何替代标准的动作和事件处理逻辑.你也会 ...

  5. MSP430 LaunchPad开发板入门教程集合

    MSP-EXP430G2开发板是德州仪器提供的开发工具,也称为LaunchPad,用于学习和练习如何使用其微控制器产品.该开发板属于MSP430 Value Line系列,我们可以对所有MSP430系 ...

  6. 《Ruby语言入门教程v1.0》学习笔记-01

    <Ruby语言入门教程v1.0> 编著:张开川 邮箱:kaichuan_zhang@126.com 想要学习ruby是因为公司的自动化测试使用到了ruby语言,但是公司关于ruby只给了一 ...

  7. iOS开发 ReactiveCocoa入门教程 第一部分

    作为一个iOS开发者,你写的每一行代码几乎都是在响应某个事件,例如按钮的点击,收到网络消息,属性的变化(通过KVO)或者用户位置的变化(通过CoreLocation).但是这些事件都用不同的方式来处理 ...

  8. 以太坊开发DApp入门教程——区块链投票系统(一)

    概述 对初学者,首先要了解以太坊开发相关的基本概念.   学习以太坊开发的一般前序知识要求,最好对以下技术已经有一些基本了解: 一种面向对象的开发语言,例如:Python,Ruby,Java... 前 ...

  9. 微信公众号开发系统入门教程(公众号注册、开发环境搭建、access_token管理、Demo实现、natapp外网穿透)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/a1786223749/article/ ...

随机推荐

  1. maven 安装、运行、获取帮助 —— maven权威指南学习笔记(二)

    这部分在网上很容易找到详细教程,这里就略写了. 基础:系统有配置好的jdk,通过 命令行 java -version,有类似下面的提示,表示java环境以配好 下载maven:官网 http://ma ...

  2. JSP的动态Include的静态Include

    1. 静态导入示例 先总结: 1:静态include是把被引入的文件拼接到本页面中,再做为一个整体来编译,返回结果给客户端. 动态include是分别编译本页面和被引入的页面,再把结果合成一个html ...

  3. DESeq2 install --- 如何安装R包("RcppArmadillo")?

    安装R包("RcppArmadillo")失败,导致依赖该包的DESeq2 无法使用: 首先对gcc,g++升级至4.7, 但依然报错,还是安装不了RcppArmadillo: 报 ...

  4. HDU 5877 Weak Pair (2016年大连网络赛 J dfs+反向思维)

    正难则反的思想还是不能灵活应用啊 题意:给你n个点,每个点有一个权值,接着是n-1有向条边形成一颗有根树,问你有多少对点的权值乘积小于等于给定的值k,其中这对点必须是孩子节点与祖先的关系 我们反向思考 ...

  5. 【jsoi】第一季 [略]精简题解

    UPD:好像有两道题的代码逃跑了?= =就先不找了,反正都是水题. 精简题解系列第四弹.(其实也不是那么精简啊= =) [JSOI2008]最大数maxnumber 单点修改,区间最大值查询,裸线段树 ...

  6. POJ 3667 & HDU 3308 & HDU 3397 线段树的区间合并

    看到讲课安排上 线段树有一节课"区间合并" 我是迷茫的 因为并没有见过 然后了解了一下题目 发现以前写过 还是很麻烦的树链剖分 大概是 解决带修改的区间查询"连续问题&q ...

  7. SVG_style_script

    1. <style type="text/css"> <![CDATA[ // ZC: 禁止所有 <text/>元素的选中 text { -webki ...

  8. JS中跨域问题

    这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被 ...

  9. SQL Server集成服务最佳实践:语句优化

        SQL Server集成服务(SQL Server Integration Services,SSIS)在其前辈DTS(Data Transformation Services,数据转换服务) ...

  10. Rest Web Api Controller 返回JSON格式大小写

    public static class WebApiConfig { public static void Register(HttpConfiguration config) { config.Ro ...