久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何理解Linux內核編譯

154次閱讀
沒有評論

共計 3047 個字符,預計需要花費 8 分鐘才能閱讀完成。

這篇文章給大家介紹如何理解 Linux 內核編譯,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

一、前言(僅供參考)

linux 內核該如何學習

1、安裝 vmware 虛擬機或者 virtualbox,再安裝發行版本 linux

2、www.kernel.org, 挑選一個內核版本

3、進行解壓并編譯

4、自己寫一些模塊(比如說可以去嘗試解一些官網的 bug), 如下圖所示:

下面我們就可以看到還有很多內核 bug 未解決的問題還在那里:

下面是提交的 bug 測試報告:

最后有可能的話,可以去試試嘗試解這些 bug!!!

5、內核源碼 (網絡) 閱讀:tcp_input.c tcp_out.c tcp_ipv4.c tcp.c

進程管理:task_struct

一、linux 內核版本下載:

1、我們可以去官網下載 linux 內核版本:www.kernel.org:

注:這里我下載的是最新的內核來進行編譯,環境是在 ubuntu18.04; 注意如果低版本的 ubuntu 去編譯搞版本的 linux 內核,可能會出現一些環境配置問題,比如 make 的版本過低等等。

2、解壓并配置、編譯:

(1)這里我使用了 smbd 服務器來共享 windows 文件,現在開始解壓剛才下載下來的 linux 內核文件:

注意:一開始下載下來的 linux 內核文件是以 .xz 結尾的,我們要用下面的命令進行解壓:

xz  ndash;d linux-5.8.10.tar.xz

(2)然后就會得到上圖的文件了; 下面來正式解壓文件了:

root@txp-virtual-machine:/home/txp/share01# tar xvf linux-5.8.10.tar

(3)然后切換到解壓得到的文件目錄下,并進行一些前期準備:

root@txp-virtual-machine:/home/txp/share01# cd linux-5.8.10 root@txp-virtual-machine:/home/txp/share01/linux-5.8.10# ls arch certs CREDITS Documentation fs init Kbuild kernel LICENSES Makefile net samples security tools virt block COPYING crypto drivers include ipc Kconfig lib MAINTAINERS mm README scripts sound usr

(4)然后安裝一些插件,這里我已經提前試過錯了,所以只要安裝下面的安裝配置就行(當前第一次進行 make  menuconfig 的時候,可以根據報錯信息來進行安裝一些配置):

sudo apt-get install libncurses5-dev flex bison libssl-dev

(5)進行 make menuconfig, 出現了那個界面并 save 退出(可以直接按鍵盤上的 esc 鍵退出):

(6)開始編譯內核,這里可以根據你的電腦是多少核處理器來進行編譯配置(我的電腦是戰神,四核處理器)

root@txp-virtual-machine:/home/txp/share01/linux-5.8.10# make -j4 CC [M] net/bridge/br_vlan.o CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_clock_source.o LD [M] net/dsa/dsa_core.o CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_scl_filters.o CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_transform.o CC [M] drivers/gpu/drm/i915/gvt/mmio.o CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_opp.o CC [M] net/appletalk/aarp.o CC [M] net/bridge/br_vlan_tunnel.o CC [M] drivers/gpu/drm/i915/gvt/display.o CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_dmcu.o CC [M] net/appletalk/ddp.o CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_abm.o CC [M] net/bridge/br_vlan_options.o CC [M] drivers/gpu/drm/i915/gvt/edid.o CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_ipp.o CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_aux.o CC [M] net/bridge/br_switchdev.o CC [M] net/appletalk/dev.o CC [M] drivers/gpu/drm/i915/gvt/execlist.o CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_i2c.o CC [M] net/appletalk/atalk_proc.o CC [M] net/bridge/br_netfilter_hooks.o CC [M] drivers/gpu/drm/amd/amdgpu/../display/dc/dce/dce_i2c_hw.o CC [M] drivers/gpu/drm/i915/gvt/scheduler.o

注:因為是最新內核,編譯的時間比較久,所以耐心等待就行了(大概至少幾十分鐘。。。。。。),在編譯的時候,我們也可以看一下內存的情況:

htop

(7)如果你要修改當前 ubuntu 的內核版本,可以按照下面的操作來進行,我這里就沒有去更換內核了,配置了太多東西,所以就。

當前內核版本:

root@txp-virtual-machine:/home/txp/share01/linux-5.8.10# uname -r 5.3.0-28-generic

a、先進行安裝編譯內核模塊:

make modules_install
make bzImage

b、安裝新編譯的內核(把我們剛才編譯的新內核進行替換當前內核):

$ cp arch/x86/boot/bzImage /boot/vmlinuz-5.8.10 $ cp .config /boot/config-5.8.10 $ cd /lib/modules/5.8.10/ $ update-initramfs  ndash;c  ndash;k 5.8.10 $ update-grub

關于如何理解 Linux 內核編譯就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-25發表,共計3047字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 长治市| 台东市| 随州市| 大渡口区| 星子县| 河池市| 乐安县| 福泉市| 商南县| 天津市| 高唐县| 静安区| 台湾省| 辰溪县| 高淳县| 简阳市| 渑池县| 佳木斯市| 富裕县| 易门县| 辽阳市| 中山市| 清原| 怀安县| 获嘉县| 宁乡县| 西畴县| 凤山县| 高唐县| 团风县| 江川县| 舞钢市| 长岛县| 北安市| 瑞安市| 施甸县| 河北区| 常宁市| 东乡| 大渡口区| 正蓝旗|