導航:首頁 > 源碼編譯 > linux內核編譯視頻教程外包

linux內核編譯視頻教程外包

發布時間:2022-11-26 10:36:18

linux內核怎樣運行編譯

1.下載內核,官方網站地址:www.kernel.org
2.解壓(路徑自選)
3.進入到解壓的內核源碼文件夾,運行make menuconfig,如果不裁剪內核,那麼可以直接保存配置退出
4.make bzImage-->make moles-->mke moles_install-->make install(有些版本可能需要運行mkinitramfs -o intrd.img-內核版本號 內核版本號)
5.修改grub文件,將新內核加入進去

㈡ 如何開始學習Linux內核

想要學好Linux,需要具備以下能力:
1. 基本功要扎實
學習任何一種語言,必備的基本功是必須要有的,一方面可以提高效率,另一方面可以拓寬思路。
對於Linux基本知識的學習,對一些初學者來說是枯燥乏味的,可以通過理解再背誦的方式先進行代碼及語法的學習,然後進行實踐操作,必須手動輸入命令行,不要藉助工具,這樣可以更快速有效的掌握Linux。
2. 學以致用
Linux學習的目的是應用,Linux基本知識是一些零散的技術,當沒有應用在項目上時,我們無法理解他的真實價值,所以打好基本功之後,最緊迫的是多做幾個完整的項目,剛開始可以是功能簡單的項目,之後可以選擇稍微復雜的項目,勤於動手,敢於實踐,一定能學好Linux。
3. 學會使用Linux聯機幫助
任何一種教材都不會完全講述Linux知識,一般講的都是比較常用的或者是比較有代表性的知識,但是,我們在項目應用中往往有些功能的實現是需要一些生僻知識和技能的,那麼,如何查找我們所需的知識呢,推薦查閱Linux幫助文檔,主流的Linux都自帶詳細的幫助文檔,很方便解決問題!
4. 在網上找資源
在Linux的學習和應用中,難免會遇到一些沒有思路、不知道如何解決的問題,這時就要藉助網路力量,可以通過搜索引擎搜索查找,也可以咨詢資深技術人員,最終實現問題的解決,這是Linux知識積累的一個重要的途徑!
5. 查閱英文技術文檔
如果想深入學習Linux,查閱英文技術文檔是十分必要的,往往最新的技術都是採用英文文檔的方式發布的,而且更全面,因此,對於Linux人員來說,多看一些Linux技術文檔,對於掌握前沿技術和加深知識是十分有必要的!

㈢ linux內核編譯

include/linux/compiler.h:46: #error Sorry, your compiler is too old/not recognized.
編譯器太老或者無法設別

沒遇到過這樣的問題, 我只能說這樣有可能解決, 呵呵。

