1. 程式人生 > >Linux核心配置系統-Kconfig和Makefile引數講解

Linux核心配置系統-Kconfig和Makefile引數講解

下面講解一個綜合例項,假設我們要在核心原始碼drivers目錄下為ARM體系結
構新增如下用於test driver 的樹型目錄:
|--test
|-- cpu
| -- cpu.c
|-- test.c
|-- test_client.c
|-- test_ioctl.c
|-- test_proc.c
|-- test_queue.c
在核心中增加目錄和子目錄,我們需為相應的新增目錄建立Kconfig 和Makefile
檔案,而新增目錄的父目錄中的Kconfig 和Makefile 檔案也需要修改,以便新增的
Kconfig和Makefile檔案能被引用。
在新增的test目錄下,應該包含如下Kconfig檔案:
#
# TEST driver configuration
#
menu "TEST Driver "
comment " TEST Driver"
config CONFIG_TEST
bool "TEST support "
config CONFIG_TEST_USER
tristate "TEST user-space interface"
depends on CONFIG_TEST
endmenu
由於TEST driver 對於核心來說是新的功能,所以首先需要建立一個選單TEST
Driver;然後顯示“TEST support”,等待使用者選擇;接下來判斷使用者是否選擇了TEST
Driver,如果是(CONFIG_TEST=y),則進一步顯示子功能:使用者介面與CPU功能支
持;由於使用者介面功能可以被編譯成核心模組,所以這裡的詢問語句使用了tristate。
為了使這個Kconfig檔案能起作用,需要修改arch/arm/Kconfig檔案,增加以下內
容:
source "drivers/test/Kconfig"
指令碼中的source意味著引用新的Kconfig檔案。
在新增的test目錄下,應該包含如下Makefile檔案:
# drivers/test/Makefile
#
# Makefile for the TEST.
#
obj-$(CONFIG_TEST) += test.o test_queue.o test_client.o
obj-$(CONFIG_TEST_USER) += test_ioctl.o
obj-$(CONFIG_PROC_FS) += test_proc.o
obj-$(CONFIG_TEST_CPU) += cpu/
該指令碼根據配置變數的取值構建obj-*列表。由於test目錄中包含一個子目錄cpu,
當CONFIG_ TEST_CPU=y時,需要將cpu目錄加入列表。
test目錄中的cpu子目錄也需包含如下的Makefile檔案:
# drivers/test/test/Makefile
#
# Makefile for the TEST CPU
#
obj-$(CONFIG_TEST_CPU) += cpu.o
為了使得整個test 目錄能夠被編譯命令作用到,test 目錄父目錄中的Makefile 文
件也需新增如下指令碼:
obj-$(CONFIG_TEST) += test/
在drivers/Makefile中加入obj-$(CONFIG_TEST) += test/,使得使用者在進行核心編
譯時能夠進入test目錄。
增加了Kconfig和Makefile檔案之後的新的test樹型目錄如下所示:
|--test
|-- cpu
| -- cpu.c
| -- Makefile
|-- test.c
|-- test_client.c
|-- test_ioctl.c
|-- test_proc.c
|-- test_queue.c
|-- Makefile
|-- Kconfig

相關推薦

Linux核心配置系統-KconfigMakefile引數講解

下面講解一個綜合例項,假設我們要在核心原始碼drivers目錄下為ARM體系結 構新增如下用於test driver 的樹型目錄: |--test |-- cpu | -- cpu.c |-- test.c |-- test_client.c |-- test_ioctl.c |-- test_proc.c

linux核心自旋鎖中斷知識講解

一、併發與競態三個要點 1、只要併發的執行單元同時訪問共享記憶體是就會出現競態 2、解決競態的唯一途徑是保證共享資源的互斥訪問,即一個執行單元在訪問共享資源時,其他的執行單元被禁止訪問。 3、

