Linux学习之Ubuntu 20.04安装内核模块

这篇具有很好参考价值的文章主要介绍了Linux学习之Ubuntu 20.04安装内核模块。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

参考博客:Ubuntu20.04编译内核教程

sudo lsb_release -a可以看到我当前的系统是Ubuntu 20.04.4sudo uname -r可以看到我的系统内核版本是5.4.0-100-generic
Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu
sudo apt-get install -y libncurses5-dev flex bison libssl-dev安装所需要的依赖。
Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu

sudo apt-get install linux-source按两下Tab,看一下可以下载的源码。
Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu

然后输入sudo apt-get install linux-source-5.4.0就可以下载源码。
Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu

sudo find / -name linux-source-5.4.0看一下源码下载位置,ls -l /usr/src/linux-source-5.4.0看一下目录下边的内容。
Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu

sudo tar xjf /usr/src/linux-source-5.4.0/linux-source-5.4.0.tar.bz2 -C /usr/src/linux-source-5.4.0/把源码压缩包解压到/usr/src/linux-source-5.4.0/目录下。
Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu

cd /usr/src/linux-source-5.4.0/linux-source-5.4.0/进入到源码顶层目录下。
Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu

sudo make menuconfig进入到配置页面。
Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu
键可以选择目录,键可以选择选项,比如<Select>,< Exit >等。
Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu

键选择 Device Drivers --->,然后按Enter
Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu

键选择Network device support ---> ,然后按Enter
Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu

键选择Universal TUN/TAP device driver support,然后按m,在尖括号里边要有M

Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu
键,选择 < Save >,然后按Enter
Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu

键,选择 < ok >,然后按Enter
Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu

然后再按Enter
Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu

键,选择 < Exit >,然后按Enter
Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu

键,选择 < Exit >,然后按Enter
Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu

键,选择 < Exit >,然后按Enter
Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu

最后退出到命令行。
Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu

重新配置一些参数。

sudo sed -i 's/CONFIG_MODULE_SIG=y/CONFIG_MODULE_SIG=n/g' .config  # 把 CONFIG_MODULE_SIG=y  替换成  CONFIG_MODULE_SIG=n
sudo sed -i 's/CONFIG_MODULE_SIG_ALL=y/CONFIG_MODULE_SIG_ALL=n/g' .config
sudo sed -i 's/CONFIG_SYSTEM_TRUSTED_KEYS="debian\/canonical-certs.pem"/CONFIG_SYSTEM_TRUSTED_KEYS=""/g' .config
sudo sed -i 's/CONFIG_SYSTEM_REVOCATION_KEYS="debian\/canonical-revoked-certs.pem"/CONFIG_SYSTEM_REVOCATION_KEYS=""/g' .config
sudo sed -i 's/CONFIG_SYSTEM_TRUSTED_KEYRING=y/CONFIG_SYSTEM_TRUSTED_KEYRING=n/g' .config  # 把 CONFIG_SYSTEM_TRUSTED_KEYRING=y 替换成 CONFIG_SYSTEM_TRUSTED_KEYRING=n 
cat .config | grep "CONFIG_SYSTEM_TRUSTED_KEYRING=n" # 看一下 CONFIG_SYSTEM_TRUSTED_KEYRING 相关字符串是否成功替换。

Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu
sudo nohup make -j2 all &在后台运行make编译过程,按一下回车键可以再次进入命令输出。
Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu

cat nohup.out可以看一下文件里边的内容。
Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu

使用sudo ps -aux | grep nohup可以看一下sudo nohup make -j2 all &是否还在运行。
Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu

sudo ps -aux | grep nohup要是只有如下所示一条记录,要么执行完成,要么有问题报错了。Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu

cat nohup.out看一下输出文件,发现报错如下:

BTF: .tmp_vmlinux.btf: pahole (pahole) is not available
Failed to generate BTF for vmlinux
Try to disable CONFIG_DEBUG_INFO_BTF
make: *** [Makefile:1139: vmlinux] Error 1

Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu

sudo apt-get install -y dwarves是为了解决上边的报错而安装依赖包。
Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu

