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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM