引言:
正式接触linux实际上是今年年初,因为有个项目需要将程序运行在嵌入式平台,而在此之前我大学四年及工作两年几乎都游走在基于Cortex-M单片机的周边。在我印象中ARM开发板都是一块很臃肿很庞大的电路板,然而前阵子我偶然找到了联发科联合seed出的一款开源硬件Linkit Smart 7688平台,非常的小巧精致,然而它仍然可以运行一个Linux系统-openwrt。这篇文章给出了详细的为Linkit Smart 7688平台编译openwrt系统的方法,及可能遇到的问题的解决办法。
Linkit Smart 7688 简介
Linkit Smart 7688 基于联发科MT7688AN芯片设计,MT7688AN芯片核心为 MIPS24KEc,主频580MHz。Linkit Smart 7688 拥有32MB Flash,128MB DDR2 RAM,这个Flash和RAM的大小使得我们可以做很多普通单片机平台无非完成的工作。它还板载wifi、USB、SD卡接口,使得其可以进行丰富的扩展,它被称为一台可以放进口袋的linux机器。
编译openwrt系统的动机
实际上,联发科官方已经提供了一套现成 boot镜像、系统镜像、以及Linux和OS X上使用的交叉编译工具链。因此对于普通的应用来讲,既然已经有了现成的可运行的系统、我们只要通过交叉编译工具开发我们的应用程序就可以了,为什么还需要重新去花大量的时间去重新编译一次系统。我Google了很多linkit Smart 7688的入门资料,我们发现很多朋友一上来就是要重新编译系统,我就非常不能理解。我主张尽量使用现成的东西,因此拿到这款板子之后,我做的第一件事情是烧录官方提供的最新的系统镜像文件让板子运行起来,接着便开始使用交叉编译工具编译我项目的应用程序,我验证发现,这个项目的应用程序经过交叉编译后可以运行在这个板子上。因此我决定将它作为这个项目的一款首选平台,但是它的硬件串口数量似乎太少了,只有3个串口,有一个串口还默认是调试功能,但还好它有USB,完全可以通过CP210x进行串口扩展,然而我发现USB识别不了CP210x USB转串口芯片。实际上linux内核是已经包含了CP210x的驱动的,只是联发科提供的系统没有将其编译进去,因此我需要重新配置系统编译选项,将USB转串口的驱动程序编译到系统中,这是我要为MT7688重新编译openwrt系统的动机。