====== MT7620 從 0 開始 ======
(已知問題, make samba 3.0.2 會有 change_oem_password 問題, 目前先把 samba disable)(但若使用 ubuntu 10.04 則不會有問題)
===== Install Ubuntu 12.04 =====
1. 建議安裝 Ubuntu xx.04 LTS 版本, 官方為長期支援 ( LTS = Long Term Support )
2. 安装了**build-essential** (make lzme & squashfs4.2 須要):
# apt-get install build-essential
3. 安裝 **g++-multilib** (make squashfs4.2 須要)
# apt-get install g++-multilib
4. 安裝 **zlib** (make squashfs4.2 須要)
# apt-get install zlib1g-dev
5. 安裝 **lzma** (make squashfs4.2 須要)
# apt-get install liblzma-dev
6. 安裝 **ncurses-dev** ( for make menuconfig )
# apt-get install ncurses-dev
7. 更改 sh 為 **bash** (iptable-1.4.10 須要)
# mv /bin/sh /bin/sh.dash
# ln -s /bin/bash /bin/sh
# ls -l /bin/sh*
lrwxrwxrwx 1 root root 4 Sep 18 17:42 sh -> bash
lrwxrwxrwx 1 root root 4 Sep 18 09:52 sh.dash -> dash
lrwxrwxrwx 1 root root 4 Sep 18 09:52 sh.distrib -> dash
8. 安裝 **bison** (radvd-1.0 須要)
# apt-get install bison
9. 安裝 **flex** (radvd-1.0 須要)
# apt-get install flex
10. 安裝 **gawk**(samba-3.0.2 須要)
# apt-get install gawk
11. 安裝 **dialog** (menu 用)
# apt-get install dialog
12 安裝 **scons** (fuse 須要)
# apt-get install scons
===== Toolchain =====
**1. Install Toolchain**
解壓縮 RT288x_SDK/toolchain/buildroot-gcc342.tar.bz2 到 /opt, 並建立一個 link "buildroot-gdb"
# cd /opt
# tar xvf [path]/RT288x_SDK/toolchain/buildroot-gcc342.tar.bz2
# ls
buildroot-gcc342
# ln -s buildroot-gcc342 buildroot-gdb
# ls
buildroot-gcc342/ buildroot-gdb/
**2. Install LZMA Utility**
解壓縮 RT288x_SDK/toolchain/lzma-4.32.7.tar.gz 到任一路徑
# cd /tmp
# tar xvf [path]/RT288x_SDK/toolchain/lzma-4.32.7
安裝 LZMA
# cd /tmp/lzma-4.32.7
# ./configure
# make
# make install (install lzma to /usr/local/bin)
**3. Install mksquashfs utility**
Linux-2.6.36.x Kernel Version (for MT-7620)
# tar xvf squashfs4.2.tar.bz2
# cd squashfs4.2/squashfs-tools
# make
# cp mksquashfs /opt/buildroot-gcc342/bin/mksquashfs_lzma-4.2
===== Boot Loader =====
**1. Uboot Configuration**
# make menuconfig
x x Cross Compiler Path: "/opt/buildroot-gcc342/bin" x x
x x --- x x
x x (ASIC) Chip Type x x
x x (MT7620) Chip ID x x
x x (None) Port 5 Connect to x x
x x (None) Port 4 Connect to x x
x x (SPI) Flash Type x x
x x (DDR2) DRAM Type x x
x x (512Mb) DDR Component x x
x x (16bits) DDR Width x x
x x --- x x
x x (ROM) Ram/Rom version x x
x x (CONF) CPU PLL source x x
x x (29) PLL_MULTI_RATIO conf x x
x x (2) PLL_DIV_RATIO conf x x
x x [ ] Dual Image x x
x x [ ] Partition LAN/WAN x x
x x --- x x
x x Load an Alternate Configuration File x x
x x Save Configuration to an Alternate File x x
**2. make Uboot**
# make
===============<>==================
Notes:Uboot firmware in flash is uboot.img NOT uboot.bin
================================================
**uboot.img** 為for MT7620 的 uboot
===== Make Image =====
**1. Select target board**
# make menuconfig
Select the Product you wish to target --->
x x (MT7620) Ralink Products x x
x x (8M/64M(FULL)) Default Configuration File x x
**2. make image**
第一次
# make clean
# make dep
# make
**PS. 一定要做 make dep**
看到下面訊息表示OK
Image Name: Linux Kernel Image
Created: Wed Sep 18 18:11:29 2013
Image Type: MIPS Linux Kernel Image (lzma compressed)
Data Size: 3141797 Bytes = 3068.16 kB = 3.00 MB
Load Address: 0x80000000
Entry Point: 0x8000C310
Kernel Size: 0x00000000
Firmware 位於 **source/image/root_uImage**
===== Install WiFi Driver =====
**1. copy WiFi driver to RT288x_SDK/linux‐2.6.xx.x/drivers/net/wireless**
# tar xvf /mt7620_wifi2716_all_dpa_20130426.tar.bz2
# ls -l
drwxr-xr-x 11 sw sw 4096 2013-04-26 19:19 rt2860v2/
drwxr-xr-x 2 sw sw 4096 2013-04-26 21:50 rt2860v2_ap/
drwxr-xr-x 2 sw sw 4096 2013-04-26 21:57 rt2860v2_sta/
# cp -af rt2860v2* ../RT288x_SDK/source/linux-2.6.36.x/drivers/net/wireless/
PS. for MT7620, the kernel is 2.6.36
**2. modify RT288x_SDK/linux‐2.6.xx.x/drivers/net/wireless/Makefile**
...
ifneq ($(CONFIG_RT2860V2_AP),)
obj-$(CONFIG_RT2860V2_AP) += rt2860v2_ap/
endif
ifneq ($(CONFIG_RT2860V2_STA),)
obj-$(CONFIG_RT2860V2_STA) += rt2860v2_sta/
endif
ifneq ($(CONFIG_RTPCI_AP),)
obj-$(CONFIG_RTPCI_AP) += RTPCI_ap/
endif
ifneq ($(CONFIG_RT3090_AP),)
obj-$(CONFIG_RT3090_AP) += RT3090_ap/
endif
...
** 3. modify RT288x_SDK/linux‐2.6.xx.x/ralink/Kconfig**
...
source "drivers/net/wireless/rt2860v2_ap/Kconfig"
config RA_CLASSIFIER
tristate "Ralink Flow Classifier"
depends on RT2860V2_AP_VIDEO_TURBINE || RT2860V2_STA_VIDEO_TURBINE
default n
source "drivers/net/wireless/rt2860v2_sta/Kconfig"
...
**4. configure WiFi driver from kernel menu**
Ralink Module ---> WiFi Driver Support ---> Choose First WiFi Interface (RT2860) --->
x x --- WiFi Driver Support x x
x x Choose First WiFi Interface (RT2860) ---> x x
x x Choose Second WiFi Interface (RT5592) ---> x x
x x <*> Ralink RT2860 802.11n AP support x x
x x [ ] LED Support (NEW) x x
x x [ ] WSC (WiFi Simple Config) (NEW) x x
x x [ ] LLTD (Link Layer Topology Discovery Protocol) (NEW) x x
x x [*] WDS x x
x x [*] MBSSID x x
x x [*] New MBSSID MODE x x
x x [*] AP-CLient Support x x
x x [*] MAC Repeater Support x x
x x [ ] IGMP snooping (NEW) x x
x x [ ] NETIF Block (NEW) x x
x x [ ] DFS (NEW) x x
x x [ ] Carrier Detect (NEW) x x
x x [ ] DLS ((Direct-Link Setup) Support (NEW) x x
x x [ ] IDS (Intrusion Detection System) Support (NEW) x x
x x [*] CoC Support (NEW) x x
x x [ ] Memory Optimization (NEW) x x
x x [ ] Video Turbine support (NEW) x x
x x [ ] 802.11n Draft3 (NEW) x x
x x [ ] Adjust Power Consumption Support (NEW) x x
x x [ ] Single SKU (NEW) x x
x x Choose Power Design (Internal PA and Internal LNA) ---> x x
x x [*] TSSI Compensation x x
x x [*] Temperature Compensation x x
x x < > Ralink RT2860 802.11n STA support (NEW) x x
PS. **TSSI Compensation** & **Temperature Compensation** for QATools
===== Make Image from Mapower Menu =====
**1. 須先執行 setpath.sh**
**2. 須安裝 dialog**
參考 Install Ubuntu 12.04
**3. make error with epeg**
缺 libjepg, 請 copy source/user/Mapower-iPhoneCGI/jpeg-9/.libs/libjpeg.so & libjpeg.so.9 & libjpeg.so.9.0.0 到 toolchain/lib 目錄內
# cd /opt/buildroot-gcc342/lib
# cp -a {SDK}/user/Mapower-iPhoneCGI/jpeg-9/.libs/libjpeg.so* .
# ls -l
lrwxrwxrwx 1 root root 16 2013-09-23 13:17 libjpeg.so -> libjpeg.so.9.0.0*
lrwxrwxrwx 1 root root 16 2013-09-23 13:17 libjpeg.so.9 -> libjpeg.so.9.0.0*
-rwxr-xr-x 1 root root 298416 2013-09-23 12:54 libjpeg.so.9.0.0*
**4. make error with e2fsprogs**
...
**5. make error with fuse-exfat-0.9.8**
缺 libfuse, 請 copy source/lib/fuse-2.8.7/lib/.libs/libfuse.so & libfuse.so.2 & libfuse.so.2.8.7 到 toolchain/lib 目錄內
# cd /opt/buildroot-gcc342/lib
# cp -a {SDK}/lib/fuse-2.8.7/lib/.libs/libfuse.so* .
# ls -l libfuse.so*
lrwxrwxrwx 1 root root 16 2013-09-23 14:10 libfuse.so -> libfuse.so.2.8.7
lrwxrwxrwx 1 root root 16 2013-09-23 14:10 libfuse.so.2 -> libfuse.so.2.8.7
-rwxr-xr-x 1 root root 189952 2013-09-23 14:02 libfuse.so.2.8.7
copy fuse.h to toolchain include
# cp -af {SDK}/lib/fuse-2.8.7/include/* /opt/buildroot-gcc342/include/