導航:首頁 > 源碼編譯 > 內核的配置和編譯原理

內核的配置和編譯原理

發布時間:2022-04-01 17:31:54

① 配置linux內核的時候,驅動的靜態編譯和動態編譯有什麼區別

驅動的動態編譯會生成.ko文件,系統啟動後需要載入該驅動後才能使用相應設備。
而靜態編譯則直接編譯進內核,系統啟動的時候會自動載入該驅動。
靜態編譯太多驅動至內核,會導致內核體積過大,啟動時間較長。而動態編譯則比較自由靈活,需要用的時候即載入,不需要的時候即卸載。我以前在EasyARM-iMX280的學習手冊里看到寫得很清楚,你可以去看看的。

② linux內核裁剪是否指的就是通過make menuconfig進行內核配置編譯

就是通過menuconfig選擇適合某平台(如arm)的功能,將多餘的東西屏蔽掉,再生產一個鏡像文件,就可以說是剪裁內核了。
裁剪Linux不一定要對內核源碼了如指掌,當然能學就多學點還是必須的。
可以看看《構建嵌入式Linux系統》,好像是這個名,記不清楚了。紅白色封面的。另外建議購買一個ARM開發板,一般買開發板都是送相應的Linux內核源碼。你可以任意配置給內核,加入你想要的功能,刪掉無用的功能。這樣上手非常快。

③ rootfs 是編譯到內核內還是另外載入

rootfs 是編譯到內核內還是另外載入
linux內核中Kconfig文檔的作用
2.6內核的源碼樹目錄下一般都會有兩個文文:Kconfig和Makefile。分布在各目錄下的Kconfig構成了一個分布式的內核配置資料庫,每個Kconfig分別描述了所屬目錄源文件相關的內核配置菜單。在內核配置make menuconfig(或xconfig等)時,從Kconfig中讀出配置菜單,用戶配置完後保存到.config(在頂層目錄下生成)中。在內核編譯時,主Makefile調用這個.config,就知道了用戶對內核的配置情況。
上面的內容說明:Kconfig就是對應著內核的配置菜單。假如要想添加新的驅動到內核的源碼中,可以通過修改Kconfig來增加對我們驅動的配置菜單,這樣就有途徑選擇我們的驅動,假如想使這個驅動被編譯,還要修改該驅動所在目錄下的Makefile。

④ Linux內核配置與編譯相關流程

linux內核配置與編譯相關流程1、清除臨時文件、中間文件和配置文件
make
clean
不刪除配置文件。
make
mrproper
make
distclean
刪除編輯的backup文件、補丁文件等2、確定目標系統的軟硬體配置情況,比如CPU的類型,網卡的型號,所需要支持的網路協議。3、使用命令配置內核
make
config
基於文本模式的交互配置。
make
menuconfig
基於文本模式的菜單配置。
make
oldconfig
使用已有的配置文件(.config),但是會詢問新增的配置選項。
make
xconfig
圖形化的配置(需要安裝圖形化系統)。4、編譯內核
make
zImage
make
bzImage
區別:在X86平台上,zImage只能用於小雨512k內核。如果需要獲取詳細編譯信息,則在後面加上V=1.
編譯好的內核位於arch/<cpu>/boot/目錄下。
5、編譯內核模塊
make
moes
6、安裝內核模塊
make
moes_install
將編譯好的內核模塊從內核源代碼目錄到/lib/moes下。7、製作
init
ramdisk
mkinitrd
$initrd-$version
-$version內核安裝(X86)1、cp
arch/X86/boot/bzImage
/boot/vmliuz
-$version2、cp
$initrd
/boot/3、修改etc/grub.conf

/etc/lilo.conf$version為所編譯的內核版本號。

⑤ linux內核配置與編譯時,下載來的內核源代碼應該放在哪呢

隨便就行,/usr/src/linux 放當前運行中的內核源代碼的習慣你可以遵守,也可以不遵守。
只不過是一些軟體在編譯時會固定到這里找內核源代碼的相關數據來保證自己的內核模塊可以正確編譯。不過有些時候 /usr/mole 裡面的內核目錄裡面也有到你的源代碼目錄的鏈接。很多軟體兩個地方找到一個就能繼續編譯。

反正你安裝內核後,最好不要再動這個內核源代碼的位置就行了。其實需要內核源代碼的軟體也沒幾個。除了 udev ,我也就只能想起還有顯卡驅動了。另外你如果用了虛擬機軟體,那就還有虛擬機軟體運行時需要的內核模塊需要。不過也都是在編譯時才需要。運行是不需要的(但改了內核版本,肯定是要重新編譯內核模塊的)。

