1. linux i2c時鍾rtc該怎樣配置內核
i2c是master和client架構,master就是主控制器這邊的驅動,client就是設備這邊的驅動,master一般都寫好了,你只需要寫相應的client驅動,也就是設備驅動,然後在板級文件裡面注冊一個設備。就可以啦。
2. 編譯內核前生成的配置文件.config在哪
這個.config文件是編譯之前需要設定的,編譯的時候會根據其內容編譯內核的各個模塊。我在源碼中還看到了Kconfig文件,你可以查看一下二者之間的關系,希望能幫到你
3. 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為所編譯的內核版本號。
4. 怎麼看linux內核版本跟時鍾中斷的頻率
內核版本可以通過命令:uname -r 看到
至於時鍾頻率,就要看編譯內核時選擇的值,如:
最下面就是配置的100,如果沒有手動更改的話,可以去內核的param.h中找到定義
5. 內核時鍾怎修改
進入BIOS進行修改
6. 配置Linux內核的時候,驅動的靜態編譯和動態編譯有什麼區別
驅動的動態編譯會生成.ko文件,系統啟動後需要載入該驅動後才能使用相應設備。
而靜態編譯則直接編譯進內核,系統啟動的時候會自動載入該驅動。
靜態編譯太多驅動至內核,會導致內核體積過大,啟動時間較長。而動態編譯則比較自由靈活,需要用的時候即載入,不需要的時候即卸載。我以前在EasyARM-iMX280的學習手冊里看到寫得很清楚,你可以去看看的。
7. Linux編譯內核的時候為什麼又需要我重新配置,內核配置文件是從arm/configs 裡面拷貝過來的
檢查一下.config許可權,應該至少有當前用戶讀寫許可權。
還有一種就是,編譯時提示配置的選項是未被配置過的,即.config中沒有這些配置記錄。
8. make menuconfig配置內核時,*、M 、空格,這3個選項分別表示什麼意思,求詳細解答
*標識編譯到內核,M標識作為內核模塊編譯。
空格,表示該功能不編譯到內核中,即新的內核將不支持該功能。
9. 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文件中了。
注
10. 什麼是cpu內核運行時的時鍾頻率
CPU的主頻,即CPU內核工作的時鍾頻率(CPU Clock Speed)。通常所說的某某CPU是多少兆赫的,而這個多少兆赫就是「CPU的主頻」。很多人認為CPU的主頻就是其運行速度,其實不然。CPU的主頻表示在CPU內數字脈沖信號震盪的速度,與CPU實際的運算能力並沒有直接關系。主頻和實際的運算速度存在一定的關系,但目前還沒有一個確定的公式能夠定量兩者的數值關系,因為CPU的運算速度還要看CPU的流水線的各方面的性能指標(緩存、指令集,CPU的位數等等)。由於主頻並不直接代表運算速度,所以在一定情況下,很可能會出現主頻較高的CPU實際運算速度較低的現象。比如AMD公司的AthlonXP系列CPU大多都能已較低的主頻,達到英特爾公司的Pentium 4系列CPU較高主頻的CPU性能,所以AthlonXP系列CPU才以PR值的方式來命名。因此主頻僅是CPU性能表現的一個方面,而不代表CPU的整體性能。
CPU的主頻不代表CPU的速度,但提高主頻對於提高CPU運算速度卻是至關重要的。舉個例子來說,假設某個CPU在一個時鍾周期內執行一條運算指令,那麼當CPU運行在100MHz主頻時,將比它運行在50MHz主頻時速度快一倍。因為100MHz的時鍾周期比50MHz的時鍾周期佔用時間減少了一半,也就是工作在100MHz主頻的CPU執行一條運算指令所需時間僅為10ns比工作在50MHz主頻時的20ns縮短了一半,自然運算速度也就快了一倍。只不過電腦的整體運行速度不僅取決於CPU運算速度,還與其它各分系統的運行情況有關,只有在提高主頻的同時,各分系統運行速度和各分系統之間的數據傳輸速度都能得到提高後,電腦整體的運行速度才能真正得到提高。
提高CPU工作主頻主要受到生產工藝的限制。由於CPU是在半導體矽片上製造的,在矽片上的元件之間需要導線進行聯接,由於在高頻狀態下要求導線越細越短越好,這樣才能減小導線分布電容等雜散干擾以保證CPU運算正確。因此製造工藝的限制,是CPU主頻發展的最大障礙之一。