====== 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/