openwrt 是一个开源的路由器操作系统由linux改造而来源代码开放,一般的开发方法是用linux操作系统来搭建环境开发

openwrt有两种版本一个是测试版俗称 trunk,二是稳定版俗称 backfire

在开始编译Openwrt之前需要您做些准备工作;与其他编译过程一样,类似的编译工具和编译环境是必不可少的: 
  一个构建OpenWrt映像的系统平台,简单说就是准备一个操作系统(比如Ubuntu、Debian等);确保安装了所需的依赖关系库。

1、安装Ubuntu,到 http://www.ubuntu.org.cn/desktop/get-ubuntu/download/ 下载,版本随便,我选的是10.10 32位版。安装过程就不说了,图形化安装,而且是中文版,连安装都搞不定的,可以关闭本页面了。可以安装在虚拟机里,也可以安装在物理机了,官方建议有条件的最好安装在物理机上,大概是说虚拟机有时会有不可预料的情况,但装在虚拟机里的人多得是了。题外话:安装过程中某一步设置用户名密码时,我是选择了自动登录,因为懒得每次都输密码登录,反正只是编译用的系统又没什么秘密。

2、安装好后,在左上角“系统”菜单的“首选项”中选择“屏幕保护程序”,然后去掉左下角的“计算机空闲时激活屏幕保护程序”,然后按“关闭”,这个窗口是没有“应用”或“确定”之类的,直接关闭它就会保存。用惯了WINDOWS的用户注意了。为什么要做这步呢? 因为整个编译过程中有些步骤要等一段时间的,老是自动启用屏幕保护程序,然后还要重新输密码才能退出,也是麻烦事。

3、选左上角的菜单“应用程序”-“附件”-“终端”,进入命令行,然后输入sudo –sH,注意大小写,然后输入装系统时设置的用户密码,就能切换到root(提示:输入密码的时候不会有*之类的显示的,是完全不显示,部分人不必惊慌)。切换到root是为了安装或升级部分必要的组件,有些组件需要root权限。(这里也可以逐条在前面加上sudo,就不用切换到root)

4切到root后,顺序输入:(安装编译需要的组件)
apt-get install g++
apt-get install libncurses5-dev
apt-get install zlib1g-dev
apt-get install bison
apt-get install flex
apt-get install unzip
apt-get install autoconf
apt-get install gawk
apt-get install make
apt-get install gettext
apt-get install gcc
apt-get install binutils
apt-get install patch
apt-get install bzip2
apt-get install libz-dev
apt-get install asciidoc

apt-get install subversion

sudo apt-get install libssl-dev

有教程是以下多个库:(笔者采用的是上面的,下面的多一些)

sudo apt-get install g++
sudo apt-get install libncurses5-dev
sudo apt-get install zlib1g-dev
sudo apt-get install bison
sudo apt-get install flex
sudo apt-get install unzip
sudo apt-get install autoconf
sudo apt-get install gawk
sudo apt-get install make
sudo apt-get install gettext
sudo apt-get install gcc
sudo apt-get install binutils
sudo apt-get install patch
sudo apt-get install bzip2
sudo apt-get install libz-dev
sudo apt-get install asciidoc
sudo apt-get install subversion
sudo apt-get install sphinxsearch
sudo apt-get install libtool
sudo apt-get install sphinx-common
sudo apt-get install libssl-dev
sudo apt-get install libssl0.9.8

每一行回车后都会马上检测安装或升级那个组件,官方 WIKI 用的是单一条命令,我分开了,因为这样更容易查看每一个组件的安装是否成功。一行命令的话,一大堆东西连续出来,懒得拖滚动条回头看了。一个个分开执行方便看一些。个人喜好了。当中最后面的 asciidoc 组件是需要下载 400 多 MB 东西的,慢慢等了。下载东西之前会有提示本次要下载多少 M 的东西,问是否的,按 y 然后回车让它下载就行了。提示:假如它提示找不到软件包的话,那麻烦你再看清楚命令中的软件名名称,因为有时是字母中间冒个数字 1 出来之类的,很容易错看成字母 L 。

5 上述安装完成后,这一步很重要,就是执行 Exit命令退出root 。如果不退出 root 的话,那后面会出现晕人的情况,下一步是下载源码,以 root 身份下载源码后,在后续操作中有些会提示不能以 root 身份操作,但源码已经以 root 身份下载了,所有文件的 “ 所有者 ” 都是 root ,退出 root 后再操作,又会提示没有权限,因为文件是 root 的,普通用户无法访问,结果只能用命令修改文件所有者,比较麻烦。所以这里就要退出 root ,以普通用户身份执行下面的下载源码命令。其实一开始安装组件的时候可以在命令前加上 sudo来达到临时用root身份,执行完后又回到普通权限的目的, 但对于新手来说,不必过于追求这些了,有个可行的方法就凑合着先用吧。

