初学者,最难的还是那些各种若隐若现的小细节。
1 解压MediaTek_ApSoC_SDK_4320_20150414.tar.bz2
tar -jxvf MediaTek_ApSoC_SDK_4320_20150414.tar.bz2
得到两个目录:
RT288x_SDK Uboot
2 解压交叉编译工具:RT288x_SDK/toolchain/ mips-2012.03.tar.bz2 到linux 系统的/opt 文件夹下
cd ./RT288x_SDK/toolchain/
tar -jxvf mips-2012.03.tar.bz2 -C /opt
注意,这里的/opt 不是RT288x下 的opt,而是整个虚拟机的/opt.另外,RT288x_SDK/toolchain/下的mips-2012.03和buildroot-gcc463压缩文件夹里都有mipsel-linux-gcc编译器,实践发现用mips-2012.03的编译器更保险。
3 进入 Uboot目录,配置uboot
cd Uboot
make menuconfig
这里选择mt7621后,交叉编译路径默认选的是/opt/ mips-2012.03/bin,可以修改。需要保证opt下面有对应的文件才可以。
4 编译
这个步骤最坑爹,给我的附带文档说当make menuconfig后直接输入:
make
就可以了。
可是我在编译输出里总是看到编译器是arm-linux-xxx,mt7621是特么mips内核好不。。。各种找,各种改,以至于要放弃时,在一个角落里看到了正确做法:
make CROSS_COMPILE=/opt/mips-2012.03/bin/mipsel-linux- ARCH=mips
然后,编译成功!!
就是说,你还没告诉编译器要用啥工具,是什么内核架构,这里要写出来。
为啥文档不说?因为是高手写的,人家能随便搞。可是,最需要文档的反倒是新手。细节,让新手从入门到放弃。。。
tips:去了一个牛人那里,人家直接make就没事,回来一看我的uboot文件夹下:echo $CROSS_COMPILE是arm打头的,看来这就是问题之一了,以后再说吧,怕把环境整乱了。