freescale LTIB使用总结1
2009-11-30 9:57
这里附上很久以前写的LTIB使用总结,学习资料主要来自飞思卡尔的板子MPC8349E-mITXE板子的资料,主要参考了<readme>,写的不是很详细,而且后来发现中间还有部分错误,不过懒得再修改了。
板级支持包BSP的下载http://www.freescale.com/powerbsp 搜索MPC8349E-mITXE,注册下载即可.
写在前面
符号'##'后面语句均为注释 需要做的操作命令以 '$' 或 '#'开头,且都位于一行的开始 以下绝大部分操作是针对于我们的开发主机(PC),其他是针对于开发板(MPC8349itx) 对于主机上的操作,所说目录路径是相对于/usr/local/mpc8349/mytest/来描述的 开发主机的系统为redhat9,开发板通过串口1连接主机,终端工具为minicom 在主机上使用的普通用户名为liuby,用户主目录为/home/liuby/ 符号'<<'和'>>'之间的内容表示随开发板自带的文件名
由于这是一个介绍ltib使用并涉及相关部分的文档,所以呢,首先来介绍一下ltib的安装
## 首先将linux_BSP光盘放入光驱,然后以root用户挂载 $ su - root ## 切换身份到root用户,需要root用户密码 # mount /dev/cdrom /mnt/cdrom -o loop ## 挂载光驱 # cp -rf /mnt/cdrom/ltib-mpc8349e-mitx /home/liuby/ ## copy到liuby的主目录下 ## 上面两步没做测试,可能有误 ## 复制到主目录下的方式很多,比如ftp,nfs等 # umount /mnt/cdrom ## 卸载光盘 # mkdir -m 777 /usr/local/mpc8349 ## 创建安装ltib的根目录 ## 由于安装ltib需要是普通用户身份,但部分命令要超级用户权限才行,所以需要执行visudo增加用户liuby的权限,如下操作 # /usr/sbin/visudo ## 此命令相对于vi打开了一个权限设置文件 ## 按i进入输入模式,在最后一行添加如下一行内容 liuby ALL = NOPASSWD: /bin/rpm, /opt/freescale/ltib/usr/bin/rpm ## 按ESC进入命令行模式,按:wq保存退出 $ exit ## 退出root,回到普通用户身份liuby $ cd /usr/local/mpc8349/ ## 进入mpc8349目录,是因为默认安装到当前工作目录 $ /home/liuby/ltib-mpc8349e-mitx/install ## 这个会有个提示询问你是否接受install ## 输入'Y'接受install,回答'yes' 接受 EULA ## 照上面操作,安装结束后的文件为/usr/local/mpc8349/ltib-mpc8349itx-20070221/ ## 此位置下的doc/*文档有各种说明 ## 下面进行安装,首先是小文件系统形式 $ cp -a ltib-mpc8349itx-20070221 small ## 这个只是复制,名字任意起的 $ cd small ## 进入到small目录下 $ ./ltib --preconfig config/platform/mpc8349itx/defconfig-min-fs --batch ## 开始build ## 此目录开始安装host支持包,第一次安装可能时间会长些,half an hour? maybe. ## 若发生错误,查看日志文件/usr/local/mpc8349/small/host_config.log ## 此编译的是小文件系统rootfs.ext2.gz.uboot,并在rootfs下产生文件系统 ## 只编译了文件系统,没有内核镜像,没有uboot镜像 ## rootfs作为NFS输出目录(NFS-exported),是目标板的根文件系统 ## 此编译用的是uclibc的库 ## 建立交叉编译环境,若想使用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路径变量。
## 编译完毕会给出信息提示,然后继续完成下面的操作 $ cd .. ## 回到/usr/local/mpc8349/目录下 ## 下面进行安装,这次是大文件系统形式 $ cp -a ltib-mpc8349itx-20070221 large ## 这个只是复制,名字任意起的 $ cd large ## 进入large目录下 $ ./ltib ## 开始了大文件系统的build ## 编译后的rootfs.ext2.gz.uboot会大很多,并产生rootfs下文件系统 ## 此次编译了uboot,内核和文件系统镜像(难怪叫"the hard disk based file system") ## 编译后的u-boot,u-boot.bin,uImage(bootable_kernel),vmlinux,System.map,vsc7385_load.bin,linux.config在rootfs/boot/下 ## 此次编译用的是glibc的库 ## 调用的配置文件为config/platform/mpc8349itx/.config ## 等待吧,编译结束提示信息 ## 注:其实以后随着对ltib的熟悉,就会发现完全没必要来做这舍生取义的事情。 ## 注:文件夹ltib-mpc8349itx-20070221只是用来复制,我们没做任何操作,为何? 备份用的 ## 注:当small或large下我们编译总是不成功时,备份的作用就来了,当然这是笨方法,新手嘛,值得原谅! ## 至此已经完成,下面是为了写这个文档而安装 $ cd /usr/local/mpc8349/ ## 进入未来工作目录的上一级 $ cp -a ltib-mpc8349itx-20070221 mytest ## 未来的工作目录诞生了 $ ./ltib --preconfig config/platform/mpc8349itx/defconfig-min-fs --batch ## 这个跟上面完全一样,不做解释 ## 编译完毕,我的准备工作就结束了 ## 后面的大多数介绍操作都是在此目录下(/usr/local/mpc8349/mytest/)
下面略述一种简单有效的方法编译内核和文件系统,并顺便介绍ltib核心工作流程和思想,然后再部分详述。
需要修改内核或文件系统并编译时,一个比较简单的方法是利用自带的配置文件(eg:defconfig-min-fs),综述如下: $ ./ltib --preconfig config/platform/mpc8349itx/defconfig-min-fs ## 此配置默认不编译bootloader: [ ] Build a boot loader ## 此配置文件默认编译时不能修改配置内核:(X) Dont build the Linux kernel ## 若想修改此配置: ## 若需要编译bootloader,请找到并选中 [*] Build a boot loader ## 若要编译内核,请找到并选中 kernel (linux 2.6.13.4) ---> (X) linux 2.6.13.4 ;其内核的默认配置文件为nas_linux-2.6.13.4-mpc8349itx.config ## 若要修改内核的默认文件为其他,请找到 kernel config file,回车输入相应的配置文件名,其默认目录为config/platform/mpc8349itx/ ## 若想在编译时并修改内核,请找到并选中 [*] Configure the kernel ## 若想修改文件系统,添加或删除程序包,请进入 Package list ---> 并选中相应的包 ## 若想修改busybox选项配置,请进入并选中 Package list ---> [*] Configure busybox at build time ## 其他目标系统配置、目标镜像生成选项配置类似。 ## (解释)Load an Alternate Configuration File选项是选则一个已有的配置文件来自动配置各个选项 ## Save Configuration to an Alternate File选项是将当前的配置信息保存为一个命名的文件名(eg:defconfig.liuby.today804) ## 最后退出时会弹出对话框,选择Yes保存,默认保存到config/platform/mpc8349itx/,名字是上面的命名 ## 开始编译 ## 附注:同时生成的配置文件也会另存为 defconfig.dev(在config/platform/mpc8349itx/下), ## 再附注:defconfig.liuby.today804同样存在。 ## 再再附注: 按键请看说明,主要包括上下左右键、空格、回车、搜索键(s)、ESC键。 ## NB: 按ESC键要注意次数,多按容易前功尽弃! ## 上面的操作做完后开始编译,假如选择了编译时配置内核,会弹出内核的配置对话框,可用用上面类似的方法修改配置,以添加8021Q模块支持为例 ## 添加8021Q: 进入 Networking ---> [*] Networking support / Networking options ---> <*> 802.1Q VLAN Support (注:<M>是编译为模块的形式) ## 类似可以删除NTFS支持模块 < >NTFS file system support (注:以此为例是因为现在用不到NTFS) ## 检查是否支持NFS(注:写此是因为开发常用,不详写) ## 类似上面将内核配置信息保存为一个文件 ## 内核开始编译 ## 附注:生成的内核配置文件为 nas_linux-2.6.13.4-mpc8349itx.config.dev(在config/platform/mpc8349itx/下) ## 内核编译完成后,开始选择程序包的编译,如果选择了编译时配置busybox,会弹出 BusyBox Configuration 配置对话框,配置和上面一样,下面随便举一例: ## 如删除fdisk工具编译,进入Linux System Utilities,去除选项 [ ] fdisk ## 如添加mount工具的nfs选项支持,进入并选中 Linux System Utilities ---> [*] Support mounting NFS file systems ## 类似上面将busybox配置信息保存为一个文件 ## busybox开始编译 ## 附注: busybox是linux常用命令工具集,可根据开发需要选择需要的命令工具 ## 附注: 若不改文件名,生成的配置文件为busybox.config(在config/platform/mpc8349itx/下) ## 若是想向文件系统里添加自己写的应用程序,或shell脚本。需要将相应的文件copy到config/platform/mpc8349itx/merge/文件夹下,此文件夹下的文件在开发板上相当于位于根文件系统下面。若想将程序烧进开发板后,开发板上电能自动执行程序或脚本,可以修改config/platform/mpc8349itx/merge/etc/rc.d/rcS。注:此步操作需要在开始编译内核和文件系统之前做好。 ## 以添加vlan配置模块vlan.ko,和添加vlan及配置脚本vlan_config.sh为例: ## 在config/platform/mpc8349itx/merge/下创建一个文件夹(eg: mypro); ## 将vlan.ko和vlan_config.sh添加到新建文件夹下config/platform/mpc8349itx/merge/mypro/下,配置好权限 ## 在config/platform/mpc8349itx/merge/etc/rc.d/rcS最后添加运行脚本和程序的语句(后面详细介绍) |