日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
設備樹支持下的Linux內核啟動過程簡介(基于設備樹的內核linux啟動)

隨著Linux在嵌入式領域的廣泛應用,設備樹(Device Tree)開始成為內核啟動時的重要組成部分。設備樹的出現(xiàn),使得Linux內核能夠更好地適應不同的硬件平臺,更加靈活地處理硬件資源。本文將介紹設備樹支持下的Linux內核啟動過程。

創(chuàng)新互聯(lián)公司從2013年成立,先為旌陽等服務建站,旌陽等地企業(yè),進行企業(yè)商務咨詢服務。為旌陽企業(yè)網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。

一、原理

內核啟動時,需要對硬件進行設備樹的枚舉與識別。設備樹是一個跨平臺的數(shù)據(jù)結構,其中描述了硬件設備的類型、地址、中斷等信息。內核通過讀取設備樹,將硬件資源識別出來,并進行初始化。

設備樹通常由.dt或.dtb文件組成,在內核編譯時可以選擇將設備樹編譯成二進制格式.dtb,這樣可以減小設備樹的大小,提高內核啟動的效率。

二、內核啟動流程

1.引導加載器(Bootloader)執(zhí)行階段

內核由引導加載器加載,并且命令行參數(shù)會傳遞給內核啟動。對于設備樹支持的內核,引導加載器需要傳遞設備樹文件的地址以及大小給內核。

2.內核初始化階段

內核啟動后,首先進行的是內核初始化。此時,內核需要讀取設備樹來識別硬件資源,并初始化硬件設備驅動。在此過程中,內核會使用到設備樹中描述的硬件節(jié)點信息。

3.設備樹的解析與加載階段

內核啟動完成后,設備樹文件被讀取到內存中,并進行解析和加載。在解析過程中,內核會以設備樹中的根節(jié)點為起點,從頂向下逐層解析和加載子節(jié)點的信息。通常設備樹文件加載到系統(tǒng)內存中的某個指定位置,并在內核啟動過程中使用該位置來訪問設備樹。

4.設備樹的匹配階段

設備樹解析和加載完成后,內核對硬件資源進行匹配。此時,內核遍歷整個設備樹,對每個樹節(jié)點進行匹配。匹配規(guī)則通常是從設備樹根節(jié)點開始,在設備樹中尋找與硬件匹配的節(jié)點,并讀取其信息,完成硬件初始化。

5.啟動內核階段

設備樹匹配完成后,內核會進入啟動階段。此時,硬件設備已經初始化完成,內核可以正常運行,并加載用戶空間進行后續(xù)操作。

三、適用情況

設備樹的存在和廣泛使用,主要是為了適應不同的硬件平臺和體系結構,因此對于某些嵌入式應用來說,不需要使用設備樹也可以完成內核啟動。其適用通過各種引導程序提供的信息來識別硬件設備。

不過,對于需要支持多種設備的規(guī)模更大的嵌入式系統(tǒng),使用設備樹將更加方便。通過設備樹,內核可以將硬件設備的信息標準化,并具有更好的兼容性。

設備樹是一種優(yōu)秀的設計,為內核啟動提供了更好的硬件資源管理機制。通過設備樹在不同平臺上更加靈活,可以更好地支持各種硬件設備,從而提高了嵌入式開發(fā)工作的效率。

相關問題拓展閱讀:

  • linux下的五大啟動管理程序
  • linux啟動時怎么選擇新舊內核

linux下的五大啟動管理程序

分別是

1. System V:System V是一種UNIX操作系統(tǒng)的啟動和關機腳本。

2. Upstart:Upstart是Ubuntu Linux發(fā)行版中使用的開機啟動管理器。

3. systemd:systemd是Linux內核下常用的開機啟動管理工具。

4. SysVinit:SysVinit是一個Unix-like操作系統(tǒng)上常用的進程初始化守護進程集成工唯櫻具。

5. runit:runit 是指陵叢一個小而快速的 Unix init 系統(tǒng), 可汪衫以在多重平臺上運行, 例如 Linux、Solaris、Mac OS X 等

linux啟動時怎么選擇新舊內核

1 是手動選擇在開機時候按方上下方向鍵 界面會停留在選擇內核的界面

2自動選擇 系統(tǒng)默認會選擇最新安裝的內核.如果要更改談派斗默認使用的內核則修改配置文件/boot/grub/menu.lst(直接修羨蘆改grub.conf同樣可行 )下default默認為0是表示之一個菜單選項(開機時的內核含磨選擇菜單),改為1就是使用第二個菜單項了。timeout表示菜單等待時間,單位為秒。

已安裝內核的新版本(例如,實現(xiàn) P 支持),那不需要下載任何代碼跳過此部分繼續(xù)下一屏。

