"고정시키다"

"고정시키다"

운영 체제에 문제가 있습니다. 커널을 포함한 모든 도구는 실제 RAM 메모리의 절반만 표시합니다. 내 노트북에는 16G 메모리 칩이 설치되어 있으며 BIOS에는 모든 것이 정상이라고 표시됩니다.

구성에 대한 일부 정보:

하드웨어

노트북 델 XPS 15 9550(PDF 링크) 여기에는 다음과 같은 내용이 포함되어 있습니다.

메모리

슬롯: SODIMM 슬롯 2개

유형: DDR4

속도: 2133MHz

지원되는 구성: 8GB, 16GB, 32GB

CPU

Intel® Core™ i7-6700HQ 프로세서(아크링크) 여기에는 다음과 같은 내용이 포함되어 있습니다.

최대 메모리 크기(메모리 유형에 따라 다름): 64GB

메모리 유형: DDR4-2133, LPDDR3-1866, DDR3L-1600

시스템 메시지

# 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

핵심

$ 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

메모리는 다음과 같이 표시됩니다.free

$ 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

메모리 디스플레이 모드 /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

메모리는 다음과 같이 표시됩니다.dmidecode

$ 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

출력 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]

전체 출력 dmesg:https://pastebin.com/B7qLzVvK

운영 체제: Linux Mint 20 Ulyana

여기에 게시하기 전에 내가 한 일은 다음과 같습니다.

  1. BIOS를 최신 버전으로 업데이트하세요.
  2. memtest86 및 Dell 진단 도구 사용 - 모든 것이 잘 작동하고 BIOS에 16G가 표시됩니다.
  3. 커널을 5.11로 업그레이드
  4. USB 드라이브에서 Ubuntu 20.04를 사용해 보았는데 시스템 모니터 앱에 16G RAM이 표시됩니다(어쩐지 키보드나 USB One의 콘솔 형식에 어떤 문자도 입력할 수 없습니다 :)

UEFI를 사용하여 부팅하지 않기 때문입니까?

이 문제를 디버깅하고 해결하려면 어떻게 해야 합니까? 감사해요.

//편집하다

$ 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

dmesg를 다시 실행하고 사용/예약된 메모리에 대해 몇 가지 계산을 수행했습니다. 나는 그것이 정확하기를 바라지만 훨씬 덜 정확해 보입니다.

$ 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

9G정도 예약된거 같은데 왜그런지 모르겠네요...

// 편집 2

이제 정말 이상해졌습니다. 나는 방금 랩톱 서비스를 사용하고 있었고 그들이 가지고 있는 다른 메모리 칩을 테스트했으며 BIOS는 항상 올바른 값을 표시했지만 Linux에서는 그렇지 않았습니다.

  • 이전 1x16G를 사용할 때 - OS에 7G라고 표시됨
  • 기존 2x16G를 사용할 때 - OS에 17G라고 표시됨
  • 서비스에서 1x8G를 사용하는 경우 - 7G를 표시합니다.
  • 서비스에서 1x16G를 사용하는 경우 - 7G를 표시합니다.

이것은 매우 이상합니다.

// 편집 3

젠장. 메모리가 절반만 표시되는 이유를 찾은 것 같습니다.

Kubuntu 21.04 USB 버전을 다운로드하고 부팅했습니다.

  1. 레거시 모드(UEFI 없음) - 절반의 메모리가 표시됨
  2. UEFI 모드에서 - 모든 메모리 표시

지금 내 질문은 왜입니까?

답변1

마침내 무슨 일이 일어나고 있는지 알아냈기 때문에 내 질문에 대답하겠습니다.

너무 오래;

Linux에서는 레거시 부팅을 사용하고 있으므로 메모리 칩당 최대 용량이 8GB라고 보고합니다. UEFI를 사용하여 부팅하면 Linux는 각 칩의 전체 메모리를 표시합니다.


전체 이야기, 아마도 누군가에게 도움이 될 것입니다

