标签: kernel-modules

UDP 流量未从 Docker 容器转发 -> Docker 主机

我有一个 docker 容器,但我无法从容器内部运行 DNS 查找,尽管它在 docker 主机上运行良好。

已知构建 Docker 主机的配置管理代码可在市场上的标准 RHEL 7 映像上运行,因此已知问题出在 SOE RHEL 7 映像内部。

RHEL 7.2 / Docker 版本 1.12.6,构建 88a4867/1.12.6。容器是 RHEL 7.3。SELinux 处于启用/许可模式。Docker 主机是一个 Amazon EC2 实例。

一些配置:

# /etc/sysconfig/docker
OPTIONS='--dns=10.0.0.10 --dns=10.0.0.11 --dns-search=example.com'
DOCKER_CERT_PATH=/etc/docker
ADD_REGISTRY='--add-registry registry.example.com'
no_proxy=169.254.169.254,localhost,127.0.0.1,registory.example.com
http_proxy=http://proxy.example.com:8080
https_proxy=http://proxy.example.com:8080
ftp_proxy=http://proxy.example.com:8080
Run Code Online (Sandbox Code Playgroud)

容器和主机中的解析器配置是一样的:

# /etc/resolv.conf
search example.com
nameserver 10.0.0.10
nameserver 10.0.0.11
Run Code Online (Sandbox Code Playgroud)

如果我重新启动 docker 守护进程,--debug我会看到以下内容journalctl -u docker.service

Aug 08 11:44:23 myhost.example.com dockerd-current[17341]: time="2017-08-08T11:44:23.430769581+10:00" level=debug msg="Name To resolve: http://proxy.example.com."
Aug 08 11:44:23 myhost.example.com dockerd-current[17341]: time="2017-08-08T11:44:23.431488213+10:00" level=debug …
Run Code Online (Sandbox Code Playgroud)

kernel-modules bridge linux-networking docker

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

如何在不重新编译内核的情况下禁用 CentOS 5.3 中的 nf_conntrack 内核模块

我正在运行 CentOS 5.3 并希望禁用 nf_conntrack 模块以提高 haproxy 的网络性能。我正在使用一些简单的规则运行 iptables。我真的不需要连接跟踪。

我在 Rackspace 云服务器上运行,所以我无法运行自定义内核。我试过运行 modprobe,但这不起作用。

[mmarano@w1 w1]$ sudo modprobe -n -r nf_conntrack
FATAL: Module nf_conntrack is in use.

[mmarano@w1 w1]$ uname -a
Linux w1.somewhere.com 2.6.24-23-xen #1 SMP Mon Jan 26 03:09:12 UTC 2009 x86_64 x86_64 x86_64 GNU/Linux
[mmarano@w1 w1]$ cat /etc/redhat-release 
CentOS release 5.3 (Final)
Run Code Online (Sandbox Code Playgroud)

我想在撕掉它之后继续运行 iptables,所以我不能完全抛弃所有的 netfilters。有人有什么想法吗?

linux iptables centos kernel-modules

10
推荐指数
2
解决办法
4万
查看次数

如何判断哪个内核模块正在为 /dev 设备提供服务?

如何找出哪个内核模块(通过键入 lsmod 可以看到)正在为 /dev 中的特定设备提供服务?

换句话说,假设我有一个设备 /dev/mouse0 并且我想找出安装了哪个内核模块来为该设备提供服务。我怎么做?

另一种看待这个问题的方法是,一些加载的内核模块将它们自己与 /dev 中的设备相关联。如何找出模块“连接”到哪个设备?

linux drivers kernel-modules device

8
推荐指数
1
解决办法
7658
查看次数

使已在 Fedora 上停用的内核模块可用

编辑:我把克里斯蒂安的回答变成了一个自动完成所有事情的脚本:https : //github.com/frans-fuerst/magic/blob/master/fedora-activate-can.sh

我需要一些在 Linux 源代码中可用但在 Fedora 20 上停用的内核模块,我想知道让它们可用的最简单和最先进的方法是什么。(即 net/CAN 支持导致一些 can_* 模块)

  • 是否有 Fedora-repos/rpms 使停用的模块可用?
  • 还是我必须手动编译这些模块?
  • 在这种情况下 - 是否有某种机制可以在内核更新的情况下自动执行此操作,还是我必须一遍又一遍地编译它们?

我已经遵循了这个HowTo(并且还有更多非常相似的),但是“仅构建模块”部分似乎仅适用于尚未禁用的模块,因为在这种情况下甚至模块源都丢失了。

