. Freescale-MPC8308/MPC8315
MPC8315E-RDB (Reference-Design-Board)
PowerQUICC II Pro Processor;
内置security accelerate;
. tlib-MPC8308:
参考: http://www.360doc.com/content/13/1112/16/11948835_328668430.shtml
-------------------------------------------------------------------------------
在VM(Fedroa9)上建立交叉编译环境
. 安装步骤(in Fedora9)
(TLIB是Freescale比较早期开发的跨平台交叉编译包, 所以不建议在新近的Linux上运行)
(TLIB建议在Redhead系Linux上运行)
(故我们最终选择Fedroa9平台 with GCC4.3)
原始文档: ltib-mpc8308erdb-20100413.iso;
首先mount该iso:
mount -o loop ltib-mpc8308erdb-20100413.iso /mnt/ltib
安装:
cd /mnt/ltib
./install
安装时程序会提示要安装的目录, 本例中设置目录为 ~/WorkShop;
安装完成后我们得到 ~/WorkShop/mpc8308erdb-20100413/;
调整visudo:
由于运行ltib程序需要用户级权限, 然而运行过程中又需要某些root权限下的操作,
故首先需要调整sudo组权限:
cd /usr/sbin/
./visudo
在User privilege section下添加
quakezh ALL=NOPASSWD: /bin/rpm, /opt/freescale/ltib/usr/bin/rpm
保存, 退出
首次运行ltib程序:
./ltib
若系统缺少所必须的工具包, 会给予提示;
首次运行ltib需要较长时间, 完成后, 交叉目标平台的工具链被保存在 /opt/freescale下,
其中, gcc(for Freescale e300c)保存在/ope/freescale/usr/local/目录下,
用户若开发该平台的应用程序, 需使用此gcc来编译;
-------------------------------------------------------------------------------
. LTIB命令
./ltib -m config
仅配置
./ltib --configure
配置及编译
ltib [-m <mode>] [options....]
举例:
./ltib -m prep -p helloworld
对helloworld文件包解压, 输出目录为/../安装目录/ltib-mpc8313erdb-20070824/rpm/BUILD;
./ltib -m prep -p kernel
./ltib -m prep -p u-boot
解出的源文件保存在 rpm/BUILD
./ltib -m scbuild -p kernel
下面给出LTIB的常用命令:
--mode | m
prep //解开源码包并打补丁
scbuild //解开源码包、打补丁然后编译
scinstall //解开源码包、打补丁,编译后安装
scdeploy //运行一个scinstall命令并安装到rootfs下
patchmerge //生成并且合并一个补丁 (需要与-p <pkg>一起使用)
clean //清除并且反安装目标源码包
distclean //完全清除,移除相关的所有东西
listpkgs //列出源码包(按字母排序)
release //制作一个二进制发布iso镜像
config //使用--configure命令,仅做配置
shell //进入ltib命令行模式
--pkg|p : //仅操作指定源码包
--configure|c : //运行交互式配置
--preconfig : //配置文件来源
--profile : //profile文件。这个被用来选择用户空间源码包集合(例如
config/profiles/max.config)
--rcfile|r : //使用这个资源文件
--batch|b : //批处理模式,假定对所有的问题回答yes
--force|f : //强迫重新编译链接即使已经更新到最新
--reinstall|e : //重新安装rpm包
--nodeps|n : //关闭安装和反安装依赖关系检查
--conflicts|k : //不强迫安装有文件冲突的rpm包
--keepsrpms|s : //保留srpms 在编译链接之后 (缺省是删除的)
--verbose|v : //更多的输出
--dry-run|d : //只运行不打印 (仅输出echo消息)
--continue|C : //在源码包编译链接过程中出错也继续进行
--version|V : //打印应用程序版本并退出
--noredir|N : //不重定向到任何输出
--deploy|D : //运行部署脚本即使已经更新
--dlonly : //仅下载源码包
--dltest : //测试BSP的源码包是否有效
--leavesrc|l : //留下不解压的源码包 ( 仅在pkg模式下使用)
--hostcf : //重新配置编译链接安装主机支持的源码包集
--help|h : //使用帮助
-------------------------------------------------------------------------------
生成文件说明 :
rootfs.ext2.gz.uboot
ram-disk image that can be load with u-boot
rootfs.jffs2
jffs2 filesystem image
rootfs
directory,the root file system that will be deployed on your Board
rootfs/boot/uImage
kernel image that can be load with u-boot
rootfs/boot/u-boot.bin
u-boot binary image that can be programmed into mpc8315erdb board nor flash
rootfs/boot/u-boot-nand.binary--
u-boot binary image that can be programmed into mpc8315erdb board nand flash
rootfs/boot/mpc8315erdb.dtb
device tree binary(dtb)files for kernal boot up(support usb internal phy)
rootfs/boot/mpc8315erdb_uipi.dtb
device tree binary(dtb)files for kernal boot up (support usb external phy)
内核文件为 rootfs/boot/uImage,
根文件系统文件为 rootfs.ext2.gz.uboot
u-boot.bin u-boot
mpc8315erdb.dtb s
//-----------------------------------------------------------------------------
RootFS中加入其他文件:
用户有时候需要在根文件系统中加入一些自己的文件,只需要在平台目录下建立merge文件夹,
将需要加入的文件放入merge文件下就可以了,merge文件夹下的文件在开发板上相当于位于根文件系统下面.
步骤如下:
2. # mkdir -p config/platform/mpc8308erdb/merge/xxx
3. # cp /myfile1 config/platform/mpc8308erdb/merge/xxx
这个过程简单说就是, 建merge文件夹, 把要加的文件放到merge里, 执行./ltib
//-----------------------------------------------------------------------------
. 首先, VM上要配置好tftp服务器;
Fedora9中, tftp的配置文件/etc/xinetd.d.tftp
. 建立tftp目录:
一般设置在根目录下;
/tftp/mpc8308
该权限为777;
. 将ltib编译好的文件拷贝到tftp目录下, 文件包括
linux.config
mpc8308erdb.dtb
mpc8308erdb.dtu
System.map
u-boot
u-boot.bin
uImage
vmlinux
vsc2bin
编译好的U-image所在目录:
/rpm/BUILD/linux-2.6.29.6/arch/powerpc/boot
//-----------------------------------------------------------------------------
MPC8308开发板启动后进入u-boot设置状态;
可能需要设置u-boot环境变量;
//设置本设备地址:
setenv ipaddr 192.168.0.201
//设置tftp服务器地址:
setenv serverip 192.168.0.123
setenv gatewayip 192.168.0.201
//出厂设置
setenv tftp_path mpc8308
setenv ramdiskaddr 2400000
setenv loadaddr 2000000
setenv kernaddr 2000000
setenv fdtaddr 1f00000
setenv ramdisksize 90000
setenv dtbname mpc8308erdb.dtb
setenv hostname PowerQUICC
setenv flashkernaddr fe0a0000
setenv flashkernend fe2fffff
setenv flashramdiskaddr fe300000
setenv flashramdiskend fe7effff
setenv flashfdtaddr fe7f0000
setenv flashfdtend fe7f3fff
setenv fdtsize 3000
setenv vscfwaddr fe7fe000
setenv vscfwend fe7fffff
//设定系统启动方式 (bootm means boot-memory-map)
setenv bootcmd bootm fe0a0000 fe300000 fe7f0000
setenv bootfile mpc8308/uImage
setenv fdtfile mpc8308/mpc8308erdb.dtb
setenv ramdiskfile mpc8308/rootfs.ext2.gz.uboot
setenv bootargs root=/dev/ram ramdisk_size=90000 rwip=192.168.0.201:192.168.0.111:192.168.0.201::PowerQUICC:eth0:off console=ttyS0,115200
Update-Kernel:
tftp 2000000 mpc8308/uImage
erase fe0a0000 fe2fffff
cp.b 2000000 fe0a0000 $filesize
Update-DTB:
tftp 2000000 mpc8308/mpc8308erdb.dtb
//erase fe7f0000 fe7f3fff
erase fe7f0000 fe7f7fff
//erase fe7f0000 fe7fffff
cp.b 2000000 fe7f0000 $filesize
Update-rootfs:
tftp 2400000 mpc8308/rootfs.ext2.gz.uboot
erase fe300000 fe7effff
cp.b 2400000 fe300000 $filesize
-------------------------------------------------------------------------------
查看硬盘设备号:
fdisk -l
加挂到指定目录:
mount -t vfat /dev/sda1 /mnt/src
-------------------------------------------------------------------------------
VM-Host(IP:192.168.0.123) NFS to MPC8308e-rdb:
(注意要加'nolock')
mount -t nfs -o nolock 192.168.0.123:/var/nfsshare /mnt/nfs/
来源:oschina
链接:https://my.oschina.net/u/2420067/blog/803229