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

    你可能感兴趣的文章
    PHP实现微信公众号H5支付
    查看>>
    PHP实现微信公众号网页授权
    查看>>
    PHP实现微信小程序推送消息至公众号
    查看>>
    php实现根据身份证获取年龄
    查看>>
    PHP实现的MongoDB数据增删改查
    查看>>
    RabbitMQ连接报错(1)—— None of the specified endpoints were reachable
    查看>>
    php实现逆转数组
    查看>>
    PHP实现通过geoip获取IP地理信息
    查看>>
    PHP实现页面静态化、纯静态化及伪静态化
    查看>>
    PHP对表单提交特殊字符的过滤和处理
    查看>>
    php对象引用和析构函数的关系
    查看>>
    RabbitMQ HTTP 认证后端项目常见问题解决方案
    查看>>
    PHP将图片转换成base64格式(优缺点)
    查看>>
    php将多个值的数组去除重复元素
    查看>>
    php局域网上传文件_PHP如何通过CURL上传文件
    查看>>
    PHP工具插件大全
    查看>>
    php布尔值的++
    查看>>
    PHP常量、变量作用域详解(一)
    查看>>
    PHP应用目录结构设计
    查看>>
    PHP应用程序连接MSQL数据库Demo(附crud程序)
    查看>>