最近再次使用Freescale i.MX6处理器,作为极少数具有PCI Express接口的ARM架构处理器,i.MX6特别适合于无线多媒体应用。与此前不同的是,这次没有人配合我进行驱动程序的开发,移植等工作,所以只好硬着头皮上。由于本人非软件专业出身,工作中也很少接触,所以不敢怠慢,严格按照Freescale官方的手册,万分小心地搭建了i.MX6的编译环境。本文对这一过程做简要记录,分享给需要的读者。
1. 下载Freescale官方的BSP(板级支持包)及相关的文档。
BSP下载地址:http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=i.MX6Q&fpsp=1&tab=Design_Tools_Tab,注意,Freescale官方网站给出了多个版本的BSP,我需要的Linux版本,仔细观察其描述,只剩下两个版本可以选择:L3.0.101_4.1.1_SOURCE_BSP及L3.0.35_4.1.0_ER_SOURCE_BSP。按理说应该选择较新的版本即L3.0.101版本,但我最终选择了L3.0.35_4.1.0_ER_SOURCE_BSP,因为这个版本有文档说明,谁叫我不熟悉软件呢,没办法,如下图。
文档下载地址:http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=i.MX6Q&fpsp=1&tab=Documentation_Tab
下载其中的L3.0.35_4.1.0_LINUX_DOCS 即可。
2. 安装免费虚拟机软件VirtualBox,并安装Setting_Up_LTIB_host.pdf中的推荐的Ubuntu 9.04版本。
3. 安装完成后,请不要急着安装VirtualBox的增强包,先按照Setting_Up_LTIB_host.pdf的说明执行完成“1.5 Install Host Packages Needed by LTIB”。
4. 安装VirtualBox的增强包,完成Setting_Up_LTIB_host.pdf的其余步骤。
5. 按照i.MX_6Dual6Quad_SABRE-SD_Linux_User's_Guide.pdf中的说明安装LTIB。注意,这一步需要根据读者的实际情况而定,我设计的硬件是基于i.MX6Q SABRE-SDP参考设计,所以参照i.MX_6Dual6Quad_SABRE-SD_Linux_User's_Guide.pdf,其余的参考设计请参照相应的文档。
6. 安装LTIB的过程中会出现如下的问题:
TEXINPUTS=".TEXINPUTS"
MAKEINFO='/bin/bash /opt/freescale/ltib/usr/src/rpm/BUILD/flex-2.5.37/missing --run makeinfo?? -I .'
texi2dvi --pdf --batch flex.texi
/bin/bash: texi2dvi: command not found
make[2]: *** [flex.pdf] Error 127
make[2]: Leaving directory `/opt/freescale/ltib/usr/src/rpm/BUILD/flex-2.5.37/doc'
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory `/opt/freescale/ltib/usr/src/rpm/BUILD/flex-2.5.37'
make: *** [install] Error 2
error: Bad exit status from /home/wang/imx6/L3.0.35_4.1.0_130816_source/source/ltib/tmp/rpm-tmp.76034 (%install)
RPM build errors:
Bad exit status from /home/wang/imx6/L3.0.35_4.1.0_130816_source/source/ltib/tmp/rpm-tmp.76034 (%install)
解决办法为:
sudo aptitude -y install asciidoc texlive-latex-base dblatex xutils-dev
sudo apt-get install texinfo
7. 继续按照i.MX_6Dual6Quad_SABRE-SD_Linux_User's_Guide.pdf中的说明编译BSP,注意选择正确的CPU平台(本例为imx6q)及正确的板子(本例为mx6q_sabresd),即可顺利完成编译过程,得到u-boot及Kernel,如下图。