如何编译符合自己路由器的的OpenWrt固件

前言:

        玩OpenWrt已经快两年了,最早接触是因为CHDBITS,选择了G300NH2来搭载,发现性能较差,之后就更换为AG300H使用官方原版挂种100下载速度700kb+稳定运行,后来先后购入了乐视小米ipad后就有了越来越多的想法,安装了各种插件,过一段时间更新后发现有问题,然后只有重新刷,每次都很繁琐,5月以来使用了很多基友的包(已经集成了很多插件)发现不大稳定,所有萌发了自己编译符合自己AG300H的固件来。


一、准备工作

1、ubuntu+1 VM虚拟机什么都可以

2、固件获取:svn://svn.openwrt.org/openwrt/branches/barrier_breaker  你需要什么版本的就下载什么版本

二、更新系统软件

1、使用 root 账户登录 ubuntu

2、使用 apt-get update 更新组建

3、安装编译需要的组件(如下\绿色是aria2编译需要的组建

apt-get install g++
apt-get install libncurses5-dev
apt-get install zlib1g-dev
apt-get install bison
apt-get install flex
apt-get install unzip
apt-get install autoconf
apt-get install gawk
apt-get install make
apt-get install gettext
apt-get install gcc
apt-get install binutils
apt-get install patch
apt-get install bzip2
apt-get install libz-dev
apt-get install asciidoc
apt-get install subversion

apt-get install texinfo

apt-get install sharutils

apt-get install ncurses-term

apt-get install git-core

apt-get install sphinxsearch

apt-get install libtool

apt-get install sphinx-common

apt-get install libssl-dev

apt-get install libsqlite3*

apt-get install intltool

apt-get install libiconv*

apt-get install gstreamer-0.10*

apt-get install glib2.0 

apt-get install libxml2-dev

apt-get install qemu

sphinxsearch libtool sphinx-common

4、退出 root身份  (exit)

5、新建一个账户  adduser openwrt    sodu openwrt

5、为了防止文件读写权限造成问题,需要将源码copy到openwet的根目录下进行所有操作

                        cd ~

                        cp -R /home/user/ ./

三、加载RA-MOD

1、添加ra-mod 编辑目录下的feeds.conf.defaul 注释掉原有的Luci 并加入 

                    src-git ramod git://github.com/ravageralpha/my_openwrt_mod.git

2、执行以下命令

                ./scripts/feeds uninstall luci

                ./scripts/feeds update -a

                ./scripts/feeds install -a

                ./scripts/feeds install luci                

                ./scripts/feeds update -a

                ./scripts/feeds install -a

               svn update

这样就可以显示出来了,不然有些同学说我加了ra-mod的怎么不显示呀,或没有显示luci

四、进入订制界面

                    make defconfig

                    make menuconfig

五、按你的需求选择需要的功能

usbutils 

Garget---system---atherosar7xxx/ar9xxx  

路由芯片

Target---profile---buffalowzr-hp-ag300h

我的路由型号

Base---system---block-mount

USB挂载

                         libstdcpp

安装aria2需要

luci---collections---luci

添加luci界面

         applications---luci-app-ddns

dns界面

                               luci-app-hd-idle

磁盘休眠控制界面

                               luci-app-multiwan

多拨控制界面

                               luci-app-qos

qos界面

                               luci-app-samba

samba界面

                               luci-app-ushare

ushare界面

        translations---luci-i18n-chinese

luci中文语言包

kernelmodules---filesytems---kmod-fs-ext4

硬盘ext4格式支持

                          nativelanguagesupport---kmod-nls-utf8

utf8支持??

                          usbsupport---kmod-usb-ohci

Ohci控制器

                                               kmod-usb-storage

添加储存设备驱动

                                               kmod-usb-storage-extras

储存设备扩展

                                               kmod-usb-uhci

Uhci控制器

                                               kmod-usb2

Uusb2.0

bootloaders---uboot-ar71xx-nbg460n_550n_550nh

默认

libraries---filesystem---libext2fs

硬盘格式化工具

               ssl---libopenssl

安装aria2需要

               libffmpeg-mini

ushare需要

               libxml2

安装aria2需要

network---filetransfer---aria2

aria2(我没选)

                                    vsfpd

ftp服务器

                                    multiwan

多拨软件

                                    ppp

默认

                                       ppp-mod-pppoe

默认

                                    samba36-server

Samba共享

                                    wpad-mini

默认

multimedia---ushare

ushare媒体共享

六、 编译

                    make v=99

第一次编译时间较久,make v=99最稳定。

5、完成 

编译完成后,编译好的固件在主文件夹/bin中,拷贝出来到自己要保存的文件夹中。以下命令是清理后以便于下次编译的。

清除缓存 make dirclean

彻底清理make distclean    或  make clean


编译单个包

编译一个单独的软件包(例如在cups软件包):

make package/cups/compile V=99


你可能感兴趣的:(如何编译符合自己路由器的的OpenWrt固件)