Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > *NIX системы: Общие вопросы > CPU MTRRs don't cover all of memory


Автор: borisbn 3.7.2012, 13:32
Здравствуйте!
Столкнулся с проблемой, что 64-х битная OpenSuse 11.3 не видит память больше 4 ГБ.
Погуглив, набрёл на это обсуждение - http://fixunix.com/kernel/550350-pat-mtrrs.html

Просьба: помогите перевести с юниксоидного на английский (или на русский) что там было сделано, чтобы обойти проблему (дело осложняется тем, что я практически не знаю линукса, а работать на нём нужно. И нужно более 4 ГБ памяти)

Спасибо.

Тех. информация:
Материнская плата : AMD 990 FX 5 Crosshair
Цитата
uname -a
Linux linux-dkgu 2.6.34-12-default #1 SMP 2010-06-29 02:39:08 +0200 x86_64 x86_64 x86_64 GNU/Linux

Цитата
 dmesg | grep BIOS
[    0.000000] BIOS-provided physical RAM map:
[    0.000000]  BIOS-e820: 0000000000000000 - 000000000009bc00 (usable)
[    0.000000]  BIOS-e820: 000000000009bc00 - 00000000000a0000 (reserved)
[    0.000000]  BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
[    0.000000]  BIOS-e820: 0000000000100000 - 00000000cd724000 (usable)
[    0.000000]  BIOS-e820: 00000000cd724000 - 00000000cd775000 (ACPI NVS)
[    0.000000]  BIOS-e820: 00000000cd775000 - 00000000cd77d000 (ACPI data)
[    0.000000]  BIOS-e820: 00000000cd77d000 - 00000000cdadc000 (reserved)
[    0.000000]  BIOS-e820: 00000000cdadc000 - 00000000cdaed000 (ACPI NVS)
[    0.000000]  BIOS-e820: 00000000cdaed000 - 00000000cdb00000 (reserved)
[    0.000000]  BIOS-e820: 00000000cdb00000 - 00000000cdb02000 (ACPI NVS)
[    0.000000]  BIOS-e820: 00000000cdb02000 - 00000000cdb0b000 (reserved)
[    0.000000]  BIOS-e820: 00000000cdb0b000 - 00000000cdb11000 (ACPI NVS)
[    0.000000]  BIOS-e820: 00000000cdb11000 - 00000000cdb73000 (reserved)
[    0.000000]  BIOS-e820: 00000000cdb73000 - 00000000cdd76000 (ACPI NVS)
[    0.000000]  BIOS-e820: 00000000cdd76000 - 00000000cdf00000 (usable)
[    0.000000]  BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved)
[    0.000000]  BIOS-e820: 00000000fec10000 - 00000000fec11000 (reserved)
[    0.000000]  BIOS-e820: 00000000fec20000 - 00000000fec21000 (reserved)
[    0.000000]  BIOS-e820: 00000000fed00000 - 00000000fed01000 (reserved)
[    0.000000]  BIOS-e820: 00000000fed61000 - 00000000fed71000 (reserved)
[    0.000000]  BIOS-e820: 00000000fed80000 - 00000000fed90000 (reserved)
[    0.000000]  BIOS-e820: 00000000fef00000 - 0000000100000000 (reserved)
[    0.000000]  BIOS-e820: 0000000100001000 - 000000022f000000 (usable)
[    0.000000] AMI BIOS detected: BIOS may corrupt low RAM, working around it.
[    0.000000] WARNING: BIOS bug: CPU MTRRs don't cover all of memory, losing 4847MB of RAM.