sudo nohup make -j2 all &执行之后,nohup: ignoring input and appending output to 'nohup.out'之后按一下回车键,接着让系统进行编译吧。
Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu

ps -aux | grep 459469sudo ps -aux | grep nohup发现这个459469进程已经不执行了。
Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu

sudo tail -n 20 nohup.out看一下/usr/src/linux-source-5.4.0/linux-source-5.4.0/nohup.out最后二十行内容,发现没有报错。结合上边459469已经执行结束,这说明内核已经编译成功了。
Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu
sudo nohup make modules_install &进行内核安装,在nohup: ignoring input and appending output to 'nohup.out'之后按一下回车键。
Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu

ps -aux | grep 555980看一下555980进程是否还在执行,发现已经结束了。
Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu

sudo tail -n 30 nohup.out看一下nohup.out最后三十行输出结果,发现没有报错,结合上边555980进程已经结束,所以内核模块已经安装完成。
Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu

sudo grep 'menuentry' /boot/grub/grub.cfg可以看一下相关信息。
Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu

/etc/default/grub里边的原来内容如下:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=menu
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX="net.ifnames=0 consoleblank=600 console=tty0 console=ttyS0,115200n8 nospectre_v2 nopti noibrs noibpb"

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

具体如何修改/etc/default/grub,可以参考下边两篇博客:
Ubuntu 20.04 LTS修改内核版本
Ubuntu20.04 如何降低内核版本?

sudo vim /etc/default/grub,我把内容修改如下:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT="gnulinux-advanced-bbd3ea56-da3b-4e1a-b14e-159e41299ea3>gnulinux-5.4.0-26-generic-advanced-bbd3ea56-da3b-4e1a-b14e-159e41299ea3"
GRUB_TIMEOUT_STYLE=menu
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX="net.ifnames=0 consoleblank=600 console=tty0 console=ttyS0,115200n8 nospectre_v2 nopti noibrs noibpb"

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

就是把GRUB_DEFAULT=0改为GRUB_DEFAULT="gnulinux-advanced-bbd3ea56-da3b-4e1a-b14e-159e41299ea3>gnulinux-5.4.0-26-generic-advanced-bbd3ea56-da3b-4e1a-b14e-159e41299ea3"

sudo update-grub更新grubsudo reboot进行重启。
Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu

重启之后输入sudo uname -r可以看到内核已经变为5.4.0-26-generic
Linux学习之Ubuntu 20.04安装内核模块,Linux基础学习,linux,学习,ubuntu
内容来源于极客时间《Linux 实战技能 100 讲》。文章来源地址https://www.toymoban.com/news/detail-606062.html

