飞凌嵌入式 i.MX6 LTIB编译-Freescale iMX6平台

2025-10-19 14:46:12

1、从飞思卡尔官网下载BSP开发包

若要从飞思卡尔官网下载资料需先注册账号,注册完后打开网页:

下载以下BSP 包:

飞凌嵌入式 i.MX6 LTIB编译-Freescale iMX6平台

飞凌嵌入式 i.MX6 LTIB编译-Freescale iMX6平台

飞凌嵌入式 i.MX6 LTIB编译-Freescale iMX6平台

1、安装需要的库

执行如下命令:

# sudo apt-get install rpm m4 bison patch build-essential zlib1g zlib1g-dev ncurses-dev texinfo texlive liblzo2-dev  uuid-dev gettext libglib2.0-dev

安装过程中可能会因为缺少一些库出现错误,此处可以创建一个文本文件,命名为auto_install.sh,其内容为:

#!/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加可执行权限:

chmod a+x auto_install.sh

然后执行该脚本即可:

./auto_install.sh

执行时会要求输入密码。如果提示aptitude找不到的话可以考虑使用apt-get,也可以安装该指令,网上盛传该使用该指令来管理软件依赖比apt-get更好用,安装方法如下:

sudo apt-get install aptitude

脚本执行的时间比较长,可能需要半小时左右,请耐心等待。

1、以下操作是基于user用户而非root用户,假如在root用户可以用命令切换到user用户,如要切换到user用户develop可以执行以下命令:

root@develop:/# su develop

develop@develop:/$

在根目录下新建文件夹 imx6,并把下载的3个包拷贝到 imx6 文件夹下。分别解压三个文件,命令如下:

$ tar zxvf IMX_AACPD_3.0.7-2.tar.gz

$ tar zxvf L3.0.35_4.1.0_130816_source.tar.gz

$ tar zxvf IMX_MMCODEC_3.0.35_4.1.0_BUNDLE_CODA.tar.gz

注:如果不需要多媒体部分,不必解压IMX_AACPD_3.0.7-2.tar.gz 和IMX_MMCODEC_3.0.35_4.1.0_BUNDLE_CODEA.tar.gz。

进入 IMX_AACPD_3.0.7-2 文件夹下面,将下面的 LTIB Codecs 和 Ubuntu Codecs 两个文件下面的文件,都拷贝到 L3.0.35_4.1.0_130816_source/pkgs 里面,其中 LTIB Codecs 是 linux 需要的库,Ubuntu Codecs 是Ubuntu 需要的库。

进入 IMX_MMCDODEC_3.0.35_4.1.0_BUNDLE_CODA 文件夹,将 ltib codecs 和 ubuntu codecs 两个文件夹下面的文件,全部拷贝到 L3.0.35_4.1.0_130816_source/pkgs 里面,其中 LTIB Codecs 是 linux 需要的库,Ubuntu Codecs 是 Ubuntu 需要的库。

1、进入 L3.0.35_4.1.0_130816_source 文件夹,安装 LTIB。执行命令

$ ./install

提示:

Do you want to cotinue ? Y|n

输入 y 回车。

提示开源方面的一些信息,不用管,不停空格之后会到最后提示:

I have read and accept the EULA (yes|no):

输入 yes 回车,提示需输入安装路径:

Where do you want to install LTIB ?

输入想安装LTIB的路径,如ltib_install,回车。

此时开始安装 LTIB。

1、添加用户权限,需先切换到root用户,执行以下命令:

develop@develop:/$ su root

密码:

root@develop:/# vi /etc/sudoers

在打开的文件中

# Members of the admin group may gain root privileges

%admin ALL=(ALL) ALL

下面添加:

develop ALL = NOPASSWD: /usr/bin/rpm, /opt/freescale/ltib/usr/bin/rpm

修改完后切回到user用户,以develop用户为例,执行命令:

root@develop:/# su develop

develop@develop:/$

1、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

将以上指令保存为补丁文件patch-ltib-ubuntu12.04.sh,并位置添加可执行权限:

chmod a+x patch-ltib-ubuntu12.04.sh 

将该补丁脚本拷贝到ltib的安装目录下(本文是/imx6/L3.0.35_4.1.0/ltib_install),然后执行该脚本:

./patch-ltib-ubuntu12.04.sh 

补丁安装非常快,不过依赖网络,如果网速不好可以按照指令分别执行。

2、飞思卡尔官方提供了一个在Ubuntu12.04上安装LTIB时的一个补丁包ubuntu-ltib-patch.tgz,将补丁包解压缩,

tar zxvf ubuntu-ltib-patch.tgz

进入ubuntu-ltib-patch目录下,运行install-patches.sh。

./install-patches.sh

1、检查/usr/include目录下是否有sys目录,如果没有则执行如下命令:

cd /usr/include 

sudo ln -s x86_64-linux-gnu/sys  sys

2、执行以下命令:

