[Freescale]E9学习笔记-LTIB安装配置
转自:http://blog.csdn.net/girlkoo/article/details/44535979
LTIB: Linux Target Image Builder
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开发环境。
1. LTIB安装
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..35_4..0_130816_source.tar.gz
Step3. 安装LTIB
cd L3..35_4..0_130816_source
./install
然后根据提示,接受协议并指定安装路径,路径可以根据自己的情况设定,本文设置顶的路径如下:
/home/girlkoo/Projects/L3..35_4.1.0
安装需要几分钟时间,请耐心等待。。。
2. LTIB编译
尽管Freescale给出了详细的配置文档,但在64位ubuntu12.04上编译LTIB时还是遇到了各种各样的问题,怕遗忘,记录在这里与大家分享。下面是编译过程中遇到的各种问题及解决方案。
Step1. 安装依赖包
LTIB编译依赖一些应用程序,这里将需要安装的文件整理到脚本中,其实是从BSP的文档中摘出来的,详细内容如下:
#!/bin/bash
# Install packages needed by LTIB
sudo aptitude -y install gettext libgtk2.-dev rpm bison m4 libfreetype6-dev
sudo aptitude -y install libdbus-glib--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 -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
执行时会要求输入密码。如果提示aptitude找不到的话可以考虑使用apt-get,也可以安装该指令,安装完重新执行上面的auto_install.sh, 网上盛传该使用该指令来管理软件依赖比apt-get更好用,安装方法如下:
sudo apt-get install aptitude
脚本执行的时间比较长,可能需要半小时左右,请耐心等待。
注:安装这些包的时候,由于源不好,可能下载会有问题,可以参照《i.MX6 Ubuntu12.04上编译LTIB.pdf》中更新sourcelist.
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
将以上指令保存为补丁文件patch-ltib-ubuntu12.04.sh,并位置添加可执行权限:
chmod a+x patch-ltib-ubuntu12..sh
将该补丁脚本拷贝到ltib的安装目录下(本文是/home/girlkoo/Projects/L3.0.35_4.1.0/ltib),然后执行该脚本:
./patch-ltib-ubuntu12..sh
补丁安装非常快,不过依赖网络,如果网速不好可以按照指令分别执行。
Step3. 添加sudo
执行命令:
sudo visudo
在root ALL=(ALL:ALL) ALL的后面或者文件的末尾添加如下内容:
girlkoo ALL = NOPASSWD: /usr/bin/rpm, /opt/freescale/ltib/usr/bin/rpm
当然,girlkoo要换成自己的用户名。
然后按ctrl+O将以上内容保存,使用默认文件名称即可,直接回车,然后ctrl+X退出。
(注:这儿没明白要什么样的结果, 我的做法是sudo visudo,更改后,保存,退出)
Step4. 检查系统路径
检查/usr/include目录下是否有sys目录,如果没有则执行如下命令:
cd /usr/include
sudo ln -s x86_64-linux-gnu/sys sys
Step5. 编译LTIB
编译LTIB本身很简单,只需要切换到LTIB的安装目录并执行如下指令:
./ltib
但编译过程会下载文件,因此速度比较慢,能节省时间的方法是将解压的安装包中pkgs文件内的各个文件(大约1G)拷贝到/opt/freescale/pkgs目录下,这样就能省掉很大一部分,只需要下载几个patch,具体操作如下:(下面这个路径是不是有误?应为:cd L3.0.35_4.1.0_130816_source/pkgs)
cd L3..35_4..0_130816_source/ltib
cp * /opt/freescale/pkgs/
cd /opt/freescale/pkgs
chmod a-x *
然后LTIB安装目录下执行LTIB的编译指令即可,即:
./ltib
我将同步后的pkgs文件夹放到了百度云盘,如果遇到文件下载失败的情况可以到我的网盘下载相应的文件,然后复制到/opt/freescale/pkgs目录下即可。网盘的地址是:
出错处理:
- 根据ltib中log可知是permission denied, 于是进入root权限,但是提示无法进入,cannot execute **: no such file or directory. 于是vi /etc/passwd, 修改root:x:0:0:root:/root:**到oot:x:0:0:root:/root:/bin/bash,会提示./ltib不应该在root权限下做
- 再看log,也提示在编译m4的时候出问题了。于是到log文件中所提示的config配置文件中关掉M4的编译(注:打开为y, 关掉为not set和内核相同,这里不能修改格式,如添加注释,否则会出现识别不出,TODO:待check)
当所有文件都齐备时,就可以进入如下界面:
如果能看到这个界面,LTIB就快完成了,下面来看下如何选择这些配置项。这是第一个选项界面,下面开始简单的配置:
(1) 第一个界面
Platform choice (Freescale iMX reference boards) --->
即保持默认即可,直接保存并退出。
(2) 第二个界面
Selection (imx6q) --->
将Selection选择为imx6q,然后保存并退出。
(3) 第三个界面
board (mx6q_sabresd) --->
将board选择为mx6q_sabresd,然后保存并退出。
之后就看到LTIB开始自动导出开始编译代码了。现在编译的才是我们需要的u-boot, kernel等工程,这些都是freescale的工程师维护的,所以一般不会出错,我编译的过程中没有遇到错误。
至此,就完成了LTIB环境的搭建,下篇文章我们就开始移植u-boot。有任何问题欢迎留言讨论。
编译完之后会在LTIB的安装路径下,生成rootfs,并且在rootfs/boot/下有编译生成的uboot和kernel镜像, 和rootfs通层的生成了jffs2文件系统镜像。
关键的几个路径:
/home/girlkoo/Projects/L3.0.35_4.1.0: ltib安装目录,注意和源码目录区分
/opt/freescale/pkgs/: 工具链的目录
安装LTIB的几个认识:
问题:
1. 按照上面的方法,准备移植uboot, 但是在board/freescale下面都没有imx6的相关板载信息,哪里出错了?
[Freescale]E9学习笔记-LTIB安装配置的更多相关文章
- [Freescale]E9学习笔记-LTIB总结
转自:http://blog.csdn.net/wl_haanel/article/details/6231353 写在前面 符号'##'后面语句均为注释 需要做的操作 ...
- Node.js 学习笔记 (一) 安装配置
Node.js 安装配置 本安装教程以Node.js v4.4.3 LTS(长期支持版本)版本为例 Window 上安装Node.js 你可以采用以下两种方式来安装. 1.Windows 安装包(.m ...
- Hadoop学习笔记: 安装配置Hive
1. 在官网http://hive.apache.org/下载所需要版本的Hive,以下我们就以hive 2.1.0版为例. 2. 将下载好的压缩包放到指定文件夹解压,tar -zxvf apache ...
- Hadoop学习笔记: 安装配置Hadoop
安装前的一些环境配置: 1. 给用户添加sudo权限,输入su - 进入root账号,然后输入visudo,进入编辑模式,找到这一行:"root ALL=(ALL) ALL"在下面 ...
- blfs(systemd版本)学习笔记-编译安装配置dhcpcd
我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! dhcpcd项目地址:http://www.linuxfromscratch.org/blfs/view/stable-syst ...
- blfs(systemv版本)学习笔记-编译安装配置dhcpcd
我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! dhcpcd项目地址:http://www.linuxfromscratch.org/blfs/view/8.3/basicne ...
- MySQL学习笔记-MHA安装配置
一.配置主从同步 1. 本例中主从ip及端口 Master:10.1.5.8:3306 Slave1:10.1.5.9:3306 (候选master) Slave2:10.1.5.195:3306 ...
- CentOS学习笔记--Tomcat安装
Tomcat安装 通常情况下我们要配置Tomcat是很容易的一件事情,但是如果您要架设多用户多服务的Java虚拟主机就不那么容易了.其中最大的一个问题就是Tomcat执行权限.普通方式配置的Tomca ...
- 学习笔记_J2EE_SpringMVC_03_注解配置_@RequestMapping用法
@RequestMappingde的用法 摘要: 主要介绍注解@RequestMapping的用法 一.@RequestMapping 简介 在Spring MVC 中使用 @RequestMappi ...
随机推荐
- csu 1604 SunnyPig (bfs)
Description SunnyPig is a pig who is much cleverer than any other pigs in the pigpen. One sunny morn ...
- Windows 10触摸板手势
高級使用者試用 Windows 10 筆記本電腦的觸控板上的這些手勢: •選擇一項: 在觸控板上點擊. •滾動: 將兩根手指放在觸控板上,然後以水準或垂直方向滑動. •放大或縮小: 將兩根手指放在觸控 ...
- Testing Round #8 A. IQ Test 水题
题目链接:http://codeforces.com/problemset/problem/328/A 这道题目wa了一次,注意这句话: You should also print 42 if the ...
- C陷阱与缺陷 1
1,符号之间的空白被忽略 符号中间不能嵌入空白 2,词法分析中的贪心法 a---b 和 a-- -b相同 和 a- --b不同 1 a=b/*p //根据贪心法 /*被解释成 注释符,便不再往下读,直 ...
- jqueryflot图表x轴坐标过长完美解决方案(转)
近段时间,项目中使用到了flot这个图表工具,在实际使用的过程中,遇到了一个看似很简单的问题:当坐标的刻度如果过长时,会重叠在一起,影响阅读: 看到这个效果后的第一反应就是,能不能让坐标斜着显示啊?去 ...
- JavaScript学习记录总结(五)——servlet将json数据写出去
定义teacher和student实体 json.do List<Student> stus=new ArrayList<Student>(); stus.a ...
- spark Streaming的Receiver和Direct的优化对比
Direct 1.简化并行读取:如果要读取多个partition,不需要创建多个输入DStream然后对它们进行union操作.Spark会创建跟Kafka partition一样多的RDD part ...
- JS数组随机排序
var arr=[1,2,3,4,5]; arr.sort(function(a,b){ var v=Math.random()>0.5?1:-1; console.log(a,b,v); re ...
- 论文笔记之: Recurrent Models of Visual Attention
Recurrent Models of Visual Attention Google DeepMind 模拟人类看东西的方式,我们并非将目光放在整张图像上,尽管有时候会从总体上对目标进行把握,但是也 ...
- C#加载dll 创建类对象
//加载dll 创建类对象string sqlightAssembly = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "syst ...