4

Установил 16Gb (2x8) RAM в Asus N3150i-c (с четырехъядерным процессором Intel Braswell Celeron N3150 SoC) и имел

[0.000000] ПРЕДУПРЕЖДЕНИЕ: ошибка BIOS: MTRR процессора не покрывают всю память, теряя 2048 МБ ОЗУ.

в dmesg и cat /proc/meminfo | head -n 1 это

MemTotal: 14213172 кБ

Эти mb и cpu официально поддерживают до 8 Гб, поэтому наличие работоспособного ~ 13.5 Гб (протестировано нормально с memtester и memtest86) кажется нормальным, но также доказывает, что ограничение не является аппаратным, поскольку на рынке есть аналогичные материнские платы с тем же SoC и заявленная поддержка 16Gb

Машина является сервером под управлением Ubuntu 14.04LTS, без X, поэтому поддержка gpu не так важна, поскольку в некоторых случаях можно использовать консоль. Пробовал ядра 3.13.0-35-generic, 3.13.0-83 и 4.2.0-34 (все LTS), придерживаясь последнего, так как первые два имели поврежденные консольные шрифты после перезагрузки

Asus ленится с обновлениями BIOS для этой платы (никаких обновлений с момента выпуска), поэтому мне интересно, можно ли что-то сделать на уровне ОС?

Можно ли переставить MTRR так, чтобы они теряли меньше памяти?

Мой /proc/mtrr это

reg00: base=0x000000000 (    0MB), size= 2048MB, count=1: write-back
reg01: base=0x07cb00000 ( 1995MB), size=    1MB, count=1: uncachable
reg02: base=0x07cc00000 ( 1996MB), size=    4MB, count=1: uncachable
reg03: base=0x07d000000 ( 2000MB), size=   16MB, count=1: uncachable
reg04: base=0x07e000000 ( 2016MB), size=   32MB, count=1: uncachable
reg05: base=0x100000000 ( 4096MB), size= 4096MB, count=1: write-back
reg06: base=0x200000000 ( 8192MB), size= 8192MB, count=1: write-back

lspci -v:

00:00.0 Host bridge: Intel Corporation Device 2280 (rev 21)
    Subsystem: ASUSTeK Computer Inc. Device 8534
    Flags: bus master, fast devsel, latency 0
    Kernel driver in use: iosf_mbi_pci

00:02.0 VGA compatible controller: Intel Corporation Device 22b1 (rev 21) (prog-if 00 [VGA controller])
    Subsystem: ASUSTeK Computer Inc. Device 8534
    Flags: bus master, fast devsel, latency 0, IRQ 120
    Memory at a0000000 (64-bit, non-prefetchable) [size=16M]
    Memory at 90000000 (64-bit, prefetchable) [size=256M]
    I/O ports at f000 [size=64]
    Expansion ROM at <unassigned> [disabled]
    Capabilities: <access denied>
    Kernel driver in use: i915

00:13.0 SATA controller: Intel Corporation Device 22a3 (rev 21) (prog-if 01 [AHCI 1.0])
    Subsystem: ASUSTeK Computer Inc. Device 8534
    Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 119
    I/O ports at f060 [size=32]
    Memory at 80301000 (32-bit, non-prefetchable) [size=2K]
    Capabilities: <access denied>
    Kernel driver in use: ahci

00:14.0 USB controller: Intel Corporation Device 22b5 (rev 21) (prog-if 30 [XHCI])
    Subsystem: ASUSTeK Computer Inc. Device 8534
    Flags: bus master, medium devsel, latency 0, IRQ 117
    Memory at a1000000 (64-bit, non-prefetchable) [size=64K]
    Capabilities: <access denied>
    Kernel driver in use: xhci_hcd

00:1a.0 Encryption controller: Intel Corporation Device 2298 (rev 21)
    Subsystem: ASUSTeK Computer Inc. Device 8534
    Flags: bus master, fast devsel, latency 0, IRQ 121
    Memory at 80100000 (32-bit, non-prefetchable) [size=1M]
    Memory at 80000000 (32-bit, non-prefetchable) [size=1M]
    Capabilities: <access denied>
    Kernel driver in use: mei_txe

00:1c.0 PCI bridge: Intel Corporation Device 22c8 (rev 21) (prog-if 00 [Normal decode])
    Flags: bus master, fast devsel, latency 0
    Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
    I/O behind bridge: 00001000-00001fff
    Memory behind bridge: 80400000-805fffff
    Prefetchable memory behind bridge: 0000000080600000-00000000807fffff
    Capabilities: <access denied>
    Kernel driver in use: pcieport

00:1c.2 PCI bridge: Intel Corporation Device 22cc (rev 21) (prog-if 00 [Normal decode])
    Flags: bus master, fast devsel, latency 0
    Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
    I/O behind bridge: 0000e000-0000efff
    Memory behind bridge: 80200000-802fffff
    Capabilities: <access denied>
    Kernel driver in use: pcieport

00:1f.0 ISA bridge: Intel Corporation Device 229c (rev 21)
    Subsystem: ASUSTeK Computer Inc. Device 8534
    Flags: bus master, medium devsel, latency 0
    Capabilities: <access denied>
    Kernel driver in use: lpc_ich

00:1f.3 SMBus: Intel Corporation Device 2292 (rev 21)
    Subsystem: ASUSTeK Computer Inc. Device 8534
    Flags: medium devsel, IRQ 11
    Memory at 80300000 (32-bit, non-prefetchable) [size=32]
    I/O ports at f040 [size=32]
    Capabilities: <access denied>

02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
    Subsystem: ASUSTeK Computer Inc. Device 8677
    Flags: bus master, fast devsel, latency 0, IRQ 118
    I/O ports at e000 [size=256]
    Memory at 80204000 (64-bit, non-prefetchable) [size=4K]
    Memory at 80200000 (64-bit, non-prefetchable) [size=16K]
    Capabilities: <access denied>
    Kernel driver in use: r8169

1 ответ1

1

Как оказалось, редактирование MTRR не помогло, но для тех, кто в этом нуждается, это можно сделать:

/bin/echo "disable=1" >| /proc/mtrr
/bin/echo "disable=2" >| /proc/mtrr
/bin/echo "base=0x07c800000 size=0x800000 type=uncachable" >| /proc/mtrr
/bin/echo "base=0x400000000 size=0x80000000 type=write-back" >| /proc/mtrr

Asus наконец-то выпустил обновленный BIOS (0507). Обновил его, также установил новое ядро 4.4.0-28, и теперь система распознает почти всю оперативную память:

cat /proc/meminfo | grep Mem
MemTotal:       16275812 kB
MemFree:        15815868 kB
MemAvailable:   15849708 kB

cat /proc/mtrr
reg00: base=0x000000000 (    0MB), size= 2048MB, count=1: write-back
reg01: base=0x080000000 ( 2048MB), size= 1024MB, count=1: write-back
reg02: base=0x0b8000000 ( 2944MB), size=  128MB, count=1: uncachable
reg03: base=0x100000000 ( 4096MB), size= 4096MB, count=1: write-back
reg04: base=0x200000000 ( 8192MB), size= 8192MB, count=1: write-back
reg05: base=0x400000000 (16384MB), size= 1024MB, count=1: write-back
reg06: base=0x0d0000000 ( 3328MB), size=  256MB, count=1: write-through

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .