驚鴻一瞥;啟動過程與燈號

觀察一個電腦系統的開機過程,是理解那個系統的重要一步。事實上從供電啟動之後,電腦總是在執行指令‥即使是錯誤的亂碼,以致於當機。這是一個程序啟動另一個程序的過程,一直持續到作業系統的啟動階段,一般稱作靴帶式啟動。其後由作業系統接手,初始化裝置設備,直到使用者登錄畫面,完成整個開機過程。當然一個簡單的算術計算機,也許一步到位,然而過程上的理解卻是相同的。

在靴帶式啟動過程中,一般使用簡單的聲音、燈號表示系統的狀態或錯誤。目前樹莓派的設計上只使用燈號。樹莓派上有五個 LED 燈號,其中一個標示為 ACT 的發綠色光 LED 正用於啟動過程,開機後的功能依使用的作業環境而異,一般表示為 SD 卡在讀寫動作中。所以關機時最好等到 ACT LED 完全熄滅,再抽拔 SD 卡,以免可能的檔案損毀。下表簡短說明這五個 LED 燈號︰

LED
標示
發光顏色功能一般狀態及說明
ACT綠色SD 卡讀寫狀態開機時表示啟動過程,一般開機後用於 SD 卡的讀寫動作中的指示。
PWR紅色供電供電後維持紅色。
FDX綠色全雙工
乙太網
如果連上全雙工乙太網就亮。
LNK綠色連上
乙太網
如果連上乙太網就亮。
100橘色網速
100 Mbps
如果網速 100 Mbps 以上就亮。

現在簡略談談樹莓派官網版 Raspbian 的靴帶式啟動過程,供電後 PWR LED 紅燈亮起,GPU 繪圖處理器啟動,執行 IC ROM 中的起始程序。此程序嘗試讀取 SD 卡上的 fat 分割區塊,尋找 bootcode.bin 檔案,這時 ACT LED 是熄滅的,找到載入後把控制權交給它,展開第二階段。bootcode.bin 嘗試讀取 SD 卡上的 start.elf 。這時如果 start.elf  找不到,ACT LED 閃三次;如果 start.elf  能找到、不能載入,ACT LED 閃四次;假使一切正常,start.elf 將在螢幕上顯示

Debug-screen

之後 start.elf 嘗試讀取 SD 卡上的 config.txt 、cmdline.txt 以及kernel.img,如果此時 kernel.img 找不到,ACT LED 將閃七次;最後將控制權交給 kernel.img 完成靴帶式啟動。特別說明這裡的描述都是假裝系統的 SDRAM 工作正常,如果不是 ACT LED 會閃八次。

最後開始 了通常 Linux Kernel  核心的開機過程。