星期四, 九月 20, 2007

RHEL5 部分内存无法使用?

因为装 RAID1 + LVM,使用了一块技嘉的板子,nvidia GeForce 6100/nForce 430 芯片,结果原来的 RHEL4 没有它的 SATA 驱动,下载的 sata_nv 驱动也始终装不上,只好换用了 RHEL5,很顺利的安装成功了。

但进入系统后,使用 free 发现 4G 的内存,却只显示 3.4GB 左右。在 BIOS 中对于显卡的 frame buffer 的设置最大也只有 256MB,不可能差这边大。

从 dmesg 的记录来看,在 Linux 启动的时候有一个 Warning 信息,
 BIOS-e820: 00000000f0000000 - 00000000f2000000 (reserved)
BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved)
BIOS-e820: 0000000100000000 - 0000000120000000 (usable)
Warning only 4GB will be used.
Use a PAE enabled kernel.
3200MB HIGHMEM available.
896MB LOWMEM available.
found SMP MP-table at 000f4ad0
Using x86 segment limits to approximate NX protection
On node 0 totalpages: 1048576
DMA zone: 4096 pages, LIFO batch:0
Normal zone: 225280 pages, LIFO batch:31
HighMem zone: 819200 pages, LIFO batch:31
DMI 2.3 present.
这个警告信息比较奇怪,应该是说明了问题所在。结合以前遇到过的关于 4GB 内存不能启动的问题,估计应该是内核对大内存支持的问题。于是重新下载内核源代码并进行编译,学者处理器的内存支持为 64GB,重启后就 OK 了。

在内核 config 文件中的定义是:
CONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not set
变为
# CONFIG_HIGHMEM4G is not set
CONFIG_HIGHMEM64G=y
这里对 HIGHMEM 我还不是太清楚其含义,最近正在看《LINUX 内核解析》,应该能够得到说明。

没有评论: