2、安装编译Openwrt所需组件
sudo apt-get install g++ libncurses5-dev zlib1g-dev bison flex unzip autoconf gawk make gettext gcc binutils patch bzip2 libz-dev asciidoc subversion sphinxsearch libtool sphinx-common git
3、下载源代码
建立存放源代码的目录
mkdir Openwrt
sudo chmod 777 Openwrt
cd Openwrt
选择你想要的版本然后执行下载命令,下载结束会显示版本号:
Trunk版下载命令:
svn co svn://svn.openwrt.org/openwrt/trunk/
Backfire版下载命令:
svn co svn://svn.openwrt.org/openwrt/branches/backfire/
添加软件扩展包,将feeds.conf.default修改为feeds.conf:
cp feeds.conf.default feeds.conf
更新扩展,安装扩展:
scripts/feeds update -a
scripts/feeds install -a
4、配置
默认配置
make defconfig
配置菜单
make menuconfig
添加luci
LuCI--->Collections ---> <*> luci
添加luci的中文语言包
LuCI--->Translations ---> <*>luci-i18n-chinese
添加DDNS
LuCI--->Applications ---><*>luci-app-ddns.
添加硬盘休眠
LuCI--->Applications ---><*> luci-app-hd-idle
添加openvpn
LuCI--->Applications ---><*> luci-app-openvpn
添加打印服务器
LuCI--->Applications ---><*> luci-app-p910nd
添加QOS
LuCI--->Applications ---><*> luci-app-qos
添加samba
LuCI--->Applications ---><*> luci-app-samba
添加upnp
LuCI--->Applications ---><*> luci-app-upnp
添加网络唤醒
LuCI--->Applications ---><*> luci-app-wol
添加USB挂载
Base system ---><*>block-mount
添加硬盘格式支持
Kernel modules ---> Filesystems ---><*> kmod-fs-ext4
添加UTF8编码
Kernel modules ---> Native Language Support ---><*> kmod-nls-utf8
添加USB扩展支持
Kernel modules ---> USBSupport ---> <*> kmod-usb-storage-extras
添加打印驱动
Kernel modules ---> USBSupport ---> <*> kmod-usb-printer
添加格式化工具
Utilities --->Filesystem ---> <*> badblocks
添加复位键支持
Utilities ---> <*>restorefactory
添加transmission下载工具
Network --->BitTorrent ---> <*> transmission-daemon
Network --->BitTorrent ---> <*> transmission-remote
Network --->BitTorrent ---> <*> transmission-web
添加FTP
Network ---> FileTransfer ---> <*> vsftpd
Network ---> FileTransfer ---> <*> wget
添加blkid,可查看挂载硬盘UUID
Utilities ---> disc ---> <*> blkid
添加minidlna
Libraries ---> <*> libffmpeg-mini
LuCI--->Applications ---><*> luci-app-minidlna
5、编译
开始编译:
make
或者
make V=99
或者
make -j V=99
make是编译命令,V=99表示输出debug信息,V一定要大写,如果要让CPU全速编译,就加上 -j 参数,第一次编译最好不带-j参数。
编译过程保持联网(会从网上下载一些源码包),所以断网可能造成编译中断,编译所需时间与电脑CPU及网络环境有很大关系,第一次编译时间较久,快 则半小时长则2、3个小时,之后的编译所需时间较短。编译完成后会在源码文件目录出现bin文件夹(如trunk/bin/XXXX),如果你手里的路由 是原版固件需要刷OpenWrt需要选用XXX-factory.bin固件,如果路由已经刷了OpenWrt,选用升级固件XXXX- sysupgrade.bin升级用的,在升级界面升级即可。进到文件夹找到你需要的固件传出(通过邮箱、网盘、U盘等),开始刷机吧。
6、个性化设置
1.添加一键无线
在如下位置新建一个文件,文件名为01onoff
/target/linux/ar71xx/base-files/etc/hotplug.d/button/01onoff
内容如下:
#!/bin/sh
[ "$BUTTON" = "wps" ]&& [ "$ACTION" = "pressed" ] && {
SW=$(uci get wireless.@wifi-device[0].disabled)
[ $SW == '0' ] && uci setwireless.@wifi-device[0].disabled=1
[ $SW == '0' ] || uci setwireless.@wifi-device[0].disabled=0
wifi
}
保存后设置权限为0777
2.修改无线默认启动发射功率及加密
/package/kernel/mac80211/files/lib/wifi/mac80211.sh
修改内容:注意对齐,参考修改
在文件最后修改以下内容:
config wifi-device radio$devidx
optiontype mac80211
optionchannel ${channel}
optionmacaddr $(cat/sys/class/ieee80211/${dev}/macaddress)
optionhwmode 11${mode_11n}${mode_band}
$ht_capab
# REMOVETHIS LINE TO ENABLE WIFI:
optiondisabled 0
optiontxpower 17
option htmode HT40-
option noscan 1
option country CN
config wifi-iface
optiondevice radio$devidx
optionnetwork lan
optionmode ap
optionssid OpenWrt_$(cat/sys/class/ieee80211/${dev}/macaddress|tr "[a-z]""[A-Z]"|sed 's/://g'|cut -c7-12)
optionencryption psk2 --------------------加密方式
optionkey xxxxxxx ----------------------密码(8位)
EOF
devidx=$(($devidx + 1))
done
}
3.修改路由器名字和时区
/package/base-files/files/etc/config/system
修改内容:
config system
optionhostname OpenWrt
optionzonename Asia/Shanghai
optiontimezone CST-8
4.默认启动DHCP
/package/network/services/dnsmasq/files/dhcp.conf
config dhcp lan
optioninterface lan
option start 100
option limit 150
optionleasetime 12h
optionignore 0 -----------------添加这个
5、当前Openwrt固件版本有个Bug,就是往DLNA目录下添加文件,不能自动更新。经验证可以用下面方法解决:
修改/feeds/oldpackages/multimedia/minidlna/minidlna.init在minidlna启动时添加-R参数
start() {
……
service_start /usr/bin/minidlna -R -f "$MINIDLNA_CONFIG_FILE"
}
6、u-boot可写