这是我按照提到的HowTo尝试方法

首先,我尝试遵循Out Of Tree Modules部分,但是在随附的该死的源代码树中,kernel-devel甚至缺少 CAN 支持的源代码。所以我尝试从 src.rpm 构建模块:

$ yumdownloader --source kernel
$ sudo yum-builddep kernel-3.14.8-200.fc20.src.rpm
$ rpm -Uvh kernel-3.14.8-200.fc20.src.rpm
$ cd ~/rpmbuild/SPECS
$ rpmbuild -bp --target=$(uname -m) kernel.special
$ cd ~/rpmbuild/BUILD/<kerneldir>/<linuxdir>
$ <configure the kernel using menuconfig>
$ make prepare
Run Code Online (Sandbox Code Playgroud)

然后我构建并收到一些警告: …

linux fedora rpm kernel-modules update

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

如何判断需要哪些内核模块?

比如说,我有一个默认的 Gentoo 安装,所有模块(例如设备驱动程序)都已编译。从这一点来看,有没有一种简单的方法可以在我下次重新编译内核时排除未使用的模块?

gentoo kernel-modules

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

Linux 说一个内核模块有一个未知符号,但另一个加载的模块提供了它

我正在尝试为 USB DAQ 盒安装驱动程序,这很烦人,我必须自己编译。我相信我已经成功了——我有两个 .ko 文件:

-rw-r--r--  1 root  root  45271 2010-03-18 21:24 advdrv_core.ko
-rw-r--r--  1 root  root  24312 2010-03-18 21:24 usb4761.ko
Run Code Online (Sandbox Code Playgroud)

我能够在第一个上运行 insmod 没有任何意外,但是当我尝试第二个时,我收到了大量消息:

kernel: [686782.106547] usb4761: no symbol version for adv_process_info_check_event
kernel: [686782.106555] usb4761: Unknown symbol adv_process_info_check_event
kernel: [686782.106691] usb4761: no symbol version for advdrv_unregister_driver
kernel: [686782.106695] usb4761: Unknown symbol advdrv_unregister_driver
Run Code Online (Sandbox Code Playgroud)

但是,advdrv_core.ko 提供了这些符号。我的内核似乎确实在内存中存储了它们:

# cat /proc/kallsyms | grep advdrv_unregister_driver
f8d88504 r __ksymtab_advdrv_unregister_driver   [advdrv_core]
f8d888d2 r __kstrtab_advdrv_unregister_driver   [advdrv_core]
f8d885a4 r __kcrctab_advdrv_unregister_driver   [advdrv_core]
086eb8fb a __crc_advdrv_unregister_driver …
Run Code Online (Sandbox Code Playgroud)

linux kernel-modules dependencies

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

如何构建内核模块的 debian 包?

具体来说,我想使用最新的 uvc 驱动程序为 debian/lenny 构建一个包。我可以编译和安装它们,但我希望它们以正常的 debian 方式打包。我想我想以某种方式使用 make-kpkg,但我不知道如何使用。module-assistant 似乎不好,因为它似乎只使用 debian 中可用的源。

debian kernel packaging kernel-modules debian-lenny

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

Oracle Linux 6.7 上的 NFS 性能问题:NFS 上的共享库减慢系统速度

我目前正在寻找一些运行 Oracle Linux 6.6(内核 2.6)和 6.7(内核 3.8)的具有相同内存和 CPU 数量的 VMWare 虚拟机上的一些性能问题。这些机器通过 NFS4 挂载相同的共享,其中包含一些共享库,这些库包含在使用 LD_LIBRARY_PATH 的构建中。两个系统都使用相同的挂载选项(默认),这显然意味着 6.7 的“硬”和 6.6 的“软”。从 6.7 开始,我们观察到编译过程的性能下降了 5 倍,而 CPU 空闲大约 80%,但也没有观察到高 io-wait(顶级报告 ~0.4%wa)。

尝试重现该问题时,我很快发现,只要通过 LD_LIBRARY_PATH 包含来自 NFS 挂载的共享库,在 6.7 上不仅编译而且几乎所有命令(例如“ls”)都慢得多。

我用一个简单的“时间”开始了我的调查:

在 6.6 上:没有设置 LD_LIBRARY_PATH 和 PATH:

$ time for i in $(seq 0 1000); do ls done;
... ls output 
real    0m2.917s
user    0m0.288s
sys     0m1.012s
Run Code Online (Sandbox Code Playgroud)