6 来到这里,操作系统部分完全准备好了,建议如果用虚拟机的朋友先做一个快照,后面编译部分出了问题大不了恢复快照重新来过。不知道什么是快照的话,当我没说过这一条。

7 、下载源码 ,分两种,一种是最新版但不是最稳定,也就是 trunk 版,一种是相对稳定版, backfire 版。源码下载命令分别是:
先创建文件夹:
Mkdir openwrt
Cd openwrt

Trunk 版下载命令: svn co svn://svn.openwrt.org/openwrt/trunk/
Backfire 下载命令: svn cosvn://svn.openwrt.org/openwrt/branches/backfire/
选择你想要的版本就行了。然后又是等待下载…

以上的操作失败,所以又用的以下方法下载源码:

大部分SVN都是失效的,所以一些老的教程就不能参考了,这点要注意。要使用git来下载源码。

Trunk版下载命令:

通过git来下载OpenWrt bleedingedge(trunk版本):(参见DownloadingSources以获得更多选择):

git clone git://git.openwrt.org/openwrt.git

这将会创建'openwrt'这个目录。这个目录将会是OpenWrt的编译主目录。
OpenWrt的交叉编译工具链也已经被包含在内。

又一次失败,说是git clone出错,将git:改为https://

成功!

更新源码

openwrt源码库一直在更新,因此在每次使用源码前执行下面语句,保证源码更新到最新版本:

1.  $ git pull


8、开始准备编译

Cd Trunk或者Cd backfire

如果不是刚下载的代码,为了保持代码为最新状态,应该定期运行Svn up更新代码,什么时候有变你是不知道的
然后是更新软件包:

./scripts/feedsupdate –a
./scripts/feeds install –a

如果不更新软件包的话,你会发现后面是看不到很多软件包的,也就无法集成那些看不到的包了。然后是make defconfig,(这里执行命令后,会出现让你安装openssl library,按照百度经验上的方法我没成功(之前别人帮我搞成功了,但我失败原因不明),然后又采用在下载一个sudo apt-get install libssl-dev ,在进行

重新测试下编译环境,使用命令:

make defconfig

系统提示:configuration written to .config(配置写入config)。

此次成功 )。再 make menuconfig 进入定制界面,慢慢选了,里面可选只编译指定设备的固件,一定要注意选对自己的设备类型,然后可以指定该类型下的具体哪一款。配置比较多,不慢慢说了,其实我也不是很懂,自己进去撞几回就差不多了,有些软件包你不懂的,就表示你不需要了,有些软件包你装官网版本后要另外装的,你见到了,就可以选上让它集成,要让它前面括号里出现 * 才表示集成。配置完成后退出记得选保存。如果你想修改源码,应该在此时进行,比如支持大容量 Flash 之类的修改,自己上网查到修改什么文件什么地方后,就在 Ubuntu 图形界面上进去找到文件,双击打开文本编辑器修改保存。如果想集成中文包或其它非官方包的话,那我也帮你不到了,因为我也还不会。

9 、最后就执行 make 正式开始编译,首次编译必然是漫长的等待。如果是双核 CPU ,使用 Make –j 2 命令可以加快速度,但有人却不建议使用,官方 WIKI 也没说这点,我也不知道有没有好处。但我是 4 核 CPU ,使用 Make–j 4 命令,发现 CPU 占用率并没有明显提高,看了帮助,发现可以不加数字,不加数字默认就是不限制同时进行的任务数,我用了 Make –j 不限同时任务数后, CPU 居然 100% 了,但整个编译过程的占用率都会有波动,刚开始是 100% ,后面有段时间是 25% 左右 ( 也就是只用单核了 ) ,然后有时又会 40% 到 50%( 差不多用了双核 ) ,有时甚至几乎没有操作, CPU 占用很低。但首次编译是特别慢的,第一次之后的都相对快很多了。悲剧的是,我第一次用 Make –j 编译结果是失败,然后再一次 Make 不用参数才成功,也许就是有人不建议使用的原因,但因为有前一次的编译,所以第二次是很快的。也就是说,假如用 j 参数能加速的话,虽然有可能会失败,但因为第二次不会花很长时间,所以也许加 j 参数还是能在第一次编译中加速的。不过我没有对比加不加 -j 参数花的时间区别。有兴趣的朋友自己对比吧。

10 、编译完成后会出现 bin 文件夹,进去找你需要的 BIN 刷吧。

11 、 BIN 如何传出 ? 我是用 FTP ,甚至是用 Firefox 上网进邮箱都能传出,对于一个不懂 LINUX 的人来说 …

