當前位置:首頁 » 編程軟體 » linux內核編譯menuconfig

linux內核編譯menuconfig

發布時間: 2022-08-12 14:01:47

Ⅰ 如何把設備驅動文件添加到linux內核編譯選項配置的menuconfig中

1.首先保證已經有驅動源文件了:as352x_afe_charger.c
放在和其他你所要添加的模塊放在一個目錄下,此處是drivers\i2c\chips下。
2.在drivers\i2c\chips\makefile中,添加:
obj-$(CONFIG_AS352X_AFE_CHG) += as352x_afe_charger.o
3.在drivers\i2c\chips\Kconfig
中,添加如下內容:
---------------------無敵分割線-------------------------
config AS352X_AFE_CHG
tristate "AS352X AFE Charger Driver"
depends on I2C_AS352X && AS352X_AFE
help
If you say yes here you get support for AS352X AFE Charger.
This driver can also be built as a mole. If so, the mole
will be called AS352X AFE Charger.
---------------------無敵分割線-------------------------
解釋如下:
(1)AS352X_AFE_CHG是自己定義的名字,當然要盡量保證有意義。
同時,你會注意到,在上面的makefile中添加的
obj-$(CONFIG_AS352X_AFE_CHG) += as352x_afe_charger.o
中的CONFIG_AS352X_AFE_CHG,是CONFIG_加上我們在kconfig下寫的config變數。
這兩個要匹配,才能實現你在menconfig定義的結果,傳遞到makefile中,
以便決定編譯的時候是如何編譯:不編譯/編譯進內核/編譯成模塊
(2)tristate 表示我此處添加的模塊,可以
在make ARCH=arm menuconfig中看到的,選擇之後:
* 編譯到內核中
M 編譯成模塊,即生成XXX.ko
不選中,就不編譯該文件
(3)depends on I2C_AS352X && AS352X_AFE
是前面自己找到的,表示此編譯選項只有當I2C_AS352X 和AS352X_AFE都選中,才會出現。
當然,如果此模塊不依賴於其他模塊,則不需要加上這個depends on了。
【附錄】
1.如果設置成M,mole模式,則要用
make ARCH=arm
編譯出as352x_afe_charger.ko

make ARCH=arm uImage
只能編譯內核,而不編譯模塊。

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

你好,menuconfig文件裡面信息是根據當前子目錄下的 kconfig文件生成的,而其編譯過程是根據Makefile文件來決定的。所以make menuconfig菜單里的選項都是根據配置文件產生的,通常是硬體驅動程序。

Ⅲ 想知道linux 的內核開發中 make menuconfig

這道題太寬泛。實際上只是讓你范范而談一下對內核的基本認識情況。由於是宏內核,包含太多驅動。從編譯出系統的角度看,必要的東西一般默認選項都選好了。比如模塊化驅動,使用時才載入驅動模塊進內核等選項。內存驅動,顯存驅動緩存片管理等等,文件驅動,匯流排, cpu,等等。

一般情況下是根據你電腦硬體或者是開發的cpu嵌入式的情況來裁剪。所以我認為這個面試問題很大,很寬泛,很麻煩,往往涉及太多要考慮的情況。

我認為這個問題很難有標准答案,你只要在面試中體現出你對內核包含那些東西的了解就行了。

Ⅳ 誰知到編譯Linux內核時make menuconfig各選

你好,menuconfig文件裡面信息是根據當前子目錄下的 kconfig文件生成的,而其編譯過程是根據Makefile文件來決定的。所以make menuconfig菜單里的選項都是根據配置文件產生的,通常是硬體驅動程序。

關於menuconfig的詳細解釋可以參考下面的文章,把菜單的生成過程講解的很詳細,希望能夠幫到你
祝你的問題早日得到解決~~

文章地址:http://blog.csdn.net/mc_hust/article/details/33737265

Ⅳ 剛剛開始學習Linux,不知道Make menuconfig怎麼使用

Linux內核的make menuconfig實際上是執行了:

scripts/kconfig/mconf arch/mips/Kconfig

mconf表示是 menuconfig,如果是用基於QT的配置工具,則執行的將會是qconf,arch/mips/Kconfig是要讀取的Kconfig文件,這個會因平台而異,這里因為針對的是MIPS平台,故讀取的是arch/mips/目錄下的Kconfig文件。

如果Linux源碼樹頂層目錄下已有.config文件,make menuconfig則從.config文件取默認參數,如果沒有.config則從各個Kconfig中取默認參數。

mconf會把用戶的選擇保存到Linux源碼樹頂層目錄的.config文件中,然後解析該文件並將解析結果寫入到include/linux/autoconf.h 中。include/linux/autoconf.h將會被include/linux/config.h包含,因此,需要關心配置情況的內核源文件只需要#include <linux/config.h>即可。

mconf解析.config文件時所採用的規則具體要仔細分析mconf.c源代碼。

Ⅵ linux內核編譯和根文件系統製作過程

內核編譯:
make
menuconfig配置相應的平台,然後保存退出直接make命令就可以編譯了。
文件系統製作:
一般都用busybox開源軟體來做,下載,解壓,然後make
menuconfig配置你想要的屬性,然後保存退出,make就可以了,然後make
install就會在目錄下看到__install的目錄就是你要的根文件系統目錄了。

Ⅶ Linux內核編譯make menuconfig出錯

到內核源碼解壓的目錄下執行呀 。。。

