女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

描述buildroot中支持的三種系統(tǒng)初始化方式

嵌入式小生 ? 來源:嵌入式小生 ? 作者:iriczhao ? 2022-11-02 09:05 ? 次閱讀

一、導(dǎo)讀

本文描述buildroot中支持的三種系統(tǒng)初始化方式以及buildroot在實際構(gòu)建過程中是如何工作的。

二、系統(tǒng)初始化的三種方式

我們已經(jīng)知道,在linux內(nèi)核啟動后期會嘗試加載用戶空間的init程序,init程序是由內(nèi)核啟動的第一個用戶空間程序(PID為1),該程序負責(zé)啟動用戶空間的服務(wù)和程序(例如:Web服務(wù)、圖形應(yīng)用程序、其他網(wǎng)絡(luò)服務(wù)等)。

在使用buildroot構(gòu)建linux根文件系統(tǒng)時,其支持三種不同類型的初始化系統(tǒng),可以在“System configuration”選項下的“Init system”選擇項中進行選擇:

poYBAGNhwm6AJZqMAACWQzNKlWU951.jpg

(1)第一種是“BusyBox”

BusyBox 實現(xiàn)了基本的 init 程序,對于大多數(shù)嵌入式系統(tǒng)而言,選擇這種方式已經(jīng)足夠了。啟用“BR2_INIT_BUSYBOX”將確保 BusyBox 會生成并安裝其 init 程序,這也是 Buildroot 的默認解決方案。

BusyBox init程序會在啟動時去讀取/etc/inittab文件。除了掛載一些重要的文件系統(tǒng)之外,默認的 inittab 的主要工作是啟動/etc/init.d/rcS shell腳本,并啟動一個 getty 程序(用于提供登錄提示)。

(2)第二種是“systemV”

該種解決方案使用傳統(tǒng)的sysvinit程序,位于Buildroot目錄package/sysvinit中,在Upstart或Systemd出現(xiàn)之前,這是大多數(shù)桌面Linux發(fā)行版使用的解決方案。Sysvinit同樣使用inittab文件(其語法與 BusyBox 中的語法略有不同)。與此init解決方案一起安裝的默認inittab 位于package/sysvinit/inittab中。

(3)第三種是“systemd”

systemd是用于Linux的新一代init系統(tǒng)。它的功能遠遠超過傳統(tǒng)的init程序:強大的并行處理能力、使用socket和D-Bus激活啟動服務(wù)、按需啟動守護程序、使用Linux控制組跟蹤進程、支持對系統(tǒng)狀態(tài)進行快照和還原等等。

systemd在相對復(fù)雜的嵌入式系統(tǒng)上很有用,例如:需要D-Bus和服務(wù)之間相互通信的系統(tǒng)。值得注意的是systemd會帶來了大量的大型依賴項,例如dbus、udev等。

buildroot如何工作

本小節(jié)描述buildroot的工作機制。

在《buildroot使用筆記-01 | 常規(guī)使用步驟》一文中,對buildroot的目錄結(jié)構(gòu)進行了分析,可以明確知道:buildroot基本上是一組Makefile文件,這些文件可以對所需軟件進行下載、配置和編譯。除此之外,buildroot中還包含了各種軟件包的補丁:主要是那些涉及交叉編譯工具鏈的軟件包,例如:gcc、binutils和uClibc等。

對于軟件包來說,每個軟件包基本上只有一個Makefile文件,它們以.mk擴展名進行命名。在buildroot中,Makefile分成許多不同的部分:

toolchain/目錄包含與交叉編譯工具鏈相關(guān)的所有軟件的Makefile和相關(guān)文件:binutils、gcc、gdb、kernel-header 和 uClibc。

arch/目錄包含 Buildroot 支持的所有處理器體系架構(gòu)的定義。

package/目錄包含所有用戶空間的工具和庫(Buildroot 可以將它們編譯并添加到目標(biāo)根文件系統(tǒng))的 Makefile 和相關(guān)文件,每個軟件包都有一個子目錄。

