zoukankan      html  css  js  c++  java
  • linux内核学习Linux内核更新(2)

    一:场景

    openvswitch不同版本编译,可能对linux内核的要求不同,不一致的版本可能导致各种错误,比如:宏定义错误,结构体成员、回调函数缺失...

    比如在VM下使用的Ubuntu 16.04.1 LTS系统,默认为下面的4.4.0版本内核。

    注意:本文所有图片均是在成功后截图,所以其中的部分数据是更新内核后才显示! 比如上图中的其他内核信息,和后面hostnamectl显示的内核信息(应该是4.4.0),我们已经更新过了,所以为4.15.0-142

    而我们需要编译的openvswitch版本为openvswitch2.11.4,与之最合适的内核版本为Linux 4.15.0-142-generic。

    因此本文的需求:为了编译OVS源码,我们更新Ubuntu系统的内核版本从4.4.0-31-generic -----> 4.15.0-142-generic

    二:命令补充

    1.hostnamectl : 包括主机名,操作系统信息,内核版本信息等等......

    2.uname -r : 只查看内核版本

    3. sudo dpkg --get-selections : 显示包含标记install或deinstall的包

    4.apt-cache  search :查询支持的所有安装包

     5.grep submenu /boot/grub/grub.cfg : 查看子菜单下的启动的内核信息

     

    三:内核更新

    (一)查看当前启动的内核信息

    grep submenu /boot/grub/grub.cfg

    注意:本系统原始4.4.0的信息为(gnulinux-advanced-ecb83edd-4b85-4496-a8f3-40468ea1b71d),我们记录自己的内核信息数据即可!

    (二)查看系统支持linux内核安装包

    apt-cache  search linux | grep linux-image

    可以发现,我们需要的内核版本存在。

    (三)查找所有需要的内核安装包信息

    apt-cache  search linux | grep 4.15.0-142-generic

    (四)通过apt指令进行内核安装

    sudo apt install linux-headers-4.15.0-142 linux-headers-4.15.0-142-generic linux-image-4.15.0-142-generic linux-modules-4.15.0-142-generic linux-modules-extra-4.15.0-142-generic linux-tools-4.15.0-142-generic 

    (五)查看内核信息,后面编辑grub引导文件需要

    (六)切换默认启动的内核

    sudo gedit /etc/default/grub

    原本文件信息:

    GRUB_DEFAULT=0
    GRUB_HIDDEN_TIMEOUT=0
    GRUB_HIDDEN_TIMEOUT_QUIET=true
    GRUB_TIMEOUT=10
    GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
    GRUB_CMDLINE_LINUX=""

    更新GRUB_DEFAULT字段:

    GRUB_DEFAULT="gnulinux-advanced-ecb83edd-4b85-4496-a8f3-40468ea1b71d>gnulinux-4.15.0-142-generic-advanced-ecb83edd-4b85-4496-a8f3-40468ea1b71d"
    GRUB_HIDDEN_TIMEOUT=0
    GRUB_HIDDEN_TIMEOUT_QUIET=true
    GRUB_TIMEOUT=10
    GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
    GRUB_CMDLINE_LINUX=""

    注意:前面为4.4.0原始内核信息,后面为新的4.15.0内核信息,两者通过“>”进行连接!

    (七)更新grub

    sudo update-grub

    (八)重启,查看内核信息

    sudo reboot
    hostnamectl

    可以看到内核更新成功,后面可以正常编译ovs了!!

  • 相关阅读:
    hibernate -- 分页模糊查询中setParameter 和setParameterList
    HTTP协议状态码详解(HTTP Status Code)
    远程桌面全屏显示
    将中文标点符号替换成英文标点符号
    MySQL 三种关联查询的方式: ON vs USING vs 传统风格
    java如何遍历map的所有的元素(各种方法)
    JS处理Cookie
    js追加子元素
    JAVA编程思想(2)
    1047. Student List for Course (25)
  • 原文地址:https://www.cnblogs.com/ssyfj/p/15756169.html
Copyright © 2011-2022 走看看