PAE support in linux-2.6.29.*
I have a laptop with 4GB of RAM.
I use slackware 12.2. I built a recent kernel (2.6.29.1) which I currently use. Only 3GB of RAM are displayed when I # free I read somewhere after googling that you could have linux see up to 64GB even on 32-bit if you set up CONFIG_X86_PAE while building the kernel I did a grep of PAE in my current config and grep 'CONFIG_X86_' None of these showed any PAE string Does anybody know where this setting is located? Perhaps they changed the name recently? |
If you are seeing 3 Gig, you have the appropriate option selected. I don't have access to 32-bit system, but try a grep for highmem.
The missing memory is probably a motherboard limitation. |
Quote:
CONFIG_HIGHMEM64G and CONFIG_X86_PAE But I still can't figure out which config options enable which actual features. I do understand the underlying features. Without using PAE, you only have access to 4GB of physical address space which gives you access to less than 4GB (typically 3.25GB) of ram. The only 32 bit system I have handy with 4GB of ram is an old Centos system. Its config has CONFIG_HIGHMEM64G set and doesn't mention CONFIG_X86_PAE at all. There is some feature that I think may be part of CONFIG_HIGHMEM64G that makes the kernel use a separate 4GB virtual address from the process 4GB virtual address space. (To support more than 16GB physical, the kernel needs a larger virtual address space). I hope I don't have that enabled on that old Centos system, but I'm not sure. I hope you can have PAE without that (I know on other old Centos systems I had PAE without splitting the address space). Quote:
http://www.linuxquestions.org/questi...40#post3411940 If that table of data from the BIOS includes the extra chunk outside 4GB of address space then the motherboard and BIOS are OK for a full 4GB of ram and your problem is lack of PAE in the kernel. If that table doesn't include the extra chunk, then the problem is in the motherboard or BIOS. |
Quote:
I didn't notice until just now the important detail that you already have all the files and knowledge needed to build a new kernel. So that means the easiest path is try it and see. From your post at http://www.linuxquestions.org/questi...96#post3525496 I see Quote:
I'm pretty sure CONFIG_HIGHMEM64G will add PAE support. Try it and see whether it just adds PAE support or also does anything you don't want. |
Quote:
|
figured it out
yesterday I built linux-2.6.29.2
and this time in # make menuconfig instead of checking 'up to 4GB' of RAM I checked '64GB' After building and rebooting I got the right total amount of RAM displayed Excerpts from my 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 |
Glad to see it worked!
|
All times are GMT -5. The time now is 06:01 AM. |