關於UBOOT,LINUX內核編譯,根文件系統的15個問題

(1)內核默認運行地址和加載地址在哪裏設置?

(2)從FLASH什麼地址找內核和根文件系統,UBOOT在哪裏設置?

(3)啓動時UBOOT將根文件系統和內核拷貝到RAM中何處在哪裏設置?

(4)UBOOT 如何知道內核與根文件系統的格式和大小?

(5)內核啓動參數在編譯UBOOT時候哪裏指定?

(6)內核啓動後如何知道在SDRAM中何處找到根文件系統來掛載?如何知道根文件系統大小和格式?

(7)內核如何知道UBOOT欲傳遞給內核的參數放在SDRAM中何處?

(8)內核編譯時候的運行地址在哪裏指定?內核是位置無關碼嗎?

(9)友善之臂MINI2440的說明書寫道:
由於本系統採用了可讀寫文件系統 yaffs(在嵌入式系統中,專門管理 Flash 存儲器的
一種文件系統),因此可以很方便的動態保存數據,掉電後不會丟失。開機後在串口終端運行
以下命令: #cp / shanghaitan.mp3 /home/plg 此時將在/home/fa目錄下複製一個同樣的文件,然後關機,重新開啓系統,可以查看
到/home/plg 目錄下的文件依然存在。

----- 根文件系統不是已經搬運到在RAM中了?COPY文件是在RAM中啊怎麼會寫到FLASH裏呢?


(10)內核啓動參數在配置內核時候可以選。BOOTLOADER也可以傳參數。這兩種參數是互補的關係還是誰優先的關係(如果有衝突的話)?

(11)  友善的板子SUPERVIVI/UBOOT從NOR啓動然後可以燒寫文件到NAND,但是不能從NAND啓動然後燒寫文件到NOR ----燒文件到NOR需要HJTAG或者

JLINK,BOOTLOADER,如UBOOT有支持燒寫NOR的嗎?



(12) 配置內核(或VIVI)運行MAKE MENUCONFIG 時是否頂層如果已經有專門配好的設置.config,make就會自動調入.config的配置,但是如果沒有.config按照哪個默認值顯示呢?

(13)LINUX內核和根文件系統映像在NAND中的起始地址和大小的信息,是不是要UBOOT在程序中寫死,這樣的話,對某一個特定版本的UBOOT,LINUX內

核和根文件系統就不能在NAND中任意位置燒寫了。還是,內核和根文件系統在NAND中的位置和大小都是可變的,同一個版本的UBOOT可以智能地檢測

出這些信息從而正常啓動linux?

(14) 修改UBOOT代碼讓UBOOT支持“JFFS2/CRAMFS/YAFFS” -------- 這句話是什麼意思? uboot的作用不就是把FLASH裏的根文件系統搬運到SDRAM裏嗎?管它是什麼格式能COPY到SDRAM不久行了嗎?

(15)據說lINUX內核可以在FLASH本地也可以加載到內存中運行,UBOOT是哪種方式?編譯UBOOT可以選擇用哪種方式嗎?


關於問題的解答:

1. 看《嵌入式LINUX應用開發完全手冊》302頁
2. UBOOT裏有環境變量,UBOOT啓動後,會根據bootcmd這個環境變量來執行命令。就是在這個環境變量裏寫明:從哪裏讀出內核;
文件系統在哪裏,是由內核來確定的,建議你先按順序好好看書。
3. 啓動時UBOOT不拷貝根文件系統,把內核拷貝到哪裏,請看bootcmd環境變量
4. UBOOT不管文件系統,內核就是一個可以直接運行的映象,沒什麼特殊格式
5. 自己看UBOOT那章
6. 內核啓動後,不是在SDRAM中找文件系統,而是在FLASH上找,你看內核移植、根文件系統那2章
7. 看UBOOT那章
8. 看內核那章,內核開始一小部分的代碼是位置無關的
9. 跟RAM沒有關係
10. 傳遞的參數優先
11. 有,本論壇的UBOOT就可以直接燒寫NOR
12. 試試就知道
13. UBOOT只管內核在哪,這個地址可以通過命令設置,不是寫死;
    文件系統由內核來找,這個地址一般是寫死在內核中
14. 支持燒寫這些文件系統類型的映象文件
15. 內核可以在NOR上直接運行,這跟UBOOT沒關係,UBOOT只是負責初始化一下硬件,然後可能的話把內核複製到SDRAM中,然後啓動內核;
  如果是NOR上運行內核,那麼UBOOT初始化完硬件後,直接啓動內核

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