官方支持硬件列表
http://wiki.openwrt.org/toh/start
1、先下載Ubuntu 12.04LTS:
http://gb.releases.ubuntu.com//precise/ubuntu-12.04.2-desktop-i386.iso
2、裝系統,不會裝的話google去在安裝過程中記得創建一個openwrt用戶
3、開啓root用戶的步驟以及開機掛載dl磁盤步驟
①開啓root用戶
sudo passwd root
②開機掛載dl文件磁盤,需要切換到root用戶下執行命令
mkdir /media/dl chown openwrt:openwrt /media/dl -R vim /etc/fstab
增加如下一行:
/dev/sdb1 /media/dl ext4 defaults 0 2
4、配置本地軟件包,節約到網上下載的時間
①備份
cp /var/cache/apt/archives/*.deb /media/dl/deb/
②恢復
cp /media/dl/deb/*.deb /var/cache/apt/archives/ apt-get update cd /home/openwrt/trunk/dl/deb/ dpkg -i *.deb cd /var/cache/apt/archives/ ln -s /media/dl/deb archives
5、安裝一些依賴庫和編譯工具
官方的安裝庫和依賴如下:
參考:http://wiki.openwrt.org/zh-tw/doc/howto/buildroot.exigence
sudo apt-get install build-essential subversion git-core libncurses5-dev zlib1g-dev gawk flex quilt libssl-dev xsltproc libxml-parser-perl
民間的安裝庫和依賴如下:
參考:http://www.right.com.cn/forum/forum.php?mod=viewthread&tid=119876&page=1&extra=#pid712981
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
我兩個都安裝了,因爲我經常遇到依賴庫安裝不全編譯報錯的情況。
6、下載源碼
參考:
https://dev.openwrt.org/wiki/GetSource
https://dev.openwrt.org.cn/wiki/GetSource
svn checkout svn://svn.openwrt.org/openwrt/trunk/ svn update
7、更新下載擴展軟件包
參考:http://wiki.openwrt.org/zh-tw/doc/howto/build#更新.feeds
cd trunk/ ./scripts/feeds update -a ./scripts/feeds install -a
8、開始定製需要的模塊
參考:
https://dev.openwrt.org.cn/wiki/howto
http://www.right.com.cn/forum/thread-119877-1-1.html
http://hi.baidu.com/hackmicrosoft/item/323dc2bec6777bf562388ede
make menuconfig
需要注意的是Target Profile一定要選Default Profile,因爲你選華碩RT-N13U出不了固件的
如果在選擇模塊的時候遇到去不掉,選不上的情況
請第一遍選擇完了之後再回過頭來選擇或者去掉就可以了
因爲組件有依賴關係的,我寫的筆記沒有按依賴關係來寫,而是按步驟來寫的
添加軟件包,注意如果不熟悉編譯的話默認選擇的最好不要刪除,根據自己的需要增加即可
01、選擇CPU型號
Target System ---> Ralink RT288x/RT3xxx
02、選擇CPU子型號
Subtarget ---> RT3x5x/RT5350 based boards
03、不集成IPV6包
Global build settings ---> Enable IPv6 support in packages
04、添加USB掛載
Base system ---> block-mount
05、添加WEB界面,中文支持,根據需要選擇app,這裏需要注意的是可能會出現沒有ushare可選,那是因爲還有一個libffmpeg-mini沒有選擇我會在後面來選擇。
LuCI ---> Themes ---> luci-theme-openwrt LuCI ---> Collections ---> luci LuCI ---> Translations ---> luci-i18n-chinese LuCI ---> Applications ---> luci-app-ddns LuCI ---> Applications ---> luci-app-hd-idle LuCI ---> Applications ---> luci-app-multiwan LuCI ---> Applications ---> luci-app-p910nd LuCI ---> Applications ---> luci-app-qos LuCI ---> Applications ---> luci-app-samba LuCI ---> Applications ---> luci-app-upnp LuCI ---> Applications ---> luci-app-ushare LuCI ---> Applications ---> luci-app-wol
06、添加ext4磁盤格式支持
Kernel modules ---> Filesystems ---> kmod-fs-ext4
07、添加UTF8支持
Kernel modules ---> Native Language Support ---> kmod-nls-utf8
08、禁用kmod-ipv6
Kernel modules ---> Network Support ---> kmod-ipv6
09、添加pptp,l2tp支持
Kernel modules ---> Network Support ---> kmod-pppol2tp Kernel modules ---> Network Support ---> kmod-pptp
10、添加USB支持
Kernel modules ---> USB Support ---> kmod-usb2 Kernel modules ---> USB Support ---> kmod-usb-storage Kernel modules ---> USB Support ---> kmod-usb-storage-extras Kernel modules ---> USB Support ---> kmod-usb-printer
11、添加aria2下載工具
Network ---> File Transfer ---> aria2
12、禁用ip6tables
Network ---> Firewall ---> ip6tables
13、添加通用UNIX打印系統語言環境
Network ---> Printing ---> cups-locale-zh
14、添加PPTPD服務支持
Network ---> *** ---> pptpd
15、禁用6relayd
Network ---> 6relayd
16、禁用odhcp6c
Network ---> odhcp6c
17、禁用libip6tc
Libraries ---> Firewall ---> libip6tc
18、添加libffmpeg-mini支持ushare需要
Libraries ---> libffmpeg-mini
19、添加lrzsz上傳下載工具支持(非常實用)
Utilities ---> lrzsz
20、添加自動掛載工具
Utilities ---> Filesystem ---> badblocks
21、添加fdisk分區工具
Utilities ---> disc ---> fdisk
22、添加reset鍵支持(長按5秒以上就可以恢復固件默認設置)
Utilities ---> restorefactory
23、添加一鍵開關無線(按一下WPS鍵放開無線就打開或者關閉)
Utilities ---> wifitoggle
24、選擇完了之後就保存然後退出
9、編譯固件
因爲我是用的VMware虛擬機編譯的,所以的專門用了一塊磁盤(dl)來存放編譯時下載的文件,下次換系統編譯時同樣可以掛載上去使用不需要再聯網下載已有文件了,很方便!
把dl磁盤軟鏈接到/home/openwrt/trunk/dl
ln -s /media/dl /home/openwrt/trunk/dl
刪除軟鏈接的方法
rm /home/openwrt/trunk/dl -rf
創建一個和問題固件名稱相同的文件用以跳過編譯失敗,從而導致編譯暫停!
mkdir /home/openwrt/trunk/bin/ramips/ -p touch /home/openwrt/trunk/bin/ramips/openwrt-ramips-rt305x-whr-g300n-squashfs-sysupgrade.bin
最好撥號到國外的***然後編譯這樣纔不會因爲GFW的原因導致編譯出錯、這裏謝謝一下baohua.me提供的***
Ubuntu設置***圖:
登錄成功會出現如下圖
編譯
cd ~/trunk/ make -j 5 V=s
說明,-j 5的意思是5個任務同時進行,官方wiki給出的建議是cpu+1。V=s是顯示詳細編譯過程!
完了之後會在/home/openwrt/trunk/bin/ramips/生成對應的固件,我的路由器是RT-N13U B1所以對應的固件是
openwrt-ramips-rt305x-rt-n13u-squashfs-sysupgrade.bin
編譯完了可以執行如下命令
清除(刪除bin和build_dir目錄內容。)
make clean
清除目錄(除了刪除bin和build_dir的內容,並且包含staging_dir和toolchain(跨平臺編譯的工具),Dirclean是基本的清除指令)
make dirclean
清除編譯(消滅所有的已編譯的部分或設定,並刪除以下載的套件和源碼)
make distclean
注意: 請小心使用,這個命令會移除你的配置設定(.config),toolchain和其他所有的源碼!
補充內容:
禁用IPV6內核
vim package/base-files/files/etc/sysctl.conf net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1
修改默認密碼
vim package/base-files/files/etc/passwd root:$1$wEehtjxj$YBu4quNfVUjzfv8p/PBo5.:0:0:root:/root:/bin/ash
增加開機啓動關閉LED燈,以及aria2啓動腳本
vim package/base-files/files/etc/rc.local #swconfig dev rt305x port 0 set led 11 #swconfig dev rt305x port 1 set led 11 #swconfig dev rt305x port 2 set led 11 #swconfig dev rt305x port 3 set led 11 #swconfig dev rt305x port 4 set led 11 #swconfig dev rt305x set apply #aria2c --conf-path=/etc/config/aria2.conf -D