⑥ Linux驅動開發 前 為什麼要配置編譯內核

編譯前當然要配置一下內核啊,make menuconfig ,生成默認配置文件 .config ,這個文件是設置 cpu 體系,及很多驅動選項的,你沒配置這個,怎麼可能編譯那

前面那個說 linux 和微軟競爭是扯淡的那位,我只能說你根本不懂內核編譯,無知

新下載的內核都是沒有默認 .config 需要你找到一個默認的config 文件,比如 arch/arm/configs/ 下是 arm cpu 很多的默認配置,當然你也可以把你以前的 config 文件拷貝到新內核目錄下。

.config 是配置編譯內核的最初步驟,你要編譯驅動程序,就必須要了解這個,多上網查下資料

然後重新編譯

⑦ Linux編譯內核的時候為什麼又需要我重新配置,內核配置文件是從arm/configs 裡面拷貝過來的

檢查一下.config許可權,應該至少有當前用戶讀寫許可權。
還有一種就是,編譯時提示配置的選項是未被配置過的,即.config中沒有這些配置記錄。

⑧ 驅動編譯進內核和編譯模塊的區別

linux內核中Kconfig文檔的作用 2.6內核的源碼樹目錄下一般都會有兩個文文:Kconfig和Makefile。分布在各目錄下的Kconfig構成了一個分布式的內核配置資料庫,每個Kconfig分別描述了所屬目錄源文件相關的內核配置菜單。在內核配置make menuconfig

⑨ 請簡述嵌入式linux內核的編譯過程

編譯及安裝簡要步驟:
編輯Makefile版本信息

定義內核特性,生成配置文件.config,用於編譯:make xconfig

編譯內核:make

安裝內核:make install

安裝模塊:make moles_install

具體步驟如下:

內核配置

先定義內核需要什麼特性,並進行配置。內核構建系統(The kernel build system)遠不是簡單用來構建整個內核和模塊,想了解更多的高級內核構建選項,你可以查看 Documentation/kbuild 目錄內的內核文檔。

可用的配置命令和方式:

make menuconfig

命令:make menuconfig

編譯內核

編譯和安裝內核

編譯步驟:

$ cd /usr/src/linux2.6

$ make

安裝步驟 (logged as

$ make install

$ make moles_install

提升編譯速度

多花一些時間在內核配置上,並且只編譯那些你硬體需要的模塊。這樣可以把編譯時間縮短為原來的1/30,並且節省數百MB的空間。另外,你還可以並行編譯多個文件:

$ make -j <number>

make 可以並行執行多個目標(target)(KEMIN:前提是目標規則間沒有交叉依賴項,這個怎麼做到的?)

$ make -j 4

即便是在單處理器的工作站上也會很快,讀寫文件的時間被節省下來了。多線程讓CPU保持忙碌。

number大於4不見得有效了,因為上下文切換過多反而降低的工作的速度。

make -j <4*number_of_processors>

內核編譯tips

查看完整的 (gcc, ld)命令行: $ make V=1

清理所有的生成文件 (to create patches...): $ make mrproper

部分編譯:$ make M=drivers/usb/serial

單獨模塊編譯:$ make drivers/usb/serial/visor.ko

最終生成的文件

vmlinux 原始內核鏡像,非壓縮

arch/<arch>/boot/zImage zlib壓縮的內核鏡像(Default image on arm)

arch/<arch>/boot/bzImage bzip2壓縮的內核鏡像。通常很小,足夠放入一張軟盤(Default image on i386)

閱讀全文

與內核的配置和編譯原理相關的資料

熱點內容
12864液晶與單片機的連接 瀏覽:23
伺服器上的bmc是什麼 瀏覽:627
伺服器怎麼測量網路延遲 瀏覽:601
打掃衛生解壓視頻vlog 瀏覽:271
半封閉活塞製冷壓縮機 瀏覽:397
如何刪除存檔的文件夾 瀏覽:833
基於單片機的參考文獻 瀏覽:913
壓縮空氣管道安全 瀏覽:768
哪個英語app比較好 瀏覽:217
進貨app怎麼樣 瀏覽:517
c語言編譯軟體免費嗎 瀏覽:250
怎麼把appstotre改成中文 瀏覽:441
html如何連接伺服器 瀏覽:572
linux下如何創建文件 瀏覽:699
三洋空調壓縮機參數 瀏覽:201
加密貓背後的故事 瀏覽:253
陝西不聽命令 瀏覽:368
怎麼把皮皮蝦app表情弄到微信 瀏覽:291
安卓編譯springboot 瀏覽:397
手機壁紙文件夾背景 瀏覽:793