Buildroot: a Firmware Generator for Embedded Systems ( buildroot | 7 hours )

Prerequisites:
  • 參與者必須至少為傳統桌面 (非嵌入式) Linux 系統構建一次內核。
  • 知道桌面系統上的 Linux 用戶空間由哪些元件組成。
  • 知道如何生成和使用補丁。
  • 必須能夠解釋什麼是 GNU Make、Autotools、存在哪些其他構建系統。
  • 理想情況下,至少維護一個 Linux 包,無論是作為上游作者,還是在任何傳統的 Linux 桌面發行版中。
  • 不需要具有嵌入式開發經驗,也不能替代上面指定的有關傳統 Linux 桌面的知識。
Overview:

Buildroot 是一個開源專案,其中包含生成交叉編譯工具鏈、可自定義根文件系統映像和用於嵌入式設備的 Linux 內核的腳本。在本實踐課程中,參與者將學習如何使用它:

  • 如何選擇進入root檔系統的軟體。
  • 如何添加新包和修改現有包。
  • 如何添加對新嵌入式主板的支援。

在課程期間,將生成可啟動的文件系統映像。遠程課程使用 QEMU 模擬器提供,而在課堂上,可以使用 QEMU 或培訓師選擇的真實嵌入式板。

其他具有類似目標的專案包括 Yocto 專案和 OpenWRT。請使用這些演示文稿來確定哪一個是滿足您需求的正確選擇。

Course Outline:
  1. 開始
    1. 取得 Buildroot
    2. 構建系統要求
    3. 跨編譯器術語:build、host、target、sysroot
    4. 選擇正確的目標
    5. 構建一個最小的嵌入式系統並啟動它
    6. 生成的檔案系統映像的內容
    7. 並行構建
    8. 完全重建和部分重建
  2. 設計目標 Buildroot
  3. 要做出的選擇
    1. C 庫:glibc 或 uClibc 還是 musl?
    2. Init 系統:busybox vs sysVinit vs systemd
    3. 在 /dev 中管理設備節點
    4. 選擇其他套件
  4. 瞭解構建說明
    1. Kconfig (Confog.in) 檔的語法
    2. Buidroot Makefile 使用的 GNU Make 功能
    3. Config.in 和 *.mk 文件的樣式指南
    4. 如何添加基於 Autotools 的簡單包
    5. 暫存目錄和目標目錄之間的區別
    6. 對主機包的需求
    7. 如何表達依賴項和可選功能
    8. 支援 C 以外的語言和除 Autotools 以外的構建系統
    9. 調試Makefile
    10. 重新構建單個套件
  5. 分析構建結果
    1. 是什麼花費了這麼多的構建時間?
    2. 是什麼佔用了這麼多磁碟空間?
    3. 為什麼要構建此包?
  6. 組織外部包樹
  7. 應用程式開發人員的工作流程
    1. 如何使用本地源目錄
    2. 覆蓋構建指令
    3. 調試應用程式
    4. 加快重建速度
    5. 查看構建日誌
  8. 處理常見的交叉編譯問題
    1. 如何編寫自己的軟體,使其對交叉編譯器友好
  9. 面向內核開發人員的工作流程
    1. 內核如何在嵌入式系統上引導
    2. 更改配置選項和添加補丁
    3. 模組載入機制
  10. 製作成品
    1. 在啟動時運行守護程式
    2. 提供自訂配置檔
    3. 可用的韌體更新機制
    4. 升級到新的 Buildroot 版本
    5. 遵守開源許可證
Sites Published:

United Arab Emirates - Buildroot: a Firmware Generator for Embedded Systems

Qatar - Buildroot: a Firmware Generator for Embedded Systems

Egypt - Buildroot: a Firmware Generator for Embedded Systems

Saudi Arabia - Buildroot: a Firmware Generator for Embedded Systems

South Africa - Buildroot: a Firmware Generator for Embedded Systems

Brasil - Buildroot: a Firmware Generator for Embedded Systems

Canada - Buildroot: a Firmware Generator for Embedded Systems

中国 - Buildroot: a Firmware Generator for Embedded Systems

香港 - Buildroot: a Firmware Generator for Embedded Systems

澳門 - Buildroot: a Firmware Generator for Embedded Systems

台灣 - Buildroot: a Firmware Generator for Embedded Systems

USA - Buildroot: a Firmware Generator for Embedded Systems

Österreich - Buildroot: a Firmware Generator for Embedded Systems

Schweiz - Buildroot: a Firmware Generator for Embedded Systems

Deutschland - Buildroot: a Firmware Generator for Embedded Systems

