本文中,使用的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包。得到的BSPbin文件:

               MPC8308-RDB_BSP _ltib.bin

       也可购买freescale发行的开发板,如MPC8308ERDB,该开发板附送的光盘中就包含了MPC8308BSP。里面有完整的软件包。

 

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
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 1002
flags = IPv4

}

        建立Ubuntu tftp服务文件目录(上传文件与下载文件的位置),并且更改其权限

#sudo mkdir /tftpboot
#sudo chmod 777 /tftpboot -R

        重新启动服务
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

 

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