Fedora Server 39 not using all of the available RAM on my HP EliteDesk 705 G2 Desktop Mini

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.

thanks in advanced.

have you checked dmesg and dmesg | grep -i memory for any clues?
Is your BIOS firmware up to the latest available?

Just to be sure, I would reseat the memory again.

1 Like

hello @augenauf I have reseated the memory, and doing dmesg gives this output:

$ dmesg | grep -i memory
[    0.006417] ACPI: Reserving FACP table memory at [mem 0xb7ffa000-0xb7ffa10b]
[    0.006419] ACPI: Reserving DSDT table memory at [mem 0xb7fe5000-0xb7ff23f8]
[    0.006421] ACPI: Reserving FACS table memory at [mem 0xb7f85000-0xb7f8503f]
[    0.006422] ACPI: Reserving UEFI table memory at [mem 0xb7ffd000-0xb7ffd041]
[    0.006423] ACPI: Reserving TCPA table memory at [mem 0xb7ffc000-0xb7ffc031]
[    0.006424] ACPI: Reserving SSDT table memory at [mem 0xb7ffb000-0xb7ffb3b7]
[    0.006425] ACPI: Reserving ASF! table memory at [mem 0xb7ff9000-0xb7ff906d]
[    0.006426] ACPI: Reserving MSDM table memory at [mem 0xb7ff8000-0xb7ff8054]
[    0.006427] ACPI: Reserving SLIC table memory at [mem 0xb7ff7000-0xb7ff7175]
[    0.006428] ACPI: Reserving WSMT table memory at [mem 0xb7ff6000-0xb7ff6027]
[    0.006429] ACPI: Reserving HPET table memory at [mem 0xb7ff5000-0xb7ff5037]
[    0.006431] ACPI: Reserving APIC table memory at [mem 0xb7ff4000-0xb7ff408f]
[    0.006432] ACPI: Reserving MCFG table memory at [mem 0xb7ff3000-0xb7ff303b]
[    0.006433] ACPI: Reserving SSDT table memory at [mem 0xb7fe4000-0xb7fe4853]
[    0.006434] ACPI: Reserving SSDT table memory at [mem 0xb7fdb000-0xb7fe3739]
[    0.006435] ACPI: Reserving VFCT table memory at [mem 0xac268000-0xac277c83]
[    0.006436] ACPI: Reserving SSDT table memory at [mem 0xb7fd9000-0xb7fda5ef]
[    0.006437] ACPI: Reserving FPDT table memory at [mem 0xb7fd8000-0xb7fd8043]
[    0.006781] Early memory node ranges
[    0.021070] PM: hibernation: Registered nosave memory: [mem 0x00000000-0x00000fff]
[    0.021073] PM: hibernation: Registered nosave memory: [mem 0x0008f000-0x0008ffff]
[    0.021075] PM: hibernation: Registered nosave memory: [mem 0x000a0000-0x000fffff]
[    0.021077] PM: hibernation: Registered nosave memory: [mem 0x9c6fa000-0x9c6fafff]
[    0.021079] PM: hibernation: Registered nosave memory: [mem 0x9c805000-0x9c805fff]
[    0.021081] PM: hibernation: Registered nosave memory: [mem 0xa8608000-0xa8608fff]
[    0.021083] PM: hibernation: Registered nosave memory: [mem 0xa8617000-0xa8617fff]
[    0.021085] PM: hibernation: Registered nosave memory: [mem 0xac268000-0xac277fff]
[    0.021087] PM: hibernation: Registered nosave memory: [mem 0xb6acf000-0xb78cefff]
[    0.021088] PM: hibernation: Registered nosave memory: [mem 0xb78cf000-0xb7fcefff]
[    0.021089] PM: hibernation: Registered nosave memory: [mem 0xb7fcf000-0xb7ffefff]
[    0.021091] PM: hibernation: Registered nosave memory: [mem 0xb8000000-0xfebfffff]
[    0.021091] PM: hibernation: Registered nosave memory: [mem 0xfec00000-0xfec00fff]
[    0.021092] PM: hibernation: Registered nosave memory: [mem 0xfec01000-0xfec0ffff]
[    0.021093] PM: hibernation: Registered nosave memory: [mem 0xfec10000-0xfec10fff]
[    0.021094] PM: hibernation: Registered nosave memory: [mem 0xfec11000-0xfed7ffff]
[    0.021095] PM: hibernation: Registered nosave memory: [mem 0xfed80000-0xfed80fff]
[    0.021096] PM: hibernation: Registered nosave memory: [mem 0xfed81000-0xfedb0fff]
[    0.021097] PM: hibernation: Registered nosave memory: [mem 0xfedb1000-0xfedb1fff]
[    0.021098] PM: hibernation: Registered nosave memory: [mem 0xfedb2000-0xfedfffff]
[    0.021098] PM: hibernation: Registered nosave memory: [mem 0xfee00000-0xfee00fff]
[    0.021099] PM: hibernation: Registered nosave memory: [mem 0xfee01000-0xffffffff]
[    0.074635] Memory: 3696304K/4024688K available (18432K kernel code, 3267K rwdata, 14476K rodata, 4516K init, 17380K bss, 328124K reserved, 0K cma-reserved)
[    0.125642] Freeing SMP alternatives memory: 48K
[    0.240925] x86/mm: Memory block size: 128MB
[    0.261392] PCI: MMCONFIG at [mem 0xf8000000-0xfbffffff] reserved as EfiMemoryMappedIO
[    0.879512] Freeing initrd memory: 54016K
[    0.891742] Non-volatile memory driver v1.3
[    1.423919] Freeing unused decrypted memory: 2036K
[    1.425497] Freeing unused kernel image (initmem) memory: 4516K
[    1.427387] Freeing unused kernel image (rodata/data gap) memory: 1908K
[    9.590600] amdgpu 0000:00:01.0: amdgpu: Trusted Memory Zone (TMZ) feature not supported
[    9.590752] [drm] amdgpu: 80M of VRAM memory ready
[    9.590755] [drm] amdgpu: 1868M of GTT memory ready.
[    9.704014] [drm] DM_PPLIB:    memory_max_clock: 80000
[    9.704025] [drm] DM_PPLIB:    memory_max_clock: 80000
[    9.704027] [drm] DM_PPLIB: values for Memory clock
[    9.704031] [drm] DM_PPLIB:    memory_max_clock: 80000
[   13.166793] systemd[1]: Listening on systemd-oomd.socket - Userspace Out-Of-Memory (OOM) Killer Socket.

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?

