• Ubuntu编译内核


    以下流程在Ubuntu19.10和20.04中均成功编译内核。特别要注意的是系统根目录一定要够大,如果双系统的话,分配50G磁盘空间,全部给到根目录就可以了。

    1、到Linux官方网站下载内核。

    2、做好编译前的准备工作

    # sudo apt-get install libncurses5-dev openssl libssl-dev
    # sudo apt-get install build-essential openssl
    # sudo apt-get install pkg-config
    # sudo apt-get install libc6-dev
    # sudo apt-get install bison
    # sudo apt-get install flex
    # sudo apt-get install libelf-dev
    # sudo apt-get install zlibc minizip
    # sudo apt-get install libidnll-dev libidnll
    

    3、解压下载的源码

    # tar -xavf linux-4.18.14.tar.xz -C /usr/src
    # cd /usr/src/linux-4.18.14
    

    注意这里以及后面要把内核版本号改成自己所下载的版本。

    4、净化源码

    # make mrproper
    

    如果是第一次编译内核可以省略该步。

    5、对内核选项进行配置选择

    # cp /boot/config-`uname-r` ./.config
    # make menuconfig
    

    load --> (.config)OK --> SAVE --> (.configbak)OK --> EXIT
    这里使用当前正在使用的Ubuntu系统内核的配置文件设置为要编译内核的配置文件。
    注意这里按上面这种方式操作很可能会没有load成功,我也不记得后来怎么就load成功了,只记得如果成功了那么在点击OK的时候是会有提示的。如果没有成功那么在后面开始编译的时候会提示你手动一步一步地设置配置文件。

    6、删除配置时留下的一些不用的文件

    # make clean
    

    如果是第一次编译内核同样是不需要的。

    7、编译内核

    # make bzImage -jN
    

    内核较小时可以用make zImage。
    注意N代表你选择使用几个CPU来进行编译,当然N越大越快,下一步的N相同。

    8、编译模块

    # make modules -jN
    

    9、安装模块

    # make INSTALL_MOD_STRIPE=1 modules_install
    

    此时/lib/modules/下应该新生成一个KERNEL_VERSION(4.18.14)目录

    10、构建内核映像

    # mkinitramfs /lib/modules/4.18.14 -o /boot/initrd.img-4.18.14-generic
    

    11、拷贝内核映像和System.map到/boot/下

    # cp /usr/src/linux-4.18.14/arch/x86/boot/bzImage /boot/vmlinuz-4.18.14-generic
    # cp /usr/src/linux-4.18.14/System.map /boot/System.map-4.18.14
    # ln -s /boot/System.map-4.18.14 /boot/System.map
    

    12、修改grub配置文件/boot/grub/grub.cfg

    # chmod 777 grub.cfg
    # update-grub2
    

    13、重启
    在选择系统时就可以看到自己新编译的内核版本了,如果没有看到,进入Ubuntu高级选项就可以看到了。进入新编译的内核后可以使用命令uname -r查看自己当前的内核版本。

  • 相关阅读:
    ThinkPhp框架分页查询和部分框架知识
    tp框架增删改
    WAMP中mysql服务突然无法启动 解决方法
    thinkphp框架 的 链接数据库和操作数据
    php 全局使用laravel的dd和dump
    给centos装图形界面 widowsx
    marquee标签的使用
    微信公众号开发入门教程
    laravel admin引入css js报错 https
    利用Croppie裁剪图片并后台保存
  • 原文地址:https://www.cnblogs.com/mryx/p/13289810.html
Copyright © 2020-2023  润新知