Ubuntu 12.04.2 LTS下編譯華碩RT-N13U B1路由器OpenWrt固件

官方支持硬件列表

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章