Hello,
I am an avid tinkerer with computers and this time I decided to jump into the server world. for that I decided to buy a small second hand computer (hp elitedesk 705 g2 mini) install Fedora server 39 to play around and function as my home server.
So far it is going great and the experience is fantastic, hoever I noticed that in the “Usage” card of the “Overview” tab in cockpit, it says that there is only 3.7 GiB of ram. The computer has 8 GB installed and in BIOS it also shows that there is 8192 MB of RAM available.
I have gone into a search for fixes for this but I still havent been able to find any solution.
Testing out some commands I have seen in other forums regarding similar things I have gotten the following outputs:
cristobal@jarvis:~$ cat /proc/meminfo | grep MemTotal
MemTotal: 3827560 kB
cristobal@jarvis:~$ free -g
total used free shared buff/cache available
Mem: 3 0 2 0 0 2
Swap: 3 0 3
cristobal@jarvis:~$ uname -a
Linux jarvis 6.5.11-300.fc39.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Nov 8 22:37:57 UTC 2023 x86_64 GNU/Linux
Another interesting thing is that when I look into the Hardware information screen, It does show both Channels populated:
Any idea of what could be happening and how to fix it? Please bare in mind that although I am not scared of the terminal, I am now linux power user by any stretch of the imagination.
I dont really know exatly what it is all saying, but I find it interesting that a bunch of memory addresses are left in hibernation. Is that the second channel?
well, I didn’t have a live media with 38 so I downloaded 39 workstation, ran it and basically got the same result, in the hardware description it shows the 8 gb, but in the resources and from dmesg it also shows 3.7 Gb
I’m suspicious of the video RAM sharing/reservation at first guess – that would be something to check in the BIOS…
But at least I’d check:
dmidecode -t memory
(Should show the full amount since the hwinfo shows it in your screen shot, but worth a check to see if there’s anything odd)
and:
dmesg | grep BIOS
That should get the physical RAM map from the BIOS. Check the usable versus reserved / ACPI / whatnot ranges. If the sum of the usable is the 3GiB or so you see, then the question would be how much is reserved in BIOS and why (which leads back to the vram). If even the BIOS physical map provided in total (usable + reserved + whatnot) is 4GiB or less, definitely look for a BIOS setting… I just can’t imagine what it would be off hand. It almost seems like the system is booting in x32 mode instead of x64 (so it would be capped at 4GiB), but that doesn’t make sense for anything made in the last 10 years or so…
Checking the specs from HP, it shows m.2 slots and 64-bit OS support, so I can’t imagine it is 32-bit only.
CPU isn’t one I’m familiar with either but AMD’s website doesn’t give any sign it is 32-bit only…
So yeah – I’d check the physical RAM map given to the kernel first to at least distinguish between “BIOS issue” and “kernel issue” hopefully.
@dmorris thank you very much for jumping into this adventure as well
I ran what you suggested and the dmidecode command showed the full 8 GB of ram as expected. However the memory map did show an interesting thing.
So it does look like something in the bios, I will tripple check that there are no 32 bit restrictions or something. In the output from dmidecode it does state that it has a max capacity of 32 GB.
Here is the output, in case you can spot something else:
root@jarvis:/home/cristobal/.local/share130# dmidecode -t memory
# dmidecode 3.5
Getting SMBIOS data from sysfs.
SMBIOS 2.7 present.
Handle 0x001E, DMI type 16, 23 bytes
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: None
Maximum Capacity: 32 GB
Error Information Handle: Not Provided
Number Of Devices: 2
Handle 0x0026, DMI type 17, 40 bytes
Memory Device
Array Handle: 0x001E
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 4 GB
Form Factor: SODIMM
Set: None
Locator: DIMM1
Bank Locator: ChannelB DIMM1
Type: DDR3
Type Detail: Synchronous Unbuffered (Unregistered)
Speed: 1600 MT/s
Manufacturer: Samsung
Serial Number: 94E3EB76
Asset Tag: NULL
Part Number: M471B5173QH0-YK0
Rank: 1
Configured Memory Speed: 1600 MT/s
Minimum Voltage: Unknown
Maximum Voltage: Unknown
Configured Voltage: Unknown
Handle 0x0021, DMI type 17, 40 bytes
Memory Device
Array Handle: 0x001E
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 4 GB
Form Factor: SODIMM
Set: None
Locator: DIMM3
Bank Locator: ChannelA DIMM1
Type: DDR3
Type Detail: Synchronous Unbuffered (Unregistered)
Speed: 1600 MT/s
Manufacturer: Samsung
Serial Number: 96FDE01E
Asset Tag: NULL
Part Number: M471B5173DB0-YK0
Rank: 1
Configured Memory Speed: 1600 MT/s
Minimum Voltage: Unknown
Maximum Voltage: Unknown
Configured Voltage: Unknown
root@jarvis:/home/cristobal/.local/share# dmesg | grep BIOS
[ 0.000000] BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000008efff] usable
[ 0.000000] BIOS-e820: [mem 0x000000000008f000-0x000000000008ffff] reserved
[ 0.000000] BIOS-e820: [mem 0x0000000000090000-0x000000000009ffff] usable
[ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000009c6f9fff] usable
[ 0.000000] BIOS-e820: [mem 0x000000009c6fa000-0x000000009c6fafff] reserved
[ 0.000000] BIOS-e820: [mem 0x000000009c6fb000-0x000000009c804fff] usable
[ 0.000000] BIOS-e820: [mem 0x000000009c805000-0x000000009c805fff] reserved
[ 0.000000] BIOS-e820: [mem 0x000000009c806000-0x00000000ac267fff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000ac268000-0x00000000ac277fff] ACPI data
[ 0.000000] BIOS-e820: [mem 0x00000000ac278000-0x00000000b6acefff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000b6acf000-0x00000000b78cefff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000b78cf000-0x00000000b7fcefff] ACPI NVS
[ 0.000000] BIOS-e820: [mem 0x00000000b7fcf000-0x00000000b7ffefff] ACPI data
[ 0.000000] BIOS-e820: [mem 0x00000000b7fff000-0x00000000b7ffffff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000c8900000-0x00000000c89fffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000f8000000-0x00000000fbffffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec00fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fec10000-0x00000000fec10fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fed80000-0x00000000fed80fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fedb1000-0x00000000fedb1fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000ff000000-0x00000000ffffffff] reserved
[ 0.000000] BIOS-e820: [mem 0x0000000100000000-0x000000013effffff] usable
[ 0.000000] efi: ACPI 2.0=0xb7ffe014 SMBIOS=0xb71cb000 ESRT=0xb71b3f98 MOKvar=0xb71b2000
[ 0.000000] SMBIOS 2.7 present.
[ 0.000000] DMI: HP HP EliteDesk 705 G2 MINI/805B, BIOS N26 Ver. 02.37 01/02/2019
[ 0.099407] BIOS may not properly restore RDRAND after suspend, hiding RDRAND via CPUID. Use rdrand=force to reenable.
[ 0.260000] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
[ 0.282293] acpi PNP0A08:00: FADT indicates ASPM is unsupported, using BIOS configuration
[ 0.947234] amd_pstate: the _CPC object is not present in SBIOS or ACPI disabled
[ 9.821602] amdgpu 0000:00:01.0: amdgpu: Fetched VBIOS from VFCT
[ 9.821608] amdgpu: ATOM BIOS: BR46207.001
[ 14.280148] acpi_cpufreq: overriding BIOS provided _PSD data
[ 14.589098] kvm_amd: SVM disabled (by BIOS) in MSR_VM_CR on CPU 0
@augenauf I just finished downloading the image, I will test it with 38 and see what happens.
@augenauf Tested it with the live cd of 38 workstation and still only 4 GB.
@dmorris I looked around die BIOS and for the life of me I couldnt find anywhere where there could be any setting limiting the memory or the CPU to 32 bit. I did update the BIOS because I dont think it had ever been updated, but even with that update, nothing changed. Is there soem kind of configuration file somewhere that I have never seen? or the BIOS screen is the only place where any configuration can be done?
Well, it can’t be fully a 32-bit ism since the last usable chunk starts at 4 GiB – it only gives you 1 GiB or so in that range, though.
Odd hole from 0xb7fcefff all the way up to 0xc8900000… that’s 256MiB or so right there… and then why there’s nothing above 0x13effffff…
PCI BAR remapping or video shared memory still seems most likely… let me see if I can find the BIOS guide for that and if there’s anything that stands out.
Check the BIOS manual here. First thing to check would be “Built-In Device Options->Video Memory Size” I would think.
Doesn’t look to have any BAR resizing or anything funky… so that’s out. Hmmm…
Only other thing I can think of would be to double check using the page 122 information and run the hardware diagnostics to make sure there’s not bad pages in the DIMMs or something.
Hey @steppybug , I think you may have found it. I bough this computer off of Amazon, and it said it was refurbished by an authorized distributor. But now that I opened it up and look closer than before, the Ram that it has isntalled is a samsung model which indeed is 204 pins. However in the HP site, the recomended Ram is from Kingston and it is 240.
I am going to have to get some of that kingston Ram and try it (and fight the refurbisher for it as well).
I tried populating the DIMM 2 slot except I couldnt find it for some reason there is only 2 slots there, and they are labeled 1 and 3, the documentation says there should be 4, but unless I am really blind or gone mad, there is only 2.
and as far as I know, the processor is from a laptop, so I asume the ram must also be from a a laptop. I will be honest, other than the obvious, I dont know what it means that one is 240 pins and the other 204, are all laptop rams 204? should it be shorter than the 240?
DDR3 SODIMMs are 204-pin, whereas DDR4 SODIMMs are 240-pin. Your computer only accepts DDR3, from what I can tell. So makes sense that the DDR4 is not working. Though curious how it’s even booting and shown in the GUI.
o.k. that makes sense, however both the Memory and the SODIMMs are 204 pins, I found it on the silkscreen of the motherboard. They are both DDR3 so I think that puts that theory (although a good one) to rest.
I have had it in the past, on a Dell laptop that I wanted to upgrade the ram and bought a 32 GB kit, in theory it was advertised as compatible with the laptop, but when I installed it, (if I remember correctly) it would only recognize one of the cards. After some digging, I found out that apparently Dell needs to see one of the original cards to be happy, then it would recognize the ful 32 GB. long story short, I have a 16 GB card brand new because I had to leave the original 16 gb in. sadly it is DDR4 so I can’t test it on this computer but I am wondering if there could be something like that here.
My Dell (real old) laptop behaves the same way. If I replace it’s 4GB with 8GB (so take out the original 2x2GB sticks and put in 2x4GB other mfg) it only ever recognizes one stick of other vendor mem.
I know it has beena while since there was an update, but just in case anybody ever wonders “what happened with that guy and his wonky RAM?” The issue has been solved. After a deepdive into the internet to find the correct part number from HP, I only found it in the States (of course, as it is discontinued everywhere else). So after about a week of shipping to the UAE I just isntalled it and now my little experimental server is running at glorious 16 GB of RAM.
In the process of solving all of this, I discovered that the exact model that I have, used to ship with only 1x 8 GB module, so the guys that refurbished it changed it for what they thought was equivalent, but it was the wrong part number so It only recognized 1 of them.
Anyways, thank you very much for the help everyone!