基於nandflash的自啓動內核

 

1.製作使initramfs作爲根文件系統的內核
2.將製作好的內核燒寫至nandflash中
3.配置UBoot環境變量,使之可以自啓動後內核

具體實驗步驟如下:(參考天嵌培訓實驗4.3.6 自啓動內核)

1.創建實驗目錄

2.將 busyboxo1.13.3.tar.gz和 etc.tar.gz 拷貝至實驗目錄
3.製作根文件系統

  ⒊1創 建根文件系統的目錄

   創 建 根 文 件 系 統 目 錄 /nfsroo/rootfs2
   #cd/nfsroot
   #mkdir rootfso2
   #mkdir bin dev etc lib proc sbin sys usrrnnttmp var

   #mkdir lib/sbin ……

   3.2創 建設備文件

   cd dev/
   #mknod -m 666 Console c 5 1
   #mknod -m 666  null c 1 3

   3.3安裝etc

4. 配置busybox

6.編譯、安裝busybox
7.查看根文件系統
  #ls /nfsroot/rootfs2

8.修改根文件系統#cd/nfsroot/rootfs2

  ln -s bin/busybox init

9.製作使用initramfs作爲根文件系統的內核

10.清理內核中間文件,配 置文件

  10.1 選擇參考配置

  10.2 配 置內核
11.編譯內核
#make uImage ARCH=arm
CROSS_COMPlLE=arm-linux-
編譯完成後生成的內核映像ulmage位 於arch/arm/boot目錄下

12.在PC機和mini2440開 發板之間連接好電源、串口、網線
13.打開超級終端並正確配置端口
14. 開發板上電∶ 在燒寫ulmage到 nandflash之 前先測試內核是否可在 u-boot中運行,通過下載內核

tftp 31000000 uImage-initram2

15.啓動內核
#bootm 31000000

 

             下面介紹如何從nandflash中啓動製作好的內核

 

    通過測試可知,內核可以在內存中運行,因此下一步就要完成內核燒寫到nandflash中然後設置uboot的環境變量,實現linux的自啓動。

    1、首先啓動uboot,從nfs服務器下載uImage-initram2鏡像到內存中。

      #tftp 31000000 uImage-initram2  //內存的起始地址爲0x31000000

    2、擦除nandflash中的分區,爲寫入系統鏡像做準備(nandflash不擦除不能寫入)。

      #nand erase 200000  600000 //擦除0x200000到0x600000中的內容

    3、將內存0x31000000中的內容寫入nandflash中。

      #nand write 31000000 200000 600000

    4、設置uboot環境變量,使系統可以自啓動。

      #set bootcmd='nand read 31000000 200000 600000;bootm 31000000'

      #saveenv

    5、將撥碼開關撥到nandflash,打開開關。系統自動運行。

                      2011.5.23

發佈了10 篇原創文章 · 獲贊 4 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章