linux 核心配置機制(make menuconfig、Kconfigmakefile講解

前面我們介紹模組程式設計的時候介紹了驅動進入核心有兩種方式:模組和直接編譯進核心,並介紹了模組的一種編譯方式——在一個獨立的資料夾通過makefile配合核心原始碼路徑完成     那麼如何將驅動直接編譯進核心呢?     在我們實際核心的移植配置過程中經常聽說的核心裁剪又

Linux核心配置編譯過程詳解

一、引言:  本文件的內容大部份內容都是從網上收集而來,然後配合一些新的截 圖(核心版本:V2.4.19)。在每一配置項後會有一個選擇指南的部份,用來指導大家怎麼樣 根據自己的情況來做相應的選擇;還有在每一個大項和文件的最後會有一個經驗談,它是一些高手們在應對問題和處理特有

Linux Collection:系統資訊配置

PAS Linux系統配置相關檔案 /etc 目錄中是系統和各類軟體的配置檔案 /var/log 系統日誌 /proc 系統執行資訊 PAS /boot空間不足 檢視核心 dpkg --get-selections | grep linux 刪除舊的核心

【ZYNQ_LINUX】如何把自己的驅動編譯進核心或模組(KconfigMakefile

linux驅動編寫(Kconfig檔案和Makefile檔案) feixiaoxing 2013年09月08日 17:12 5502 【 宣告:版權所有,歡迎轉載,請勿用於商業用途。  聯絡信箱:feixiaoxing @163.com】      在linux編寫驅動的過程中,有兩個檔案是我們必須

Linux核心配置Kconfig語法

何為Kconfig 它的作用是什麼 核心原始碼編譯過程 遍歷每個原始碼目錄(或配置指定的原始碼目錄)Makefile 每個目錄的Makefile 會根據Kconfig來定製要編譯物件 回到頂層目錄的Makeifle執行編譯 那麼我們就得出

linux/核心/gcc/make版本系統位數 查詢命令

1 檢視linux版本lsb_release -a    適合用所有的linux版本 Ubuntu Redhat Debian rpm -q redhead-release     適用Redhatc

如何把自己的驅動編譯進核心或模組(KconfigMakefile

DIY:向核心新增自己的程式 A.在Linux核心中增加自己的程式步驟(注意這裡只是程式檔案): 1.將編寫的原始碼複製到Linux核心原始碼的相應目錄中。 2.在目錄的Kconfig檔案中增加新原始碼對應專案的編譯配置選項 3.在目錄的Makefile檔案中增加對新原始碼的編譯條目。 B.在Linux核心d

Linux如何修改系統時間時區方法

Linux如何修改系統時間和時區方法修改時區:1>找到相應的時區文件 /usr/share/zoneinfo/Asia/Shanghai用這個文件替換當前的/etc/localtime文件。或者找你認為是標準時間的服務器,然後#scp [email protected]:/etc/localtim

(手寫)mybatis 核心配置文件接口不在同一包下的解決方案

內置 中間 configure idea pan 數據源配置 uil 基礎 主目錄 smart-sh-mybatis項目app.xml文件中此處配置為: 1 <!-- 從整合包裏找,org.mybatis:mybatis-spring:1.2.4 -->

Linux.ext4檔案系統 .inodeextent

最近在看相關內容,不過總是不是很系統,今日看到此部落格,感覺恍然大悟,作者寫的非常棒:轉載: https://blog.csdn.net/stringNewName/article/details/73740155 為表示對作者的尊敬,一字不動的敲擊! 最近在看ext4

再探Linux核心write系統呼叫操作的原子性

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

【轉】對Linux核心中程序上下文中斷上下文的理解

轉自:http://www.embedu.org/Column/Column240.htm 核心空間和使用者空間是作業系統理論的基礎之一,即核心功能模組執行在核心空間,而應用程式執行在使用者空間。現代的CPU都具有不同的操作模式,代表不同的級別,不同的級別具有不同的功能,在較低的級別中將禁止某些

Linux核心配置選項簡介

Show timing information on printks CONFIG_PRINTK_TIME 在控制檯和syslog()系統呼叫的輸出中包含printk()訊息的時間戳,以便於直接顯示核心啟動過程中各步驟所用的時間.注意:無論此項是否開啟,時間戳總會被記錄在/dev/kmsg中,開啟

linux Nginx配置篇:gzip常用引數詳解(附使用效果驗證過程)

gzip模組是使用“gzip”方法壓縮響應的過濾器,有助於將響應傳輸的資料大小減少一半甚至更多,能有效的緩解頻寬及流量問題。以下內容均翻譯於官網使用者手冊,介紹了gzip的一些常用引數,更多配置資訊可

linux 下檢視系統資源負載,以及效能監控

 命令相關: 1,檢視磁碟 df -h 2,檢視記憶體大小 free free [-m|g]按MB,GB顯示記憶體 vmstat 3,檢視cpu cat /proc/cpuinfo 只看cpu數量    grep "model name" /pro

Linux核心之禁止中斷禁止核心搶佔

禁止中斷指的是Linux核心停工了一組介面用於操作機器上的中斷狀態。這些介面為我們提供了能夠禁止當前處理器的中斷系統,或者遮蔽掉整個機器的一條中斷線的能力。通過禁止中斷,可以確保某個中斷處理程式不會搶佔當前的程式碼。控制中斷系統在Linux的實現有很多,以local_irq

linux終端配置:顏色字型

  linux下的終端視窗,初始的是白底黑字,看久了很容易傷眼睛,建議使用這種黑底綠字,親身體會,這種比黑底白字也要服眼一些,看起來也比較高大上。      具體設定如下,先開啟終端(右鍵,open

Spring-boot中讀取核心配置檔案application自定義properties配置檔案的方式

前言:瞭解過spring-Boot這個技術的,應該知道Spring-Boot的核心配置檔案application.properties,當然也可以通過註解自定義配置檔案**.properties的資