얼마전에 델 노트북을 구입했습니다. 32G RAM(2x16G), 4코어 i7, 512G SSD 등 뛰어난 사양을 갖추고 있습니다. Linux Mint 19를 설치했는데 대부분 잘 작동합니다. 이는 동시에 여러 탭이 있는 두 개의 브라우저 창, 세 개의 IDE, Youtube, 화상 통화 등을 사용하는 등 앱을 많이 사용할 때 하루에 한두 번 사용됩니다. 충돌이 "TV처럼 깨졌습니다"라고 표시되므로 증상은 그래픽 문제처럼 보입니다. 하드 리셋만이 노트북에 생명을 불어넣을 수 있습니다.

몇 번의 충돌 후에 온도, CPU 사용량, 메모리 사용량 등을 모니터링하기로 결정했습니다. OS에 표시되는 메모리가 BIOS에 표시되는 실제 메모리의 약 절반이라는 사실을 처음으로 알아차렸습니다. 이는 심각한 메모리 문제를 나타냅니다.

흥미로운 것들은 dmidecode항상 올바른 값을 보여줍니다. 또한 dmesg커널은 전체 메모리를 인식하지만 사용 가능한 메모리의 약 절반만 보고하는 것으로 나타났습니다.

먼저 Dell 진단 도구와 memtest86을 실행하여 이 노트북에서 몇 가지 테스트를 실행하기로 결정했습니다. 두 도구 모두 32G RAM을 표시하지만 메모리 테스트 단계에서 몇 분 후에 둘 다 실패합니다. 증상은 이전과 동일합니다. 나는 이것이 메모리 문제라고 99% 확신합니다.

이후 다양한 메모리 칩 구성을 테스트했는데 어느 슬롯에 관계없이 두 메모리 칩이 모두 연결되어 있을 때만 실패합니다. 모두 잘 작동하는 것 같지만(모든 칩이 memtest86을 통과함) Dell 하드웨어에서는 제대로 작동하지 않습니다.

그래서 충돌을 해결하려면 하나의 메모리 슬롯을 사용해야 했습니다.

이제 충돌은 사라졌지만 OS는 8GB RAM(16GB 연결됨)만 보고합니다. 이는 운영 체제가 스왑을 사용하여 빠르게 시작되어 사용할 수 없게 되기 때문에 문제가 됩니다.

보고서가 정상인지 확인하기 위해 완전히 다른 메모리 칩을 검사하기로 결정했습니다.

  • 이전 2개의 16G 칩 - 17G RAM에 대해 보고됨
  • 8G 칩 - 8G RAM 보고
  • 16G 칩(이전 칩과 다름) - 8GB 보고(대체 뭐야!?)

모든 구성에서 memtest86 및 BIOS는 올바른 RAM을 표시합니다. 따라서 이것은 운영 체제 문제입니다. 그런데 왜?

후에 @리눅스 보안 괴물제안에 따르면 Ubuntu 라이브 USB를 부팅하여 거기에 무엇이 표시되는지 확인했습니다. Dell 일회성 부팅에는 USB, 레거시 및 UEFI의 두 가지 가능한 부팅 옵션이 표시됩니다. UEFI를 처음 시도했을 때 RAM 크기는 16GB로 정확했습니다. 그러다가 전통모드를 해보고 붐! 8GB에 불과합니다.

내 문제는 UEFI 부팅 없이 설치된 OS로 인해 발생합니다.. 라이브 USB 부팅에 문제가 있어서 UEFI를 꺼두었을 수도 있지만 잘 모르겠습니다.

나에게 가장 큰 미스터리는 이것이 왜 운영 체제 커널에 중요한가 하는 것입니다.

"고정시키다"

이 모든 문제를 해결하기 위해 방금 Kubuntu를 설치하고 BIOS에서 UEFI를 활성화했습니다. 이제 메모리가 올바르게 보고됩니다...

관련 정보