[    0.000000]   #3 [000009bc00 - 0000100000]   BIOS reserved
[    1.766011] pcieport 0000:00:02.0: Requesting control of PCIe PME from ACPI BIOS
[    1.766023] pcieport 0000:00:04.0: Requesting control of PCIe PME from ACPI BIOS
[    1.766030] pcieport 0000:00:05.0: Requesting control of PCIe PME from ACPI BIOS
[    1.766036] pcieport 0000:00:06.0: Requesting control of PCIe PME from ACPI BIOS
[    1.766043] pcieport 0000:00:07.0: Requesting control of PCIe PME from ACPI BIOS
[    1.766049] pcieport 0000:00:09.0: Requesting control of PCIe PME from ACPI BIOS
[    7.575942] hda_codec: ALC889: BIOS auto-probing.
[   13.098486] [Firmware Bug]: powernow-k8: Try again with latest BIOS.
[   17.205739] BIOS EDD facility v0.16 2004-Jun-25, 6 devices found

Цитата
 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=0x0c0000000 ( 3072MB), size=  256MB, count=1: write-back
reg03: base=0x0cdf00000 ( 3295MB), size=    1MB, count=1: uncachable
reg04: base=0x0ce000000 ( 3296MB), size=   32MB, count=1: uncachable

Автор: ZeeLax 4.7.2012, 05:48
Цитата(borisbn @  3.7.2012,  16:32 Найти цитируемый пост)
Просьба: помогите перевести с юниксоидного на английский (или на русский) что там было сделано, чтобы обойти проблему (дело осложняется тем, что я практически не знаю линукса, а работать на нём нужно. И нужно более 4 ГБ памяти)

Без английского и понимания работы линукса работать будет сложно. Так, побаловаться - запросто. С работой… ну, сами видите, что происходит.

Цитата

your bios doesn't cover 4g above RAM..

please do
1. boot linux with "disable_mtrr_trim"
2. after booting input:
echo "base=0x100000000 size=0x20000000 type=write-back" >/proc/mtrr
echo "base=0x120000000 size=0x8000000 type=write-back" >/proc/mtrr
echo "base=0x128000000 size=0x4000000 type=write-back" >/proc/mtrr

later you could put those three lines in one scripts and call it from inittab
# grep mtrrfixup /etc/inittab
mtrrfixup:345nce:/root/mtrrfixup.sh

1. Вам нужно загрузится, передав ядру параметр "disable_mttr_trim". Точный процесс остановки загрузки и передачи параметров, зависит от вашего загрузчика. Если это GRUB, то обычно можно нажать <e>, потом отредактировать строку загрузки ядра (она начинается со слова "linux"), дописав в неё нужный параметр, и нажать <Ctrl-X>.
2. Система должна загрузиться (как пишет автор, очень медленно), потом необходимо выполнить команды (из под суперпользователя, естественно):
Код

echo "base=0x100000000 size=0x20000000 type=write-back" >/proc/mtrr
echo "base=0x120000000 size=0x8000000 type=write-back" >/proc/mtrr
echo "base=0x128000000 size=0x4000000 type=write-back" >/proc/mtrr

После этого, как пишет автор, всё будет хорошо.

Автор: krypt3r 4.7.2012, 05:56
Цитата
она начинается со слова "linux"

kernel, а не linux, по крайней мере в первом грубе

Автор: borisbn 4.7.2012, 10:42
Цитата(ZeeLax @  4.7.2012,  05:48 Найти цитируемый пост)
Без английского и понимания работы линукса работать будет сложно

С английским проблем нет. Мне просто не понятно было, как "загрузить линукс с параметром таким-то". В общем погуглив, выяснил, что этот параметр нужно прописать в grub.conf. С этим не беда, а вот параметры, которые необходимо закинуть в /proc/mtrr похоже уникальные для каждого компьютера... Повоевав с ними и почитав что они значат, добился того, чтобы запись в этот файл не ругалась....
В итоге - всё впустую. Я даже BIOS перепрошил на последнюю версию - ничего. Как было видно 4 ГБ из 8-ми, так и осталось. Загрузился с liveCD Ubuntu - видны все 8.

Спасибо всем откликнувшимся. Закрываю.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)