openwrt搭建环境相关推荐

  1. openwrt开发环境搭建

    OpenWrt 可以被描述为一个嵌入式的 Linux 发行版.现在叫lede,全名Linux嵌入式开发环境项目(Linux Embedded Development Environment) open ...

  2. openwrt编译环境搭建

    openwrt编译环境搭建 1.虚拟机安装 请参考网络上的资料进行安装. 2.ubuntu安装 请参考网络上的资料进行安装. 3.ubuntu下安装相关的编译环境(若是编译环境没有准备好,在后来的操作 ...

  3. Ubuntu 16.04下配置openWRT开发环境

    Ubuntu 16.04下配置openWRT开发环境 1.配置openwrt开发环境,本实验室在ubuntu16.04系统下测试 在编译之前我们先要搭建环境,ubuntu下OpenWrt编译环境需要安 ...

  4. MT7688学习笔记(1)——搭建环境、编译烧写

    一.搭建环境 1.1 安装VMware 链接:https://pan.baidu.com/s/1bnmU5tSrk6WyUGHu2oNBgw 密码:iec1 1.2 安装Ubuntu 链接:https ...

  5. 搭建环境_maven: 搭建工程: ssm整合: 搭建测试:

    2019独角兽企业重金招聘Python工程师标准>>> 搭建环境_maven: 搭建工程: ssm整合: 搭建测试: 搭建环境问题解决: 转载于:https://my.oschina ...

  6. java 取绝对值_Java实现一致性哈希算法,并搭建环境测试其负载均衡特性

    实现负载均衡是后端领域一个重要的话题,一致性哈希算法是实现服务器负载均衡的方法之一,你很可能已在一些远程服务框架中使用过它.下面我们尝试一下自己实现一致性哈希算法. 一. 简述一致性哈希算法 这里不详 ...

  7. putty php环境搭建,centos7(linux)系统下php搭建环境和创建laravel项目

    laravel-企业官网-搭建环境和创建laravel项目 购买centos7云服务器,再远程连接 1. 下载putty 输入服务器账号密码远程链接yum install -y wget && ...

  8. Hyperledger fabric1.4.0搭建环境

    Hyperledger fabric1.4.0搭建环境 原创牧竹子 最后发布于2019-05-11 21:10:20 阅读数 630  收藏 展开 Hyperledger fabric1.4.0搭建环 ...

  9. java窗口代码_Java系列教程day01——java的搭建环境

    day01--搭建环境变量&HelloWorld程序 1.注意听课,不要溜号,不要睡觉,不要游戏. 2.我的联系方式: QQ:79539705 3.整理笔记.绘制思维导图.完成作业.. 一.J ...

  10. Fanout交换器-搭建环境

    我们讲一下RabbitMQ中的第三种交换器,Fanout交换器,相比上两种我们讲过的交换器,最大的特点它是以广播的模式,来做消息的传递,我们来看一下这样的需求,我这里有一个订单服务,然后还有一个短信服 ...

最新文章

  1. LeetCode: Flatten Binary Tree to Linked List
  2. python爬虫requests-Python爬虫(requests模块)
  3. linux命令大全增删改查,crudini命令
  4. PPDet:减少Anchor-free目标检测中的标签噪声,小目标检测提升明显
  5. js按钮频繁提交解决方案:
  6. CentOS常用基础命令大全
  7. RestTemplate远程接口调用
  8. spss多元线性回归散点图_SPSS线性回归|别人不想告诉你的其他操作我都总结好了(中)...
  9. webpack的安装和执行
  10. Linux内核启动中驱动初始化过程
  11. qt5.15.1及以上版本进行编译(windows64位)
  12. 操作记录-2020-11-13:精简代码处理ChIP_seq数据
  13. ARM嵌入式系统的问题分析与总结
  14. 设置网页title旁边的小图标详解
  15. Android开发指南-二维图形
  16. 平面坐标, 极坐标 复数以及欧拉公式
  17. 常用通达信l2行情接口文件夹说明
  18. java 处理物料清单_ERP之物料清单(BOM)
  19. 【Java基础】包、类、接口、常量、方法、变量的命名规则
  20. 使用Hadoop提取网络日志KPI指标

热门文章

  1. mavean的依赖传递和排除依赖
  2. 二叉树遍历算法之三:后序遍历
  3. CODEVS 2102 石子归并 2
  4. SQL Server 数据类型
  5. Android系统Surface机制的SurfaceFlinger服务渲染应用程序UI的过程分析(2)
  6. MX记录有什么用?为什么今天的电子邮件系统是这样的?
  7. .net中对象序列化技术
  8. hdu 1983(BFS+DFS) 怪盗Kid
  9. 比较IE6的不同之处,与IE8 IE11 比较
  10. NOD32 V5 企业版部署方案