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

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

詳解linux內(nèi)核內(nèi)存管理--配置內(nèi)核與編譯內(nèi)核(非常詳細(xì))

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

下載內(nèi)核源碼

  • 有兩種方式,一種方式是直接從官網(wǎng):https://www.kernel.org/直接下載,另一種方式是通過git進(jìn)行下載。

  • 首先,在官網(wǎng)內(nèi)核版本分為三種:

  1. mainline:主線版本,最新的

  2. stable:穩(wěn)定版本

  3. longterm:長期支持版本

  • 對于內(nèi)核版本后面有個rc的,表示這個版本開始不會往里面添加新的功能和內(nèi)容,只會在其基礎(chǔ)上解決bug(有些驅(qū)動除外)。

  • 如果你搞不懂這幾個版本區(qū)別,就下載一個stable版本準(zhǔn)沒錯。

  • 現(xiàn)在我們著重說說如何通過git進(jìn)行下載內(nèi)核源碼:

  • 沒有安裝git的先安裝git,命令如下


  • 之后新建一個目錄用于存放獲取的linux內(nèi)核源碼,進(jìn)入到該目錄下,執(zhí)行如下命令來獲取最新的linux內(nèi)核版本 git clone git://http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git

  • 這樣就可以直接把內(nèi)核源碼下載到所在目錄下,很方便。

注:

  • 如果需要下載的不是當(dāng)前最新版本的內(nèi)核,也可以通過git進(jìn)行下載其他版本的內(nèi)核源碼,不過在下載其他版本的內(nèi)核源碼的前提是已經(jīng)通過以上git命令下載過內(nèi)核源碼。

  • 首先,當(dāng)通過以上git命令下載好內(nèi)核源碼后,應(yīng)該會有個linux-stable目錄,先進(jìn)入此目錄中,然后執(zhí)行如下命令查看其他內(nèi)核源碼版本列表

git branch -a

  • 然后通過以下命令切換到其他內(nèi)核源碼版本的分支

git checkout 版本名稱(在git branch中的列表中的名稱)

  • 這樣就可以切換到其他版本的linux內(nèi)核源碼了。切換后就直接是目標(biāo)版本的源碼了,也就是說,當(dāng)執(zhí)行上面的命令時,git會把其他版本中內(nèi)容不同的文件替換到本地上,就不用再重新下載一次內(nèi)核源碼了。

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



一、配置內(nèi)核

  • 下載完成后,通過如下命令可以將當(dāng)前系統(tǒng)使用的內(nèi)核配置文件復(fù)制到我們下載的最新內(nèi)核源碼目錄中,我們要使用這個配置文件進(jìn)行編譯內(nèi)核

cp /boot/config-x.xx.xxxx-generic ?下載的源碼目錄/.config

  • 如果需要修改配置,可通過

make menuconfig

  • 進(jìn)行修改配置,不過對于menuconfig,好像還會需要其他的庫,我印象是ncurses庫,如果需要則通過apt-get libncurses5-dev安裝這個庫即可。

注:

  • 如果不想使用當(dāng)前系統(tǒng)使用的配置文件,內(nèi)核中也提供了不同平臺默認(rèn)的配置文件,這些配置文件放在: 內(nèi)核源碼目錄/arch/目標(biāo)平臺類型/configs/

  • 如果你編譯的是arm版本的內(nèi)核,那目標(biāo)平臺類型就是arm,如果編譯的是x86版本的內(nèi)核,目標(biāo)平臺類型就是x86。在這個目錄里,那些默認(rèn)的配置文件格式一般為XXXXX_defconfig,找到對應(yīng)的默認(rèn)配置后,使用命令將其放到內(nèi)核源碼目錄下并改名為.config

  • cp XXXXX_defconfig 內(nèi)核源碼目錄/.config

  • 內(nèi)核源碼目錄下的.config是內(nèi)核編譯的基礎(chǔ),其注明了哪些模塊需要編譯哪些模塊不需要編譯,又有哪些模塊需要編譯成模塊(以模塊進(jìn)行加載,并不加入到內(nèi)核鏡像中),編譯時就是按照里面的列表進(jìn)行編譯的。

二、編譯內(nèi)核

  • 先安裝必要的工具:

sudo apt-get install build-essential

  • 在內(nèi)核源碼目錄中依次執(zhí)行以下命令:

make -jx(x是編譯時使用的線程數(shù)量,如-j2或-j3等。使用線程能加快編譯速度) make modules_install (把安裝modules到/lib/modules/目錄中) make bzImage (將內(nèi)核編譯成bzImage類型的內(nèi)核) make install (安裝內(nèi)核)

  • 整個過程會比較久,我大概編譯了2,3個小時(虛擬機(jī)只配了一個CPU。。。),在編譯過程中有可能使用舊的配置文件會導(dǎo)致編譯失敗,這時可以使用內(nèi)核源碼中默認(rèn)的配置文件試試。


  • make install幫我們做了引導(dǎo)所需要做的工作,基本上make install后重啟就直接進(jìn)入到最新的內(nèi)核中了,當(dāng)然,這部分工作我們也可以手動去做,接下來我們說說如何去做引導(dǎo)這部分所需要的工作。


  • 第一步,我們要將編譯完成的bzImage復(fù)制到/boot/中,并改個名字,比如我的內(nèi)核版本是4.2.0-rc1,我執(zhí)行的命令就是

cp 內(nèi)核源碼目錄/arch/x86/boot/bzImage /boot/vmlinuz-4.2.0-rc1

  • 注意編譯好的bzImage保存的位置是在內(nèi)核源碼目錄/arch/目標(biāo)平臺類型/boot/中,我這里的目標(biāo)平臺類型是x86。


  • 第二步,將內(nèi)核源碼目錄下的System.map文件復(fù)制到/boot/中,同樣需要改個名字:

cp 內(nèi)核源碼目錄/System.map /boot/System.map-4.2.0-rc1

  • 第三步,生成新版本的initrd.img文件

cd /lib/modules/4.2.0-rc1/ update-initramfs -c -k 4.2.0-rc1

  • 第四步,讓grub引導(dǎo)自動查找新內(nèi)核

update-grub

  • 最后重啟一下,選擇自己的新內(nèi)核進(jìn)入就可以了,如果希望系統(tǒng)自動進(jìn)入最新編譯的內(nèi)核,則需要修改grub的配置文件,其配置文件是/boot/grub/grub.cfg,修改此文件中的set default="X"(X是最新內(nèi)核對應(yīng)在grub中的編號)。



詳解linux內(nèi)核內(nèi)存管理--配置內(nèi)核與編譯內(nèi)核(非常詳細(xì))的評論 (共 條)

分享到微博請遵守國家法律
赣榆县| 湖州市| 丹凤县| 霍邱县| 嘉鱼县| 壤塘县| 许昌县| 花垣县| 伽师县| 白河县| 宁陕县| 鄂尔多斯市| 理塘县| 嘉义县| 井研县| 高州市| 汉寿县| 江北区| 虞城县| 凤阳县| 阿拉尔市| 晋江市| 灵宝市| 安庆市| 山阴县| 乡城县| 常德市| 吉安市| 雷山县| 昌乐县| 庆城县| 玛纳斯县| 建始县| 姜堰市| 天全县| 宝山区| 阳谷县| 贵南县| 鹿泉市| 石河子市| 临武县|