我正在使用Ubuntu 12.04.3 LTS操作系统。
当我重新启动时,我在系统日志中看到以下内容:
然而:
这两个都是2.1.4-k版本...内核是否以某种方式从这些旧位置获取模块?排除以下情况:
换句话说,在/etc/modprobe.d/blacklist*或/etc/init/module-init-tools.conf等文件中没有提到这个模块。
我注意到: /lib/modules/3.8.0-34-generic/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko曾经是版本2.1.4-k...但后来我根据http://www.intel.com/support/network/sb/CS-032514.html进行了升级并重新启动...这就是我现在的情况。
有没有办法查询当前运行的模块,询问它从磁盘的哪个位置加载?
--sk
Stuart Kendrick
uname -a
Linux guru 3.8.0-34-generic #49~precise1 [...] x86_64 [...]
当我重新启动时,我在系统日志中看到以下内容:
Dec 29 06:30:22 guru kernel: [...] e1000e: Intel PRO/1000 Network Driver - 2.1.4-k
然而:
cd /lib/modules/3.8.0-34-generic/kernel/drivers/net/ethernet/intel/e1000e
strings e1000e.ko | grep -i version
version=2.5.4-NAPI
modinfo e1000e
给我相同的版本(2.5.4-NAPI
)
在启动时,我以为内核会遍历/lib/modules/{版本字符串}/kernel/drivers
并加载所需的内容...
但显然我错了
在这个启动驱动器上存在另外两个版本的e1000e.ko:
/lib/modules/3.8.0-29-generic/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko
/lib/modules/3.8.0-33-generic/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko
这两个都是2.1.4-k版本...内核是否以某种方式从这些旧位置获取模块?排除以下情况:
grep -r e1000e /etc/*
/etc/udev/rules.d/70-persistent-net.rules:# PCI device 0x8086:/sys/devices/pci0000:00/0000:00:19.0 (e1000e)
换句话说,在/etc/modprobe.d/blacklist*或/etc/init/module-init-tools.conf等文件中没有提到这个模块。
我注意到: /lib/modules/3.8.0-34-generic/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko曾经是版本2.1.4-k...但后来我根据http://www.intel.com/support/network/sb/CS-032514.html进行了升级并重新启动...这就是我现在的情况。
有没有办法查询当前运行的模块,询问它从磁盘的哪个位置加载?
--sk
Stuart Kendrick