㈣ 如何重新編譯linux內核

  1. 因為一般電腦安裝的系統都是Windows,而整個編譯過程都需要在Linux環境下實現,所以最好是在虛擬機里安裝Linux系統來完成這一過程。我使用的虛擬機是VMware-workstation-full-v7.1.4。

  2. 然後,我們需要下載一個較高版本的Linux系統的鏡像文件,安裝在虛擬機上,作為編譯環境。我使用的是ubuntu-11.04-desktop-i386。之所以選擇較高版本,是因為它的界面比較方便用戶操作。

  3. 然後下載一個Linux內核源代碼文件,將它保存到虛擬機上新安裝的系統中去。並解壓到/usr/src目錄。我使用的是linux-2.6.36,下載低版本的原因是,小巧輕便,易於編譯。

    解壓命令如下:

    bzip2 -d linux-2.6.36.tar.bz2

    tar -xvf linux-2.6.36.ta

  4. 修改/usr/src/linux-2.6.36/kernel/sys.c文件,在文件末尾增加一個系統調用函數。自行編寫一個簡單的程序即可,只為測試用。

  5. 修改/usr/src/linux-2.6.36/arch/x86/kernel/syscall_table_32.S,為新添加的程序配置系統調用號。

  6. 在/usr/src/linux-2.6.36/arch/x86/include/asm/unistd_32.h中配置系統調用表。

  7. 下面就是最重要的內核編譯與安裝:

    首先配置編譯信息,使其生成適合當前機器的Makefile,輸入make oldconf ig。

    接著還要輸入make menuconfig,在字元界面下進行必要的細微的修改。

    然後要經過四步編譯過程(直接輸入命令即可):

    (1)make bzImage

    將內核編譯為壓縮映像,存儲在源碼根目錄下的「System.map」文件中。

    (2)make moles

    編譯各個模塊。

    (3)sudo make moles_install

    安裝模塊

    (4)sudo make install

    安裝內核

    第(2)(3)步等待時間較長,可能需要數個小時,請耐心等待。

    無報錯的話重啟進入GRUB界面,就可以看到新編譯的內核了。

  8. 按回車鍵進入我們編譯的目標內核中,用關鍵詞搜索查看新增加的系統調用「my call」是否已在內核中:

  9. 編寫測試程序,調用新添加的系統調用:

  10. 測試成功,說明系統調用添加成功,進而說明內核編譯成功!

    以上的辦法你可以試一下,希望對你有所幫助。

㈤ Linux內核怎麼入門,求書籍推薦

光碟詳細內容
嵌入式新手入門最佳視頻教程

一、光碟01
1.軟體視頻包-嵌入式linux軟體開發入門培訓視頻.iso
共有46個視頻,介紹嵌入式linux入門需要掌握的基礎知識,包括linux的基礎知識,shell基礎,vi編輯器,包括嵌入式linux的C語言編程,非常詳細,非常精闢,我當初剛出學校做嵌入式的時候,就是看這個視頻的。
2.軟體視頻包-嵌入式系統30學時.iso
共有16個視頻,講述嵌入式系統概述,還有基本概念,嵌入式微處理器及ARM體系結構,已經嵌入式系統的基本硬體知識,嵌入式實時操作系統的介紹,介紹us, os-II,介紹嵌入式wince,linux等操作系統。
3.軟體視頻包-嵌入式系統設計培訓教程.iso
共有25個視頻,講述嵌入式系統硬體和軟體的知識,嵌入式系統的基本知識,講述嵌入式軟體和硬體的協同設計,最後還講述了U-BOOT程序設計,MP3播放器的設計。
4.軟體視頻包-計算機系統結構和匯編培訓.iso
共有51個視頻,將計算機系統結構和匯編語言程序設計,對於以後進行底層的開發很有幫助。

二、光碟02
5.軟體視頻包-底層內核和驅動培訓視頻.iso
共有28個視頻,講述linux內核介紹,內核的源代碼結構,如何編譯和配置內核,如何開發內核模塊,內核的啟動流程分析,內核的內存管理,進程內存空間管理,linux2.6內存管理和分配,內核的鏈表操作,包括一些內核的實驗。
驅動部分講述字元設備驅動程序和字元驅動例子解析,驅動調試技術,並發控制技術,Ioctl的實現,驅動如何訪問硬體,中斷處理,LED驅動程序設計,等待隊列,阻塞,Poll方法實現,時間度量,內核定時器,網路體系架構,網卡驅動設計,觸摸屏驅動分析等等。

三、光碟03
6.軟體視頻包-linux系統編程培訓教程.iso
共有22個視頻,講述基於linux系統的編程,裡面介紹很多linux實例代碼的分析,非常不錯。
7.軟體視頻包-嵌入式系統及應用開發培訓視頻.iso
共有40個視頻,講述嵌入式系統結構、外設驅動和應用開發調試技術,嵌入式系統開發模式,嵌入式硬體開發,實時/嵌入式系統開發方法,還講述了嵌入式系統硬體結構,嵌入式處理器,ARM介紹,片內周邊電路,外圍電路,外設等等。

