編譯個性化的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 $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=99

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

 

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

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM