在我的系统上,安装了内核 3.13.0-32-generic(Ubuntu Server 14.04.1 LTS),系统中的一个 PCIe 板(06:00.0)的内存区域被忽略:
Interrupt: pin A routed to IRQ 10
Region 0: Memory at <ignored> (32-bit, non-prefetchable)
Region 2: Memory at <ignored> (32-bit, non-prefetchable)
在 dmesg 中:
me@system:~$ dmesg | grep 06:00.0
[ 1.326963] pci 0000:06:00.0: [ad00:0122] type 00 class 0x000000
[ 1.326979] pci 0000:06:00.0: reg 0x10: [mem 0xf7400000-0xf74001ff]
[ 1.327000] pci 0000:06:00.0: reg 0x18: [mem 0xf7200000-0xf73fffff]
当我随后尝试通过其内核模块访问主板时,它当然不起作用。
如果我在系统上安装 Debian 7.5 或 7.8 而不进行任何其他更改,则一切都正常运行:
Debian:
Interrupt: pin A routed to IRQ 17
Region 0: Memory at f7400000 (32-bit, non-prefetchable)
Region 2: Memory at f7200000 (32-bit, non-prefetchable)
me@system:~$ dmesg | grep 06:00.0
[ 1.438114] pci 0000:06:00.0: [ad00:0122] type 0 class 0x000000
[ 1.438130] pci 0000:06:00.0: reg 10: [mem 0xf7400000-0xf74001ff]
[ 1.438151] pci 0000:06:00.0: reg 18: [mem 0xf7200000-0xf73fffff]
因此,硬件没有问题,问题是内核版本和硬件的结合。
Ubuntu 内核:3.13.0-32-generic
Debian 内核:3.2.0-4-amd64/
我该怎么做才能让它在 3.13.0-32-generic 下正常工作,即让内存区域不被忽略?
我尝试了以下操作,但没有成功:
- 内核版本 3.13.11-03131111-generic 和 3.16
- 设置内核参数 mem=2048M
非常感谢!