四、光碟04
8.軟體視頻包-嵌入式培訓視頻1.iso
這是RetHat的企業安裝盤,還有samba安裝方法介紹,適合新手學習,還有包括linux命令,腳本,Makefile和GCC的材料。

五、光碟05
9.軟體視頻包-linux內核編程初級班培訓教程.rar
共有30個視頻,都是基於代碼分析的,講述linux內核的基礎知識,匯編及保護模式,linux內核體系結構,linux引導程序分析,linux內核代碼分析,linux塊設備驅動程序分析。
10.軟體視頻包-嵌入式培訓視頻2.iso
共 有20個視頻,講述linux文件編程,庫函數方式訪問文件,系統調用方式訪問文件,時間編程,進程式控制制理論,進程創建,進程等待,進程通訊概述,管道通 訊,信號通訊,共享內存通訊,消息隊列,信號量,線程創建,線程等待與清除, ARM概述, mini2440, ARM寄存器, ARM定址方式, ARM指令1, ARM指令2.

六、光碟06
11.軟體視頻包-嵌入式培訓視頻3.iso
共有 20個視頻,講述內核簡介,Linux內核源代碼,Linux內核配置與編譯,內核模塊-1,內核模塊-2,Linux內存管理,Linux進程與內核地 址空間,Linux內核鏈表,內核定時器,內核進程,進程調度,系統調用,Proc文件系統,異常分析,交叉工具鏈,嵌入式系統構 建,bootloader介紹,Uboot簡介,UBoot命令,Uboot移植。

七、光碟07
12.軟體視頻包-嵌入式培訓視頻4.iso
共 有25個視頻,講述Linux驅動程序介紹,字元設備驅動,簡單字元設備驅動實例分析,並發控制,Ioctl設備控制,內核等待隊列,阻塞型字元設備驅 動, poll設備方法,自動創建設備文件, mmap設備方法,硬體訪問, LED驅動程序,匯流排,設備,驅動, platform驅動,中斷處理程序,按鍵驅動,網卡驅動程序設計, CS8900A網卡驅動程序分析,輸入子系統,觸摸屏驅動程序, PCI匯流排, PCI驅動程序設計,串口驅動程序,

八、光碟08
13.軟體視頻包-中嵌培訓視頻1
共有21個視頻,如圖1

九、光碟09
14.軟體視頻包-中嵌視頻2
共有22個視頻,如圖2,

十、光碟10
15.軟體視頻包-中嵌視頻3
共有26個視頻,包括課件

十一、光碟11
1.軟體視頻包-linux內核編程高級班培訓教程.rar
共有29個視頻,詳細介紹2.6內核的代碼,非常不錯,如果想學習內核,值得推薦!
2.硬體視頻包-CPLD系統設計和VHDL語言培訓教程
共有10個視頻,介紹CPLD系統設計和VHDL的程序設計,包括視頻和課件還有相關的資料。
3.硬體視頻包-電路分析培訓教程
共有30個視頻,詳細的介紹了電路分析,電路原理。
4.軟體視頻包-ARM S3C44B0 嵌入式微處理器原理及應用
共 有48個視頻,主要內容包括:嵌入式系統基礎知識、嵌入式交叉編譯環境與嵌入式開發環境的搭建、基於Linux的嵌入式軟體開發流程、MiniGUI應用 程序設計、嵌入式資料庫應用、Qt圖形界面應用程序開發。《嵌入式系統開發基礎——基於ARM微處理器和Linux操作系統》涉及嵌入式系統從底層驅動到 頂層應用的各個部分,配合實驗操作循序漸進地幫助讀者完成各個章節內容的學習,引領初學者順利進入嵌入式世界。

十二、光碟12
5.硬體視頻包-單品機經典培訓教程01-11
共有11個視頻,講述單片機的基本所有的內容,老師現場寫代碼,非常棒,可以從一個完全不懂單品機的人到熟悉單品機,到單片機編程,為以後ARM編程打好基礎!

