问题描述

如何禁用加载不必要的内核模块。内核3.2.4

最佳解决办法

Note: blacklisting will not work for modules which are built into the kernel image (i.e. not loaded via a separate .ko file. The only way to disable such modules is via a kernel parameter (if available) or by recompiling the kernel.

只需打开您的/etc/modprobe.d/blacklist文件并使用以下语法添加drivername:

blacklist driver-name

编辑:在12.10(12.04?)以后的版本中,文件是/etc/modprobe.d/blacklist.conf

重新启动您的盒子并使用lsmod命令显示Linux内核中模块的状态

注意:此处driver-name是您所需的黑名单驱动程序的名称。例如,如果要禁用NIC卡驱动程序,可以使用终端中的命令lspci -v命令找到LAN卡的内核驱动程序名称。例如,我的输出是:

........

........

6:00.0 Ethernet controller: Broadcom Corporation NetLink BCM5906M Fast Ethernet PCI Express (rev 02)

Subsystem: Lenovo Device 3861

Flags: bus master, fast devsel, latency 0, IRQ 46

Memory at b8000000 (64-bit, non-prefetchable) [size=64K]

Expansion ROM at [disabled]

Capabilities:

Kernel driver in use: tg3

Kernel modules: tg3

........

........

在这里,我看到驱动程序是tg3。所以你需要在driver-name的位置写tg3(或你的驱动程序)。

有很多信息可以找到here。

次佳解决办法

当您使用语法启动时,您还可以暂时将它们列在grub命令行(linux行)上

module_to_blacklist.blacklist=yes

第三种解决办法

至少在Ubuntu 16.04 LTS中将模块列入黑名单的另一种方法是在内核命令行中添加以下行:

modprobe.blacklist=MODULE_NAME

使用/etc /modprobe系统是最好的方法,但是这是一种可以通过在引导时编辑GRUB命令行来使用的替代方法。

这也可以通过编辑/etc /default /grub并添加到GRUB_CMDLINE_LINUX_DEFAULT变量来永久保存。例如,在我的/etc /default /grub中,我有:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash modprobe.blacklist=nouveau"

然后我运行update-grub2,然后运行update-initramfs -u。重新启动后,只要启动后没有任何内容加载,您就可以免费使用该模块。

此方法也适用于EL变体(RHEL,CentOS,SciLinux),但您必须使用该发行版的方法来更新grub和initrd。

(注意那些试图将nouveau列入黑名单的人:确保不要通过运行systemctl set-default multi-user.target来加载X,否则当X启动时它将再次加载nouveau!)

第四种办法

对于i915.ko,这些解决方案都不适用于16.04 LTS。

我找到的(脏)解决方案是重命名

/lib/modules/4.4.0-22-generic/kernel/drivers/gpu/drm/i915/i915.ko

/usr/lib/xorg/modules/drivers/modesetting_drv.so

/usr/lib/xorg/modules/drivers/intel_drv.so

遗憾的是,外部VGA屏幕不再被识别:{

第五种办法

在最近的版本中,您需要在黑名单文件中使用install指令

install modulename /bin/false

将上面的”modulename”替换为模块的名称。这将强制阻止其加载。

您可以在modprobe.conf手册中找到有关install指令的更多信息

man modprobe.conf

参考资料

linux内核黑名单,如何将内核模块列入黑名单?相关推荐

  1. Linux内核编译(通过内核模块显示进程控制块信息)

    Linux内核编译(通过内核模块显示进程控制块信息) 实验说明 在内核中,所有进程控制块都被一个双向链表连接起来,该链表中的第一个进程控制块为init_task.编写一个内核模块,模块接收用户传递的一 ...

  2. 从零开始学Linux内核驱动--(二)简单内核模块驱动程序

    Linux驱动–(二)简单的内核模块驱动程序 一.概述 Linux中所有的驱动都是以内核模块的形式来实现的,他们与其他所有的内核编译在一起形成一个单独的内核镜像文件(所以说Linux是一个宏内核).当 ...

  3. linux内核引入模块机制好处,linux内核模块的版本检查机制

    linux内核对插入的内核模块进行严格的版本检查,即使一个小版本号不一致也会导致加载的不成功,这完全是为了内核本身运行安全.由于linux内核的发布是基于版本号的,而所有的内核模块的开发必须依赖内核头 ...

  4. Linux内核开发_内核模块

    内核模块是什么? Linux下的内核模块类似于Windows下的DLL动态链接库技术,和我们平常所使用的一些动态链接的SDK库一样,只是调用者是内核而已,不是用户态的程序. 内核模块拥有的的权限是和用 ...

  5. 【Linux 】内核签名(签名内核模块)、linux 驱动签名、安装特定版本的 kernel-devel

    Linux 内核签名 Linux 内核签名(签名内核模块).linux 驱动签名_西京刀客-CSDN博客_linux内核签名 安装特定版本的 kernel-devel 两种方法. 一.yum 安装 查 ...

  6. 浅谈 Linux 内核开发之网络设备驱动

    网络设备介绍 网络设备是计算机体系结构中必不可少的一部分,处理器如果想与外界通信,通常都会选择网络设备作为通信接口.众所周知,在 OSI(Open Systems Interconnection,开放 ...

  7. Linux内核深入理解中断和异常(8):串口驱动程序

    Linux内核深入理解中断和异常(8):串口驱动程序 rtoax 2021年3月 /*** start_kernel()->setup_arch()->idt_setup_early_tr ...

  8. 浅谈 Linux 内核开发之网络设备驱动[转]

    本文来自:http://www.ibm.com/developerworks/cn/linux/l-cn-networkdriver/ 网络设备介绍 网络 设备是计算机体系结构中必不可少的一部分,处理 ...

  9. asp 检查黑名单_c# asp.net ip黑名单

    短信验证码接口被恶意请求,写了一个简单的黑名单规则. 使用静态数组的形式实现,优点为不占用数据库资源且速度更快效率更高. 缺点为数据无持久化,网站重启后黑名单就清空了. 效果为: 如果指定时间内请求次 ...

最新文章

  1. UNIQUE和PRIMARY 约束的区别
  2. 【视频特辑】数据分析师必备,快速制作一张强大好用的大宽表
  3. docker停止信号java_docker容器优雅停止
  4. jmeter连接mysql数据库驱动_十八、JMeter实战-JDBC连接MySQL数据库
  5. 分治算法-最大子数组问题
  6. python函数递归求和详解_Python递归函数详细分析
  7. 华为智能手环智能手表软件测试,Huawei WatchFace Designer(华为手表表盘开发工具) V10.0.1.16 官方测试版...
  8. 菏泽职业学院计算机专业代码,菏泽家政职业学院代码及专业代码
  9. 如何开启计算机的蓝牙功能吗,win7台式电脑蓝牙怎么开启(电脑蓝牙的开启步骤)...
  10. mysql如何使用多核cpu_利用多核 CPU 实现并行计算
  11. php mtrand 范围,PHP mt_rand()函数
  12. 失落城堡手游获取服务器信息99,失落城堡手游更新情况介绍 游戏更新大全
  13. ovo以及ovr的直观理解
  14. win10 中文显示乱码解决
  15. C++打开文件夹中的多个文件并计算文件中数据的平均值
  16. jmeter压测结果分析
  17. LD3320和MP3模块搭建语音识别交互系统
  18. 审计署计算机培训心得体会,审计署计算机中级培训心得体会.docx
  19. 放个N老的程序,留着以后看
  20. 单相电机转动的原理,单相电机正反转的接线方法

热门文章

  1. Swarm简介和使用教程-Docker-swarm和Docker-machine
  2. pygame time.clock.tick
  3. Android 横竖屏幕切换(layout-land和layout-port)
  4. JavaScript--JavaScript和web API、JS(提供案例)
  5. 什么是混合云战略,混合云战略有什么优势?
  6. WGCLOUD默认登录账号密码是什么
  7. Mybatis-plus-join连表查询
  8. 从neo4j-broswer中剥离graph图表
  9. 模拟苹果验证服务器,[原创]苹果 gsa 服务器login 算法
  10. java中floa后面有L吗_java中float和double输出结果到底是多少位