您的位置:首页 > 运维架构 > Linux

SD卡, EMMC固化 ,关于bootloader linux

2016-01-20 13:42 369 查看
一. 将bootloader烧入SD卡

  1.格式化SD卡(不挂载): fdisk /dev/sdx -d 删除 -n 新建分区 -w 保存退出 6~default sdx1

          两种格式化方式: mkfs -t vfat /dev/sdx1

                   mkfs.vfat /dev/sdx1

   2.将bootloader烧入SD卡: 注意--不挂载

        ./sd_fusing.sh /dev/sdx 执行后将SD卡插入开发板,在minicom中启动

注:分区是对整个设备进行操作(sdx)而不是(sdx1)

二. 将Linux/Andriod系统烧入SD卡,进而固化EMMC中运行

   1.格式化SD卡(不挂载): fdisk /dev/sdx -d 删除 -n 新建分区 -w 保存退出 6~default sdx1

          两种格式化方式: mkfs -t vfat /dev/sdx1

                   mkfs.vfat /dev/sdx1

   2.将Linux/Andriod系统烧入SD卡(不挂载):

          ./sd_write /dev/sdb ../images/Superboot.bin

   3. 将image复制到sdx1中(先挂载):

        mount /dev/sdx1 /media

        cp images /media/*

三. Linux内核的烧写

  minicom常用命令:

    printenv :打印环境变量

    bootargs :启动参数,决定内核启动后根文件系统如何挂载

    bootcmd : 用于实现内核的自启动

  help,bootm,mmc list,mmcinfo 0,ext2format,ext2load

注:从SD卡启动

  1.分区: fdisk -p 1 打印分区信息

        fdisk -c 1 320 2057 520 (能且只能)分成四个分区 (剩余空间自动为一份分区)

  2.格式化: fatformat mmc 1:1

         ext3format mmc 1:2

         ext3format mmc 1:3

        ext3format mmc 1:4

  3.烧写bootloader到EMMC:

     emmc open 1 --打开emmc

        mmc  write  1  40000000  0  10 

        mmc  write  1  40000000  10  20    这些逻辑块数都为16进制数

        mmc  write  1  40000000  30  290

        mmc  write  1  40000000  2c0  ba

     emmc close 1  --关闭emmc

  注: 以EMMC方式重启

  

  4. 烧写linu内核和根文件系统到EMMC的第二 三分区:

      第一步: 使开发板挂载到nfs虚拟文件系统

        mkdir /nfsroot

        添加 /nfsroot *(rm,sync,no_root_squash) 到 文件 /etc/exports

        重启nfs服务 service nfs  restart

        拷贝inittab文件 cp inittab /nfsroot/etc

        设置启动参数 set bootargs "root=/dev/nfs nfsroot=192.168.0.222:/nfsroot ip=192.168.0.20

                          lcd=S70 console=ttySAC0,115200 init=linuxrc"

        保存 save

          注意: Ctrl + A(松开) W :打开自动换行(由于变量太多,必须自动换行)

      第二步:利用虚拟文件系统拷贝内核和根文件系统

         将内核拷贝到EMMC的第二个分区

             挂载 mount /dev/mmcblk0p2 /mnt

             拷贝内核 cp zImage /mnt (在pc机中先将zImage拷贝到共享目录nfsroot中)

             卸载EMMC第二分区 umount /mnt

          

          将根文件系统拷贝到EMMC的第三个分区

             挂载 mount /dev/mmcblk0p3 /mnt

             拷贝根文件系统

               PC端: cp root_qt*.tar.gz /nfsroot ( 在pc机中先将root_qt*拷贝到共享目录)

              minicom开发板: tar -zxvf root_qt*.tar.gz -C /mnt (后将所有文件拷到/mnt目录)

             拷贝inittab--根文件系统缺失部分

               PC端: cp inittab /nfsroot/

               minicom开发板:cp /inittab /mnt/etc (或 cp /etc/inittab /mnt/etc )

             卸载EMMC第三分区 umount /mnt

   注:之后手动复位,从EMMC启动,下一步在minicom中设置环境变量

   5.设置变量:

      设置内核自启动 set bootcmd "ext2load mmc 0:2 40008000 zImage;bootm 40008000"

      设置启动参数 set bootargs "root=/dev/mmcblk0p3 console=ttySAC0,115200 init=linuxrc lcd=S70"

        保存 save

注:EMMC有四个分区 ,其中: 第一个分区 bootloader

                  第二个分区 内核

                  第三个分区 根文件系统

2016-01-19
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: