編譯安裝內核

編譯安裝內核

升級內核到 linux-4.20.3.tar.xz

查看當前內核版本:
[root@centos7 data]#uname -r
3.10.0-862.el7.x86_64獲取內核源代碼包:www.kernel.org
linux-4.20.3.tar.xz

==實施步驟

1. 安裝編譯所需的工具 gcc ncurses-devel make(開發工具)
2. 下載內核源碼
a. www.kernel.org(最新)
b. ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Serverftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server
3. 解壓linux-4.20.3.tar.xz
4. 配置內核編譯的參數make menuconfig
5. 開始編譯make                                      //等價于這兩個命令make bzImage  make modules
6. 安裝模塊make modules_install                      //安裝到了 /lib/modules/$(uname -r)
7. 安裝內核make install                              //安裝到了 /boot
8. 檢查 ls /boot, /boot/grub/grub.conf, /lib/modules

==具體實施

1、安裝工具:
[root@centos7 data]#yum -y install gcc gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel zlib-devel vim lrzsz tree screen lsof
tcpdump wget ntpdate net-tools iotop bc zip unzip

[root@centos7 data]#yum -y install ncurses-devel
[root@centos7 linux-4.20.3]#yum -y install elfutils-libelf-devel //第一次編譯時報錯,未安裝此包。

  1. 上傳安裝包,解壓
    [root@centos7 data]#tar xvf linux-4.20.3.tar.xz //解壓
    [root@centos7 data]#cd linux-4.20.3/
    [root@centos7 linux-4.20.3]#cp /boot/config-3.10.0-862.el7.x86_64 .config //準備文本配置文件

  2. 配置內核選項
    [root@centos7 linux-4.20.3]#make menuconfig
    [root@centos7 linux-4.20.3]#less .config |grep NTFS
    CONFIG_NTFS_FS=m

    CONFIG_NTFS_DEBUG is not set

    CONFIG_NTFS_RW=y

    可選操作:定制kernel版本名
    [root@centos7 linux-4.20.3]#head Makefile

    SPDX-License-Identifier: GPL-2.0

    VERSION = 4
    PATCHLEVEL = 20
    SUBLEVEL = 3
    EXTRAVERSION =
    NAME = Li xinzhou

  3. 開始編譯make
    [root@centos7 linux-4.20.3]#make -j 8 && echo -e '\a'

  4. 安裝模塊
    [root@centos7 linux-4.20.3]#make modules_install

    第一次遇到下面的錯誤:
    ln: target ‘Linux/source’ is not a directory
    make: *** [modinst] Error 1

    原因:內核配置項General setup——》Local version - append to kernel release,所填內容有空格。

    解決辦法:
    刪除空格,然后make modules, 再安裝模塊。由于版本信息改變,需要重新編譯安裝內核。

  5. 安裝內核相關文件
    [root@centos7 linux-4.20.3]#make install
    sh ./arch/x86/boot/install.sh 4.20.3-1.0-xinzhoulinux arch/x86/boot/bzImage \
    System.map "/boot"

    安裝bzImage為/boot/vmlinuz-VERSION-RELEASE
    生成initramfs文件
    編輯grub的配置文件
  6. 檢查 ls /boot, /boot/grub2/grub.cfg, /lib/modules
    [root@centos7 linux-4.20.3]#ls /boot/ //查看是否有新kernel
    config-3.10.0-862.el7.x86_64 symvers-3.10.0-862.el7.x86_64.gz
    efi System.map
    extlinux System.map-3.10.0-862.el7.x86_64
    grub System.map-4.20.3-1.0-xinzhoulinux
    grub2 vmlinuz
    initramfs-0-rescue-18ed42c1c89e4d28870e69320e88d637.img vmlinuz-0-rescue-18ed42c1c89e4d28870e69320e88d637
    initramfs-3.10.0-862.el7.x86_64.img vmlinuz-3.10.0-862.el7.x86_64
    initramfs-4.20.3-1.0-xinzhoulinux.img vmlinuz-4.20.3-1.0-xinzhoulinux

    [root@centos7 linux-4.20.3]#vim /boot/grub2/grub.cfg
    menuentry 'CentOS Linux (4.20.3-1.0-xinzhoulinux) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $m
    enuentry_id_option 'gnulinux-3.10.0-862.el7.x86_64-advanced-576ed6fe-d3e8-403d-832f-2dc117ba8d2f' {
    load_video
    set gfxpayload=keep
    insmod gzio
    insmod part_msdos
    insmod xfs
    set root='hd0,msdos1'
    if [ x$feature_platform_search_hint = xy ]; then
    search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='
    hd0,msdos1' 6e6694fc-5a2f-47a1-b96b-509621e5fc1e
    else
    search --no-floppy --fs-uuid --set=root 6e6694fc-5a2f-47a1-b96b-509621e5fc1e
    fi
    linux16 /vmlinuz-4.20.3-1.0-xinzhoulinux root=UUID=576ed6fe-d3e8-403d-832f-2dc117ba8d2f ro crashkernel=auto rhgb quiet LANG=e
    n_US.UTF-8
    initrd16 /initramfs-4.20.3-1.0-xinzhoulinux.img
    }

    [root@centos7 linux-4.20.3]#ls /lib/modules/4.20.3-1.0-xinzhoulinux/kernel/fs/ntfs/ //檢查模塊是否存在
    ntfs.ko

    [root@centos7 ~]#du -sh /data/linux-4.20.3 //編譯后的文件大小11G
    11G /data/linux-4.20.3

    [root@centos7 ~]#uname -r //reboot, 查看到新的內核
    4.20.3-1.0-xinzhoulinux

    [root@centos7 data]#locate ntfs.ko
    [root@centos7 data]#updatedb // updatedb - update a database for mlocate
    [root@centos7 data]#locate ntfs.ko //已經支持新的ntfs模塊
    /data/linux-4.20.3/fs/ntfs/.ntfs.ko.cmd
    /data/linux-4.20.3/fs/ntfs/ntfs.ko
    /usr/lib/modules/4.20.3-1.0-xinzhoulinux/kernel/fs/ntfs/ntfs.ko

  7. 卸載內核
    刪除/lib/modules/目錄下不需要的內核庫文件
    刪除/usr/src/linux/目錄下不需要的內核源碼
    刪除/boot目錄下啟動的內核和內核映像文件
    更改grub的配置文件,刪除不需要的內核啟動列表