$vi ltib_install/ltib/dist/lfs-5.1/gst-plugins-good/gst-plugins-good.spec

其中:

 %Build 

export CAIRO_CFLAGS="-I${DEV_IMAGE}/usr/include/cairo" 

export CAIRO_LIBS="-L${DEV_IMAGE}/usr/lib/cairo"

export LIBS="-lcairo"                                                        

改成:                                                      

 %Build                                                     

#export CAIRO_CFLAGS="-I${DEV_IMAGE}/usr/include/cairo"              

#export CAIRO_LIBS="-L${DEV_IMAGE}/usr/lib/cairo" 

#export LIBS="-lcairo"    

3、3. 执行以下命令,继续修改LTIB配置文件:

$vi ltib_install/ltib/dist/lfs-5.1/base_libs/base_libs.spec

其中:

perl -w -e '                                                         

    @ARGV = grep { `file $_` =~ m,ASCII C program text, } @ARGV; 

    exit (0) unless @ARGV;

改成:

perl -w -e '                                                         

     # @ARGV = grep { `file $_` =~ m,ASCII C program text, } @ARGV;

    # exit (0) unless @ARGV;

1、进入安装路径下的ltib目录,执行ltib脚本进行编译,如下:

$cd  ltib_install/ltib

$ ./ltib

但编译过程会下载文件,因此速度比较慢,能节省时间的方法是将解压的安装包中pkgs文件内的各个文件(大约1G)拷贝到/opt/freescale/pkgs目录下,这样就能省掉很大一部分,只需要下载几个patch,具体操作如下:

cd L3.0.35_4.1.0_130816_source/ltib 

cp * /opt/freescale/pkgs/ 

cd /opt/freescale/pkgs 

chmod a-x *

此时注意查看一下第7节的配置文件是否修改了。

然后执行LTIB的编译指令即可,即:

./ltib 

编译一段时间之后,弹出如下的配置框:

飞凌嵌入式 i.MX6 LTIB编译-Freescale iMX6平台

2、直接退出并保存。接着弹出下面对话框:

飞凌嵌入式 i.MX6 LTIB编译-Freescale iMX6平台

3、选择imx6q平台,退出并保存,如下:

飞凌嵌入式 i.MX6 LTIB编译-Freescale iMX6平台

4、进入imx6q基本配置界面,如下:

飞凌嵌入式 i.MX6 LTIB编译-Freescale iMX6平台

5、如果采用的是i.mx6q的核心板,在board处选择mx6q_sabresd,如下:

飞凌嵌入式 i.MX6 LTIB编译-Freescale iMX6平台

6、如果采用的是i.mx6dl的核心板,在board处选择mx6dl_sabresd,如下:

飞凌嵌入式 i.MX6 LTIB编译-Freescale iMX6平台

7、然后选择配置内核,选择Configure the kernel,如下:

飞凌嵌入式 i.MX6 LTIB编译-Freescale iMX6平台

8、然后选择文件系统格式,进入Target Image Generation,选择ext2格式,如下:

飞凌嵌入式 i.MX6 LTIB编译-Freescale iMX6平台

9、然后返回主配置界面,向下翻,进入Package list,选择多媒体部分,假如不需要多媒体功能可以不做此步,选择gpu-viv-bin-mx6q,如下:

飞凌嵌入式 i.MX6 LTIB编译-Freescale iMX6平台

10、然后选择多媒体插件,同样假如不需要多媒体功能可以不做此步,进入freescale Multimedia Plugin/Codes,配置如下:

飞凌嵌入式 i.MX6 LTIB编译-Freescale iMX6平台

11、然后返回上级界面,选择gstreamer-plugin-good,同样假如不需要多媒体功能此步可以不做。如下:

飞凌嵌入式 i.MX6 LTIB编译-Freescale iMX6平台

12、逐步退出保存,完成LTIB配置,开始编译。

编译一段时间之后会弹出内核配置界面,需根据实际情况配置,这里以通用功能为例配置下内核,具体步骤如下:

飞凌嵌入式 i.MX6 LTIB编译-Freescale iMX6平台

13、配置SPI,进入Device Drivers->SPI support,如下:

飞凌嵌入式 i.MX6 LTIB编译-Freescale iMX6平台

14、配置CAN,进入Networking support->CAN bus subsystem support->CAN Device Drivers,如下:

飞凌嵌入式 i.MX6 LTIB编译-Freescale iMX6平台

15、配置PCIE,选择System Type -> Freescale MXC Implementations->PCI Express support,如下:

飞凌嵌入式 i.MX6 LTIB编译-Freescale iMX6平台

16、取消MAX11801配置,进入Device Drivers->Input device support->Touchscreens,如下:

飞凌嵌入式 i.MX6 LTIB编译-Freescale iMX6平台

17、退出并保存,开始编译内核。

编译成功,如下图所示:

飞凌嵌入式 i.MX6 LTIB编译-Freescale iMX6平台

