我的发行版是 Fedora 17 Gnome。每次重新启动/重新启动计算机时,我都需要以 root 身份运行此命令:
modprobe rt2800usb
Run Code Online (Sandbox Code Playgroud)
我怎样才能让它永久?
要在 Linux 上创建假以太网虚拟接口,我们首先使用以下命令初始化虚拟接口驱动程序:
/sbin/modprobe dummy。
然后我们将以太网接口别名分配给我们刚刚初始化的虚拟驱动程序。
但它给出了以下致命错误说: 致命:未找到模块虚拟。
此外,在路径 cd /sys/devices/virtual/net# 中,我们可以看到存在以下名称的虚拟接口:
dummy0/lo/sit0/tunl0/
ifconfig -a
dummy0: Link encap:Ethernet HWaddr aa:3a:a6:cd:91:2b
BROADCAST NOARP MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo: Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:111 errors:0 dropped:0 overruns:0 frame:0
TX packets:111 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:8303 …Run Code Online (Sandbox Code Playgroud) linux networking modprobe network-interface virtual-interface
我使用nouveau内置于内核中的驱动程序配置和编译了 Linux 内核,即与在 Linux 内核源目录中执行时<*>相反。<M>make menuconfig
现在,我打算使用另一个驱动程序而不是nouveau. 如果nouveau是一个模块,我会blacklist nouveau在里面添加一行/etc/modprobe.d/blacklist.conf
我现在该怎么办。
我正在尝试以modprobe wireguardroot 身份登录,但失败了:
modprobe: ERROR: could not insert 'wireguard': Operation not permitted
Run Code Online (Sandbox Code Playgroud)
添加详细我又得到一行:
[root@localhost ben]# insmod /lib/modules/5.2.11-100.fc29.x86_64/extra/wireguard.ko.xz
insmod: ERROR: could not insert module /lib/modules/5.2.11-100.fc29.x86_64/extra/wireguard.ko.xz: Operation not permitted
Run Code Online (Sandbox Code Playgroud)
dkms 运行良好,没有错误。我也禁用了 selinux 并没有什么区别。我看不到任何东西journalctl日志。
查看手册页和谷歌没有发现任何东西。
我确实在以下内容中找到了这个有用的行dmesg:
Lockdown: modprobe: Loading of unsigned module is restricted; see man kernel_lockdown.7
Run Code Online (Sandbox Code Playgroud)
但是,该手册页不存在。
我该如何调试?关于下一步去哪里的任何指示?
当我运行以下两个命令时,第一个没有错误返回,但第二个给了我 FATAL: Module iwlwifi is in use.
sudo ifconfig wlan0 down
sudo modprobe -r iwlwifi
Run Code Online (Sandbox Code Playgroud)
如果关闭无线接口仍然使用内核模块,这意味着什么?
为了运行虚拟机,VirtualBox 告诉我禁用 KVM 内核模块。我搜索了一下,发现 KVM 包含在qemu-*-packages 中,但是我的系统(Debian Wheezy)上没有安装/安装它们。
之后我只是尝试卸载模块,但这不想工作,因为它正在使用中:
# modprobe -r kvm_intel
FATAL: Module kvm_intel is in use.
# modprobe -r kvm
FATAL: Module kvm is in use.
Run Code Online (Sandbox Code Playgroud)
我不知道什么程序正在使用它,我真的不知道那可能是什么。我也尝试过使用该-f选项,但得到了相同的结果。
我的问题是:如何删除或禁用 KVM 内核模块?
更新:
这是lsmod命令的输出:
# lsmod | grep kvm
kvm_intel 138825 3
kvm 404853 1 kvm_intel
Run Code Online (Sandbox Code Playgroud) 我目前正在尝试删除 usbserial 模块以安装新的驱动程序模块。当我尝试删除模块时,出现以下问题:
[root@localhost xr21v141x-lnx-3.0-pak]# modprobe -r usbserial
FATAL: Module usbserial is builtin
Run Code Online (Sandbox Code Playgroud)
如何删除 usbserial 模块?
让我们假设一个 Linux 系统已启动并正常运行的场景。用户来了并热插拔了 USB 存储设备。
发生的事件顺序如下图所示:
modprobe 在哪里加载它的驱动程序?所请求设备的驱动程序是/sys/bus/drivers在 modprobe 加载之后还是之前找到的?
我在这里试图建立的是/sys/上图中的条目和发生的事件之间的关系。
我正在运行 rsync 以将远程机器备份到 ARM SBC 上的 USB 硬盘驱动器,有时 rsync 会因“从输入设备读取错误(I/O 错误)”而停止。我相信这个问题与 UAS + USB 3.0 + rsync 导致高 I/O 负载有关,因为uas_eh_device_reset_handleron /var/log/messages:
sd 0:0:0:0: [sda] tag#1 data cmplt err -32 uas-tag 2 inflight:
sd 0:0:0:0: [sda] tag#1 CDB: opcode=0x28 28 00 38 80 0a 68 00 00 a0 00
sd 0:0:0:0: [sda] tag#0 data cmplt err -32 uas-tag 1 inflight: CMD
sd 0:0:0:0: [sda] tag#0 CDB: opcode=0x2a 2a 00 57 50 28 78 00 03 00 00
sd …Run Code Online (Sandbox Code Playgroud) 我使用的是 Ubuntu 18.04。我正在尝试在启动时加载模块;有问题的模块是 iTCO_wdt。关于将内核模块列入黑名单有很多问题,但我正在尝试将其中一个列入白名单。
以下是我尝试在启动时加载模块所遵循的步骤:
iTCO_wdt到 /etc/modules (符号链接到 /etc/modules-load.d/modules.conf)blacklist iTCO_wdt/etc/modprobe.d/blacklist-watchdog.conf 中的行我认为这已经足够了,但 syslog 仍然显示该模块已被列入黑名单:
systemd-modules-load[331]: Module 'iTCO_wdt' is blacklisted
Run Code Online (Sandbox Code Playgroud)
经过一番调查,我发现该模块也在 /lib/modprobe.d 中的几个维护者安装的黑名单文件中被列入黑名单:
systemd-modules-load[331]: Module 'iTCO_wdt' is blacklisted
Run Code Online (Sandbox Code Playgroud)
我发现每个文件确实影响了 modprobe 行为,这令人惊讶,因为当 linux_4.15.0.23-generic 是当前内核时,我不希望 linux_4.15.0.20-generic.conf 文件影响机器的行为。
注释掉blacklist iTCO_wdt每个文件中的行并重新启动后,模块会自动加载,这是所需的行为。
因此,正如我所见,有几种方法可以使模块加载,即使它被 /lib/modprobe.d 文件列入黑名单:
blacklist iTCO_wdt每个文件中的行问题是未来的更新可能会安装新的 /lib/modprobe.d 黑名单文件,这可能会将 iTCO_wdt 重新列入黑名单。考虑到这一点,我最好的选择似乎是最后一个,尽管我真的不喜欢它,因为它依赖于我自己的脚本而不是内置的模块加载系统。
考虑到我不想在每次内核更新后编辑 /lib/modprobe.d 文件,在模块加载系统中将 iTCO_wdt 模块永久列入白名单的最佳方法是什么?
modprobe ×10
drivers ×3
linux ×3
linux-kernel ×3
debian ×2
kernel ×2
systemd ×2
command-line ×1
kvm ×1
networking ×1
startup ×1
udev ×1
usb ×1
usb-drive ×1
wifi ×1