编译个性化的openwrt固件

王朝学院·作者佚名  2016-05-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

编译个性化的openwrt固件基本流程是:下载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 $TOPDIRecho '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 -amake menuconfigselect 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.添加luciLuCI—>Collections—– <*> luci4.添加luci的中文语言包LuCI—>Translations—- <*> luci-i18n-chinese5.添加DDNSLuCI—>applications —> <*>luci-app-ddns.6.添加USB挂载Base system —> <*>block-mount7.添加硬盘格式支持Kernel modules —> Filesystems —> <*> kmod-fs-ext48.添加UTF8编码Kernel modules —> Native Language Support —> <*> kmod-nls-utf89.添加USB扩展支持Kernel modules —> USB Support —> <*> kmod-usb-storage-extras.110.添加自动挂载工具Utilities —> Filesystem —> <*> badblocks11.添加复位键支持Utilities —> <*> restorefactory12.添加一键开关无线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=99

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

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

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航