18、编译完成之后可以看到编译生成的映像及相关源码。

在 L3.0.35_4.1.0_130816_source/ltib_install/ltib目录下有文件系统文件夹rootfs和压缩包rootfs.ext2.gz。

在L3.0.35_4.1.0_130816_source/ltib_install/ltib/rootfs/boot 文件夹下面,有uboot映像和内核映像:u-boot.bin 和 uImage。

在L3.0.35_4.1.0_130816_source/ltib_install/ltib/rpm/BUILD目录下有linux内核源码linux-3.0.35文件夹。

假如修改了内核源码,需要重新编译ltib,需在ltib_install/ltib目录下执行以下命令:

$./ltib -c

1、首先解压uboot源码,执行以下命令:

$./ltib -m prep -p u-boot

然后,会在ltib_intall/ltib/rpm/BUILD下看到uboot源码u-boot-2009 .08文件夹。

设置编译环境变量如下:

$ export ARCH=arm

$export CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi-

$ export PATH=~/imx6/L3.0.35_4.1.0_130816_source/ltib_install/ltib/rpm/BUILD/u-boot-2009.08/tools:$PATH

执行编译命令如下:

$ make distclean

如果采用的是i.mx6q的核心板,使用:

$ make mx6q_sabresd_config

如果采用的是i.mx6dl的核心板,使用:

$ make mx6dl_sabresd_config (make mx6q_sabresd_config 与 make mx6dl_sabresd_config 命令只用其一)

$ make

编译完成后在uboot源码根目录下看到生成的u-boot.bin文件。

注意,uboot 源码修改之后,每次要单独编译,不能用 ltib 编译,ltib 编译 uboot 时没有 distclean功能。

1、设置环境变量如下(假如编译uboot时设置了环境变量,则不用再设置):

$ export ARCH=arm

$export CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi-

执行编译命令如下:

$ make distclean

$ make imx6_defconfig

$ make uImage

编译完成之后在linux3.0.35源码根目录下的/arch/arm/boot/下生产uImage文件。

1、在L3.0.35_4.1.0_130816_source/ltib_install/ltib目录下有文件系统压缩包rootfs.ext2.gz,需处理成 rootfs.tar.bz2,操作如下:

$ mkdir tool

$ gunzip rootfs.ext2.gz

$ sudo mount -o loop -t ext2 rootfs.ext2 tool/

$ cd tool/

$ sudo tar -jcvf ../rootfs.tar.bz2 *

卸载 tool 目录,命令如下:

$ cd ..

$ sudo umount tool

1、将ltib_intall/ltib/rpm/BUILD/u-boot-2009 .08文件夹下的u-boot.bin,ltib_intall/ltib/rpm/BUILD/linux3.0.35/arch/arm/boot/uImage,L3.0.35_4.1.0_130816_source/ltib_install/ltib 目录下的rootfs.tar.bz2 三个文件通过 MFG 工具烧写到开发板,烧写方法详见飞凌嵌入式iMX6开发板linux用户手册。

2、烧写成功之后,重新上电启动。在Hit any key to stop autoboot: 3秒时,按空格,进入MX6SDL SABRESD U-Boot >选项。

MX6SDL SABRESD U-Boot >  pri

超级终端出现

bootdelay=3

baudrate=115200

ipaddr=192.168.1.103

serverip=192.168.1.101

netmask=255.255.255.0

loadaddr=0x10800000

rd_loadaddr=(0x10800000 + 0x300000)

netdev=eth0

ethprime=FEC0

uboot=u-boot.bin

kernel=uImage

nfsroot=/opt/eldk/arm

bootargs_base=setenv bootargs console=ttymxc0,115200

bootargs_nfs=setenv bootargs ${bootargs} root=/dev/nfs ip=dhcp nfsroot=${serveri

p}:${nfsroot},v3,tcp

bootcmd_net=run bootargs_base bootargs_nfs; tftpboot ${loadaddr} ${kernel}; boot

m

bootargs_mmc=setenv bootargs ${bootargs} ip=dhcp root=/dev/mmcblk0p1 rootwait

bootcmd_mmc=run bootargs_base bootargs_mmc; mmc dev 3; mmc read ${loadaddr} 0x80

0 0x2000; bootm

bootcmd=run bootcmd_net

stdin=serial

stdout=serial

stderr=serial

ethact=FEC0

Environment size: 716/8188 bytes

MX6SDL SABRESD U-Boot > setenv bootcmd run bootcmd_mmc

将bootcmd =run ubootcmd-net改为bootcmd run=ubootcmd-mmc

MX6SDL SABRESD U-Boot > setenv bootargs_mmc ‘setenv bootargs ${bootargs} ip=none root=/dev/mmcblk0p1 rootwait’

将IP修改为none

MX6SDL SABRESD U-Boot > saveenv

保存环境变量

MX6SDL SABRESD U-Boot > reset

重新启动,成功启动。

 

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