Czech Republic - Buildroot: a Firmware Generator for Embedded Systems

Denmark - Buildroot: a Firmware Generator for Embedded Systems

Estonia - Buildroot: a Firmware Generator for Embedded Systems

Finland - Buildroot: a Firmware Generator for Embedded Systems

Greece - Buildroot: a Firmware Generator for Embedded Systems

Magyarország - Buildroot: a Firmware Generator for Embedded Systems

Ireland - Buildroot: a Firmware Generator for Embedded Systems

Israel - Buildroot: a Firmware Generator for Embedded Systems

Luxembourg - Buildroot: a Firmware Generator for Embedded Systems

Latvia - Buildroot: a Firmware Generator for Embedded Systems

España - Buildroot: a Firmware Generator for Embedded Systems

Italia - Buildroot: a Firmware Generator for Embedded Systems

Lithuania - Buildroot: a Firmware Generator for Embedded Systems

Nederland - Buildroot: a Firmware Generator for Embedded Systems

Norway - Buildroot: a Firmware Generator for Embedded Systems

Portugal - Buildroot: a Firmware Generator for Embedded Systems

România - Buildroot: a Firmware Generator for Embedded Systems

Sverige - Buildroot: a Firmware Generator for Embedded Systems

Türkiye - Buildroot: a Firmware Generator for Embedded Systems

Malta - Buildroot: a Firmware Generator for Embedded Systems

Belgique - Buildroot: a Firmware Generator for Embedded Systems

France - Buildroot: a Firmware Generator for Embedded Systems

日本 - Buildroot: a Firmware Generator for Embedded Systems

Australia - Buildroot: a Firmware Generator for Embedded Systems

Malaysia - Buildroot: a Firmware Generator for Embedded Systems

New Zealand - Buildroot: a Firmware Generator for Embedded Systems

Philippines - Buildroot: a Firmware Generator for Embedded Systems

Singapore - Buildroot: a Firmware Generator for Embedded Systems

Thailand - Buildroot: a Firmware Generator for Embedded Systems

Vietnam - Buildroot: a Firmware Generator for Embedded Systems

India - Buildroot: a Firmware Generator for Embedded Systems

Argentina - Buildroot: a Firmware Generator for Embedded Systems

Chile - Buildroot: a Firmware Generator for Embedded Systems

Costa Rica - Buildroot: a Firmware Generator for Embedded Systems

Ecuador - Buildroot: a Firmware Generator for Embedded Systems

Guatemala - Buildroot: a Firmware Generator for Embedded Systems

Colombia - Buildroot: a Firmware Generator for Embedded Systems

México - Buildroot: a Firmware Generator for Embedded Systems

Panama - Buildroot: a Firmware Generator for Embedded Systems

Peru - Buildroot: a Firmware Generator for Embedded Systems

Uruguay - Buildroot: a Firmware Generator for Embedded Systems

Venezuela - Buildroot: a Firmware Generator for Embedded Systems

Polska - Course Outline Buildroot: a Firmware Generator for Embedded Systems

United Kingdom - Buildroot: a Firmware Generator for Embedded Systems

South Korea - Buildroot: a Firmware Generator for Embedded Systems

Pakistan - Buildroot: a Firmware Generator for Embedded Systems

Sri Lanka - Buildroot: a Firmware Generator for Embedded Systems

Bulgaria - Buildroot: a Firmware Generator for Embedded Systems

Bolivia - Buildroot: a Firmware Generator for Embedded Systems

Indonesia - Buildroot: a Firmware Generator for Embedded Systems

Kazakhstan - Buildroot: a Firmware Generator for Embedded Systems

Moldova - Buildroot: a Firmware Generator for Embedded Systems

Morocco - Buildroot: a Firmware Generator for Embedded Systems

Tunisia - Buildroot: a Firmware Generator for Embedded Systems

Kuwait - Buildroot: a Firmware Generator for Embedded Systems

Oman - Buildroot: a Firmware Generator for Embedded Systems

Slovakia - Buildroot: a Firmware Generator for Embedded Systems

Kenya - Buildroot: a Firmware Generator for Embedded Systems

Nigeria - Buildroot: a Firmware Generator for Embedded Systems

Botswana - Buildroot: a Firmware Generator for Embedded Systems

Slovenia - Buildroot: a Firmware Generator for Embedded Systems

Croatia - Buildroot: a Firmware Generator for Embedded Systems

Serbia - Buildroot: a Firmware Generator for Embedded Systems

Bhutan - Buildroot: a Firmware Generator for Embedded Systems

Nepal - Buildroot: a Firmware Generator for Embedded Systems