There is only 4 G recognized.

Can you boot a F38 live media and see what you get there?

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

This is weird.
Can you download a F38 image and see if the issue persists on an older kernel?


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)


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 :slight_smile:
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.

Usable memory: aprox 4056 Mb
Reserved Memory: aprox 101 Mb
ACPI Data: 0.75 Mb

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.

1 Like

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.

1 Like

Comparing the bios manual to the memory datasheet it looks like the PC takes 240 pin dimms but the memory is 204 pin. Am I looking at the correct datasheet?

A possible test would be to populate DIMM1 and DIMM2 and see if using just a single channel makes a difference.

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).

Will report back once I have changed that

1 Like

Picturing this is grinding some gears in my mind. Does the 204 pin module plug into an adapter that then plugs into the 240 pin connector on the motherboard?

nope, it plugs in directly as normal. :man_shrugging:t4:

I’d say the computer indeed does use 204 pin SODIMM laptop memory then. The bios manual covers multiple variants of the computer and I was not looking at the applicable specs for what you have. There are a bunch of specs on memory requirements in the bios manual so that samsumg memory may not be compatible for other reasons.

Populating the DIMM1 and DIMM2 connectors (rather than DIMM1 and DIMM3) could still be an interesting experiment.

I tried populating the DIMM 2 slot except I couldnt find it :joy: 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?

DIMMs have different physical dimensions. Some motherboards have memory connectors on both sides of the motherboard.

The preferred memory population order is to use DIMM1 and DIMM3 so both memory channels can be used, increasing aggregate bandwidth. But you have a very odd situation. My desire to populate DIMM1 and DIMM2 is something that should not be necessary as both modules are the same part number and should work the way they are. I am just theorizing that there is some hardware incompatibility or failure and this test could be helpful. If all 8G shows up fine when populated in DIMM1 and DIMM2 there is definitely a hardware problem.

The bios manual indicates DIMM1 has to be populated for the computer to boot. Another test would be to remove DIMM1 and move the memory from DIMM3 to DIMM1 and see if it will boot with that single memory module installed.

Installing and rebooting into memtest86+ (dnf install memtest86+) may be useful. It should be able to run on a UEFI system but upstream indicates it is not signed so disabling secure boot may be necessary.

What size is your ZRAM swap?

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.