博客
关于我
android的系统存储与软件安装
阅读量:329 次
发布时间:2019-03-03

本文共 2677 字,大约阅读时间需要 8 分钟。

S i.MX51制作启动SD卡及下载镜像

一、SD卡分区

SD卡的分区是确保系统运行正常和数据安全存储的关键步骤。本文将详细介绍SD卡的分区要求、操作流程以及分区后的文件系统类型设置。

1.1 分区要求

SD卡的分区结构及镜像地址分配如下图所示。以下是SD卡的分区表:

Partition Type/Index Device Node File System Content
Primary 1 /dev/sdb1 VFAT 存储多媒体文件,挂载为/sdcards
Primary 2 /dev/sdb2 EXT3 存储Android系统文件,挂载为/system
Extended 3 /dev/sdb3 N/A 扩展分区,用于存储Android数据(已安装的应用程序)
Logic partition in Extended /dev/sdb5 EXT3 存储已安装的数据,挂载为/data
Logic partition in Extended /dev/sdb6 EXT3 存储Android缓存,挂载为/cache
Primary 4 /dev/sdb4 EXT3 用于恢复模式下的根文件系统,挂载为/在恢复模式下

1.2 SD卡分区操作

  • 在Linux环境下进行分区操作

    • 使用fdisk工具对SD卡进行分区操作。
    • 首先删除现有的分区:
      sudo fdisk /dev/sdb
    • 然后新建分区。按照提示选择合适的分区类型(p为主分区,e为扩展分区)并指定大小。例如:
      pnp12+500Mpn267+128Mpn384+256Mpn4118
    • 确认所有分区设置完成后,保存并退出:
      w
  • 格式化分区

    • 对每个分区进行格式化:
      sudo mkfs.vfat /dev/sdb1sudo mke2fs /dev/sdb2sudo mke2fs /dev/sdb4sudo mke2fs /dev/sdb5sudo mke2fs /dev/sdb6
  • 烧写镜像文件

    • 确保镜像文件已放置在同一目录下。使用dd命令将镜像烧写到SD卡:
      sudo dd if=u-boot-no-padding.bin of=/dev/sdb bs=1K seek=1sudo dd if=uImage of=/dev/sdb bs=1M seek=1sudo dd if=uramdisk.img of=/dev/sdb bs=4M seek=1sudo dd if=system.img of=/dev/sdb2sudo dd if=recovery.img of=/dev/sdb4
    • 完成后,同步数据:
      sudo sync
  • 二、下载镜像

    将下载好的镜像文件放置在同一目录下,执行以下命令:

    cd /home/nfs/test/sudo dd if=u-boot-no-padding.bin of=/dev/sdb bs=1K seek=1sudo syncsudo dd if=uImage of=/dev/sdb bs=1M seek=1sudo syncsudo dd if=uramdisk.img of=/dev/sdb bs=4M seek=1sudo syncsudo dd if=system.img of=/dev/sdb2sudo syncsudo dd if=recovery.img of=/dev/sdb4sudo sync

    三、设置U-Boot变量

    在i.MX51 EVK上完成以下步骤:

  • 设置波特率

    • 连接串口并设置波特率为115200:
      screen /dev/ttyUSB0 115200
  • 进入U-Boot命令行

    • 使用以下命令进入U-Boot:
      hit enter to boot the default configuration
  • 设置启动命令

    • 设置bootcmd
      BBG U-Boot > setenv bootcmd 'runbootcmd_SD1 bootcmd_SD2'
    • 设置bootcmd_SD1bootcmd_SD2
      BBG U-Boot > setenv bootcmd_SD1 'runbootargs_base bootargs_android bootargs_SD'BBG U-Boot > setenv bootcmd_SD2 'mmcread 0 ${loadaddr} 0x800 0x1800;mmc read 0 ${rd_loadaddr} 0x2000 0x258;bootm${loadaddr} ${rd_loadaddr}'
    • 设置其他环境变量:
      BBG U-Boot > setenv bootargs_base 'console=ttymxc0,115200'BBG U-Boot > setenv bootargs_SD 'setenv bootargs ${bootargs}'BBG U-Boot > setenv bootargs_android 'setenv bootargs ${bootargs} init=/init androidboot.console=ttymxc0 di1_primarycalibration ip=dhcp'BBG U-Boot > setenv loadaddr 0x90800000BBG U-Boot > setenv rd_loadaddr 0x90B00000BBG U-Boot > saveenv
  • 四、磁盘容量计算

    SD卡的容量计算基于扇区、磁道和盘面的结构:

    • 扇区:512字节
    • 磁道:与扇区组成一个柱面
    • 盘面:磁头数量决定盘面的数量

    对于8G的SD卡,分区容量分配如下:

    • /dev/sdb1:7M(用于存储MRB、uboot和kernel)
    • /dev/sdb2:5G(存储多媒体文件,支持Windows访问)
    • /dev/sdb3:512M(扩展分区)
    • /dev/sdb5:256M(存储已安装数据)
    • /dev/sdb6:256M(存储Android缓存)
    • /dev/sdb4:剩余空间(约384M)

    五、程序的安装

    1. 拷贝安装法

    • 系统安装法:将.apk文件直接放入/system/app/目录。
    • 手动安装法:通过SD卡浏览器选择.apk文件并安装。

    2. 使用ADB工具在线安装

    通过ADB工具可以无需PC访问SD卡,直接在线安装应用程序。具体操作见相关文档。

    通过以上步骤,可以完成SD卡的制作、镜像下载以及系统的安装和配置。

    转载地址:http://yrim.baihongyu.com/

    你可能感兴趣的文章
    Object.create
    查看>>
    Object.defineProperty详解
    查看>>
    Object.keys()的详解和用法
    查看>>
    objectForKey与valueForKey在NSDictionary中的差异
    查看>>
    Objective - C 小谈:消息机制的原理与使用
    查看>>
    OBJECTIVE C (XCODE) 绘图功能简介(转载)
    查看>>
    Objective-C ---JSON 解析 和 KVC
    查看>>
    Objective-C 编码规范
    查看>>
    Objective-Cfor循环实现Factorial阶乘算法 (附完整源码)
    查看>>
    Objective-C——判断对象等同性
    查看>>
    objective-c中的内存管理
    查看>>
    Objective-C之成魔之路【7-类、对象和方法】
    查看>>
    Objective-C享元模式(Flyweight)
    查看>>
    Objective-C以递归的方式实现二叉搜索树算法(附完整源码)
    查看>>
    Objective-C内存管理教程和原理剖析(三)
    查看>>
    Objective-C实现 Greedy Best First Search最佳优先搜索算法(附完整源码)
    查看>>
    Objective-C实现 jugglerSequence杂耍者序列算法 (附完整源码)
    查看>>
    Objective-C实现 lattice path格子路径算法(附完整源码)
    查看>>
    Objective-C实现1000 位斐波那契数算法(附完整源码)
    查看>>
    Objective-C实现2 个数字之间的算术几何平均值算法(附完整源码)
    查看>>