您可以在 上找到內核代碼。當您進入到那后,您將發(fā)現(xiàn)內核的源代碼按內核版本(v2.2、v2.3 等),被組織到多個不同的目錄中。在每個目錄中,您將發(fā)現(xiàn)文件被冠以”linux-x.y.z.tar.gz”和”linux-x.y.z.tar.bz2″。這些就是敏枯 Linux 內核的源代碼。您也將看到冠以 “patch-x.y.z.gz” 和 “patch-x.y.z.bz2” 的文件。這些是用來更新前面完整的內核源代碼的補丁包。如果您希望編譯一個新的內核版本,您將需要下載這些”linux”文件其中之一。

內早擾核解包

如果您已從 kernel.org 下載一個新的內核,現(xiàn)在是要將其解包時候了。首先,cd /usr/src。如果這里有一個存在的”linux”目錄,將其改名為”linux.old” (“mv linux linux.old”,以 root 權限)。

現(xiàn)在,可以解開新的內核包了。仍然在 /usr/src 目錄下,輸入 tar xzvf /path/to/my/kernel-x.y.z.tar.gz 或者 cat /path/to/my/kernel-x.y.z.tar.bz2 | bzip2 -d | tar xvf -,根據(jù)您下載的源代碼是用 gzip 或 bzip2 壓縮的。在輸入完此命令后,您下載的內核源代碼會被釋放到一個新的”linux”目錄下。注意內核源代碼通常將在硬盤上占用超過兆空間!

討論配置問題

在您編譯內核前,您需要配置它,配置是您精確控制在新內核中啟用(禁止)哪些內核功能的機會。您也將控制哪些會被編譯到內核的二進制映像(在啟動時被載入)而哪些被編譯到需要時載入的內核模塊文件。

老式配置內核的方法是極為痛苦的過程,并涉及到進入 /usr/src/linux 目錄并輸入 make config 命令。請放棄這種配置內核的方式除非您想在命令行上回答幾百個(對!幾百個)“yes/no”的問題。

配置的新途徑

我們是現(xiàn)代人類,我們不在輸入 make config,而是輸入 make menuconfig 或者 make xconfig。如果您想要配置您的內核,使用上述選擇之一。如果您輸入 make menuconfig,您將使用一個漂亮的基于文本的彩色菜單系統(tǒng)來配置內核。如果您輸入 make xconfig,您將使用一個更漂亮的基于 X-Window 的 GUI 界面來配置內核的各種選項。這里有一個使用 “make menuconfig” 的屏幕陸拿旦截圖:

當使用 “make menuconfig” 時,在左面出現(xiàn)一個 “” 的選項能被編譯成為一個模塊。當選項被選中,按下空格鍵來循環(huán)選擇選項是被選中或未選中, (“”)表示將被編譯成內核映像而(“”)表示將被編譯成模塊。

配置技巧

在這里有極其多的內核選項,而且我們無法在此一一解釋所以請利用內核內置的幫助功能?;旧厦總€選項都至少有一些描述,而且每個通常都有一行”如果您不知道這個選項的含義,輸入 Y。(或者 N)”。這些提示在您不知道一個特定選項的含義時能幫助您。要使用幫助,選中您有疑問的選項然后按 “?” 鍵。

編譯和安裝內核

make dep; make clean

一旦您的內核配置完畢,就可開始編譯它了。在我們能編譯它前,我們需要生成依賴(dependency)信息并清除任何老的”編譯結果”。這可以通過在 /usr/src/linux 下輸入 make dep; make clean 完成。

make bzImage

現(xiàn)在是編譯真正的二進制內核映像時候了。輸入 make bzImage。過幾分鐘后,編譯會結束而且您在 /usr/src/linux/arch/i386/boot(x86 PC 內核)目錄下找到 bzImage 文件。我們將待會告訴您如何安裝這個新內核,但是現(xiàn)在我們要看看模塊編譯了。

編譯模塊

現(xiàn)在我們有了 bzImage,下面要編譯模塊了。即使您在配置內核時沒有使用任何模塊,也不要跳過此步驟在編譯完 bzImage 后立刻編譯模塊是個好習慣。而且,如果您真的沒有模塊需要編譯,這個步驟也非??炀徒Y束了。輸入 make modules; make modules_install。這將導致模塊被編譯而且被安裝到 /usr/lib/ 目錄下。

祝賀您!您的內核已經被編譯完成了,您的內核模塊也編譯完成并被安裝。現(xiàn)在是要重新配置 LILO,這樣您能使用新的內核。

啟動配置

LILO 入門

現(xiàn)在是最后來重新配置 LILO 的時候了,它將負責載入新的內核。LILO 是更流行的 Linux 引導工具,而且為所有的主流 Linux 發(fā)行商所采用。您要作的之一件事是察看您的 /etc/lilo.conf 文件。它將包含一行看似 “image=/vmlinuz” 的語句。該語句告訴 LILO 到何處找到內核。

啟動配置, 第二部分

要配置 LILO 來使用新的內核,您有兩種選擇。之一個是覆蓋您現(xiàn)有的內核除非您手頭上有一些緊急啟動措施如還有此內核的引導盤,這很危險的方法。

更為安全的選擇是配置 LILO 是得它能從新的或舊的內核引導。LILO 可配置成從新內核缺省啟動,但仍提供一種方法讓您遇上問題時能選擇舊的內核來啟動。這是推薦的作法,也是我們將隨后介紹的方法。

