(已知問題, make samba 3.0.2 會有 change_oem_password 問題, 目前先把 samba disable)(但若使用 ubuntu 10.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
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
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
===============<<IMPORTANT>>================== Notes:Uboot firmware in flash is uboot.img NOT uboot.bin ================================================
uboot.img 為for MT7620 的 uboot
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
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
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/