Freescale提供了I.MX6的BSP开发包,可以在Freescale的官网下载到。为了与天嵌提供的版本一致,本文使用的BSP版本是:L3.0.35_4.1.0_130816_source,这版本的内核是3.0.35版本的,u-boot是2009.8版本的。使用这个版本的BSP可以充分使用天嵌提供的源码包,参考天嵌的源码包进行移植,之后如果有时间的话再来移植下较新版本的u-boot和kernel。本主要讲如何在64位的ubuntu-12.04 LTS搭建LTIB开发环境。
Ubuntu安装
Ubuntu的安装教程网上有很多,我就不在这里详细的说了。但是我在VMWare上安装完Ubuntu-12.04的后发现登陆黑屏,即登陆之后屏幕就一直黑着,不显示桌面。网上遇到这个问题的朋友很多的,下面是解决方案。
首先通过CTRL+ALT+F2切换到命令行模式,然后依次执行如下指令:
- sudo apt-get update
- sudo apt-get install xserver-xorg-lts-quantal
- sudo dpkg-reconfigure xserver-xorg-lts-quantal
- sudo reboot
LTIB安装还是非常方便的,下面是具体的步骤:
Step1. 下载Freescale官方BSP
我是用的BSP版本:L3.0.35_4.1.0_130816_source.tar.gz。这个版本的内核是3.0.35的,天嵌提供的内核版本与这个版本的BSP是一致的,最好把相应的文档也下载下来,文档包名称是:L3.0.35_4.1.0_docs.tar.gz。这两个文件可以Freescale官网找到的,不过Freescale最近更新了BSP,如果找不到这个版本可以到我的网盘下载,csdn上传不了这么大的文件,链接地址如下:
Step2. 解压BSP安装包
- tar zxf L3.0.35_4.1.0_130816_source.tar.gz
- cd L3.0.35_4.1.0_130816_source
- ./install
- /home/girlkoo/Projects/L3.0.35_4.1.0
LTIB编译
尽管Freescale给出了详细的配置文档,但在64位ubuntu12.04上编译LTIB时还是遇到了各种各样的问题,怕遗忘,记录在这里与大家分享。下面是编译过程中遇到的各种问题及解决方案。
Step1. 安装依赖包
LTIB编译依赖一些应用程序,这里将需要安装的文件整理到脚本中,其实是从BSP的文档中摘出来的,详细内容如下:
- #!/bin/bash
- # Install packages needed by LTIB
- sudo aptitude -y install gettext libgtk2.0-dev rpm bison m4 libfreetype6-dev
- sudo aptitude -y install libdbus-glib-1-dev liborbit2-dev intltool
- sudo aptitude -y install ccache ncurses-dev zlib1g zlib1g-dev gcc g++ libtool
- sudo aptitude -y install uuid-dev liblzo2-dev
- sudo aptitude -y install tcl dpkg
- sudo aptitude -y install asciidoc texlive-latex-base dblatex xutils-dev
- # Packages required for 64-bit Ubuntu
- # Do "uname -a" and see if the word "x86_64" shows up.
- if uname -a|grep -sq 'x86_64'; then
- sudo aptitude -y install ia32-libs libc6-dev-i386 lib32z1
- fi
- # The following recommended for Linux development.
- # They are not required by LTIB.
- sudo aptitude -y install gparted emacs22-nox openssh-server
- sudo aptitude -y install nfs-common nfs-kernel-server lintian
- sudo aptitude -y install git-core git-doc git-email git-gui gitk
- sudo aptitude -y install diffstat indent tofrodos fakeroot doxygen uboot-mkimage
- sudo aptitude -y install sendmail mailutils meld atftpd sharutils
- sudo aptitude -y install manpages-dev manpages-posix manpages-posix-dev linux-doc
- sudo aptitude -y install vnc4server xvnc4viewer
- sudo aptitude -y install texinfo
将以上指令保存到文本文件,如auto_install.sh,并为auto_install.sh添加可执行权限:
- chmod a+x auto_install.sh
- ./auto_install.sh
- sudo apt-get install aptitude
Step2. 安装补丁
Freescale提供这套BSP时是基于ubuntu9.04的,现在使用的是ubuntu12.04,系统检测软件包是否安装时是变化,可以通过如下patch来解决此问题:
- #!/usr/bin/env bash
- # get the patch tarball and untar it
- wget -O ubuntu-ltib-patch.tgz https://community.freescale.com/servlet/JiveServlet/downloadBody/93454-102-3-2834/ubuntu-ltib-patch.tgz
- tar -xzvf ubuntu-ltib-patch.tgz
- # execute the script which do the patching
- ltibDir=`pwd`
- cd ubuntu-ltib-patch
- ./install-patches.sh $ltibDir
- chmod a+x patch-ltib-ubuntu12.04.sh
- ./patch-ltib-ubuntu12.04.sh
Step3. 添加sudo
执行命令:
- sudo visudo
- girlkoo ALL = NOPASSWD: /usr/bin/rpm, /opt/freescale/ltib/usr/bin/rpm
然后按ctrl+O将以上内容保存,使用默认文件名称即可,直接回车,然后ctrl+X退出。
Step4. 检查系统路径
检查/usr/include目录下是否有sys目录,如果没有则执行如下命令:
- cd /usr/include
- sudo ln -s x86_64-linux-gnu/sys sys
Step5. 编译LTIB
编译LTIB本身很简单,只需要切换到LTIB的安装目录并执行如下指令:
- ./ltib
- cd L3.0.35_4.1.0_130816_source/ltib
- cp * /opt/freescale/pkgs/
- cd /opt/freescale/pkgs
- chmod a-x *
- ./ltib
当所有文件都齐备时,就可以进入如下界面:
如果能看到这个界面,LTIB就快完成了,下面来看下如何选择这些配置项。这是第一个选项界面,下面开始简单的配置:
(1) 第一个界面
- Platform choice (Freescale iMX reference boards) --->
(2) 第二个界面
- Selection (imx6q) --->
(3) 第三个界面
- board (mx6q_sabresd) --->
之后就看到LTIB开始自动导出开始编译代码了。现在编译的才是我们需要的u-boot, kernel等工程,这些都是freescale的工程师维护的,所以一般不会出错,我编译的过程中没有遇到错误。
至此,就完成了LTIB环境的搭建,下篇文章我们就开始移植u-boot。有任何问题欢迎留言讨论。