LTIB 详解(一) 安装与卸载
本文中,使用的linux操作系统为Ubuntu10.1,里面但凡涉及到与操作系统相关的配置和更改,大部分是针对Ubuntu而言,当然,因为有些地方是说明文档的翻译,它的描述可能是基于另外的操作系统,不过这并不会影响您对本文的理解。
部分内容是参照英文文档进行翻译,限于英语翻译水平,难免存在错误,在此恳请各位朋友予以指正。同时也非常欢迎大家和我进行技术上的交流。有兴趣的朋友可以记住我的邮箱地址:sevennothing@gmail.com 。
一、LTIB简介
LTIB(Linux Target Image Builder)工程是一个使用在不同的目标平台下,用于开发和部署BSP(Board Support Packages)的简单工具。使用该工具,用户能够为其目标平台开发符合GNU/Linux标准的映像。
LTIB支持PPC,ARM,Coldfire等多种目标架构。包含超过200个用户使用的工具包以及通用跨平台的根文件系统。LTIB支持bootloader和内核映像的构建。编译时可对交叉编译工具进行选择。支持RAMDISK和JFFS2 Flash映像的创建。
二、安装与卸载
2.1 得到BSP
从飞思卡尔官网下载MPC8308的BSP包。得到的BSP为bin文件:
MPC8308-RDB_BSP _ltib.bin。
也可购买freescale发行的开发板,如MPC8308ERDB,该开发板附送的光盘中就包含了MPC8308的BSP。里面有完整的软件包。
2.2安装说明
本次进行LTIB的安装是基于在ubuntu 操作系统。该系统安装在虚拟机中。除root 用户外,还有一个jun用户。而LTIB要求在安装以及后面的编译时不能是root用户权限(在编译时可以,但是不建议)。在安装之前需要把BSP进行挂载,这要求您具备root权限。
在安装LTIB之前,主机必须安装有以下的软件包,否则安装无法正常进行。如下:
| *package* | *version* | *comment* |
| perl | >= 5.6.1 | to run the ltib script |
| glibc | >= 2.2.x | to build/run host packages |
| glibc-headers | >= 2.2.x | to build/run host packages |
| glibc-devel | >= 2.2.x | to build/run host packages |
| binutils | >= 2.11.93 | to build host packages |
| libstdc++ | any? | to build rpm-fs host package |
| libstdc++-devel | any? | to build rpm-fs host package |
| gcc | >= 2.96 | to build host packages |
| gcc-c++ | >= 2.26 | to build rpm-fs host package |
| sudo | any | to run the 'rpm install' phase on each package |
| zlib | any | to build rpm-fs and mtd-utils host packages |
| zlib-devel | any | to build rpm-fs and mtd-utils host packages |
| rpm | any | to build initial rpm-fs host package |
| rpm-build | any | to build initial rpm-fs host package |
| wget | any | to download packages/patches on demand |
| ncurses | >= 5.1 | to build lkc (config language) host package |
| ncurses-devel | >= 5.1 | to build lkc (config language) host package |
| m4 | any? | may be needed by bison |
| bison | any | to build lkc (config language) host package |
| flex | any | Not required we install:for host lkc |
| texinfo | any | to build genext2fs host package (requires ncurses-deve|
| gettext | any | genext2fs target package |
| autoconf | >= 2.54 | Not required we install: automake target package |
| libtool | >= 1.4.2 | Not required we install: libusb target package |
根据您安装的操作系统的不同,和安装选项的不同,您可能需要安装部分软件包,在下一小节,您会看到一个简单的解决过程。
2.3 开始安装
本节开始讲解如何安装ltib,中途会涉及到一些依赖软件包的安装,这在安装工程中是很重要的。等安装完成后我们需要首先运行一次./ltib,该脚本在第一次运行时会安装公共主机站点的支持包,这可能需要花较长的时间。
之后,我们可以预先安装一些必备的软件包,以方便以后的开发应用。比如说tftp功能包的安装,如果您现在还没有安装的话,可以跟着3.3.2小节的步骤进行安装。当然,如果您不清楚自己是否已经安装过相关软件包,可以参考后面章节的相关测试说明进行软件安装检测。您也可以暂时不安装,等以后需要的时候再回过头来进行安装。
2.3.1 安装ltib
首先,挂载MPC8308-RDB_BSP_ltib.bin;
进入ubuntu,以root用户进行挂载(我在mnt目录创建了一个cdrom的文件夹): mount -o loop MPC8308-RDB_Linux_BSP_ ltib.bin /mnt/cdrom
进入/mnt/cdrom目录。以user用户执行./install进行安装。安装过程中需要接受最终用户许可协议,然后再提示的时候输入期望LTIB的安装目录。
这里我的安装目录为/freescale/PPC。该目录可以自己创建和修改。
安装完成后,在/freescale/PPC目录下出现了ltib-mpc8308erdb-20100413文件夹。该文件夹包含了MPC8308ERDB BSP的主要的LTIB脚本和说明文件。
运行./ltib时出现错误,原因是有些包没有安装。
解决方法如下(以下安装的包都是本系统为安装的,根据您自己操作系统对各种支持包的安装会有相应的提示,所以不限于以下的安装操作,仅能作一个参考):
# apt-get install rpm # apt-get install patch # apt-get install m4 # apt-get install bison # apt-get install zlib1g-dev # apt-get install build-essential # apt-get install libncurses5-dev |
由于安装 LTIB需要普通用户身份,但部分命令要超级用户权限才行,所以需要执行visudo增加。根据说明文档和网络资料,操作如下:
a) # /usr/sbin/visudo
b) 找到User privilege section,在下面输入
c) <username> ALL=NOPASSWD: /bin/rpm, /opt/freescale/ltib/usr/bin/rpm
d) Ctrl+X,然后选择Y,回车后保存退出
e) #exit //退出root身份,回到普通用户<username>身份。
注意:/usr/bin/rpm, /opt/freescale/ltib/usr/bin/rpm路径一定要完全一致!
以下是本笔记添加的范例:
jun ALL = NOPASSWD: /usr/bin/rpm, /opt/freescale/ltib/usr/bin/rpm
接着就可以运行./ltib了,运行完成后在/opt目录就会产生freescale目录及其子目录和相关文件。
2.3.2 安装开发所需的软件包
- 安装tftp相关服务:
# apt-get install tftp tftpd xinetd
接下来在/etc/xinetd.d/下建立一个配置文件tftp,增加内容如下:
service tftp socket_type = dgram } |
建立Ubuntu tftp服务文件目录(上传文件与下载文件的位置),并且更改其权限
#sudo mkdir /tftpboot |
重新启动服务
sudo /etc/init.d/xinetd restart
tftp的测试,可以通过put和 get进行测试。要get的文件必须在/tftpboot能够找到。put的文件,在/tftpboot里面必须有相同文件名的文件,不然上传不会成功。
# tftp 127.0.0.1 tftp> get <下载文件名> //下载文件 tftp> put <上传文件名> //上传文件 tftp>quit //退出 |
- 安装NFS服务器和端口映射
在Ubuntu环境下,按常规软件包的安装方法,在命令行中输入:
#sudo apt-get install portmap #sudo apt-get install nfs-kernel-server |
执行完上述操作,NFS的软件包就安装完成了,接下来进行相关的配置和启动。执行:
#sudo gedit /etc/exports
该文件是一些访问控制列表文件系统,它们可被挂载到NFS客户端,新增一行:
/home/<uid>/ltib/rootfs *(rw,no_root_squash)
这里,我的用户名为jun,目标板的主机名为Startway所以这样添加:
/home/jun/ltib/rootfs Startway(rw,no_root_squash)
格式:共享目录 [主机] [选项]
例:
/ charlie(ro) john(rw,no_root_squash)
/tmp pc*.col.com.tw(rw) 172.29.0.0/255.255.0.0(ro)
/pub (ro)
/pub/private (noaccess)
选项说明:
ro read only
rw read write
no_root_squash 信任客户端,对应 UID
noaccess 客户端不能使用
启动及结束 NFS 的服务:
设定档更改后,要重新启动 NFS的服务,启动及停止的方式如下:
# /etc/rc.d/init.d/nfs [ start | stop | restart | reload ]
start 启动 NFS 服务
stop 停止 NFS 服务
restart 停止并重新启动 NFS服务
reload 重新载入 NFS设定值
启动NFS服务:
#sudo start portmap #sudo /etc/init.d/nfs-kernel-server restart |
至此,配置和启动就结束了,我们可以这样测试nfs是否配置成功,下面是将/home/jun/ltib/rootfs目录挂载到/mnt上,挂载成功后进行查看并卸载。
# mount –o nolock –t nfs 127.0.0.1:/home/jun/ltib/rootfs /mnt # ls /mnt # umount /mnt |
至于为什么要这样配置,请参考开发一节,里面有详细的说明,在此不累述。
2.4 运行LTIB
改变当前目录至上一部步中解压的目录,在这里输入如下命令:
#cd /freescale/PPC/ltib-mpc8308erdb-20100413
第一次运行可能需要一段比较长的时间,因为有许多主机包需要编译和安装以便支持ltib。等主机包安装完成后,会出现一个蓝色的屏幕(同内核的menuconfig相似),在这里,您可以选择希望的平台。
对于LTIB,目标镜像被放在子目录’rootfs’目录下,该目录需要被NFS输出,并且用于您选择目标的根文件系统。
在编译的时候,Host_config.log将记录整个过程,如果出现错误可以查看详细情况。
除此之外,我们可以运行./ltib --configure来改变目标镜像配置。执行该命令同样会弹出蓝色的板子配置屏幕,您可以选择适当的包,当您退出配置屏幕时,目标镜像将安装您的配置进行调整。关于它的详细介绍放在在下节进行。
若想使用powerpc-linux-gcc自动补全功能,需# vi /etc/bashrc,在最后添加一句:export PATH=/opt/freescale/usr/local/gcc-3.4.3-uClibc-0.9.28-1/powerpc-linux /bin:#PATH
最后重启后,可用
# echo #PATH
来查看环境变量中是否有/opt/mtwk/usr/local/powerpc-linux/gcc-3.4.3-glibc-2.3.3 /bin路径变量。
2.5 LTIB 卸载
LTIB没有提供卸载脚本,如果要卸载LTIB,需要如下步骤:
a) 执行ltib –m distclean
b) 移除 /opt/freescale/pkgs
c) 移除opt/freescale/ltib
d) 移除安装路径下的/ltib。
更多推荐
所有评论(0)