linux/目錄包含 Linux 內(nèi)核的 Makefile 和相關(guān)文件。

boot/目錄包含 Buildroot 支持的 Bootloader 的 Makefile 和相關(guān)文件。

system/目錄包含對系統(tǒng)集成的支持,例如目標(biāo)文件系統(tǒng)框架 skeleton 和 init 系統(tǒng)的選擇。

fs/目錄包含與生成目標(biāo)根文件系統(tǒng)鏡像有關(guān)的軟件的 Makefile 和相關(guān)文件。

每個目錄至少包含2個文件:

xxx.mk 是用于下載、配置、編譯和安裝軟件包的Makefile。

Config.in 是配置工具描述文件的一部分,用于描述與軟件包相關(guān)的選項。

在buildroot配置完成后,主Makefile執(zhí)行的具體操作步驟如下:

(1)創(chuàng)建所有的輸出目錄:staging、target、build 等(默認在output/目錄中,我們可以使用“O=”來指定另一個路徑)。

(2)生成工具鏈目標(biāo)。當(dāng)使用內(nèi)部工具鏈時,這意味著buildroot會生成交叉編譯工具鏈。當(dāng)使用外部工具鏈時,這意味著將檢查外部工具鏈的功能并將其導(dǎo)入到Buildroot環(huán)境中。

(3)生成TARGETS變量中列出的所有目標(biāo)。該變量由所有組件的 Makefile 填充。生成這些目標(biāo)時將生成用戶空間軟件包(庫、程序集)、內(nèi)核、引導(dǎo)加載程序的編譯以及根文件系統(tǒng)鏡像,在該過程中,會聯(lián)網(wǎng)命中、下載所需要的軟件包,然后對其進行編譯構(gòu)建。在編譯構(gòu)建過程中,單個操作步驟一般會顯示對應(yīng)的下載進度提示,過程進度提示等。在執(zhí)行對應(yīng)的操作時,還會有相應(yīng)的提示,類似于下圖所示的信息:

pYYBAGNhwoeACh3aAAHDSOyHmM8301.jpg






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • PID控制
    +關(guān)注

    關(guān)注

    10

    文章

    461

    瀏覽量

    41000
  • LINUX內(nèi)核
    +關(guān)注

    關(guān)注

    1

    文章

    317

    瀏覽量

    22177
  • gcc編譯器
    +關(guān)注

    關(guān)注

    0

    文章

    78

    瀏覽量

    3648

原文標(biāo)題:buildroot使用筆記-03 | 系統(tǒng)初始化的三種方式和buildroot的工作方式