十三、光碟13
6.實踐開發包-ARM 2410開發板資料.zip
包括用戶手冊,網上資料,晶元手冊,目標代碼和支持包,USB 驅動程序,原理圖,裡面還有實驗的指導,很好!
7.實踐開發包-ARM FS44B0開發板資料.zip
包括用戶手冊,ADS120評估板,BOIS和測試程序的源代碼,uCLinux代碼和編譯工具,晶元手冊,目標代碼和支持包,USB 驅動程序,原理圖,裡面還有實驗的指導,很好!
8.硬體視頻包-計算機電路基礎培訓教程.iso
共有14個視頻,講述計算機的電路基礎,適合初學者入門。
9.硬體視頻包-PCB設計培訓教程 Altium Designer
共有14個視頻,講述Altium Designed,電子設計基礎知識,原理圖初步設計,進階,提高,深入,pcb庫的設計,集成庫的作用和製作,pcb設計初步,PCB設計提高,PCB深入。
10.硬體視頻包-單品機經典培訓教程12-13
接光碟12

十四、光碟14
11.實踐開發包-ARM 6410開發板資料.rar
這是我們購買了一塊7000元的開發板配套的完整資料,包括開發套件源代碼壓縮包,套件使用手冊、CPU及其它各種晶元的datasheet,開發板電路圖,模擬器的驅動文件及說明文檔等等。
12.實踐開發包-MIPS CPU開發板資料.rar
這是我們購買了一塊3000元的開發板配套的完整資料,現在市場上 MIPS的開發板非常少,當然資料更少了。包括整套的文檔,軟體和硬體所有的資料,包括工具。
13.實踐開發包-USB實踐開發包.iso
關於USB的實踐開發包,裡面有介紹關於U盤和MP3的工具,軟體的程序,硬體的原理圖,製作的工具,和相關的資料手冊。
14.實踐開發包-嵌入式linux網路的遠程式控制制開發包.iso
關於嵌入式linux網路遠程式控制制的實踐開發包,裡面有詳細的一步步圖文操作的電子書,軟體的程序,硬體的原理圖,製作的工具,和相關的工具。
15.實踐開發包-電子相冊開發包.iso
關於電子相冊的實踐開發包,裡面有詳細的配套說明和實驗指導書,軟體的程序,硬體的原理圖,製作的工具,和相關的工具。
16.行業視頻包-MTK手機開發培訓.iso
介紹MTK的資料,有10個視頻教程,還包括新手如何學習MTK手機開發的資料,MTK開發平台大集合,入門導讀,全套資料,MMI的資料等等。
17.行業視頻包-VOIP視頻教程
共有12個視頻,介紹VOIP網路電話開發,非常不錯,這對以後找這方面的工作非常有幫助,是高薪的行業。

十五、光碟15
18.開發工具包-Wince開發平台platform builder5.0
這是platform builder 5.0的安裝包,可以基於它開發 wince.

十六、光碟16
19.電子書籍包.iso
這是我們多年來積累的電子書籍,是你學習嵌入式的不可多得的材料,太多經典的教材,太多經典的好文章,一定會讓你流連忘返!共有近900本關於嵌入式的電子書籍,覆蓋了嵌入式方方面面的內容!

