前言:
玩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