樹莓派啟動流程 --- 005 kernel: [0.000000] Booting Linux on physical CPU 0x0 -- 01 gpu轉cpu問題


  CPU 啟動這個問題,說也簡單,細究起來也不是很復雜:博客《樹莓派啟動流程 --- 004 systemd-modules-load [111]: Module'i2c_dev' inserted -- 01 樹莓派啟動流程 》 和《RPi Software --- 001 Overview》可以說明這個問題:

 

 

 

如果您只需要一個操作系統,則只需要一個格式正確的SD卡即可。有關如何創建或獲取一個的詳細信息,請參閱“ 硬件基本設置”頁面。

為了了解RPi中的軟件組件,您首先應該了解它是如何啟動的。上電時,CPU處於脫機狀態,GPU上的小型RISC內核負責引導SoC,因此,大多數引導組件實際上都在GPU代碼上運行,而不是CPU。

引導順序和組件如下:

  • 第一階段引導程序 -用於將FAT32引導分區安裝在SD卡上,以便可以訪問第二階段引導程序。它在RPi的制造過程中被編程到SoC本身中,並且用戶無法對其進行重新編程。
  • 第二階段引導加載程序(bootcode.bin)-用於從SD卡中檢索GPU固件,對固件進行編程,然后啟動GPU。
  • GPU固件(start.elf)-加載后,這將允許GPU啟動CPU。另一個文件fixup.dat用於在GPU和CPU之間配置SDRAM分區。此時,CPU從復位中釋放,執行轉移過來。
  • 用戶代碼 -這可以是任意數量的二進制文件之一。默認情況下,它是Linux內核(通常稱為kernel.img),但也可以是另一個引導程序(例如U-Boot)或准系統應用程序。

在2012年10月19日之前,以前也有一個第三階段的引導加載程序(loader.bin),但這不再是必需的。[1]

基金會網站([1])上的Raspbian Linux映像(其他?)也包含上述文件的簡化版本(fixup_cd.dat,start_cd.elf)。當GPU內存設置為16 MB時會使用這些選項,從而禁用某些GPU功能。更多信息在這里。此外,還提供了上述文件的測試版本(fixup_x.dat,start_x.elf),這些版本啟用了可能不穩定/未經過完全測試/ hacky的功能-當前,使用這些文件代替通常的fixup.dat / start .elf將導致額外的視頻編解碼器可用。

由於此引導過程,必須使用SD卡引導RPi。但是,這確實意味着您無法“模塊化”設備。

 


免責聲明!

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



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