Linux - HardwareThis forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
I have just upgraded my machine from 2Gb (4 x 500Mb DIMMs) to 4Gb (4 x 1Gb DIMMs). Originally I had no problem detecting the 2Gb but now Linux can only see 2.7Gb!?! The BIOS reports the full 4Gb and goes to post without any errors.
My configuration is as follows:
FC7 x86_64 (see below for more detail)
System: Tyan Thunder K8WE motherboard with 2 x AMD Opteron 280
Memory: Corsair 1Gb PC3200 EC Reg (CM72SD1024RLP-3200/S)
Other info available if required.
Output from uname -a (edited):
Code:
Linux xxxxxxx.com 2.6.23.15-80.fc7 #1 SMP Sun Feb 10 16:52:18 EST 2008 x86_64 x86_64 x86_64 GNU/Linux
I dont use Fedora, but it sounds like the Fedora Kernel does not have high memory support. You will have to either download an alternate kernel or compile your own with the highmem flag set to enable.
Heres a link that shows where the highmem option is under processor features:
Thanks but this is a 64bit kernel and, as I understand it, even with 32 bit kernels, the problems with additional memory only happen beyond 4Gb. I am certain that FC7 supports more than 2.7Gb (unless someone out there knows netter!).
I suggest see if 4 GB of RAM is found by the kernel when using HIGHMEM support on a 64-bit kernel. I think using HIGMEM support will provide better compatibility with 32-bit programs.
I suggest viewing /var/log/messages to get a more thorough look what the kernel is doing upon boot up. The utility dmesg holds very little amount of information that can be missed.
I suggest see if 4 GB of RAM is found by the kernel when using HIGHMEM support on a 64-bit kernel. I think using HIGMEM support will provide better compatibility with 32-bit programs.
I suggest viewing /var/log/messages to get a more thorough look what the kernel is doing upon boot up. The utility dmesg holds very little amount of information that can be missed.
How would 'CONFIG_HIGHMEM4G=y' set affect compatibility with a 32 bit computer program on a 64 bit system?
If I want to know the HIGHMEM support on my SlackwareŽ 12.1 system then a simple 'cat /boot/config-huge-smp-2.6.24.5-smp |grep -i HIGHMEM' would give me;
Quote:
:~# cat /boot/config-huge-smp-2.6.24.5-smp |grep -i HIGHMEM
# CONFIG_NOHIGHMEM is not set
CONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not set
CONFIG_HIGHMEM=y
You can check the other configs for the installed kernels. You could simply look at 'cat /proc/meminfo' to see what memory has been seen by the current kernel.
How would 'CONFIG_HIGHMEM4G=y' set affect compatibility with a 32 bit computer program on a 64 bit system?
It doesn't. Electro was incorrect. (Maybe that's what you meant by asking the question).
I assume (haven't checked) that if you select 64 bit, there isn't even a question for CONFIG_HIGHMEM4G in the config process. There is nothing in the 64 bit kernel build process for that option to even control.
Quote:
Originally Posted by michaelsr
even with 32 bit kernels, the problems with additional memory only happen beyond 4Gb. I am certain that FC7 supports more than 2.7Gb (unless someone out there knows netter!).
The BIOS (not the kernel) decides how much of the first 4GB is strangely remapped. Usually that is about .75GB. 1.3GB sounds like more than the BIOS would remap, but it is hard to be sure.
A 32bit kernel needs CONFIG_HIGHMEM4G=y to have any chance to get at the remapped memory. A 64bit kernel has no such restriction. But either needs some cooperation with the BIOS to understand what memory is available. That cooperation sometimes goes wrong and that might be your issue.
Last edited by johnsfine; 05-11-2008 at 01:39 PM..
If you can find the similar table in your system and if that isn't enough to answer your whole question, paste it into this thread and I'll explain what it all means.
In a couple other threads, I was surprised/disappointed when I told people to look in the same place for that table that I found it, but in their system it wasn't present. Maybe some other expert here can tell you how to get that table if dmesg | less doesn't give it to you.
I don't know whether it is failing to remap the rest or just failing to report that it has remapped the rest.
2.7GB still seems like a very strange place for the BIOS to stop.
If it has remapped the rest, but failed to report it, there are kernel boot time options to make the kernel see extra memory that the BIOS hasn't reported. I don't know the details (never needed them myself) but I have seen them discussed in other threads.
The remapped memory (if it exists) would be somewhere (probably immediately) above the 4GB point. I think you need to give a boot time option telling Linux it has more than 4GB to get it to look there and find that missing 1.3GB.
If the BIOS hasn't remapped it at all, I don't know if there is anything you could do about that in Linux.
Go carefully through all the BIOS settings and see if there is any BIOS option that looks like it might have influence on how the BIOS configure memmory addresses and/or how it reports memory to the OS.
Eureka! I needed to turn on memory hole remapping (now set to hardware). The system is now showing 3.9Gb - I presume that that is as good as it's going to get.
I just missed the option in the depth of my BIOS menus.
It doesn't. Electro was incorrect. (Maybe that's what you meant by asking the question).
I wanted a definition as to how that could be from him. I'm sure that electro would answer but the statement indeed is wrong but maybe he just misstated. I was being sarcastic with the question.
Quote:
Originally Posted by johnsfine
I assume (haven't checked) that if you select 64 bit, there isn't even a question for CONFIG_HIGHMEM4G in the config process. There is nothing in the 64 bit kernel build process for that option to even control.
Well for SlackwareŽ 12.1;
Quote:
cat /boot/config-generic-smp-2.6.24.5-smp |grep -i highmem
# CONFIG_NOHIGHMEM is not set
CONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not set
CONFIG_HIGHMEM=y
I have to bring up the 64 system to check that out.
As I said, HIGHMEM isn't relevant for 64-bit - once you select that in a current config some (including HIGHMEM) irrelevant options disappear.
Hopefully the merge of the 32bit and 64bit Kconfigs will be complete soon.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.