搭建编译环境

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目录下。

ubuntu12编译openwrt的更多相关文章

  1. Ubuntu12.10编译openwrt遇到的错误

    由于Openwrt有很多工具是要先编译的,在Ubuntu12.10平台下编译openwrt时就遇到了下面这样的错误:elf.cpp: In static member function 'static ...

  2. 使用 Docker 编译 OpenWRT(Widora)

    Docker 是一种新的被称之为容器的虚拟机.本文将使用此工具,进行 OpenWRT 的编译. 在 Docker 中下载 Ubuntu 14.04 的镜像 使用以下命令可以十分方便的从远程服务器上将 ...

  3. 转:小白编译openwrt固件教程

    原文地址 编译openwrt固件并没有想象的那么复杂,我也是个小白,以下内容是我将网络上的编译教程稍微进行了一下整合.因为我发现很多编译教程没有说明如何更改flash相关配置.   安装ubuntu, ...

  4. 在 Arch 下编译 OpenWRT cmcurl 问题与解决方案

    0 现象 在 Arch 下编译 OpenWRT (15.05) cmcurl 时报错: [ 28%] Linking C executable LIBCURL lib/libcmcurl.a(open ...

  5. centos6.8下搭建编译openwrt的环境

    1. 安装必要软件 su root yum install zlib-devel zlib-static -y 2. 编译openwrt 请参考这里

  6. (七)ubuntu下编译openwrt内核的环境配置

    首先安装基本开发环境: sudo apt-get install ssh vim samba tftp nfs 安装编译openwrt须要的包: 解压openwrt包编译出错: Build depen ...

  7. debian下编译openwrt固件

    参考文章:Ubuntu下编译OpenWRT固件 我买的路由器是RG100A-AA,采用了bcm63xx系列的芯片. 下载openwrt源码: svn co svn://svn.openwrt.org/ ...

  8. 使用外部 toolchain 编译 openwrt

    默认编译 openwrt 时会先编译一套 toolchain. 这个步骤耗时较长. 使用外部 toolchain 可以多个 project 共用一套 toolchain , 而且也不重再编译它了. 省 ...

  9. ubuntu编译openwrt前端web界面

    openwrt是由Cisco放出源代码的开放无线路由平台.由于是基于linux内核,所以可以将很多linux平台下的软件移植到此平台下,然后让无线路由拥有很多意想不到的功能,例如拿来做BT下载器,音乐 ...

随机推荐

  1. Spot light工具集

    Spot light on UNIX 安装没什么问题 Spot light on Oracle  必须安装32位的客户端,不然搞死你 两者的界面都是吊炸天啊

  2. 解决UITabeleViewCell的分割线不能铺满问题

    -(void)viewDidLayoutSubviews { if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)] ...

  3. 添加Pods后,import无提示的解决办法

    选择工程的 Target -> Build Settings 菜单,找到\”User Header Search Paths\”设置项 新增一个值"$(PODS_ROOT)" ...

  4. 百度ios 开发面试题

    百度移动云可穿戴部门的面试经历,面试官都非常热情友好,一上来到弄的我挺不好意思的.下面记录一下自己的面试过程,因为我真的没啥面试经验,需要总结下. 1面 Objective C runtime lib ...

  5. iOS单例的两种实现

    单例模式算是开发中比较常见的一种模式了.在iOS中,单例有两种实现方式(至少我目前只发现两种).根据线程安全的实现来区分,一种是使用@synchronized,另一种是使用GCD的dispatch_o ...

  6. C++前置++与后置++的区别与重载

    ++属于单目运算符,前置与后置的实现代码不一样,下面以整数自增为例: // 前置++,返回自增后的值,且返回的是一个左值 int& operator++(){ *this += 1; retu ...

  7. jQuery慢慢啃之特效(八)

    1.show([speed,[easing],[fn]])\\显示隐藏的匹配元素 //speed:三种预定速度之一的字符串("slow","normal", o ...

  8. Js冒泡事件和捕获事件

    js中冒泡事件和捕获事件: 冒泡事件:冒泡事件是从里向外,即是从被绑定元素开始一直向外到达页面的所有祖先元素都会被触发,这 一过程被称为事件冒泡.这个事件从原始元素开始一直冒泡到DOM树的最上层 捕获 ...

  9. 测试通过Word直接发布博文

    这里是来自word 2013的一篇测试文章. 测试直接通过Word自带的bloger功能发布博客文章. 这里插入一张图片

  10. 啊哈,yield

    文章出处:http://www.cnblogs.com/winstic/,请保留此连接 在python编程中,我们经常会看到函数中带有yield关键字,但请注意,此时的函数不再是我们熟知的一般函数,而 ...