20.開發工具包-安裝好的fedora9
已經安裝好的Fedora(一種基於linux的操作系統和平台,,從硬碟直接可以拷貝到硬碟linux,方便linux初學者免去安裝linux的麻煩。

㈥ 如何編譯linux內核

內核,是一個操作系統的核心。它負責管理系統的進程、內存、設備驅動程序、文件和網路系統,決定著系統的性能和穩定性。Linux作為一個自由軟體,
在廣大愛好者的支持下,內核版本不斷更新。新的內核修訂了舊內核的bug,並增加了許多新的特性。如果用戶想要使用這些新特性,或想根據自己的系統度身定
制一個更高效,更穩定的內核,就需要重新編譯內核。本文將以RedHat Linux 6.0(kernel
2.2.5)為操作系統平台,介紹在Linux上進行內核編譯的方法。

一、 下載新內核的源代碼

目前,在Internet上提供Linux源代碼的站點有很多,讀者可以選擇一個速度較快的站點下載。筆者是從站點www.kernelnotes.org上下載了Linux的最新開發版內核2.3.14的源代碼,全部代碼被壓縮到一個名叫Linux-2.3.14.tar.gz的文件中。

二、 釋放內核源代碼

由於源代碼放在一個壓縮文件中,因此在配置內核之前,要先將源代碼釋放到指定的目錄下。首先以root帳號登錄,然後進入/usr/src子目錄。如果用戶在安裝Linux時,安裝了內核的源代碼,則會發現一個linux-2.2.5的子目錄。該目錄下存放著內核2.2.5的源代碼。此外,還會發現一個指向該目錄的鏈接linux。刪除該連接,然後將新內核的源文件拷貝到/usr/src目錄中。

(一)、用tar命令釋放內核源代碼

# cd /usr/src

# tar zxvf Linux-2.3.14.tar.gz

文件釋放成功後,在/usr/src目錄下會生成一個linux子目錄。其中包含了內核2.3.14的全部源代碼。

(二)、將/usr/include/asm、/usr/inlude/linux、/usr/include/scsi鏈接到/usr/src/linux/include目錄下的對應目錄中。

# cd /usr/include

# rm -Rf asm linux

# ln -s /usr/src/linux/include/asm-i386 asm

# ln -s /usr/src/linux/include/linux linux

# ln -s /usr/src/linux/include/scsi scsi

(三)、刪除源代碼目錄中殘留的.o文件和其它從屬文件。

# cd /usr/src/linux

# make mrproper

三、 配置內核

(一)、啟動內核配置程序。

# cd /usr/src/linux

# make config

除了上面的命令,用戶還可以使用make menuconfig命令啟動一個菜單模式的配置界面。如果用戶安裝了X window系統,還可以執行make xconfig命令啟動X window下的內核配置程序。

(二)、配置內核

Linux的
內核配置程序提供了一系列配置選項。對於每一個配置選項,用戶可以回答"y"、"m"或"n"。其中"y"表示將相應特性的支持或設備驅動程序編譯進內
核;"m"表示將相應特性的支持或設備驅動程序編譯成可載入模塊,在需要時,可由系統或用戶自行加入到內核中去;"n"表示內核不提供相應特性或驅動程序
的支持。由於內核的配置選項非常多,本文只介紹一些比較重要的選項。

1、Code maturity level options(代碼成熟度選項)

Prompt for development and/or incomplete code/drivers
(CONFIG_EXPERIMENTAL) [N/y/?]
如果用戶想要使用還處於測試階段的代碼或驅動,可以選擇「y」。如果想編譯出一個穩定的內核,則要選擇「n」。

1、 Processor type and features(處理器類型和特色)

(1)、Processor family (386, 486/Cx486, 586/K5/5x86/6x86, Pentium/K6/TSC, PPro/6x86MX) [PPro/6x86MX] 選擇處理器類型,預設為Ppro/6x86MX。

(2)、Maximum Physical Memory (1GB, 2GB) [1GB] 內核支持的最大內存數,預設為1G。

(3)、Math emulation (CONFIG_MATH_EMULATION) [N/y/?] 協處理器模擬,預設為不模擬。

(4)、MTRR (Memory Type Range Register) support (CONFIG_MTRR) [N/y/?]

選擇該選項,系統將生成/proc/mtrr文件對MTRR進行管理,供X server使用。

(5)、Symmetric multi-processing support (CONFIG_SMP) [Y/n/?] 選擇「y」,內核將支持對稱多處理器。

2、 Loadable mole support(可載入模塊支持)

(1)、Enable loadable mole support (CONFIG_MODULES) [Y/n/?] 選擇「y」,內核將支持載入模塊。

(2)、Kernel mole loader (CONFIG_KMOD) [N/y/?] 選擇「y」,內核將自動載入那些可載入模塊,否則需要用戶手工載入。

3、 General setup(一般設置)

(1)、Networking support (CONFIG_NET) [Y/n/?] 該選項設置是否在內核中提供網路支持。

(2)、PCI support (CONFIG_PCI) [Y/n/?] 該選項設置是否在內核中提供PCI支持。

(3)、PCI access mode (BIOS, Direct, Any) [Any] 該選項設置Linux探測PCI設備的方式。選擇「BIOS」,Linux將使用BIOS;選擇「Direct」,Linux將不通過BIOS;選擇「Any」,Linux將直接探測PCI設備,如果失敗,再使用BIOS。

(4)Parallel port support (CONFIG_PARPORT) [N/y/m/?] 選擇「y」,內核將支持平行口。

4、 Plug and Play configuration(即插即用設備支持)

(1)、Plug and Play support (CONFIG_PNP) [Y/m/n/?] 選擇「y」,內核將自動配置即插即用設備。

(2)、ISA Plug and Play support (CONFIG_ISAPNP) [Y/m/n/?] 選擇「y」,內核將自動配置基於ISA匯流排的即插即用設備。

5、 Block devices(塊設備)

(1)、Normal PC floppy disk support (CONFIG_BLK_DEV_FD) [Y/m/n/?] 選擇「y」,內核將提供對軟盤的支持。

(2)、Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support (CONFIG_BLK_DEV_IDE) [Y/m/n/?] 選擇「y」,內核將提供對增強IDE硬碟、CDROM和磁帶機的支持。

6、 Networking options(網路選項)

(1)、Packet socket (CONFIG_PACKET) [Y/m/n/?] 選擇「y」,一些應用程序將使用Packet協議直接同網路設備通訊,而不通過內核中的其它中介協議。

(2)、Network firewalls (CONFIG_FIREWALL) [N/y/?] 選擇「y」,內核將支持防火牆。

(3)、TCP/IP networking (CONFIG_INET) [Y/n/?] 選擇「y」,內核將支持TCP/IP協議。

(4)The IPX protocol (CONFIG_IPX) [N/y/m/?] 選擇「y」,內核將支持IPX協議。

(5)、Appletalk DDP (CONFIG_ATALK) [N/y/m/?] 選擇「y」,內核將支持Appletalk DDP協議。

8、SCSI support(SCSI支持)

如果用戶要使用SCSI設備,可配置相應選項。

9、Network device support(網路設備支持)

Network device support (CONFIG_NETDEVICES) [Y/n/?] 選擇「y」,內核將提供對網路驅動程序的支持。

10、Ethernet (10 or 100Mbit)(10M或100M乙太網)

在該項設置中,系統提供了許多網卡驅動程序,用戶只要選擇自己的網卡驅動就可以了。此外,用戶還可以根據需要,在內核中加入對FDDI、PPP、SLIP和無線LAN(Wireless LAN)的支持。

11、Character devices(字元設備)

(1)、Virtual terminal (CONFIG_VT) [Y/n/?] 選擇「y」,內核將支持虛擬終端。

(2)、Support for console on virtual terminal (CONFIG_VT_CONSOLE) [Y/n/?]

選擇「y」,內核可將一個虛擬終端用作系統控制台。

(3)、Standard/generic (mb) serial support (CONFIG_SERIAL) [Y/m/n/?]

選擇「y」,內核將支持串列口。

(4)、Support for console on serial port (CONFIG_SERIAL_CONSOLE) [N/y/?]

選擇「y」,內核可將一個串列口用作系統控制台。

12、Mice(滑鼠)

PS/2 mouse (aka "auxiliary device") support (CONFIG_PSMOUSE) [Y/n/?] 如果用戶使用的是PS/2滑鼠,則該選項應該選擇「y」。

13、Filesystems(文件系統)

(1)、Quota support (CONFIG_QUOTA) [N/y/?] 選擇「y」,內核將支持磁碟限額。

(2)、Kernel automounter support (CONFIG_AUTOFS_FS) [Y/m/n/?] 選擇「y」,內核將提供對automounter的支持,使系統在啟動時自動 mount遠程文件系統。

(3)、DOS FAT fs support (CONFIG_FAT_FS) [N/y/m/?] 選擇「y」,內核將支持DOS FAT文件系統。

(4)、ISO 9660 CDROM filesystem support (CONFIG_ISO9660_FS) [Y/m/n/?]

選擇「y」,內核將支持ISO 9660 CDROM文件系統。

(5)、NTFS filesystem support (read only) (CONFIG_NTFS_FS) [N/y/m/?]

選擇「y」,用戶就可以以只讀方式訪問NTFS文件系統。

(6)、/proc filesystem support (CONFIG_PROC_FS) [Y/n/?] /proc是存放Linux系統運行狀態的虛擬文件系統,該項必須選擇「y」。

(7)、Second extended fs support (CONFIG_EXT2_FS) [Y/m/n/?] EXT2是Linux的標准文件系統,該項也必須選擇「y」。

14、Network File Systems(網路文件系統)

(1)、NFS filesystem support (CONFIG_NFS_FS) [Y/m/n/?] 選擇「y」,內核將支持NFS文件系統。

(2)、SMB filesystem support (to mount WfW shares etc.) (CONFIG_SMB_FS)

選擇「y」,內核將支持SMB文件系統。

(3)、NCP filesystem support (to mount NetWare volumes) (CONFIG_NCP_FS)

選擇「y」,內核將支持NCP文件系統。

15、Partition Types(分區類型)

該選項支持一些不太常用的分區類型,用戶如果需要,在相應的選項上選擇「y」即可。

16、Console drivers(控制台驅動)

VGA text console (CONFIG_VGA_CONSOLE) [Y/n/?] 選擇「y」,用戶就可以在標準的VGA顯示方式下使用Linux了。

17、Sound(聲音)

Sound card support (CONFIG_SOUND) [N/y/m/?] 選擇「y」,內核就可提供對音效卡的支持。

18、Kernel hacking(內核監視)

Magic SysRq key (CONFIG_MAGIC_SYSRQ) [N/y/?] 選擇「y」,用戶就可以對系統進行部分控制。一般情況下選擇「n」。

四、 編譯內核

(一)、建立編譯時所需的從屬文件

# cd /usr/src/linux

# make dep

(二)、清除內核編譯的目標文件

# make clean

(三)、編譯內核

# make zImage

內核編譯成功後,會在/usr/src/linux/arch/i386/boot目錄中生成一個新內核的映像文件zImage。如果編譯的內核很大的話,系統會提示你使用make bzImage命令來編譯。這時,編譯程序就會生成一個名叫bzImage的內核映像文件。

(四)、編譯可載入模塊

如果用戶在配置內核時設置了可載入模塊,則需要對這些模塊進行編譯,以便將來使用insmod命令進行載入。

# make moles

# make modelus_install

編譯成功後,系統會在/lib/moles目錄下生成一個2.3.14子目錄,裡面存放著新內核的所有可載入模塊。

五、 啟動新內核

(一)、將新內核和System.map文件拷貝到/boot目錄下

# cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.3.14

# cp /usr/src/linux/System.map /boot/System.map-2.3.14

# cd /boot

# rm -f System.map

# ln -s System.map-2.3.14 System.map

(二)、配置/etc/lilo.conf文件。在該文件中加入下面幾行:

default=linux-2.3.14

image=/boot/vmlinuz-2.3.14

label=linux-2.3.14

root=/dev/hda1

read-only

(三)、使新配置生效

# /sbin/lilo

(四)、重新啟動系統

# /sbin/reboot

新內核如果不能正常啟動,用戶可以在LILO:提示符下啟動舊內核。然後查出故障原因,重新編譯新內核即可。

了解更多開源相關,去LUPA社區看看吧。

㈦ 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內核的編譯過程

編譯及安裝簡要步驟:
編輯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)

