基本流程是:下载openwrt源码(推荐attitude adjustment版本)、执行feeds更新、make menuconfig(通过配置feed.conf.default和menuconfig个性化)、make kernel_menuconfig、make V=99

以下是我的个性化配置,主要为了支持ovs和click modular router。

使用feeds的方式加入ovs和click支持 https://github.com/schuza/openvswitch、https://github.com/rriggio/openwrt-packages

cd $TOPDIR

echo 'src-git openvswitch git://github.com/schuza/openvswitch.git' >> feeds.conf.default
echo 'src-git openwrtpackages git://github.com/rriggio/openwrt-packages.git' >> feeds.conf.default
./scripts/feeds update -a

./scripts/feeds install -a

make menuconfig

select Network -> openvswitch-switch, openvswitch-brcompat and openvswitch-controller(选中这三个)
之后,
echo '# CONFIG_KERNEL_BRIDGE is not set' >> .config

其中,menuconfig要添加一些必备组件,如:tc、luci、usb挂载、一键复位/无线、QoS/HTB,都在menucofnig中选择,y表示编译到固件中,M是编译但是不编译进固件。

3.添加luci
 LuCI—>Collections—– <*> luci
 4.添加luci的中文语言包
 LuCI—>Translations—- <*> luci-i18n-chinese
 5.添加DDNS
 LuCI—>Applications —> <*>luci-app-ddns.
 6.添加USB挂载
 Base system —> <*>block-mount
 7.添加硬盘格式支持
 Kernel modules —> Filesystems —> <*> kmod-fs-ext4
 8.添加UTF8编码
 Kernel modules —> Native Language Support —> <*> kmod-nls-utf8
 9.添加USB扩展支持
 Kernel modules —> USB Support —> <*> kmod-usb-storage-extras.
 110.添加自动挂载工具
 Utilities —> Filesystem —> <*> badblocks
 11.添加复位键支持
 Utilities —> <*> restorefactory
 12.添加一键开关无线
 Utilities —> <*> wifitoggle
 

在network中选择openflow 和tc 在Kernel Modules->Network Support中选择knomd-tun 保存退出

接着make kernel_menuconfig

在Networking Support->Networking options->QoS中选择Hierarchical Token Bucket (HTB) 保存退出

make结束之后会在bin/ar71xx目录下找到固件,其中factory即是。

--------------------------------------------------------------------------------------------------------------------------------

tips:如果只想编译某个组件,比如某个.ipk,那么可以使用 sudo make package/xx/compile V=99

其中xx是组件的名字,比如我要单独编译click modular router组件,OpenWrt的安装包中也有Click但是版本很旧已经被标注BROKEN,所以在menuconfig里面是不可见的,所以我要单独编译生成click.ipk然后使用opkg安装到路由器中。

https://github.com/rriggio/openwrt-packages/blob/master/click/Makefile

复制这个makefile替换feeds/packages/net/click重的Makefile,然后cd $TOPDIR,执行:

sudo make package/click/compile V=

即可在bin/ar71xx/packages目录下生成click_20131011-1_ar71xx.ipk

如果要生成所有packages组件,执行:make package/compile 即可。

编译个性化的openwrt固件的更多相关文章

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

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

  2. 初玩OpenWRT之编译TP-Link WR841N V8固件

    0x00 安装依赖 安装git以下载OpenWrt源码.安装编译工具以进行交叉编译: sudo apt-get update sudo apt-get install build-essential ...

  3. 编译适用于TP-Link WR703N的OpenWRT固件

    编译适用于TP-Link WR703N TP-Link MR11U 以及使用AR9331芯片组的单WAN/LAN复用口的路由. 注:刷机有风险,刷机需谨慎.一般情况下是不会失败的,若无法通过捅Rese ...

  4. debian下编译openwrt固件

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

  5. OpenWrt固件刷入后串口终端没有反应的问题

    [路由器开发板硬件固件配置] MTK双频:MT7620a + MT7612e 内存:256 MB 闪存:16 MB 固件:MTK自带SDK中的OpenWrt固件(mtksdk-openwrt-2.6. ...

  6. TL-WR703Nv1.7刷写openwrt固件

    TP-LINK TL-WR703N是一个小型的路由器,可以有线转WiFi,3G转WiFi,很多人拿它刷openwrt系统,然后可以在上面各种搞事. V1.7以前 通常刷openwrt的做法是, 下载一 ...

  7. 烧写uboot和openwrt固件ARxx系列

      以AR9331为例. 1.用烧录器将uboot烧写到flash中 (AR9331_U-Boot_Oolite-v1-v20170713.bin) 2.登录:192.168.1.1网页烧写uboot ...

  8. 编译小米mini openwrt

    编译小米mini openwrt 1.下载openwrt源码包:进入要下载保存的文件目录,输入 git clone git://git.openwrt.org/15.05/openwrt.git 2. ...

  9. 为TL-WR720N编译带mentohust和njit-client的openwrt固件

    openwrt的trunk版已经支持720N了.简单好多. 首先下载openwrt源码,我下的是trunk版 svn co svn://svn.openwrt.org/openwrt/trunk/ 然 ...

随机推荐

  1. Spring基础知识汇总 Java开发必看

    Spring简介 Spring框架由Rod Johnson开发,2004年发布了Spring框架的第一版.Spring是一个从实际开发中抽取出来的框架,因此它完成了大量开发中的通用步骤,留给开发者的仅 ...

  2. Java HashMap 源码解析

    今天正式开始分析具体集合类的代码,首先以既熟悉又陌生的HashMap开始. 签名(signature) public class HashMap<K,V> extends Abstract ...

  3. HDU 1226 BFS

    注意密码位数<=500 输出注意十六进制改成字母 要点题目都已说明 ac就好 #include<iostream> #include<stdio.h> #include& ...

  4. MSSQLSERVER数据库- 一条代码搞定单表备份表结构和表数据

    在百度上找到的,很实用这个容易操作,不就两张表,我的建议就是备份表带上日期,以便以后要恢复数据的时候,可以快速找到他,这样备份是表结构和数据一起处理.select * into share_20090 ...

  5. SpringMVC 参考文档

    原文地址:http://blog.csdn.net/lufeng20/article/details/7598801

  6. java.io.File中的pathSeparator与separator的区别

    先总的说一下区别:File.pathSeparator指的是分隔连续多个路径字符串的分隔符,例如:java   -cp   test.jar;abc.jar   HelloWorld就是指“;” Fi ...

  7. 使用Knoctout.分页

    要点:点击标签翻页部分时,pageValue自动加1. 1.api中的方法 public ArticleListModel Get(int page,string _class) { var list ...

  8. 使用CATransition实现页面的“从左向右” “从右向左”的动画

    -(void)initView{ UISwipeGestureRecognizer *left_gesture=[[UISwipeGestureRecognizer alloc]initWithTar ...

  9. VM使用标准交换机

    1.新建模板: 网卡选择“未连接”,此处看不到“标准交换机”选项

  10. Samba Linux和Windows互访

    之前一直用的sshfs manager,但是会出现造成电脑黑屏的情况.网上也没找到其它类似的软件. 后面打算用Samba 直接搜到一篇很强大的文章. 1.  下载及安装Samba 推荐用yum来安装, ...