到了这里,关于Linux学习之Ubuntu 20.04安装内核模块的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux系列---【Ubuntu 20.04安装KVM】

    1.安装kvm 2. 将当前用户添加至libvirt 、 kvm组 3.验证安装 4.启动libvert 至此,kvm安装完毕! 1.安装xrdp 2.查看ubuntu的ip 3.打开windows远程连接工具 登录成功后,记得修改登录密码。不然,系统一锁屏,就打不开了。通过这里输入原来ubuntu的root密码,解不了休眠锁。 1.安装virt-manager

    2024年02月16日
    浏览(65)
  • linux下ubuntu20.04的 libpcap安装

    Libpcap安装 方式一:下载官方安装包 需要先安装: 1、安装GCC: sudo apt-get install gcc-c++(由于我当前的环境docker下已安装了gcc,所以这一步跳过) 2、安装flex: sudo apt-get install flex 没有flex,直接安装libpcap会提示\\\"Your operating system’s lex is insufficient to compile libpcap\\\"错误; 3、安装

    2024年01月17日
    浏览(74)
  • Ubuntu20.04(linux)安装JDK1.8

    Ubuntu20.04安装JDK1.8 1.下载 : jdk-8u371-linux-x64.tar.gz 2.解压到指定目录 3.在/usr/lib/ 创建 jvm 文件夹,并将解压的jdk移动到/usr/lib/jvm(非root用户使用sudo) 4.打开/etc/profile,配置环境变量 vi /etc/profile(编辑文件) Shift + g 将光标定位到行尾 这个时候按一下 Insert 键,进入编辑模式 按Esc键 输

    2024年02月12日
    浏览(72)
  • Linux(7)Ubuntu20.04 arm64安装Docker

    vi /etc/apt/sources.list 这个命令后面跟了几个软件包的名字,它们分别是: apt-transport-https:这个软件包允许apt使用HTTPS协议来访问软件源。 ca-certificates:这个软件包提供了一些受信任的证书颁发机构的证书,用来验证HTTPS连接的安全性。 curl:这个软件包提供了一个命令行工具,

    2024年02月10日
    浏览(61)
  • 【Linux】Ubuntu20.04版本安装谷歌中文输入法【教程】

    使用下面的命令行下载 fcitx-googlepinyin 等待下载完成之后,可进行下一步 在菜单中找到 语言支持 第一次打开语言支持,会提示没有安装完全,点击 安装 即可 将键盘默认输入法系统改为 fcitx ,然后 重启系统 选择 配置当前输入法 将 Google拼音 放置在第一位即可完成配置 关闭

    2024年02月03日
    浏览(61)
  • 【WSL】使用WSL在Windows上安装Linux(Ubuntu20.04)

    本文将介绍在win11系统下使用Windows自带的WSL功能安装Ubuntu20.04子系统,其中WSL2本质仍是基于Hyper-V的虚拟机。 Windows11 + WSL2 + Ubuntu20.04 (WSL译为适用于 Linux 的 Windows 子系统) 在Windows设置中添加可选功能,勾选 适用于Linux的Windows子系统(即WSL) 和 虚拟机平台 ,开启该功能需重

    2024年02月12日
    浏览(55)
  • Linux | Ubuntu 20.04安装ipopt和cppAD | 安装全流程+报错解决

    https://github.com/udacity/CarND-MPC-Quizzes/blob/master/install_Ipopt_CppAD.md https://blog.csdn.net/qq_34525916/article/details/119186692#:~:text=%E6%A6%82%E8%A7%88 https://coin-or.github.io/CppAD/doc/install.htm Ubuntu20.04 安装 Ipopt + cppAD流程 coinor库的安装与问题解决 Undefined reference to `Ipopt::IpoptApplication::IpoptApplication(bool,

    2024年02月01日
    浏览(62)
  • Linux桌面端Ubuntu20.04安装和使用netplan修改IP地址

    1. 点击右上角的有线连接: 2. 进入后点击设置按钮:  3. 先点击IPv4,然后选择手动,再在地址处输入想要的IP地址,点击应用,则完成修改。 ​​​​​​ 首先输入: 安装完成后,进入安装文件夹: 打开配置的yaml文件: 进入后一般为空白,配置内容(复制后Ctrl+V): 这

    2024年02月15日
    浏览(51)
  • 交叉编译工具链arm-linux-gnueabihf的安装-ubuntu 20.04

    http://t.csdn.cn/ZbjFX 建议直接在.bashrc文件作修改 ,修改方式相同 ( vi :视自己的编辑器而定) 因为我在修改profile文件后,环境变量生效,但是命令行的用户名等颜色高亮显示会消失;并且重启终端后,又需要再source一下profile。 但是将环境变量添加至.bashrc则不会出现这两个问题

    2024年02月11日
    浏览(52)
  • Ubuntu 20.04(linux) cuda(12)+cudnn的deb方式安装以及验证(宝宝也适用哟)

    前言(碎碎念) 想当年在实验室就在自己电脑(双系统)和服务器上都搭建这个环境(Ubuntu18.04+conda+pycharm+cuda+cudnn完整流程) 还写了操作文档,主要遇到了太多问题(比如NVIDIA驱动安装后黑屏问题,真是想用linux之父的话来说一句) 现在再次遇到重装服务器这个事情,又遇

    2024年02月03日
    浏览(108)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包