搜尋
首頁系統教程LinuxPC機編譯核心的設定方法與設定:設定編譯

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中文網其他相關文章!

陳述
本文轉載於:ITcool。如有侵權,請聯絡admin@php.cn刪除
如何學習Linux基礎知識?如何學習Linux基礎知識?Apr 10, 2025 am 09:32 AM

Linux基礎學習從零開始的方法包括:1.了解文件系統和命令行界面,2.掌握基本命令如ls、cd、mkdir,3.學習文件操作,如創建和編輯文件,4.探索高級用法如管道和grep命令,5.掌握調試技巧和性能優化,6.通過實踐和探索不斷提陞技能。

Linux最有用的是什麼?Linux最有用的是什麼?Apr 09, 2025 am 12:02 AM

Linux在服務器、嵌入式系統和桌面環境中的應用廣泛。 1)在服務器領域,Linux因其穩定性和安全性成為託管網站、數據庫和應用的理想選擇。 2)在嵌入式系統中,Linux因其高度定制性和高效性而受歡迎。 3)在桌面環境中,Linux提供了多種桌面環境,滿足不同用戶需求。

Linux的缺點是什麼?Linux的缺點是什麼?Apr 08, 2025 am 12:01 AM

Linux的缺點包括用戶體驗、軟件兼容性、硬件支持和學習曲線。 1.用戶體驗不如Windows或macOS友好,依賴命令行界面。 2.軟件兼容性不如其他系統,缺乏許多商業軟件的原生版本。 3.硬件支持不如Windows全面,可能需要手動編譯驅動程序。 4.學習曲線較陡峭,掌握命令行操作需要時間和耐心。

Linux難以學習嗎?Linux難以學習嗎?Apr 07, 2025 am 12:01 AM

Linuxisnothardtolearn,butthedifficultydependsonyourbackgroundandgoals.ForthosewithOSexperience,especiallycommand-linefamiliarity,Linuxisaneasytransition.Beginnersmayfaceasteeperlearningcurvebutcanmanagewithproperresources.Linux'sopen-sourcenature,bas

Linux的5個基本組件是什麼?Linux的5個基本組件是什麼?Apr 06, 2025 am 12:05 AM

Linux的五個基本組件是:1.內核,管理硬件資源;2.系統庫,提供函數和服務;3.Shell,用戶與系統交互的接口;4.文件系統,存儲和組織數據;5.應用程序,利用系統資源實現功能。

Ubuntu Home Automation:使用開源工具建立智能的居住空間Ubuntu Home Automation:使用開源工具建立智能的居住空間Apr 05, 2025 am 09:19 AM

開啟智能家居新篇章:基於Ubuntu的開源家庭自動化系統 智能家居技術徹底改變了我們與生活空間的互動方式,為日常生活帶來了便利、安全和能源效率。從遠程控制燈光和電器,到監控安全攝像頭和自動化氣候控制,智能家居技術變得越來越普及。 然而,許多商業智能家居系統存在局限性:高昂的成本、隱私問題以及有限的兼容性。幸運的是,開源軟件解決方案結合Ubuntu的強大功能,提供了一種替代方案——允許用戶創建可定制、經濟高效且安全的智能家居生態系統。 本指南將探討如何使用Ubuntu和開源工具設置家庭自動化系統。

Linux vs. Windows:什麼是2025年的差異?Linux vs. Windows:什麼是2025年的差異?Apr 05, 2025 am 09:05 AM

Linux與Windows:2025比較 考慮從MacOS或Windows切換? Linux可能是答案。 儘管MacOS用戶會發現相對平滑的過渡(由於MacOS的UNIX Core),但Windows用戶需要適應。此指南HIG

什麼是Linux設備?什麼是Linux設備?Apr 05, 2025 am 12:04 AM

Linux設備是運行Linux操作系統的硬件設備,包括服務器、個人電腦、智能手機和嵌入式系統。它們利用Linux的強大功能執行各種任務,如網站託管和大數據分析。

See all articles

熱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.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

記事本++7.3.1

記事本++7.3.1

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

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具