标签: modprobe

致命:未找到模块 nfs

我正在 LAN 上设置一个新的 NFS 客户端,该 LAN 有一个运行 nfs4 的工作 NFS 服务器(Ubuntu 12.04)。其他客户端都按预期工作。

在这个新客户端上,我在 Acer Chromebook 上运行带有内核 3.4.0 (Kubuntu 12.04) 的 ChrUbuntu。我安装了 nfs-common。但是,mount 命令返回错误mount.nfs4 no such device。并# modprobe nfs返回Fatal: module nfs not found。谷歌没有为我提供任何解决方案。

挂载命令如下:

sudo mount -t nfs4 -o _netdev,noatime,auto,rw myserver:/home/user/shared /home/user/mountpoint
Run Code Online (Sandbox Code Playgroud)

modprobe 命令是:

sudo modprobe nfs
Run Code Online (Sandbox Code Playgroud)

而 nfs-common 是此版本存储库中的最新版本:1:1.2.5-3ubuntu3.1

nfs modprobe chrubuntu

6
推荐指数
1
解决办法
2万
查看次数

了解 Broadcom 设置和内核文件

我经常从 live usb/CD 安装 Linux 发行版。为此,我希望能够在没有任何互联网连接的情况下设置我的无线网络。我有一个 Broadcom 芯片组:

$ lspci -k
04:00.0 Network controller: Broadcom Corporation BCM43228 802.11a/b/g/n
Run Code Online (Sandbox Code Playgroud)

我下载了bcmwl-kernel-source软件包及其依赖项 ( dkms)。我可以离线安装它们并使我的 wifi 正常工作。但是我想了解它是如何工作的。

.ko模块文件夹中有一个文件列表:

$ ls /lib/modules/`uname -r`/kernel/net/wireless/
cfg80211.ko             lib80211_crypt_tkip.ko  lib80211.ko
lib80211_crypt_ccmp.ko  lib80211_crypt_wep.ko
Run Code Online (Sandbox Code Playgroud)

我备份了它们并删除了它们