Ⅷ 如何make menuconfig

整個linux內核配置過程中,留給用戶的介面其實只有各層Kconfig、makefile文件以及對應的源文件。
我們如果想要給內核增加一個功能,並且通過make menuconfig控制其生成過程
首先需要做的工作是:修改對應目錄下的Kconfig文件,按照Kconfig語法增加對應的選項;
其次執行make menuconfig選擇編譯進內核或者不編譯進內核,或者編譯為模塊,.config文件和autoconf.h文件會自動生成;
修改對應目錄下的makefile文件完成編譯選項的添加;
執行make zImage命令進行編譯。

如果不理解可以搜索相應的例案

Ⅸ 我想編譯linux內核,如何make menuconfig

請到linux內核源碼包主目錄里。
最好自己從官方網站上下,然後解壓後,cd進入源碼代碼目錄。再make menuconfig

Ⅹ linux編譯內核步驟

一、准備工作
a) 首先,你要有一台PC(這不廢話么^_^),裝好了Linux。
b) 安裝好GCC(這個指的是host gcc,用於編譯生成運行於pc機程序的)、make、ncurses等工具。
c) 下載一份純凈的Linux內核源碼包,並解壓好。

注意,如果你是為當前PC機編譯內核,最好使用相應的Linux發行版的源碼包。

不過這應該也不是必須的,因為我在我的Fedora 13上(其自帶的內核版本是2.6.33.3),就下載了一個標準的內核linux-2.6.32.65.tar.xz,並且順利的編譯安裝成功了,上電重啟都OK的。不過,我使用的.config配置文件,是Fedora 13自帶內核的配置文件,即/lib/moles/`uname -r`/build/.config

d) 如果你是移植Linux到嵌入式系統,則還要再下載安裝交叉編譯工具鏈。

例如,你的目標單板CPU可能是arm或mips等cpu,則安裝相應的交叉編譯工具鏈。安裝後,需要將工具鏈路徑添加到PATH環境變數中。例如,你安裝的是arm工具鏈,那麼你在shell中執行類似如下的命令,假如有類似的輸出,就說明安裝好了。
[root@localhost linux-2.6.33.i686]# arm-linux-gcc --version
arm-linux-gcc (Buildroot 2010.11) 4.3.5
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for ing conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
註:arm的工具鏈,可以從這里下載:回復「ARM」即可查看。

二、設置編譯目標

在配置或編譯內核之前,首先要確定目標CPU架構,以及編譯時採用什麼工具鏈。這是最最基礎的信息,首先要確定的。
如果你是為當前使用的PC機編譯內核,則無須設置。
否則的話,就要明確設置。
這里以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工具的命令行參數指定變數的值。
例如
配置內核時時,使用
make ARCH=arm CROSS_COMPILE=arm-linux- menuconfig
編譯內核時使用
make ARCH=arm CROSS_COMPILE=arm-linux-

注意,實際上,對於編譯PC機內核的情況,雖然用戶沒有明確設置,但並不是這兩項沒有配置。因為如果用戶沒有設置這兩項,內核源碼頂層Makefile(位於源碼根目錄下)會通過如下方式生成這兩個變數的值。
SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
-e s/arm.*/arm/ -e s/sa110/arm/ \
-e s/s390x/s390/ -e s/parisc64/parisc/ \
-e s/ppc.*/powerpc/ -e s/mips.*/mips/ \
-e s/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文件,編譯出我們需要的內核。

但是,內核的配置項太多了,一個一個配,太麻煩了。而且,不同的CPU架構,所能配置的配置項集合,是不一樣的。例如,某種CPU的某個功能特性要不要支持的配置項,就是與CPU架構有關的配置項。所以,內核提供了一種簡單的配置方法。

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

a) 根據我們的目標CPU架構,從內核源碼arch/arm/configs目錄下,找一個與目標系統最接近的配置文件(例如s3c2410_defconfig),拷貝到內核源碼根目錄下,命名為.config。

注意,如果你是為當前PC機編譯內核,最好拷貝如下文件到內核源碼根目錄下,做為初始配置文件。這個文件,是PC機當前運行的內核編譯時使用的配置文件。
/lib/moles/`uname -r`/build/.config
這里順便多說兩句,PC機內核的配置文件,選擇的功能真是多。不編不知道,一編才知道。Linux發行方這樣做的目的,可能是想讓所發行的Linux能夠滿足用戶的各種需求吧。

b) 執行make menuconfig對此配置做一些需要的修改,退出時選擇保存,就將新的配置更新到.config文件中了。

熱點內容
解編程解密 發布:2024-05-17 02:57:26 瀏覽:48
c語言擲骰子 發布:2024-05-17 02:11:05 瀏覽:489
eclipsepython調試工具 發布:2024-05-17 02:10:49 瀏覽:820
oracle創建表sql語句 發布:2024-05-17 02:06:38 瀏覽:252
手機建立文件夾 發布:2024-05-17 01:56:19 瀏覽:656
方舟伺服器怎麼綁定賬號 發布:2024-05-17 01:52:32 瀏覽:735
運行javajar 發布:2024-05-17 01:29:14 瀏覽:14
怎麼找回訪問密碼 發布:2024-05-17 01:22:45 瀏覽:747
吉林蘋果伺服器網路時間地址 發布:2024-05-17 01:21:29 瀏覽:213
dns緩存ros 發布:2024-05-17 01:20:45 瀏覽:914