首頁 系統教程 Linux PC機編譯核心的設定方法與設定:設定編譯

PC機編譯核心的設定方法與設定:設定編譯

Mar 13, 2024 pm 02:52 PM
pc機 編譯內核

PC機編譯核心的設定方法與設定:設定編譯

Thisisfreesoftware;seethesourceforcopyingconditions.ThereisNO

warranty;notevenforMERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.

附註:arm的工具鏈,可以從這裡下載:回覆「ARM」即可查看。

二、設定編譯目標

在配置或編譯核心之前,首先要確定目標CPU構架,以及編譯時採用哪些工具鏈。這是最最基礎的訊息,首先要確定的。

假如你是為目前使用的PC機編譯內核,則無須設定。

否則的話嵌入式linux 培訓,就要明晰設定。

這兒以arm為例,來說明。

有兩種設定方式():

a)更改Makefile

開啟核心原始碼根目錄下的Makefile,變更以下兩個Makefile變數並儲存。

ARCH:=arm

CROSS_COMPILE:=arm-linux-

注意,這兒cross_compile的設置,是假設所使用的交叉工具鏈的gcc程式名稱為arm-linux-gcc。假如實際使用的gcc名稱是some-thing-else-gcc,則這兒照葫蘆畫瓢填some-thing-else-即可。反正,要省去名稱中最後的gcc那3個字母。

b)每次執行make指令時,都會透過命令列參數傳入此訊息。

這似乎是透過make工具的命令列參數指定變數的值。

比如

配置內核時,使用

makeARCH=armCROSS_COMPILE=arm-linux-menuconfig

編譯核心時使用

makeARCH=armCROSS_COMPILE=arm-linux-

注意,實際上,對於編譯PC機核心的情況,即使使用者沒有明晰設置,但並不是這兩項沒有配置。由於假如用戶沒有設定這兩項,核心原始碼頂樓Makefile(坐落源碼根目錄下)會透過以下方法產生這兩個變數的值。

SUBARCH:=$(shelluname-m|sed-es/i.86/i386/-es/sun4u/sparc64/

-es/arm.*/arm/-es/sa110/arm/

-es/s390x/s390/-es/parisc64/parisc/

-es/ppc.*/powerpc/-es/mips.*/mips/

-es/sh[234].*/sh/)

ARCH?=$(SUBARCH)

CROSS_COMPILE?=

經過前面的程式碼,ARCH弄成了PC編譯機的arch,即SUBARCH。為此,假如PC機上uname-m輸出的是ix86,則ARCH的值就成了i386。

而CROSS_COMPILE的值,倘若沒配置,則為空字串。這樣一來所使用的工具鏈程式的名稱,就不再有類似arm-linux-這樣的前綴,就等於是使用了PC機上的gcc。

最後再多說兩句,ARCH的數值還須再進一步做泛化。由於核心原始碼的arch目錄下,不存在i386這個目錄,也沒有sparc64這樣的目錄。

因而頂樓makefile中又構造了一個SRCARCH變量,透過如下程式碼,產生他的值。這樣一來,SRCARCH變量,才最終匹配到內核原始碼arch目錄中的某一個架構名稱。

SRCARCH:=$(ARCH)

ifeq($(ARCH),i386)

SRCARCH:=x86

endif

ifeq($(ARCH),x86_64)

SRCARCH:=x86

endif

ifeq($(ARCH),sparc64)

SRCARCH:=sparc

endif

ifeq($(ARCH),sh64)

SRCARCH:=sh

endif

三、配置核心

核心的功能這麼多,我們必須要什麼部份,每位部份編譯成哪些方式(編進核心還是編成模組),每位部份的工作參數怎樣,那些都是可以配置的。為此,在開始編譯之前,我們須要建立出一份配置清單,放在內核源碼根目錄下,命名為.config文件,之後按照此.config文件,編譯出我們須要的內核。

然而,核心的配置項目太多了,一個一個配linux設定環境變量,太麻煩了。並且,不同的CPU構架,所能配置的配置項目集合arm linux核心中arm中斷實作詳解,是不一樣的。諸如,某種CPU的某個功能特點要不要支援的配置項目arm linux核心中arm中斷實作詳解,就是與CPU構架有關的配置項目。所以,核心提供了一種簡單的配置方式。

以arm為例,具體做法如下。

a)依據我們的目標CPU架構,從核心原始碼arch/arm/configs目錄下,找一個與目標系統最接近的設定檔(例如s3c2410_defconfig),拷貝到核心原始碼根目錄下,命名為.config 。

注意,假若你是為目前PC機編譯內核,最好拷貝如下檔到內核原始碼根目錄下,做為初始設定檔。這個文件,是PC機目前運行的核心編譯時所使用的設定檔。

/lib/modules/`uname-r`/build/.config

這兒順便多說兩句,PC機核心的設定文件,選擇的功能真是多。不編不曉得,一編才曉得。 Linux發行方這樣做的目的,可能是想讓所發行的Linux才能滿足使用者各類的需求吧。

b)執行makemenuconfig對此組態做一些須要的更改,退出時選擇儲存,就將新的設定更新到.config檔中了。

以上是PC機編譯核心的設定方法與設定:設定編譯的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

用sed命令掌握文本操縱 用sed命令掌握文本操縱 Mar 16, 2025 am 09:48 AM

用sed命令掌握文本操縱

PILET:由Raspberry Pi提供動力的模塊化,便攜式迷你計算機 PILET:由Raspberry Pi提供動力的模塊化,便攜式迷你計算機 Mar 06, 2025 am 10:11 AM

PILET:由Raspberry Pi提供動力的模塊化,便攜式迷你計算機

Linux內核源代碼超過4000萬行 Linux內核源代碼超過4000萬行 Mar 05, 2025 am 09:35 AM

Linux內核源代碼超過4000萬行

如何計算Linux中的文件和目錄:初學者指南 如何計算Linux中的文件和目錄:初學者指南 Mar 19, 2025 am 10:48 AM

如何計算Linux中的文件和目錄:初學者指南

用Liquorix內核增強Linux系統的秘密武器 用Liquorix內核增強Linux系統的秘密武器 Mar 08, 2025 pm 12:12 PM

用Liquorix內核增強Linux系統的秘密武器

構建自己的Ubuntu個人云:創建安全數據天堂的分步指南 構建自己的Ubuntu個人云:創建安全數據天堂的分步指南 Mar 05, 2025 am 11:02 AM

構建自己的Ubuntu個人云:創建安全數據天堂的分步指南

如何將用戶添加到Linux中的多個組 如何將用戶添加到Linux中的多個組 Mar 18, 2025 am 11:44 AM

如何將用戶添加到Linux中的多個組

System76介紹Meerkat Mini PC:小包裝中的大功能 System76介紹Meerkat Mini PC:小包裝中的大功能 Mar 05, 2025 am 10:28 AM

System76介紹Meerkat Mini PC:小包裝中的大功能

See all articles