编译安装内核

编译安装内核

升级内核到 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.mzph.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;但是没有继承。“鸭子类型”的语言是这…