文章出處:【微信號:嵌入式小生,微信公眾號:嵌入式小生】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    RT-Thread自動初始化詳解

    初始化函數(shù)不需要被顯式調(diào)用,只需要在函數(shù)定義處通過宏定義的方式進行申明,就會在系統(tǒng)啟動過程中被執(zhí)行,非常的方便。 1 普通初始化 前面也講了,我們在寫單片機的程序時,需要對硬件進行
    的頭像 發(fā)表于 06-25 21:38 ?1.2w次閱讀
    RT-Thread自動<b class='flag-5'>初始化</b>詳解

    自動初始化機制原理詳解

    自動初始化機制是指初始化函數(shù)不需要被顯式調(diào)用,只需要在函數(shù)定義處通過宏定義的方式進行申明,就會在系統(tǒng)啟動過程中被執(zhí)行。這篇文章就來探索一下其中的奧秘, 簡單理解其原理!
    的頭像 發(fā)表于 12-16 09:33 ?1311次閱讀
    自動<b class='flag-5'>初始化</b>機制原理詳解

    PL-232驅(qū)動--三種系統(tǒng)

    PL-232驅(qū)動--三種系統(tǒng),適用于Windows7,WindowsXp,Windowsserver
    發(fā)表于 01-22 10:55

    STM32支持三種啟動方式

    正文不得不提的啟動方式STM32支持三種啟動方式 1. FLASH啟動 2. SRAM啟動 3. 系統(tǒng)存儲器啟動這
    發(fā)表于 08-23 06:03

    【原創(chuàng)分享】變量的初始化技巧

    初始化的時候可以使用參數(shù)列表。這兩形式比較類似,因此結(jié)構(gòu)體在初始化階段和數(shù)組的情況是相似的。結(jié)構(gòu)體的兩初始化
    發(fā)表于 09-08 15:28

    RT-Thread系統(tǒng)初始化與啟動流程詳細描述

    的時候,在使用前都必須先初始化, 通常的做法是在主程序運行前手動添加調(diào)用初始化函數(shù)。 而 RT-Thread 提供了另一低耦合高內(nèi)聚的初始化方式
    發(fā)表于 08-25 15:15

    手機模塊初始化向?qū)?/a>

    手機模塊初始化向?qū)?為了剛好的對手機模塊進行初始化,所以把最基本的向?qū)懴聛?本向?qū)нm用于本公司的西門子TC35I和華為GT9000模塊。一、在初始化手機模塊前,請先確定DT
    發(fā)表于 09-18 09:41 ?17次下載

    LINUX系統(tǒng)引導(dǎo)和初始化-LINUX內(nèi)核解讀

    Linux 的系統(tǒng)引導(dǎo)和初始化 ----------Linux2.4.22內(nèi)核解讀之一 一、 系統(tǒng)引導(dǎo)和初始化概述 相關(guān)代碼(引導(dǎo)扇區(qū)的程序及其輔助程序,以 x86體系為例): \li
    發(fā)表于 11-03 22:31 ?53次下載

    RDA1846S初始化設(shè)置

    RDA1846S初始化設(shè)置RDA1846S初始化設(shè)置RDA1846S初始化設(shè)置
    發(fā)表于 01-15 17:08 ?0次下載

    PL-232驅(qū)動--適用于三種系統(tǒng)

    PL-232驅(qū)動--適用于三種系統(tǒng)
    發(fā)表于 01-07 21:01 ?0次下載

    8253初始化程序分享_8253應(yīng)用案例

    本文首先介紹了8253概念及8253各通道的工作方式,其次詳細介紹了8253初始化要求及編程,最后用一個例子介紹了8253的初始化程序。
    發(fā)表于 05-23 15:52 ?2.3w次閱讀
    8253<b class='flag-5'>初始化</b>程序分享_8253應(yīng)用案例

    霍爾無刷電機如何進行程序初始化

    霍爾無刷電機這種系統(tǒng)在進行程序初始化已經(jīng)預(yù)先設(shè)定好一些變量,因此隨著系統(tǒng)初始化進行,這些變量也開始進入了初始化過程中,而且這個過程中也設(shè)計
    的頭像 發(fā)表于 10-15 17:29 ?8006次閱讀

    壓供電系統(tǒng)三種運行方式

    我國低壓供電系統(tǒng)三種運行方式:國低壓供電系統(tǒng)主要有三種運行方式:TN
    發(fā)表于 05-26 17:06 ?1.1w次閱讀
    壓供電<b class='flag-5'>系統(tǒng)</b>的<b class='flag-5'>三種</b>運行<b class='flag-5'>方式</b>

    FPGA的三種配置方式詳解

    FPGA器件有類配置下載方式:主動配置方式(AS)和被動配置方式(PS)和最常用的(JTAG)配置方式。AS由FPGA器件引導(dǎo)配置操作過程
    發(fā)表于 07-09 10:53 ?8583次閱讀

    Armlinux內(nèi)核移植及系統(tǒng)初始化過程分析

    Armlinux內(nèi)核移植及系統(tǒng)初始化過程分析說明。
    發(fā)表于 04-06 15:53 ?11次下載