博客
关于我
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/

    你可能感兴趣的文章
    Python Matplotlib 中如何用 plt.savefig 存储图片
    查看>>
    Python matplotlib 中更换画布背景颜色
    查看>>
    Python进阶03 模块
    查看>>
    python matplotlib简单使用
    查看>>
    Python mock Patch os.environ 和返回值
    查看>>
    Python mock 修补另一个函数调用的函数
    查看>>
    python mqtt 客户端实现
    查看>>
    Python Multiprocessing - 将类方法应用于对象列表
    查看>>
    Python multiprocessing.Queue 与 multiprocessing.manager().Queue()
    查看>>
    Python multiprocessing使用详解
    查看>>
    python mysql 基于 sqlalvhrmy_Python操作MySQL:pymysql和SQLAlchemy
    查看>>
    python mysql 布尔类型_python语言的基础学习:基本类型,函数,面向对象,模块,mysql数据库...
    查看>>
    Python NLP完整项目实战教程(1)
    查看>>
    Python NLP自然语言处理详解
    查看>>
    python nltk nltk_data 离线安装,chatterbot
    查看>>
    Redis 限流的 3 种方式,还有谁不会?
    查看>>
    Python这么慢,为啥大公司还在用?
    查看>>
    python note 06 编码方式
    查看>>
    python numba 转灰度图_使用NumPy、Numba的简单使用(二)
    查看>>
    Python Numpy 关于 linspace()函数 使用详解(全)
    查看>>