轉載于:https://blog.51cto.com/8845692/2345381

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/280555.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/280555.shtml
英文地址,請注明出處:http://en.pswp.cn/news/280555.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

layui 啟用禁用_在不啟用Apple Pay的情況下禁用煩人的Apple Pay通知

layui 啟用禁用iPhone/iPad: Not interested in Apple Pay, and tired of seeing notifications about it? You can disable them, but the option is hidden. iPhone / iPad:對Apple Pay不感興趣,又厭倦了看到有關它的通知? 您可以禁用它們…

數字孿生項目實戰,WPF與Unity結合開發之路(一)

數字孿生項目實戰,WPF與Unity結合開發之路(一)數字孿生項目實戰,WPF與Unity結合開發之路(一)作 者:水娃嗨大家好,我是一名骨灰級的WPF開發者,我叫水娃。這次主要是向大…

django17:importlib應用中間件代碼思想

轉載:https://www.cnblogs.com/alice-bj/articles/9276880.html 背景 仿django的中間件的編程思想 用戶可通過配置,選擇是否啟用某個組件/某個功能,只需要配置 eg:報警系統,發郵件,發微信 。。。 ( 根據字符串導入…

Python 全棧開發基礎

python面向對象 python異常處理 python網絡編程 python并發編程 臨時目錄 轉載于:https://www.cnblogs.com/fixdq/p/8883304.html

IBM連續兩年大數據市場占有率全球第一

ZDNet至頂網服務器頻道 04月22日 新聞消息:IBM 近日宣布,根據市場調研機構Wikibon最新研究報告《大數據供應商收益與市場預測》,IBM連續兩年實現大數據市場占有率第一,領跑報告中的70多家大數據供應商。同期,IBM年度報告也顯示&am…

idou老師教你學Istio06: 如何用istio實現流量遷移

流量遷移是流量管理的一個重要功能。istio提供的流量管理功能將流量從基礎設施擴展中解耦,支持動態請求路由,故障注入、超時重試、熔斷和流量遷移等。流量遷移的主要目的是將流量從微服務的某一版本的逐步遷移至另一個版本,如在新舊版本之間進…

用最少的代碼,寫一個完整MES項目(.NET6+WPF)