啟動配置, 第三部分

您的 lilo.conf 文件有可能看起來如下:

boot=/dev/hda

delay=20

vga=normal

root=/dev/hda1

read-only

image=/vmlinuz

label=linux

要在您的 lilo.conf 文件中增添新的項目,參見下列步驟。首先,拷貝 /usr/src/linux/arch/i386/boot/bzImage 到您的根(root)分區(qū)上的一個文件,例如 /vmlinuz2。一旦拷貝完畢,復制您 lilo.conf 文件的最后三行并將它們添加到該文件的最后… 我們即將結束整個步驟了…

啟動配置, 第四部分

現(xiàn)在,您的 lilo.conf 文件應該看起來如下:

boot=/dev/hda

delay=

vga=normal

root=/dev/hda1

read-only

image=/vmlinuz

label=linux

image=/vmlinuz

label=linux

首先,將之一個 “image=” 行改為 “image=/vmlinuz2″。其次,將第二個 “l(fā)abel=” 行改為 “l(fā)abel=oldlinux”。然后,確定在文件的開始有一行 “delay=20″如果沒有,增添一行。如果它已經存在,將數(shù)字至少設為 20。

啟動配置, 第五部分

您最后的 lilo.conf 文件將看起來如下:

boot=/dev/hda

delay=

vga=normal

root=/dev/hda

read-only

image=/vmlinuz

label=linux

image=/vmlinuz

label=oldlinux

作完這些修改后,您將需要以 root 身份運行 “l(fā)ilo”。這非常重要!如果您不執(zhí)行此步,啟動的過程無法繼續(xù)。運行 “l(fā)ilo” 將給 lilo 一個機會來更新它的啟動映射。

啟動配置, 詳解

現(xiàn)在我們詳細地解釋一下我們所作的改動。這個 lilo.conf 文件可以用來允許您啟動兩個不同的內核。它允許您啟動您原來的內核,位于 /vmlinuz 目錄下。它也允許您啟動新的內核,位于 /vmlinuz2 目錄下。在缺省情況下,它將嘗試啟動您的新內核(指向新內核的 image/label 行首先出現(xiàn)在配置文件中)。

如果,出于某種原因,您需要啟動舊內核,只需在重新啟動計算機時按住 Shift 鍵。LILO 將會監(jiān)測到此操作,然后允許您輸入要啟動的映像標簽名。要啟動舊內核,您需要輸入 “oldlinux”,然后按回車鍵。要看到有哪些選擇,您可按 TAB 鍵。

1 是手動選擇在開機時候按方上下方向鍵 界面會停留在選擇內核的界面談派斗

2 自動選擇 系統(tǒng)默認會選擇最新安裝的內核.如果要更改默認使用的內核則修改

配置文件

/boot/grub/menu.lst(直接修改grub.conf同樣可行 )下default默羨蘆認為0是表示之一個菜單選項(開機時的內核選擇含磨菜單),改為1就是使用第二個菜單項了。timeout表示菜單等待時間,單位為秒。

開機自檢以知渣猛后,會加載grub 這里會有兩個內核,如果你保留了原內核的話。只要按一下上下鍵選擇搭橋,然后回車就可以了。。。如果要修改為開機自動以某個內核為默認內核,那么修改一下

/boot/grub/grub.conf就可以了。。。0為之一個內核,1為第二個。上梁激邊的是0,下邊的是1

首先, 下kernel源碼, 編譯賣森新內核兄鉛, 然后修改/boot/grub/grub.conf, 加一個新item, 最后reboot.

reboot后,參考hack_qyt的意見.

下面是我自己新加羨配好的項( in /boot/grub/grub.conf), 供你參考.

#ID: 12

title=Gentoo Linux 2.6.35.7(my_kernel working,T410i,ntfs R, RF FS updated,FUSE knl supp, wifi, u2serial,nfs,acpi_lighting_adj)

root (hd0,4)

kernel /boot/kernel-2.6.0058 root=/dev/sda5 ramdisk=8192 hdc=ide-scsi

基于設備樹的內核linux 啟動的介紹就聊到這里吧,感謝你花時間閱讀本站內容,更多關于基于設備樹的內核linux 啟動,設備樹支持下的Linux內核啟動過程簡介,linux下的五大啟動管理程序,linux啟動時怎么選擇新舊內核的信息別忘了在本站進行查找喔。

創(chuàng)新互聯(lián)成都網站建設公司提供專業(yè)的建站服務,為您量身定制,歡迎來電(028-86922220)為您打造專屬于企業(yè)本身的網絡品牌形象。
成都創(chuàng)新互聯(lián)品牌官網提供專業(yè)的網站建設、設計、制作等服務,是一家以網站建設為主要業(yè)務的公司,在網站建設、設計和制作領域具有豐富的經驗。


本文標題:設備樹支持下的Linux內核啟動過程簡介(基于設備樹的內核linux啟動)
文章源于:http://m.5511xx.com/article/dhdsecc.html