
Ich habe ein Problem mit dem Betriebssystem. Alle Tools, einschließlich des Kernels, zeigen nur die Hälfte meines tatsächlichen RAM-Speichers an. In meinem Laptop ist ein 16G-Speicherchip installiert und im BIOS wird alles gut angezeigt.
Einige Informationen zur Konfiguration:
HW
Ein Laptop Dell XPS 15 9550 (PDF-Link), in dem es unter anderem heißt:
Erinnerung
Steckplätze: Zwei SODIMM-Steckplätze
Typ: DDR4
Geschwindigkeit: 2133 MHz
Unterstützte Konfigurationen: 8 GB, 16 GB und 32 GB
CPU
Intel® Core™ i7-6700HQ Prozessor (Ark-Link), in dem es unter anderem heißt:
Max. Speichergröße (abhängig vom Speichertyp): 64 GB
Speichertypen: DDR4-2133, LPDDR3-1866, DDR3L-1600
Systeminformationen
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 2.8 present.
90 structures occupying 5605 bytes.
Table at 0x000E8C20.
Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
Vendor: Dell Inc.
Version: 1.14.0
Release Date: 02/13/2020
Address: 0xF0000
Runtime Size: 64 kB
ROM Size: 16 MB
Characteristics:
PCI is supported
PNP is supported
BIOS is upgradeable
BIOS shadowing is allowed
Boot from CD is supported
Selectable boot is supported
EDD is supported
5.25"/1.2 MB floppy services are supported (int 13h)
3.5"/720 kB floppy services are supported (int 13h)
3.5"/2.88 MB floppy services are supported (int 13h)
Print screen service is supported (int 5h)
8042 keyboard services are supported (int 9h)
Serial services are supported (int 14h)
Printer services are supported (int 17h)
ACPI is supported
USB legacy is supported
Smart battery is supported
BIOS boot specification is supported
Function key-initiated network boot is supported
Targeted content distribution is supported
UEFI is supported
BIOS Revision: 1.14
Handle 0x0001, DMI type 1, 27 bytes
System Information
Manufacturer: Dell Inc.
Product Name: XPS 15 9550
Version: Not Specified
Serial Number: GR1RD72
UUID: 4c4c4544-0052-3110-8052-c7c04f443732
Wake-up Type: Power Switch
SKU Number: 06E4
Family: XPS
Kernel
$ uname -a
Linux piotr-XPS-15-9550 5.11.0-22-generic #23~20.04.1-Ubuntu SMP Thu Jun 17 12:51:00 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Erinnerung gezeigt durchfree
$ free -h
total used free shared buff/cache available
Mem: 7,0Gi 2,6Gi 1,1Gi 887Mi 3,4Gi 3,3Gi
Swap: 979Mi 0B 979Mi
Erinnerungsshow von /proc/meminfo
:
$ cat /proc/meminfo
MemTotal: 7382044 kB
MemFree: 1142512 kB
MemAvailable: 3467104 kB
Buffers: 201548 kB
Cached: 3183760 kB
SwapCached: 0 kB
Active: 823272 kB
Inactive: 4182420 kB
Active(anon): 1924 kB
Inactive(anon): 2520488 kB
Active(file): 821348 kB
Inactive(file): 1661932 kB
Unevictable: 831044 kB
Mlocked: 32 kB
SwapTotal: 1003516 kB
SwapFree: 1003516 kB
Dirty: 104 kB
Writeback: 0 kB
AnonPages: 2451456 kB
Mapped: 842608 kB
Shmem: 908320 kB
KReclaimable: 137292 kB
Slab: 238076 kB
SReclaimable: 137292 kB
SUnreclaim: 100784 kB
KernelStack: 19088 kB
PageTables: 36676 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 4694536 kB
Committed_AS: 9487844 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 76280 kB
VmallocChunk: 0 kB
Percpu: 6176 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
FileHugePages: 0 kB
FilePmdMapped: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
Hugetlb: 0 kB
DirectMap4k: 328276 kB
DirectMap2M: 6234112 kB
DirectMap1G: 2097152 kB
Erinnerung gezeigt durchdmidecode
$ sudo dmidecode -t memory
# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 2.8 present.
Handle 0x0038, 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 0x0039, DMI type 17, 40 bytes
Memory Device
Array Handle: 0x0038
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 16384 MB
Form Factor: SODIMM
Set: None
Locator: DIMM A
Bank Locator: DIMM A
Type: DDR4
Type Detail: Synchronous
Speed: 2133 MT/s
Manufacturer: 0793
Serial Number: 12161215
Asset Tag: 16360000
Part Number: GR2133S464L15/16G
Rank: 2
Configured Memory Speed: 2133 MT/s
Minimum Voltage: Unknown
Maximum Voltage: Unknown
Configured Voltage: 1.2 V
Handle 0x003A, DMI type 17, 40 bytes
Memory Device
Array Handle: 0x0038
Error Information Handle: Not Provided
Total Width: Unknown
Data Width: Unknown
Size: No Module Installed
Form Factor: DIMM
Set: None
Locator: DIMM B
Bank Locator: DIMM B
Type: Unknown
Type Detail: None
Speed: Unknown
Manufacturer: Not Specified
Serial Number: Not Specified
Asset Tag: Not Specified
Part Number: Not Specified
Rank: Unknown
Configured Memory Speed: Unknown
Minimum Voltage: Unknown
Maximum Voltage: Unknown
Configured Voltage: Unknown
Ausgabe von dmesg
:
$ dmesg | grep -i e820
[ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009dbff] usable
[ 0.000000] BIOS-e820: [mem 0x000000000009dc00-0x000000000009ffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved
[ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x0000000032667fff] usable
[ 0.000000] BIOS-e820: [mem 0x0000000032668000-0x0000000032668fff] ACPI NVS
[ 0.000000] BIOS-e820: [mem 0x0000000032669000-0x0000000036fcefff] reserved
[ 0.000000] BIOS-e820: [mem 0x0000000036fcf000-0x000000003700cfff] ACPI data
[ 0.000000] BIOS-e820: [mem 0x000000003700d000-0x0000000037674fff] ACPI NVS
[ 0.000000] BIOS-e820: [mem 0x0000000037675000-0x000000003fffffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000e0000000-0x00000000efffffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fe000000-0x00000000fe010fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec00fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000ff000000-0x00000000ffffffff] reserved
[ 0.000000] BIOS-e820: [mem 0x0000000100000000-0x000000029e22cfff] usable
[ 0.000000] BIOS-e820: [mem 0x000000029e22d000-0x00000004bdffffff] reserved
[ 0.000767] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[ 0.000771] e820: remove [mem 0x000a0000-0x000fffff] usable
[ 0.123701] PCI: MMCONFIG at [mem 0xe0000000-0xefffffff] reserved in E820
[ 0.333546] e820: reserve RAM buffer [mem 0x0009dc00-0x0009ffff]
[ 0.333548] e820: reserve RAM buffer [mem 0x32668000-0x33ffffff]
[ 0.333549] e820: reserve RAM buffer [mem 0x29e22d000-0x29fffffff]
Vollständige Ausgabe von dmesg
:https://pastebin.com/B7qLzVvK
Betriebssystem: Linux Mint 20 Ulyana
Was ich getan habe, bevor ich hier gepostet habe:
- BIOS auf die neueste Version aktualisiert
- Habe Memtest86 und Dell-Diagnosetool verwendet - alles in Ordnung, BIOS zeigt 16G
- Kernel auf 5.11 aktualisiert
- Ich habe Ubuntu 20.04 von einem USB-Laufwerk ausprobiert und in der Systemmonitor-App werden 16 GB RAM angezeigt (aus irgendeinem Grund konnte ich weder in der Konsole mit der integrierten Tastatur noch über das USB-Laufwerk irgendwelche Zeichen eingeben :/)
Kann es daran liegen, dass ich zum Booten kein UEFI verwende?
Was kann ich tun, um das Problem zu beheben? Danke.
//BEARBEITEN
$ decode-dimms
# decode-dimms version $Revision$
Memory Serial Presence Detect Decoder
By Philip Edelbrock, Christian Zuckschwerdt, Burkart Lingner,
Jean Delvare, Trent Piepho and others
Decoding EEPROM: /sys/bus/i2c/drivers/ee1004/0-0050
Guessing DIMM is in bank 1
---=== SPD EEPROM Information ===---
EEPROM CRC of bytes 0-125 OK (0xEF1D)
# of bytes written to SDRAM EEPROM 384
Total number of bytes in EEPROM 512
Fundamental Memory type DDR4 SDRAM
SPD Revision 1.0
Module Type SO-DIMM
EEPROM CRC of bytes 128-253 OK (0x2355)
---=== Memory Characteristics ===---
Maximum module speed 2132 MHz (PC4-17000)
Size 16384 MB
Banks x Rows x Columns x Bits 16 x 16 x 10 x 64
SDRAM Device Width 8 bits
Ranks 2
Rank Mix Symmetrical
AA-RCD-RP-RAS (cycles) 15-15-15-36
Supported CAS Latencies 16T, 15T, 14T, 13T, 12T, 11T, 10T
---=== Timings at Standard Speeds ===---
AA-RCD-RP-RAS (cycles) as DDR4-1866 13-13-13-31
AA-RCD-RP-RAS (cycles) as DDR4-1600 11-11-11-27
---=== Timing Parameters ===---
Minimum Cycle Time (tCKmin) 0.938 ns
Maximum Cycle Time (tCKmax) 1.500 ns
Minimum CAS Latency Time (tAA) 13.750 ns
Minimum RAS to CAS Delay (tRCD) 13.750 ns
Minimum Row Precharge Delay (tRP) 13.750 ns
Minimum Active to Precharge Delay (tRAS) 33.000 ns
Minimum Active to Auto-Refresh Delay (tRC) 46.750 ns
Minimum Recovery Delay (tRFC1) 350.000 ns
Minimum Recovery Delay (tRFC2) 260.000 ns
Minimum Recovery Delay (tRFC4) 160.000 ns
Minimum Four Activate Window Delay (tFAW) 21.000 ns
Minimum Row Active to Row Active Delay (tRRD_S) 3.700 ns
Minimum Row Active to Row Active Delay (tRRD_L) 5.300 ns
Minimum CAS to CAS Delay (tCCD_L) 5.625 ns
---=== Other Information ===---
Package Type Monolithic
Maximum Activate Count Unlimited
Post Package Repair One row per bank group
Soft PPR Not Supported
Module Nominal Voltage 1.2 V
Thermal Sensor No
---=== Physical Characteristics ===---
Module Height 30 mm
Module Thickness 2 mm front, 2 mm back
Module Reference Card E revision 1
---=== Manufacturer Data ===---
Module Manufacturer Wilk Elektronik S.A.
Manufacturing Date 2017-W06
Part Number GR2133S464L15/16G
Number of SDRAM DIMMs detected and decoded: 1
Ich habe dmesg erneut ausgeführt und einige Berechnungen zu diesem verwendeten/reservierten Speicher durchgeführt. Ich hoffe, sie sind richtig, aber sie sehen eher weniger richtig aus:
$ dmesg | grep 'BIOS-e820: \[mem' | sed -r 's/.*mem (0x.*)-(0x.*)\] (.*)/\1|\2|\3/g' | awk -F '|' '{printf "%10s %15.2f MB\n", $3, (strtonum($2) - strtonum($1)) / 1024/1024 }'
usable 0.62 MB
reserved 0.01 MB
reserved 0.12 MB
usable 798.46 MB
ACPI NVS 0.00 MB
reserved 80.34 MB
ACPI data 0.24 MB
ACPI NVS 6.41 MB
reserved 137.54 MB
reserved 256.00 MB
reserved 0.07 MB
reserved 0.00 MB
reserved 0.00 MB
reserved 16.00 MB
usable 6626.18 MB
reserved 8701.82 MB
Sieht aus, als ob etwa 9G reserviert sind, und ich weiß nicht, warum …
// BEARBEITEN 2
Jetzt wird es richtig komisch. Ich war gerade beim Laptop-Service und wir haben ein paar andere Speicherchips getestet, die ihnen gehören, und das BIOS zeigt immer korrekte Werte an, aber nicht Linux:
- bei Verwendung meines alten 1x16G - OS zeigt 7G
- bei Verwendung meiner alten 2x16G - OS zeigt 17G
- bei Verwendung von 1x8G vom Dienst - zeigt 7G
- bei Verwendung von 1x16G vom Dienst - zeigt 7G
Das ist einfach nur komisch.
// BEARBEITEN 3
Verdammt. Ich glaube, ich habe die Ursache dafür gefunden, dass nur die Hälfte des Speichers angezeigt wird.
Ich habe die USB-Version von Kubuntu 21.04 heruntergeladen und gebootet:
- im Legacy-Modus (kein UEFI) - zeigt die Hälfte des Speichers
- im UEFI-Modus - zeigt den gesamten Speicher
Meine Frage ist jetzt, warum?
Antwort1
Ich werde meine Frage selbst beantworten, da ich endlich herausgefunden habe, was los war.
Kurz und knapp;
Linux meldete maximal 8 GB pro Speicherchip, da ich den Legacy-Boot verwendet habe. Beim UEFI-Boot zeigt Linux vollen Speicher pro Chip an.
Die ganze Geschichte, vielleicht hilft sie jemandem weiter
Ich habe diesen Dell-Laptop vor einiger Zeit bekommen. Er hatte eine gute Ausstattung wie 32 GB RAM (2 x 16 GB), 4 Cores i7, 512 GB SSD usw. Ich habe Linux Mint 19 installiert und er hat die meiste Zeit gut funktioniert. Er stürzte etwa ein- oder zweimal am Tag ab, wenn ich viele Apps gleichzeitig benutzte, z. B. zwei Browserfenster mit mehreren Tabs, drei IDE-Instanzen, YouTube, Videoanrufe usw. Symptome waren Grafikprobleme aufgrund eines „kaputten Fernseher-ähnlichen“ Displays beim Absturz. Nur ein Hard-Reset konnte den Laptop wieder zum Leben erwecken.
Nach einigen Abstürzen beschloss ich, einige Temperaturen, CPU-Auslastung, Speicherauslastung usw. zu überwachen. Dabei fiel mir zum ersten Mal auf, dass das Betriebssystem nur etwa die Hälfte des im BIOS angezeigten tatsächlichen Speichers anzeigte. Dies deutete auf schwerwiegende Speicherprobleme hin.
Interessant ist, dass dmidecode
immer korrekte Werte angezeigt werden. Außerdem dmesg
wird angezeigt, dass der Kernel zwar den vollen Speicher erkennt, aber nur etwa die Hälfte des nutzbaren Speichers meldet.
Ich beschloss, einige Tests auf diesem Laptop durchzuführen und begann mit der Ausführung der Dell-Diagnosetools und von Memtest86. Beide Tools zeigten 32 GB RAM an und beide fielen nach wenigen Minuten der Speichertestphase aus. Dieselben Symptome wie zuvor. Ich war zu 99 % sicher, dass es ein Speicherproblem war.
Danach habe ich verschiedene Speicherchipkonfigurationen getestet und es funktionierte nur, wenn beide Speicherchips eingesetzt waren, egal in welchen Steckplätzen. Es sieht so aus, als ob beide in Ordnung sind (jeder einzelne Chip hat Memtest86 bestanden), aber sie funktionieren nicht gut, wenn sie mit Dell-Hardware zusammen verwendet werden.
Um Abstürze zu beheben, musste ich also nur einen Speichersteckplatz verwenden.
Abstürze gab es jetzt nicht mehr, aber das Betriebssystem meldete nur 8 GB RAM, obwohl 16 GB eingesetzt waren. Das war ein Problem, weil das Betriebssystem ziemlich bald begann, Swap zu verwenden und ziemlich unbrauchbar war.
Habe beschlossen, einige ganz andere Speicherchips zu prüfen, nur um zu sehen, ob die Berichterstattung in Ordnung ist.
- alte zwei 16G-Chips - Berichte über etwa 17G RAM
- ein 8G-Chip - meldet 8G RAM
- 16G-Chip (anders als die vorherigen) – Bericht 8 GB (was zum Teufel!?)
Memtest86 und BIOS zeigen bei allen Konfigurationen den korrekten RAM an. Es handelt sich also um ein Betriebssystemproblem. Aber warum?
Nach dem @LinuxSecurityFreakVorschlag: Ich habe versucht, Ubuntu Live USB zu booten, um zu sehen, was dort angezeigt wird. Dell One-Time-Boot zeigt zwei mögliche Boot-Optionen für USB, Legacy und UEFI. Ich habe es zuerst mit UEFI versucht und die RAM-Menge war korrekt, 16 GB. Dann habe ich den Legacy-Modus ausprobiert und bumm! Nur 8 GB.
Mein Problem wurde also durch ein Betriebssystem verursacht, das ohne UEFI-Boot installiert wurde. Ich habe wahrscheinlich UEFI ausgeschaltet, weil ich einige Probleme mit dem Live-USB-Boot hatte, aber ich bin nicht sicher.
Das größte Rätsel für mich ist, warum es für den Betriebssystemkernel wichtig ist.
"Fix"
Um das alles zu beheben, habe ich gerade Kubuntu mit aktiviertem UEFI im BIOS installiert. Jetzt wird der Speicher korrekt gemeldet ...