最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Linux內(nèi)核配置與編譯步驟(超詳細(xì))

2022-03-29 16:14 作者:補(bǔ)給站Linux內(nèi)核  | 我要投稿


  • inux內(nèi)核下載地址:https://www.kernel.org/

  • ubuntu下載內(nèi)核對(duì)應(yīng)源碼:

  • sudo apt-get source linux-$(uname -r) ? ?#此命令下載的源碼存放在/usr/src/文件夾中

一、配置:

  • 內(nèi)核編譯時(shí)會(huì)根據(jù)內(nèi)核目錄下的.config文件進(jìn)行編譯,而進(jìn)行內(nèi)核配置時(shí)實(shí)際上就是修改.config文件.一般常見的硬件平臺(tái)在內(nèi)核目錄arch/<平臺(tái)>/configs/文件夾下會(huì)包含有默認(rèn)的配置文件,可以使用cp命令將其覆蓋內(nèi)核根目錄下的.config文件.

  • 在編譯前都必須使用配置命令在內(nèi)核根目錄下進(jìn)行一次配置(即使是使用默認(rèn)的配置文件也必須這樣做).而配置命令有以下幾種:

# make ARCH=<平臺(tái)> config ? ? ? ? ??

#比較繁瑣,不推薦 # make ARCH=<平臺(tái)> oldconfig ? ? ? ?

#常用于內(nèi)核升級(jí),提示新內(nèi)核特性 # make ARCH=<平臺(tái)> menuconfig ? ? ??

#常用 # make ARCH=<平臺(tái)> xconfig ? ? ? ? ?

#X界面的配置方式 # make ARCH=<平臺(tái)> gconfig ? ? ? ? ?

#GTK界面的配置方式 # make ARCH=<平臺(tái)> defconfig ? ? ? ?

#使用默認(rèn)的配置 # make ARCH=<平臺(tái)> allyesconfig ? ??

#所有配置選項(xiàng)設(shè)置為yes # make ARCH=<平臺(tái)> allmodconfig ? ??

#所有選項(xiàng)配置為module

  • 在配置時(shí),每一項(xiàng)都有幾種選項(xiàng),分別為Y,N,M.

  1. Y : 代表將此項(xiàng)編譯入內(nèi)核中

  2. N : 代表不將此項(xiàng)編譯

  3. M : 代表將此項(xiàng)編譯為模塊,在需要使用到的時(shí)候再加載入內(nèi)核

  • 也可以通過直接修改內(nèi)核源代碼目錄中的.config進(jìn)行配置,不過此種方法有點(diǎn)麻煩,之后再說(shuō)。小提示:為了防止內(nèi)核編譯之后配置文件丟失的情況,可以在內(nèi)核配置時(shí)選擇:



【文章福利】小編推薦自己的Linux內(nèi)核技術(shù)交流群:【891587639】整理了一些個(gè)人覺得比較好的學(xué)習(xí)書籍、視頻資料共享在群文件里面,有需要的可以自行添加哦?。。∏?00名進(jìn)群領(lǐng)取,額外贈(zèng)送一份價(jià)值699的內(nèi)核資料包(含視頻教程、電子書、實(shí)戰(zhàn)項(xiàng)目及代碼)?



二、編譯:

  • 首先,內(nèi)核鏡像分為很多種

  1. vmlinux ? ? ? ? ? ? ? ? ? ?編譯后形成鏡像文件

  2. zImage(vmlinuz) ? ? ?在vmlinux的基礎(chǔ)上使用gzip進(jìn)行壓縮所形成的小內(nèi)核(不超過512KB)

  3. bzImage(vmlinuz) ? ?全稱為bigzImage,同zImage一樣原理,只是比zImage鏡像大

  4. uImage(vmlinuz) ? ? 為uBoot專用鏡像,在zImage基礎(chǔ)上再加上一個(gè)頭形成uImage

以arm為目標(biāo)板進(jìn)行交叉編譯內(nèi)核常用的編譯命令為:

  • # make -j4 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage modules ? //-j4 ?使用4個(gè)線程編譯 ? ?ARCH=arm ?目標(biāo)為arm體系結(jié)構(gòu) ? ?CROSS_COMPILE ?交叉編譯器(我的為arm-linux-gnueabihf-) ? ?uImage ?編譯為uImage鏡像 ? ?modules ?同時(shí)也將配置中的模塊進(jìn)行編譯: 在編譯過程中有時(shí)候會(huì)遇到一些錯(cuò)誤,而這些錯(cuò)誤只能夠具體問題具體分析了。

  • 編譯完成后將所有編譯的modules和firmware放入指定文件夾中: make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules_install INSTALL_MOD_PATH=XXX ? ? #此命令結(jié)束后會(huì)生成兩個(gè)文件夾,fireware和modules,這兩個(gè)文件夾之后應(yīng)該放在lib目錄下進(jìn)行使用。

  • 小提示:有些硬件不僅需要驅(qū)動(dòng),還需要所對(duì)應(yīng)的firmware,而firmware是體系無(wú)關(guān)的文件(X86的也可以復(fù)制到arm下使用),需要下載其所對(duì)應(yīng)的firmware放入到lib/firmware文件夾中。

  • 到此配置和編譯算是完成了,只需把編譯好的鏡像文件及模塊放對(duì)位置就行了。

其他內(nèi)容:

  1. vmlinux,vmlinuz(zImage,bzImage,uImage)關(guān)系

  2. vmlinuz是對(duì)vmlinux進(jìn)行了相應(yīng)壓縮的內(nèi)核鏡像,而zImage,bzImage和uImage統(tǒng)稱為vmlinuz。



  • zImage實(shí)際上就是將vmlinux使用gzip進(jìn)行壓縮,并在壓縮之后的鏡像前加個(gè)頭,頭里包括一段gzip解壓縮代碼,用于啟動(dòng)時(shí)自解壓。

  • bzImage和zImage相同,不同的就是zImage會(huì)將內(nèi)核解壓到一個(gè)低端地址(內(nèi)存中第一個(gè)640KB),而bzImage將內(nèi)核解壓到一個(gè)高端地址(大于1M)。

  • 而uImage是uBoot專用的鏡像文件,它是在zImage的基礎(chǔ)上使用mkimage工具生成,其結(jié)果是在zImage上加個(gè)0x40 bytes的頭,其包括:內(nèi)核版本,創(chuàng)建時(shí)間,類型等:

? ? ?#uImage添加的頭 ? ? ?

Image Name: ? Linux 2.4.18 ? ? ?

Created: ? ? ?Mon Jun 24 12:00:01 2002 ? ? ?

Image Type: ? ARM Linux Kernel Image (gzip compressed) ? ? ?

Data Size: ? ?567188 Bytes = 553 kB = 0 MB ? ? ?

Load Address: 0xc0008000 ? ? ?

Entry Point: 0xc0008000


Linux內(nèi)核配置與編譯步驟(超詳細(xì))的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
永吉县| 凤山市| 昔阳县| 博客| 田阳县| 越西县| 成武县| 晴隆县| 揭东县| 南木林县| 拜城县| 紫阳县| 定边县| 遂昌县| 江源县| 城固县| 屏边| 阿瓦提县| 封开县| 正蓝旗| 铜山县| 德惠市| 华阴市| 安龙县| 宁城县| 刚察县| 南开区| 武川县| 怀来县| 九台市| 镇康县| 南靖县| 龙海市| 桦甸市| 孝昌县| 桃园县| 长葛市| 和政县| 驻马店市| 望奎县| 鄂温|