$ rm /lib/modules/`uname -r`/kernel/net/wireless/*.ko
$ reboot
Run Code Online (Sandbox Code Playgroud)

重新启动后,wifi不再工作。这些.ko文件似乎是完成wl工作的重要文件。

我尝试重新加载,wl但它不再被识别:

$ modprobe wl
modprobe: ERROR: ../libkmod/libkmod-module.c:180 kmod_module_parse_depline() ctx=0x7f9f5375d010 path=/lib/modules/3.13.0-35-generic/kernel/net/wireless/lib80211.ko error=No such file or directory
modprobe: ERROR: ../libkmod/libkmod-module.c:180 kmod_module_parse_depline() ctx=0x7f9f5375d010 path=/lib/modules/3.13.0-35-generic/kernel/net/wireless/lib80211.ko error=No such file or directory
modprobe: ERROR: could …
Run Code Online (Sandbox Code Playgroud)

linux wifi kernel broadcom modprobe

6
推荐指数
0
解决办法
2132
查看次数

Centos 7.3 上的 modprobe 返回多个和/或奇怪的结果

有人可以告诉我为什么下面的命令

modprobe -n -v dccp_ipv4
Run Code Online (Sandbox Code Playgroud)

返回两个结果 ?

install /bin/true
install /bin/true
Run Code Online (Sandbox Code Playgroud)

为什么会这样

modprobe -n -v dccp_ipv6
Run Code Online (Sandbox Code Playgroud)

返回三?

install /bin/true
install /bin/true
install /bin/true
Run Code Online (Sandbox Code Playgroud)

我使用的是 CentOS Linux 版本 7.3.1611(核心),在 /etc/modprobe.d 中我有许多文件,其中有一个来自 CIS 的建议的文件。该文件包含(除其他外):

install dccp_ipv4 /bin/true
install dccp_ipv6 /bin/true
Run Code Online (Sandbox Code Playgroud)

以上两个是 /etc/modprobe.d 中的文件中唯一出现的情况

此外,一个

modprobe -n -v udf
Run Code Online (Sandbox Code Playgroud)

也返回两行:

insmod /lib/modules/3.10.0-514.21.2.el7.x86_64/kernel/lib/crc-itu-t.ko
install /bin/true
Run Code Online (Sandbox Code Playgroud)

/etc/modprobe.d 中的 CIS 文件内容为:

install udf /bin/true
Run Code Online (Sandbox Code Playgroud)

那么,为什么要使用 insmod 行呢?

我问这个问题是因为漏洞扫描器只需要一行输出(在本例中为 install /bin/true)

centos modprobe

6
推荐指数
1
解决办法
2342
查看次数

modprobe 和 sysctl -w 在设置系统参数方面的区别?

我们知道 sysctl 命令可以通过以下方式更改内核参数:

# sysctl -w kernel.domainname="example.com"
Run Code Online (Sandbox Code Playgroud)

或直接编辑/proc/sys目录中的文件。对于持久更改,必须将参数写入/etc/sysctl.d/<moduleName>.conf文件,如下所示:

# echo kernel.domainname="example.com" > /etc/sysctl.d/domainname.conf
Run Code Online (Sandbox Code Playgroud)

但是,我们也可以使用 modprobe 命令更改内核参数:

# modprobe kernel domainname="example.com"
Run Code Online (Sandbox Code Playgroud)

然后是/etc/modprobe.d目录中的 modprobe.conf 文件,它存在于多个位置:/etc/modprobe.d/usr/lib/modprobe.d. 它包含多个.conf文件,可以在模块的相应 conf 文件中提供选项,如下所示:

options kernel domainname="example.com"
Run Code Online (Sandbox Code Playgroud)

那么,每种方法之间有什么区别呢?在什么具体情况下应该使用哪种方法?

kernel modprobe sysctl kernel-parameters

6
推荐指数
1
解决办法
1251
查看次数

覆盖 modprobe.d 黑名单

我使用的是 Ubuntu 18.04。我正在尝试在启动时加载模块;有问题的模块是 iTCO_wdt。关于将内核模块列入黑名单有很多问题,但我正在尝试将其中一个列入白名单。

以下是我尝试在启动时加载模块所遵循的步骤:

  1. 添加iTCO_wdt到 /etc/modules (符号链接到 /etc/modules-load.d/modules.conf)
  2. 注释掉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 模块永久列入白名单的最佳方法是什么?

linux kernel-modules modprobe systemd

6
推荐指数
1
解决办法
4333
查看次数

在 modprobe 文件中添加网卡

我正在尝试在 Arch Linux 机器上设置 ADSL 连接。我阅读了Internet Access上的 Arch wiki 文章,但我仍然感到困惑——如何将我的网卡添加到modprobe文件中?

arch-linux internet modprobe

5
推荐指数
1
解决办法
1197
查看次数

无需重新启动即可删除 nouveau 驱动程序 (nvidia)

我这里有一个 Ubuntu 版本,它是从 USB 启动的 Live 版本。我不想将它安装在硬盘上,因为仅在 Ubuntu 上测试一个小东西就太多了。

所以我启动了 Ubuntu 并使用以下命令为 GPU(Tesla C2050)安装了 nvidia 驱动程序(来自 nvidia):

sudo apt-add-repository ppa:xorg-edgers/ppa -y
sudo apg-get update
sudo apt-get install nvidia-346
Run Code Online (Sandbox Code Playgroud)

由于 Ubuntu 是作为 Live-version 启动的,一开始,nouveau驱动程序被激活。我想停用它(也许通过rmmod或类似的东西),所以只有nvidia驱动程序被激活,GPU 正在使用nvidia驱动程序。

怎么可能?我可以在不重新启动整个系统的情况下做什么(因为所有安装/删除/更改的软件包都将消失)?

我可以通过 SSH 访问 Ubuntu。

我读到我可能有助于输入命令,sudo update-initramfs -u但该命令生成了输出update-initramfs is disabled since running on read-only media

ubuntu nvidia modprobe gpu nouveau

5
推荐指数
1
解决办法
1万
查看次数

ubuntu17.10 modprobe:致命:在目录/lib/modules/4.10.0-35-generic 中找不到模块vboxdrv

sudo modprobe vboxdrv
modprobe: FATAL: Module vboxdrv not found in directory /lib/modules/4.10.0-35-generic
Run Code Online (Sandbox Code Playgroud)

重新安装了 dkms 但我仍然得到

未安装内核驱动程序 (rc=-1908)

VirtualBox Linux 内核驱动程序 (vboxdrv) 未加载或 /dev/vboxdrv 存在权限问题。请重新安装 virtualbox-dkms 包并通过执行加载内核模块

'modprobe vboxdrv'

find /lib/modules/$(uname -r) -name vboxdrv.ko

输出:

beastly@Beastly:~$ find /lib/modules/$(uname -r) -name vboxdrv.ko
beastly@Beastly:~$ 
Run Code Online (Sandbox Code Playgroud)

beastly@Beastly:~$ sudo apt-cache policy virtualbox
Run Code Online (Sandbox Code Playgroud)

输出:

virtualbox:
  Installed: 5.1.30-dfsg-1
  Candidate: 5.1.30-dfsg-1
  Version table:
 *** 5.1.30-dfsg-1 500
        500 http://us.archive.ubuntu.com/ubuntu artful/multiverse amd64 Packages
        100 /var/lib/dpkg/status
Run Code Online (Sandbox Code Playgroud)

beastly@Beastly:~$ dkms status
Run Code Online (Sandbox Code Playgroud)

输出:

virtualbox, 5.1.30, 4.13.0-16-generic, x86_64: installed
Run Code Online (Sandbox Code Playgroud)

beastly@Beastly:~$ (uname -r) …
Run Code Online (Sandbox Code Playgroud)

ubuntu virtualbox modprobe

5
推荐指数
1
解决办法
1万
查看次数

键盘驱动程序如何在 Linux 上工作

我最近买了一个新键盘,它很便宜,而且是一个不知名的品牌,但我并不特别担心。我发现在linux上用这个键盘按shift、super、left-ctrl或left-alt没有什么区别,它总是把它当作shift。我做了一些研究,结果发现问题出在键盘使用的芯片组上。我读到解决问题的唯一方法是为键盘编写一个驱动程序,但是,在处理它时,我发现运行sudo modprobe usbmon然后以 sudo 打开wireshark,意外地解决了问题...有人知道为什么这会发生吗?是否有更简单的方法来触发此更改?

更具体:

  • 我在 xubuntu 18.04
  • dmyco是键盘的品牌
  • lsusb 的结果是 >> Bus 001 Device 004: ID 1c4f:0056 SiGma Micro

drivers keyboard modprobe wireshark

5
推荐指数
1
解决办法
5577
查看次数

Linux 上的虚拟接口

我需要在 Linux 上创建第二个单独的虚拟接口。

我选择dummy。并执行以下步骤:

$ cat /etc/modules-load.d/dummy.conf
# Load dummy.ko at boot
Run Code Online (Sandbox Code Playgroud)

假的

$ cat /etc/sysconfig/network-scripts/ifcfg-ethdummy1
NAME=ethdummy1
DEVICE=ethdummy1
MACADDR=00:22:22:ff:ff:ff
IPADDR=10.10.10.1
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet
NM_CONTROLLED=no
Run Code Online (Sandbox Code Playgroud)

似乎一切正常。但在网上我看到人们也这样做:

$ cat /etc/modprobe.d/dummy.conf 
install dummy /sbin/modprobe --ignore-install dummy; /sbin/ip link set name ethdummy1 dev dummy0
Run Code Online (Sandbox Code Playgroud)

这条线有什么意义?谢谢。

linux modprobe interface network-interface

5
推荐指数
1
解决办法
4887
查看次数