文档章节

Freescale Ltib-MPC8308安装,编译,烧写uboot

老张他爹945
 老张他爹945
发布于 2016/12/09 17:14
字数 1444
阅读 46
收藏 0

. 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/

© 著作权归作者所有

共有 人打赏支持
老张他爹945
粉丝 1
博文 46
码字总数 33029
作品 0
海淀
程序员
六,移植uboot-设置默认环境变量,完善u-boot

文档时间:2018-08-14 交叉编译器:arm-linux-gcc-4.3.2 Ubuntu版本:16.04 uboot版本:2013.10 1,修改 uboot 默认环境变量 前面章节得到的 uboot 串口打印信息如下: 可以看出,读出的是坏...

Mango丶
08/14
0
0
嵌入式软件环境构建:uboot、kernel、rootfs、app布局(转载)

嵌入式开发涉及硬件和软件两部分,个人目前主要是做嵌入式软件部分,使用uboot+linux的整体方案。这里所说的“嵌入式软件环境”,不是指宿主机上的嵌入式开发环境,而是指目标机中的运行软件...

woi66
2014/02/10
0
0
嵌入式软件环境构建:uboot、kernel、rootfs、app布局

嵌入式开发涉及硬件和软件两部分,个人目前主要是做嵌入式软件部分,使用uboot+linux的整体方案。这里所说的“嵌入式软件环境”,不是指宿主机上的嵌入式开发环境,而是指目标机中的运行软件...

水海云
2013/02/01
0
2
X210刷机--利用markdown尝试编写

刷系统需要的原材料:开发板、串口数据线、USB数据线 破坏uboot 对于linux+Qt系统的刷机,我们需要注意的细节: 首先先明白一个概念: 什么是系统控制台?什么是uboot控制台? 系统控制台:是...

qq_38124709
04/15
0
0
编译内核无法生成uImage的原因分析

uBoot启动内核,需要符合要求的内核镜像文件uImage(包含head+body组成); 内核镜像需要mkimage来制作; 如果shell在环境变量目录中找不到mkimage工具,就无法生成uImage; 这里的mkimage必...

流云的博客
2015/04/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

20.27 分发系统介绍~ 20.30 expect脚本传递参数

分发系统介绍分发系统-expect讲解(也就是一个分发的脚本)场景:业务越来越大,网站app,后端,编程语言是php,所以就需要配置lamp或者lnmp,最好还需要吧代码上传到服务器上;但是因...

洗香香
30分钟前
1
0
设计一个百万级的消息推送系统

前言 首先迟到的祝大家中秋快乐。 最近一周多没有更新了。其实我一直想憋一个大招,分享一些大家感兴趣的干货。 鉴于最近我个人的工作内容,于是利用这三天小长假憋了一个出来(其实是玩了两...

crossoverJie
36分钟前
1
0
软件架构:5种你应该知道的模式

Singleton(单例模式)、仓储模式(repository)、工厂模式(factory)、建造者模式(builder)、装饰模式(decorator)……大概每个上课听讲的程序员都不会陌生——软件的设计模式为我们提供...

好雨云帮
48分钟前
2
0
OSChina 周二乱弹 —— 这只是一笔金钱交易

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @小小编辑:推荐歌曲《暮春秋色》- 窦唯 / 译乐队 《暮春秋色》- 窦唯 / 译乐队 手机党少年们想听歌,请使劲儿戳(这里) @我没有抓狂:跨服聊...

小小编辑
今天
739
16
df命令、du命令 、磁盘分区

9月25日任务 4.1 df命令 4.2 du命令 4.3/4.4 磁盘分区 4.1、命令 :df #磁盘空间使用情况 [root@zgxlinux-02 ~]# df 按字节显示 1000Byte=1KB 1000KB=1MB 1000MB=1GB ...

zgxlinux
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部