編譯及安裝簡要步驟:
編輯Makefile版本信息
定義內(nèi)核特性,生成配置文件.config,用于編譯:make xconfig
編譯內(nèi)核:make
安裝內(nèi)核:make install
安裝模塊:make modules_install
具體步驟如下:
內(nèi)核配置
先定義內(nèi)核需要什么特性,并進(jìn)行配置。內(nèi)核構(gòu)建系統(tǒng)(The kernel build system)遠(yuǎn)不是簡單用來構(gòu)建整個(gè)內(nèi)核和模塊,想了解更多的高級內(nèi)核構(gòu)建選項(xiàng),你可以查看 Documentation/kbuild 目錄內(nèi)的內(nèi)核文檔。
可用的配置命令和方式:
make menuconfig
命令:make menuconfig
編譯內(nèi)核
編譯和安裝內(nèi)核
編譯步驟:
$ cd /usr/src/linux2.6
$ make
安裝步驟 (logged as
$ make install
$ make modules_install
提升編譯速度
多花一些時(shí)間在內(nèi)核配置上,并且只編譯那些你硬件需要的模塊。這樣可以把編譯時(shí)間縮短為原來的1/30,并且節(jié)省數(shù)百M(fèi)B的空間。另外,你還可以并行編譯多個(gè)文件:
$ make -j <number>
make 可以并行執(zhí)行多個(gè)目標(biāo)(target)(KEMIN:前提是目標(biāo)規(guī)則間沒有交叉依賴項(xiàng),這個(gè)怎么做到的?)
$ make -j 4
即便是在單處理器的工作站上也會很快,讀寫文件的時(shí)間被節(jié)省下來了。多線程讓CPU保持忙碌。
number大于4不見得有效了,因?yàn)樯舷挛那袚Q過多反而降低的工作的速度。
make -j <4*number_of_processors>
內(nèi)核編譯tips
查看完整的 (gcc, ld)命令行: $ make V=1
清理所有的生成文件 (to create patches...): $ make mrproper
部分編譯:$ make M=drivers/usb/serial
單獨(dú)模塊編譯:$ make drivers/usb/serial/visor.ko
最終生成的文件
vmlinux 原始內(nèi)核鏡像,非壓縮的
arch/<arch>/boot/zImage zlib壓縮的內(nèi)核鏡像(Default image on arm)
arch/<arch>/boot/bzImage bzip2壓縮的內(nèi)核鏡像。通常很小,足夠放入一張軟盤(Default image on i386)