当前位置: 首页 > news >正文

ubuntu12编译openwrt

搭建编译环境

Ubuntu x64 12.04下的命令:

sudo apt-get install subversion
sudo apt-get install git
sudo apt-get install flex
sudo apt-get install g++
sudo apt-get install gawk
sudo apt-get install zlib1g-dev
sudo apt-get install libncurses5-dev

当然,也可以将上面的命令合起来:

sudo apt-get install subversion git flex g++ gawk zlib1g-dev libncurses5-dev

建立工作目录及获取openwrt源码

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

trunk是openwrt的开发版,openwrt有好几个分支,要编译其它分支,sun://后的换为相应的地址即可。

建立openwrt文件夹是为了方便存放不同分支的代码,如果你不需要,可以省略“mkdir openwrt”及“cd openwrt”。

如果svn的速度慢,可以使用openwrt的第三方镜像,比如国内的openwrt中文论坛所建的镜像。

更新feed及添加package

openwrt的一些额外功能都是通过package实现的,很多个package就组成了一个feed,我们可以根据需求更新自己想要的feed的源。 例如我们需要luci的web管理界面和python的支持,那么我们需要更新luci和packages的feed源:

cd trunk
./scripts/feeds update luci packages
./scripts/feeds install luci packages

当然,我们推荐更新所有feed并添加所有package

./scripts/feeds update -a
./scripts/feeds install -a

配置及编译

进入配置界面

make menuconfig

以后再次编译时,要先切换到工作目录:

cd openwrt
cd trunk

然后在次过程中选择好target system和target profile,target system需要看你路由器的cpu芯片信息,target profile是你路由器的型号。接下来就可以根据自己的需求进行定制了,添加上需要的支持或去掉无用的包,按“Y”在固件中添加包按“Y”,按“N”去 掉不需要的包。

要运行OH3C,必须有python-mini(lang->python->python-mini)的支持。

如果你的路由器flash空间比较紧张,可以去掉下面的包:

  • Kernel modules->Network Support->kmod-ppp
  • Network->ppp

选好后就保存配置退出开始编译了:

make -j

-j 后面可以跟参数,即同时进行的任务数,比如2或4,不跟参数意为不限制同时进行的任务数,会大大减少编译的时间,特别是首次编译。

编译过程中可能不会下载一些东西,所以断网可能造成编译中断,编译所需时间与你的CPU及网速有很大关系,一般首次编译在40分钟到2小时之间不等。以后的编译一般在30分钟之内。

生成的固件在~/openwrt/trunk/bin/XXXXX目录下。

相关文章:

  • Apache Tomcat/6.0.39如何配置连接mysql,JDBC:mysql-connector-java-5.1.30-bin.jar-成功连接心得...
  • CSS选择器各个浏览器兼容性大全
  • Redis调试
  • HDU 4089 Activation 概率DP
  • Android 百度地图定位(手动+自动) 安卓开发教程
  • Nagios 监控温度感应器
  • 转:第二次重置OPPO手机官网任意账户密码(秒改)
  • Django 多数据操作 router 方法
  • java设计模式_代理模式
  • Gradle 取相对路径
  • VIEW登陆故障解决办法。
  • 有规律的坚持写文章有多难?
  • log4j+commons-logging结合使用
  • java每日小算法(20)
  • Dive into Python
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • Django 博客开发教程 8 - 博客文章详情页
  • DOM的那些事
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • ng6--错误信息小结(持续更新)
  • node.js
  • NSTimer学习笔记
  • Rancher如何对接Ceph-RBD块存储
  • redis学习笔记(三):列表、集合、有序集合
  • SpingCloudBus整合RabbitMQ
  • SQLServer之索引简介
  • text-decoration与color属性
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 浏览器缓存机制分析
  • 设计模式走一遍---观察者模式
  • 我感觉这是史上最牛的防sql注入方法类
  • AI算硅基生命吗,为什么?
  • hi-nginx-1.3.4编译安装
  • 数据可视化之下发图实践
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • 我们雇佣了一只大猴子...
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • ​虚拟化系列介绍(十)
  • # 计算机视觉入门
  • #控制台大学课堂点名问题_课堂随机点名
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (二)正点原子I.MX6ULL u-boot移植
  • (规划)24届春招和25届暑假实习路线准备规划
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .net mvc actionresult 返回字符串_.NET架构师知识普及
  • .Net Redis的秒杀Dome和异步执行
  • .NET 材料检测系统崩溃分析
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .net生成的类,跨工程调用显示注释