openwrt搭建环境
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搭建环境相关推荐
- openwrt开发环境搭建
OpenWrt 可以被描述为一个嵌入式的 Linux 发行版.现在叫lede,全名Linux嵌入式开发环境项目(Linux Embedded Development Environment) open ...
- openwrt编译环境搭建
openwrt编译环境搭建 1.虚拟机安装 请参考网络上的资料进行安装. 2.ubuntu安装 请参考网络上的资料进行安装. 3.ubuntu下安装相关的编译环境(若是编译环境没有准备好,在后来的操作 ...
- Ubuntu 16.04下配置openWRT开发环境
Ubuntu 16.04下配置openWRT开发环境 1.配置openwrt开发环境,本实验室在ubuntu16.04系统下测试 在编译之前我们先要搭建环境,ubuntu下OpenWrt编译环境需要安 ...
- MT7688学习笔记(1)——搭建环境、编译烧写
一.搭建环境 1.1 安装VMware 链接:https://pan.baidu.com/s/1bnmU5tSrk6WyUGHu2oNBgw 密码:iec1 1.2 安装Ubuntu 链接:https ...
- 搭建环境_maven: 搭建工程: ssm整合: 搭建测试:
2019独角兽企业重金招聘Python工程师标准>>> 搭建环境_maven: 搭建工程: ssm整合: 搭建测试: 搭建环境问题解决: 转载于:https://my.oschina ...
- java 取绝对值_Java实现一致性哈希算法,并搭建环境测试其负载均衡特性
实现负载均衡是后端领域一个重要的话题,一致性哈希算法是实现服务器负载均衡的方法之一,你很可能已在一些远程服务框架中使用过它.下面我们尝试一下自己实现一致性哈希算法. 一. 简述一致性哈希算法 这里不详 ...
- putty php环境搭建,centos7(linux)系统下php搭建环境和创建laravel项目
laravel-企业官网-搭建环境和创建laravel项目 购买centos7云服务器,再远程连接 1. 下载putty 输入服务器账号密码远程链接yum install -y wget && ...
- Hyperledger fabric1.4.0搭建环境
Hyperledger fabric1.4.0搭建环境 原创牧竹子 最后发布于2019-05-11 21:10:20 阅读数 630 收藏 展开 Hyperledger fabric1.4.0搭建环 ...
- java窗口代码_Java系列教程day01——java的搭建环境
day01--搭建环境变量&HelloWorld程序 1.注意听课,不要溜号,不要睡觉,不要游戏. 2.我的联系方式: QQ:79539705 3.整理笔记.绘制思维导图.完成作业.. 一.J ...
- Fanout交换器-搭建环境
我们讲一下RabbitMQ中的第三种交换器,Fanout交换器,相比上两种我们讲过的交换器,最大的特点它是以广播的模式,来做消息的传递,我们来看一下这样的需求,我这里有一个订单服务,然后还有一个短信服 ...
最新文章
- LeetCode: Flatten Binary Tree to Linked List
- python爬虫requests-Python爬虫(requests模块)
- linux命令大全增删改查,crudini命令
- PPDet:减少Anchor-free目标检测中的标签噪声,小目标检测提升明显
- js按钮频繁提交解决方案:
- CentOS常用基础命令大全
- RestTemplate远程接口调用
- spss多元线性回归散点图_SPSS线性回归|别人不想告诉你的其他操作我都总结好了(中)...
- webpack的安装和执行
- Linux内核启动中驱动初始化过程
- qt5.15.1及以上版本进行编译(windows64位)
- 操作记录-2020-11-13:精简代码处理ChIP_seq数据
- ARM嵌入式系统的问题分析与总结
- 设置网页title旁边的小图标详解
- Android开发指南-二维图形
- 平面坐标, 极坐标 复数以及欧拉公式
- 常用通达信l2行情接口文件夹说明
- java 处理物料清单_ERP之物料清单(BOM)
- 【Java基础】包、类、接口、常量、方法、变量的命名规则
- 使用Hadoop提取网络日志KPI指标