工業4.0時代,智能智造MES系統大行其道,然而基于.NET跨平臺的罕見!這里有一套《.NET6WPF企業級MES實戰》教程,基于.NET6跨平臺開發,實現了MES多核心功能,尤其是開發框架完整,非常適合復用。這里分…

django18:auth模塊

Auth模塊 執行數據庫遷移命令后,自動生產多個表。 django_session auth_user 直接訪問admin路由,需要輸入用戶名和密碼,就是參考auth_user表 管理員用戶才能進入 創建超級用戶 createsuperuser from django.contrib import auth1.校驗用…

hulu dpp_什么是直播電視的Hulu,它可以代替您的有線電視訂閱嗎?

hulu dppStreaming cable replacements are becoming a much more appealing option for cable cutters across the board, with more choices available than ever before. Hulu’s Live TV option is a relative newcomer to the scene, but is it worth it? 對于全系列的電…

suse linux ssh遠程無法訪問問題

當正常安裝完Suse Linux Enterprise Server 11 sp1 時,無法通過SecureCRT或者PuTTY之類的終端程序進行連接。 折騰了一下,發現問題所在: 1、 需要關閉防火墻,如下圖在YAST里可以關閉,也可以使用下面命令行的方式&…

4.Linux的目錄結構

Linux的目錄結構 (1)"/"目錄 Linux文件系統的入口,也是出于最高一級的目錄 (2)"/bin" 基礎系統所需要的那些命令位于此目錄。也是最小系統所需要命令;比如ls、cp、mkdir等命令;功能和/usr/bin類似,這個目錄中…

Jade —— 源于 Node.js 的 HTML 模板引擎

2013-12-11 發布Jade —— 源于 Node.js 的 HTML 模板引擎 開源項目介紹 web 模板引擎 node.js jade 207.8k 次閱讀 讀完需要 69 分鐘54Jade 是一個高性能的模板引擎,它深受 Haml 影響,它是用 JavaScript 實現的,并且可以供 Node…

詐騙者如何偽造電子郵件地址,以及如何分辨

Consider this a public service announcement: Scammers can forge email addresses. Your email program may say a message is from a certain email address, but it may be from another address entirely. 考慮這是一項公共服務公告:詐騙者可以偽造電子郵件地…

如何對整個 WPF 應用程序進行灰度

如何對整個 WPF 應用程序進行灰度控件名:GrayscaleEffect作 者:WPFDevelopersOrg - 驚鏵原文鏈接[1]:https://github.com/WPFDevelopersOrg/WPFDevelopers 簡易源碼[2]框架使用.NET40;Visual Studio 2019;如果要實現灰度第一反是…

django19:項目開發流程

參考:https://www.bilibili.com/video/BV1QE41147hU?p831&spm_id_frompageDriver

React Native - FlexBox彈性盒模型

FlexBox布局 1. 什么是FlexBox布局? 彈性盒模型(The Flexible Box Module),又叫FlexBox,意為"彈性布局",旨在通過彈性的方式來對齊和分布容器中內容的空間,使其能適應不同屏幕,為盒模型提供最大的靈活性. ??Flex布局主要思想是: 讓容器有能力讓其子項目能夠改變其…

java虛擬機讀寫其他進程的數據

在java中,process類提供了如下3個方法,用于讓程序和其他子進程進行通信。 InputStream getErrorStream():獲取子進程的錯誤流。 InputStream getInputStream():獲取子進程的輸入流。…

release8_如何在Windows 8 Release Preview中將Chrome用作Metro瀏覽器

release8Windows 8 allows third-party browser to replace Internet Explorer in the Metro environment — except on Windows RT. You can use Google Chrome in Metro today, and Firefox for Metro is on the way. Windows 8允許第三方瀏覽器在Metro環境中替換Internet Ex…

html jQuery/bootstrap通過網絡bootcdn導入連接

網絡連接網址 https://www.bootcdn.cn/ <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"utf-8"><title>title</title><!-- Bootstrap --><link href"https://cdn.bootcdn.net/ajax/libs/twi…

Python深入類和對象

一. 鴨子類型和多態 1.什么是鴨子類型&#xff1a; 在程序設計中&#xff0c;鴨子類型&#xff08;英語&#xff1a;Duck typing&#xff09;是動態類型和某些靜態語言的一種對象推斷風格。"鴨子類型"像多態一樣工作&#xff0c;但是沒有繼承。“鴨子類型”的語言是這…