㈨ 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中執行類似如下的命令,假如有類似的輸出,就說明安裝好了。
[[email protected] 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文件中了。

㈩ Linux內核源碼如何編譯

首先uname -r看一下你當前的linux內核版本

1、linux的源碼是在/usr/src這個目錄下,此目錄有你電腦上各個版本的linux內核源代碼,用uname -r命令可以查看你當前使用的是哪套內核,你把你下載的內核源碼也保存到這個目錄之下。
2、配置內核 make menuconfig,根據你的需要來進行選擇,設置完保存之後會在當前目錄下生成.config配置文件,以後的編譯會根據這個來有選擇的編譯。
3、編譯,依次執行make、make bzImage、make moles、make moles
4、安裝,make install
5、.創建系統啟動映像,到 /boot 目錄下,執行 mkinitramfs -o initrd.img-2.6.36 2.6.36
6、修改啟動項,因為你在啟動的時候會出現多個內核供你選擇,此事要選擇你剛編譯的那個版本,如果你的電腦沒有等待時間,就會進入默認的,默認的那個取決於 /boot/grub/grub.cfg 文件的設置,找到if [ "${linux_gfx_mode}" != "text" ]這行,他的第一個就是你默認啟動的那個內核,如果你剛編譯的內核是在下面,就把代表這個內核的幾行代碼移到第一位如:
menuentry 'Ubuntu, with Linux 3.2.0-35-generic' --class ubuntu --class gnu-linux --class gnu --class os {

recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 9961c170-2566-41ac-8155-18f231c1bea5
linux/boot/vmlinuz-3.2.0-35-generic root=UUID=9961c170-2566-41ac-8155-18f231c1bea5 ro quiet splash $vt_handoff
initrd/boot/initrd.img-3.2.0-35-generic
}
當然你也可以修改 set default="0"來決定用哪個,看看你的內核在第幾位,default就填幾,不過我用過這種方法,貌似不好用。

重啟過後你編譯的內核源碼就成功地運行了,如果出現問題,比如滑鼠不能用,usb不識別等問題就好好查查你的make menuconfig這一步,改好後就萬事ok了。

最後再用uname -r看看你的linux內核版本。是不是你剛下的那個呢!有沒有成就感?
打字不易,如滿意,望採納。

閱讀全文

與linux內核編譯視頻教程外包相關的資料

熱點內容
伺服器光碟機線怎麼插 瀏覽:12
新生兒下載哪個app好 瀏覽:487
摩托車壓縮比96 瀏覽:410
linux查看mysql內存 瀏覽:242
福建ca認證伺服器地址 瀏覽:567
三星安全文件夾怎麼取消應用程序 瀏覽:169
偶像來了哪個app能看 瀏覽:252
破解分銷源碼 瀏覽:184
androidudp服務端 瀏覽:771
電腦伺服器和內存有什麼區別 瀏覽:308
下載海爾哪個app可以查詢信息 瀏覽:385
暴風文件夾怎麼刪除 瀏覽:163
我的世界緩存文件在哪個文件夾 瀏覽:359
簡歷發壓縮包還是文件夾 瀏覽:85
mes系統用什麼伺服器5885v5 瀏覽:486
郵件伺服器可以怎麼查詢 瀏覽:727
啟動linux的sftp 瀏覽:66
asp防紅系統源碼模板 瀏覽:240
雙手握住文件夾 瀏覽:47
php分析html 瀏覽:623