Кажется, на моем ноутбуке (Acer Aspire One AOA150) заканчиваются MTRR при загрузке. Я немного погуглил проблему и прочитал, что люди рекомендуют включить очистку MTRR, чтобы исправить ее, однако, это все еще происходит. Я использую Arch Linux (но это не должно иметь значения). Вы можете видеть, что я включил очистку MTRR здесь:
Очень странно - у меня та же модель с 1,5 ГБ оперативной памяти, на которой Fedora 14 работает совершенно нормально целую вечность. Это только начало показывать проблему.
Linker3000 13 лет назад
0
Проблема была там некоторое время, просто нашел время, чтобы опубликовать это здесь. Если вы делаете `dmesg | fgrep mtrr` вы видите те же (или похожие) сообщения об ошибках? Если нет, не могли бы вы сделать `zcat / proc / config.gz` и вставить его / w` cat / proc / mtrr` где-нибудь для меня? Спасибо! :)
Matthieu Cartier 13 лет назад
0
@ Linker3000: Проверьте комментарий нейролиза, он забыл использовать синтаксис упоминания.
Tom Wijsman 13 лет назад
0
@ Tom Wijsman Спасибо, забыл.
Matthieu Cartier 13 лет назад
0
@neurolysis: dmesg contains 'no more MTRRS', but no errors or warnings. There's no config.gz. /proc/mtrr at http://pastebin.com/Lh2yBCEc Linux: Linux aa1.localdomain 2.6.35.11-83.fc14.i686.PAE #1 SMP Mon Feb 7 06:57:55 UTC 2011 i686 i686 i386 GNU/Linux
Linker3000 13 лет назад
0
@ Linker3000 Спасибо. Интригующий ...
Matthieu Cartier 13 лет назад
0
2 ответа на вопрос
3
Matthieu Cartier
Благодаря harrymc я обнаружил, что вы можете переписать / proc / mtrr. Я поместил следующее в /etc/rc.local, перезагрузился, и моя таблица MTRR была правильной.
Кроме того, после разговора с несколькими людьми, которые занимаются разработкой ядра, мне сообщили, что CONFIG_MTRR_SANITIZERон был сломан для нескольких последних ядер, и поэтому он работал для других в прошлом.
Приятно покопаться с вами двумя - придется посмотреть, что я могу сделать на моем работающем Fedora
Linker3000 13 лет назад
0
2
harrymc
Цитирую ответ на свой вопрос на форумах Arch Linux:
Из dmesg легко увидеть, что он исчерпывает mtrr во время инициализации графики i915 / drm. У меня нет конкретного опыта решения этой проблемы, но вот мои предложения:
Судя по вашему / proc / mtrr, у вашего процессора ATOM всего 8 MTRR, и они действительно полностью израсходованы. Однако то, как память разбивается на такие маленькие фрагменты, вызывает недоумение. В общем, такая проблема может быть вызвана:
BIOS - ищите параметры, которые вызывают выделение памяти для устройств.
Графическая карта, которая может иметь общую память с процессором и которую BIOS может заставить жестоко распределиться в середине памяти.
Драйвер видеокарты - поиск последней версии.
Неправильно настроенное ядро.
Самая большая загадка, которую я вижу, это то, что / proc / mtrr говорит, что у вас есть 8 ГБ. Но в / proc / cpuinfo запись «flags» не содержит «lm», что в FAQ по Arch64 говорит, что процессор должен быть совместимым с x86_64. Далее в FAQ сказано:
Обратите внимание, что Arch32 не поддерживает более 3 ГБ ОЗУ по умолчанию: вы должны обратиться к Arch64, если у вас есть больше.
Так что, похоже, у вас есть Arch32 и 8 ГБ оперативной памяти, что противоречит документации. Не могли бы вы пролить свет на эту загадку?
No luck with either (I already had `enable_mtrr_cleanup=1`, which just changes `CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT`, but booting with `mtrr_spare_reg_nr=2` doesn't fix it either). I get a different, but similar, error: `[ 0.329894] mtrr: no more MTRRs available`.
Matthieu Cartier 13 лет назад
0
На самом деле, это существует и в первом dmesg ... так что увеличение запасного номера, похоже, удаляет предупреждение drm, но не предупреждение "no more MTRRs".
Matthieu Cartier 13 лет назад
0
Добавлен более подробный анализ, так как ваш компьютер представляет некоторые реальные головоломки.
harrymc 13 лет назад
0
Чтобы ответить на все замечания, которые вы сделали: этот компьютер имеет только 1 ГБ оперативной памяти. В BIOS есть только самые базовые опции (время и т. Д.) - ничего, что позволяло бы изменять распределение памяти. Драйвер графической карты является `intel` и является последней (стабильной) версией. В BIOS нет опции для изменения объема памяти, зарезервированной для графики. Это происходит при использовании следующих ядер: `make defconfig`, стандартное ядро Ubuntu (стабильное, 32-разрядное) и 2.6.37-ARCH (стабильное, 32-разрядное), поэтому я не думаю, что это неверная конфигурация.
Matthieu Cartier 13 лет назад
0
Интересно, что эта запись в блоге документирует тот же ноутбук, что и у меня, и, несмотря на все те же шаги, что и у меня, у него совершенно другая (и, судя по всему) правильная таблица MTRR после этого. Есть ли способ вручную указать эти значения? http://blog.jolexa.net/2009/11/22/buggy-mtrr-on-acer-aspire-one-zg5/
Matthieu Cartier 13 лет назад
0
Что вы думаете о `zgrep -i MTRR / proc / config.gz`?
harrymc 13 лет назад
0
`zgrep 'SANITIZER' / proc / config.gz` уже был в OP, но я тоже включил его.
Matthieu Cartier 13 лет назад
0
Этот [поток] (http://linux.derkeiler.com/Mailing-Lists/Kernel/2008-08/msg11269.html) говорит, что нужно использовать `mtrr_spare_reg_nr = 3`, так что вы можете попробовать этот бит черной магии.
harrymc 13 лет назад
0
Это приводит к предупреждению «drm», предупреждению «no more MTRR» и новому, на первый взгляд, более серьезному сообщению «[drm] не удалось найти таблицы VBIOS». `cat / proc / mtrr` по-прежнему выдает тот же результат, что и в OP.
Matthieu Cartier 13 лет назад
0
На форумах Arch меня попросили «загрузиться с` nopat` в командной строке ядра », чтобы узнать, использовал ли я PAT, но я не вижу абсолютно никакой разницы в производительности при передаче` nopat` ядру.
Matthieu Cartier 13 лет назад
0
Я думаю, что ваша проблема с BIOS, тупо выделяющим память устройства за пределами 1 ГБ ОЗУ, по одному MTRR на устройство. (Вот почему я подумал, что у вас больше оперативной памяти, чем было на самом деле.) Вы можете либо попытаться обновить BIOS (если есть), либо получить больше оперативной памяти (не уверен, что это поможет), либо даже отключить ненужное устройство. (если возможно). Некоторым удалось [переписать /proc/mtrr](http://forums.fedoraforum.org/archive/index.php/t-157232.html), но я не знаю достаточно об этом, чтобы помочь.
harrymc 13 лет назад
0
Спасибо за это предложение - я рассмотрел его еще немного, а также сумел переписать таблицу MTRR. Я передам способ, которым я исправил это, как ответ, но я дам вам вознаграждение, так как в конечном итоге именно вы привели меня к решению. Большое спасибо!
Matthieu Cartier 13 лет назад
0