一 linux 核心配置
(1)修改makefile新增自己的交叉開發工具鏈
#arch
?= $(subarch)
#cross_compile
?=#cross_compile
?= $(config_cross_compile:"%"=%)
#新增的自己的平台和開發工具鏈
arch = arm
cross_compile = arm-cortex_a8-linux-gnueabi-
(2)新增配置檔案
第一種方法:
[1]將平台預設的配置檔案拷貝到linux核心的頂層目錄,命名為.config
例如:cp arch/arm/configs/s5pc100_defconfig .config
[2]通過make menuconfig命令配置一下核心
第二種方法:
[1]make 預設配置檔案
例如:make s5pc100_defconfig
注意:通過make menuconfig需要確認:
[1]當前平台的是否正確
[2]是通過那個串列埠輸出資訊
[3]需要配置的裝置驅動和服務
(3)make 編譯核心
頂層目錄:vmlinux elf格式的linux核心
arch/arm/boot/image 去掉elf頭和符號資訊之後的linux核心
arch/arm/boot/zimage 通過gzip壓縮後,新增了自解壓**之後的linux核心
arch/arm/boot/compressed/vmlinux 通過gzip壓縮後,新增了自解壓**之後的linux核心(elf格式)
二 kconfig和makefile
1.makefile : 完成對檔案編譯
基本語法
[1]obj-y += dir/ 或 obj-y += file
表示對應目錄需要編譯進核心或指定的檔案需要編譯進核心
[2]obj-config_*** += dir/ 或 obj-config_*** += file
表示對應目錄或檔案是否需要編譯進核心,取決於config_***巨集的定義
2.kconfig : 提供核心的配置選單選項
配置選項
config 選項名
屬性1屬性2
[1]選項名
config hello
展現的形式:config_hello,在.config檔案中定義
[2]屬性
(1)選擇型別
<1>tristate y:編譯進核心 m:編譯成模組 n:不編譯
<2>bool y:編譯進核心 n:不編譯
<3>string config_選項名="字串"
<4>int config_選項名=整數
<5>hex config_選項名=十六進製制數
(2)提示字串
prompt "提示字串"
(3)range 指定值的範圍
(4)help 幫助資訊
help
"test help ..."
(5)default 當沒有進行配置的時候,預設的選擇是什麼
例如:config hello
tristate
prompt "hello support"
default y
(6)depends on 配置選項名
[1]depends on 配置選項名
[2]depends on 配置選項名1 || 配置選項名2
[3]depends on 配置選項名1 && 配置選項名3
y:2 m:1 n:0
&& -> 最小值
|| -> 最大值
注意:如果依賴的結果為0:不可見,2:三態,1:2態
(7)select 配置選項名
當前配置選項被選中的時候,同時選擇select 指定的配置型選項
注意:(1)和(2)必須有,其它可選擇
Linux核心配置 定製配置選項
很多嵌入式開發人員都需要在linux核心中新增一些特性,以支援特別的定製硬體。arm架構的頂層kconfig檔案中,可以看到乙個名為system type的選單項。在arm system type提示後有一系列與arm架構相關的選擇項。source arch arm mach s3c2440 kco...
Linux 核心配置與編譯
嵌入式系統的乙個很重要的特性就是可移植可裁剪配置。這篇博文主要簡單總結下在x86體系下配置編譯核心的過程。取得原始碼後的步驟就是配置核心。使用make menuconfig命令,配置成功後儲存會在核心源 目錄下生成乙個.config檔案。這個檔案是隱藏的,需要用ls a命令才可看到。配置選項比較多,...
linux核心配置與編譯
linux核心配置與編譯 1.清除臨時檔案 1.make clean 刪除產生的檔案,但儲存配置。2.make mrproper 刪除產生的檔案同時刪除配置 3.make distclean 刪除mrproper並且刪除補丁之類的。2 對確定的目標系統的軟硬體配置情況。比如cpu 網絡卡型號,所需支...