zoukankan      html  css  js  c++  java
  • SD卡, EMMC固化 ,关于bootloader linux

    一. 将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*拷贝到共享目录nfsroot中)

                  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

  • 相关阅读:
    LeetCode Subarrays with K Different Integers
    LeetCode Repeated DNA Sequences
    为什么要使用静态方法
    String,StringBuilder,StringBuffer
    汉诺塔递归算法
    设计模式之代理模式
    设计模式之单例设计模式
    设计模式之工厂方法和抽象工厂
    设计模式之模板方法
    并发技巧清单(1)
  • 原文地址:https://www.cnblogs.com/zero2nine/p/5138950.html
Copyright © 2011-2022 走看看