pcDuino系統啓動過程
- 檢測update按鈕,如果有按下,進入USB啓動
- 如果檢測到SD卡,讀SD卡上的啓動信息
- 如果檢測到Nand啓動芯片上有啓動信息,讀取啓動。
uboot
kernel
- 獲得內核源碼文件kernel.tar.bz2
- 解壓後進行編譯
- tar xjvf kernel.tar.bz2
- cd kernel
- mkdir linux-sunxi/.git
- mkdir u-boot-sunxi/.git
- make u-boot
- sudo cp build/pcduino-u-boot/tools/mkimage /usr/sbin
- make linux
- 編譯成功後測試
- 將編譯結果拷貝到nfs共享目錄
1.cp build/sun4i_defconfig-linux/arch/arm/boot/uImage ~/nfsroot
2.cp -r build/sun4i_defconfig-linux/output/lib ~/nfsroot - 將目標板上系統相關文件替換成自己編譯的
1.sudo mount /dev/nanda /boot
2.cp /boot/uImage ~/
3.cp /mnt/uImage /boot
4.cp -r /mnt/lib /lib
5.sync
6.reboot
7.cat /proc/version - 測試失敗後的處理辦法
1.插入可以正常啓動開發板的TF卡
2.開機啓動,等待系統進入命令行
3.mount /dev/nanda /boot
4.mount /dev/nandd /mnt
5.cp /mnt/home/ubuntu/uImage /boot
6.sync
- 將編譯結果拷貝到nfs共享目錄
filesystem
- u-boot-spl
- 初始化CPU外部的RAM
- 讀取u-boot.bin到RAM並執行
- u-boot.bin
- 讀取Nand上的分區表,找到分區nanda
- 從nanda分區內讀取Linux內核所需要的啓動信息sprite.bin,uImage,uEnv.txt
- 爲uImage(linux kernel)運行準備環境
- 運行uImage
- uImage
- init
- 運行級別