LD_LIBRARY_PATH 和 PATH 设置为包含 NFS 上的目录

$ time for i in $(seq 0 1000); do ls done;
... …
Run Code Online (Sandbox Code Playgroud)

performance virtual-machines kernel-modules nfs4 oracle-linux

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

为什么内核共享内存在 Ubuntu 12.04 上为 0?

任何人都可以向我解释为什么 KSM 不起作用是否意味着目前我的内核没有使用 KSM 来降低内存利用率。

 grep KSM /boot/config-3.2.0-23-generic 
 CONFIG_KSM=y

 cat /sys/kernel/mm/ksm/pages_shared 
 0
 cat /sys/kernel/mm/ksm/pages_sharing
 0
 cat /sys/kernel/mm/ksm/pages_unshared
 0
Run Code Online (Sandbox Code Playgroud)

内核:3.2.0-23-通用

Ubuntu 12.04 LTS 64 位桌面

自由 -m

         total       used       free     shared    buffers     cached
Mem:      1964       1883         81          0         11        228
-/+ buffers/cache:       1644        320
Swap:         2008        485       1523
Run Code Online (Sandbox Code Playgroud)

ipcs -m

 ------ Shared Memory Segments --------
 key        shmid      owner      perms      bytes      nattch     status      
0x00000000 0          myexperiments   600        393216     2          dest         
0x00000000 2490369    myexperiments   600        393216     2          dest         
0x00000000 98306      myexperiments   600        393216 …
Run Code Online (Sandbox Code Playgroud)

linux ubuntu kernel-modules ubuntu-12.04

4
推荐指数
1
解决办法
4005
查看次数

从 Ubuntu 18.04 -&gt; 20.04 升级后,iptables 内核模块丢失

从 Ubuntu 18.04 版本升级到 20.04 (focal) 后,iptables 内核模块丢失:

root@server:~# iptables -L
modprobe: FATAL: Module ip_tables not found in directory /lib/modules/5.4.0-42-generic
iptables v1.8.4 (legacy): can't initialize iptables table `filter': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法,但没有解决问题:

sudo apt-get install --reinstall iptables
Run Code Online (Sandbox Code Playgroud)
sudo apt-get install --reinstall linux-headers-$(uname -r)
Run Code Online (Sandbox Code Playgroud)
sudo dpkg-reconfigure iptables
dkms autoinstall
Run Code Online (Sandbox Code Playgroud)

linux-modules-extra 也已安装

的输出ls -R /var/lib/dkms是:

/var/lib/dkms:
dkms_dbversion  wireguard

/var/lib/dkms/wireguard:
1.0.20200611  kernel-5.4.0-42-generic-x86_64

/var/lib/dkms/wireguard/1.0.20200611:
5.4.0-42-generic  source

/var/lib/dkms/wireguard/1.0.20200611/5.4.0-42-generic: …
Run Code Online (Sandbox Code Playgroud)

ubuntu iptables kernel-modules ubuntu-20.04

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

错误:“net.ipv4.netfilter.ip_conntrack_max”是一个未知的密钥

我在使用 sysctl 的 Ubuntu 10.04.3 LTS x64 上遇到问题net.ipv4.netfilter.ip_conntrack_max 。如果我在 shell 上运行这个命令,我会得到一个错误:

error: net.ipv4.netfilter.ip_conntrack_max" is an unknown key.
Run Code Online (Sandbox Code Playgroud)

重新启动后,它发生在我们的两台机器上。sysctl 值net.ipv4.netfilter.ip_conntrack_count和所有其他 conntrack 条目也受到影响。

这确实有问题,因为我们有一个非常高的负载/流量系统,我编写了一个 Nagios 脚本来检查这个值,因为我们过去在这个值上有几个问题。在其他机器上,我已将 设置conntrack_max为 196608 以解决任何问题,但现在我无法在受影响的机器上设置该值。目前是否设置了任何默认值?

有没有人想在我的系统上取回这两个值?

谢谢

ubuntu kernel kernel-modules sysctl conntrack

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

未安装 iptables 评论模块

我想在我的 iptables 规则中使用 -m comment --comment "message" 但没有加载模块。通过一些搜索,我需要的模块是“ipt_comment”,但我没有安装它。我怎样才能做到这一点?

我的 iptables 版本是 1.4.21

/sbin/modprobe --list 不返回任何内容

/sbin/lsmod 也是空的。

我使用的是 Ubuntu 12.04.1 服务器

ubuntu iptables kernel-modules

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