Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
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.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Every specsheet I see sayd that my laptop, an ACER Aspire 5100 can handle up to 4gb of memory. I installed all 4gb today and Linux is telling me I only have 2.2gb. This is my Mem read as posted above. Maybe somebody can tell me why Linux is not seeing all the mem. Tried to flash the bios with the latest upgrade but doesnt work with WINE
Code:
Linux version 2.6.27.15-170.2.24.fc10.i686 (mockbuild@x86-5.fedora.phx.redhat.co
m) (gcc version 4.3.2 20081105 (Red Hat 4.3.2-7) (GCC) ) #1 SMP Wed Feb 11 23:58
:12 EST 2009
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009dc00 (usable)
BIOS-e820: 000000000009dc00 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000d0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 000000008fe90000 (usable)
BIOS-e820: 000000008fe90000 - 000000008fe9a000 (ACPI data)
BIOS-e820: 000000008fe9a000 - 000000008ff00000 (ACPI NVS)
BIOS-e820: 000000008ff00000 - 00000000a0000000 (reserved)
BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
BIOS-e820: 00000000fff80000 - 0000000100000000 (reserved)
BIOS-e820: 0000000100000000 - 0000000160000000 (usable)
DMI present.
last_pfn = 0x8fe90 max_arch_pfn = 0x100000
x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
kernel direct mapping tables up to 38000000 @ 7000-c000
Using x86 segment limits to approximate NX protection
Every specsheet I see sayd that my laptop, an ACER Aspire 5100 can handle up to 4gb of memory. I installed all 4gb today and Linux is telling me I only have 2.2gb. This is my Mem read as posted above. Maybe somebody can tell me why Linux is not seeing all the mem. Tried to flash the bios with the latest upgrade but doesnt work with WINE
The BIOS is OK. It is mapping the RAM correctly. The problem is probably the Linux kernel.
In a 32-bit x86 kernel, support for the extra ram is a build time option. I don't know the details for Fedora, but I expect there is a prebuilt binary of the kernel you can load from the repository that will give you access to the rest of the memory.
In selecting the right version of the kernel, or in configuring to recompile the kernel youself (if you decide to do it that way) be aware that a kernel supporting "up to 4GB" will miss 1.5GB with your BIOS memory map. To get that last 1.5GB (giving you nearly 4GB but not 100%) you need a kernel that has support for more than 4GB.
Distribution: Mandriva 2009 X86_64 suse 11.3 X86_64 Centos X86_64 Debian X86_64 Linux MInt 86_64 OS X
Posts: 2,369
Rep:
Quote:
Originally Posted by Cybergeek
So if I upgrade to X64 would I be gtg?
Edit:
Just looked into upgrading to x64 from x86 and not exactly thrilled by the iffyness of it all. I don't want to loose everything I have setup on here
I used Fedora 10 X86_64 I do have 4 GB of RAM
650 MB is taken by the system mostly by the Nvidia Gforce 6200 Turbo
cache left about 3.3 GB and that Fedora tell me that amount of RAM is
And that is the same amount mark as free in the BIOS
Just looked into upgrading to x64 from x86 and not exactly thrilled by the iffyness of it all. I don't want to loose everything I have setup on here
Even recompiling the kernel would be less effort than switching to 64 bit. But I'm pretty sure you don't need to recompile the kernel. I'm pretty sure you can download a (32 bit) kernel with support for over 4GB.
Hopefully someone who knows how kernels available for download are named in Fedora, will answer this soon.
Edit: I googled the question and found a little more info:
The Fedora "native kernel" for x86 only supports 4GB of address space, so on your system it will miss 1.5GB of ram.
The kernel you want is called "kernel-PAE". Look in you package manager. I expect there is a package with the binaries of that kernel.
Some ram and address space are lost together to various BIOS and motherboard overhead. Often that is just a few MB. On your system it is 257.8MB. When that is so large, it might be that the display system uses main memory rather than having its own. Otherwise something is wrong with the motherboard or BIOS to lose so much. Even if it is the display, 257.8MB seems a bit much (appropriate for gaming in Windows maybe). Linux can't get that ram back. Only a BIOS setting might get some of that back.
Additionally (and more importantly) some address space is lost without losing the associated ram. Typically that is 384MB to 768MB. On your system it is 1536MB. That memory can be used by Linux if you install a PAE kernel.
Various lines up to and including that one, show you have nearly 3GB of ram mapped (by the memory controller) within the first 4GB of address space. Without PAE, that is the amount usable.
That line says you have another 1GB of ram outside the first 4GB of address space. You need PAE to use that (in a 32 bit kernel).
Quote:
# CONFIG_NOHIGHMEM is not set
CONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not set
CONFIG_HIGHMEM=y
Sorry, I still don't know what config choices you should use to turn on PAE, especially how to turn it on efficiently (without also turning on the option to split the process 4GB space from the kernel 4GB space).
I'm pretty sure CONFIG_HIGHMEM64G includes turning on PAE. I suspect it also turns on other things you likely don't want. But despite a few google searches and other attempts at finding the right documentation I'm still quite confused about which config options go with which exact features (I don't have time to look into the source code for the real answer).
I do know the 4G in CONFIG_HIGHMEM4G refers to 4GB of physical address space, not 4GB of actual ram. A full 4GB of ram requires more than 4GB of physical address space and CONFIG_HIGHMEM4G does not give you that.
Anyway, you have answered syg00's concern from your thread. Your missing 1GB of memory is definitely a problem in configuring the Linux kernel. It is definitely not a problem in your BIOS or motherboard. (Having been in a bunch of these threads, I think syg00 made a good guess. It is more often a motherboard problem. But not this time.)
Actually I found out why the PAE string didn't
appear in my config.
Yesterday I downloaded the latest kernel (2.6.29.2)
and when I
make menuconfig
I paid particular attention to the area about
processor, memory
The first time I checked the up to 4GB because
that's what I have. And I didn't see any PAE.
So I went back and tried the 64GB instead and this
time bingo, it was there.
When I rebooted with my new kernel
# free
displayed a 4GB total amount of memory and not
3GB as previously
I shouldn't have paid attention to the help text
that said 'if you have up to 4GB of RAM' check the
4GB option
Here's an excerpt of my current config
# Linux kernel version: 2.6.29.2
#
# CONFIG_64BIT is not set
CONFIG_X86_32=y
# CONFIG_X86_64 is not set
CONFIG_X86=y
CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
#
CONFIG_MCORE2=y
# CONFIG_GENERIC_CPU is not set
CONFIG_X86_GENERIC=y
CONFIG_X86_CPU=y
...
#
CONFIG_X86_CMPXCHG64=y
...
# CONFIG_NOHIGHMEM is not set
# CONFIG_HIGHMEM4G is not set
CONFIG_HIGHMEM64G=y
CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_HIGHMEM=y
CONFIG_X86_PAE=y
CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
...
CONFIG_PHYS_ADDR_T_64BIT=y
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.