ati mandriva и mtrr

Ответить
Аватара пользователя
BuGfiX

ati mandriva и mtrr

Сообщение BuGfiX »

ноутбук rover b571wh: P4 2800 ht/ari radeon mobility 9700(m11) и т. д. . Дистрибутив mandriva 2006 LE(и кстати любой другой). Проблема -- BIOS ноутбука дает неправильные

значения для MTRR (Memory Transfer Registers, некая технология,

применяемая для быстрого копирования данных в видеопамять). По идее,

надо бы раздобыть "правильный" BIOS, но, на сайте ровер обнадежили что нового биоса не будет.

По инфе в интернете пишут, что можно обойтись подручными средствами: исправить таблицу записей MTRR вручную так, чтобы она содержала нужные ("правильные") значения. Эта

самая таблица живет в файле /proc/mtrr, который можно читать и писать от

имени root. Таким образом, нужно: а) удалить из этого файла

неправильную запись б) занести в него правильные значения. Это делает

следующий соответствующий скрипт:



#!/bin/sh

# Fix wrong MTRR setting

echo "disable=0" >| /proc/mtrr

echo "base=0x0 size=0x40000000 type=write-back" >| /proc/mtrr



После прописывания скрипта в /etc/rc.d/rc.local значения mtrr поменялись:



cat /proc/mtrr

reg00: base=0x00000000 ( 0MB), size= 512MB: write-back, count=1

reg01: base=0xe8000000 (3712MB), size= 128MB: write-combining, count=9

reg02: base=0xf8000000 (3968MB), size= 64MB: write-combining, count=1



До этого была одна строка:

reg00: base=0x00000000 ( 0MB), size=983552MB: write-back, count=1



Что не так делаю.

Возникала ли у кого нибудь подобная ситуевина. В принципе 3d нужно постольку поскольку т. к. ноут используется на 99,9% для работы. Но ситуация когда что то не работает гложет медленно но верно.



Помогите кто чем может !!! ;>) Век не забуду.
Аватара пользователя
BuGfiX

Re: ati mandriva и mtrr

Сообщение BuGfiX »

Посмотрел файлик mtrr.txt в документации ядра, там делается disable=2 вместо disable=0. Попробуй?
Аватара пользователя
BuGfiX

Re: ati mandriva и mtrr

Сообщение BuGfiX »

попробовал disable=2 не катит. По команде cat /proc/mtrr вылазит следующее:

reg00: base=0x00000000 ( 0MB), size= 512MB: write-back, count=1

и типа все.
Аватара пользователя
BuGfiX

Re: ati mandriva и mtrr

Сообщение BuGfiX »

А откуда взялась цифра "size=0x40000000" ? Насколько я понимаю ее нужно выдирать из лога иксов?
Аватара пользователя
BuGfiX

Re: ati mandriva и mtrr

Сообщение BuGfiX »

Переписывался, да и сейчас пишусь с журналом linux format (c главным редактором ниже кусок его письма).



Цитата:

"Проблема состоит в том, что BIOS вашего ноутбука дает неправильные

значения для MTRR (Memory Transfer Registers, некая технология,

применяемая для быстрого копирования данных в видеопамять). По идее,

надо бы раздобыть "правильный" BIOS, но, коль скоро это невозможно,

можно обойтись подручными средствами: исправить таблицу записей MTRR

вручную так, чтобы она содержала нужные ("правильные") значения. Эта

самая таблица живет в файле /proc/mtrr, который можно читать и писать от

имени root. Таким образом, Вам нужно: а) удалить из этого файла

неправильную запись б) занести в него правильные значения. Это делает

следующий простой скрипт:



#!/bin/sh

# Fix wrong MTRR setting

echo "disable=0" >| /proc/mtrr

echo "base=0x0 size=0x40000000 type=write-back" >| /proc/mtrr



Здесь 0x40000000 нужно заменить на размер вашей RAM (системной, не

видеокарты) в соответствии со следующей таблицей:

0x08000000 = 128Mb

0x20000000 = 512Mb
Аватара пользователя
BuGfiX

Re: ati mandriva и mtrr

Сообщение BuGfiX »

Вроде немного поразбирался, вот что понял:



Код:

Код: Выделить всё

echo "disable=0" >| /proc/mtrr

значит отключить строчку номер ноль в /proc/mtrr.

Далее: я так понял, ты хочешь использовать фичу биоса "использовать столько-то (допустим 128MB) системной памяти под видеопамять" ? Наверняка (пока не уверен) нужно сделать так:



Код:

Код: Выделить всё

echo "disable=0" >| /proc/mtrr
echo "disable=1" >| /proc/mtrr
echo "disable=2" >| /proc/mtrr
....
echo "base=0x00000000 size=0x20000000 type=write-back" > /proc/mtrr    # вся память (512)
echo "base=0x18000000 size=0x08000000 type=write-back" > /proc/mtrr    # кусок размером 128mb

последняя строчка должна выделить 128 MB из общей памяти с адреса 0x18000000 (384 MB)

В результате должно получиться вот это:



Код:

Код: Выделить всё

reg00: base=0x00000000 ( 0MB), size=512MB: write-back, count=1
reg01: base=0x18000000 ( 384MB), size=128MB: write-back, count=1

А вообще, base адрес видео-памяти все-таки надо выдирать из лога иксов, из строчки типа:



Код:

Код: Выделить всё

(--) SVGA: PCI: NVidia Riva TNT2 rev 17, Memory @ 0xee000000, 0xe2000000

Тут, например, он равен 0xee000000.
Аватара пользователя
Guest

Re: ati mandriva и mtrr

Сообщение Guest »

Забыл сказать видюха дискретная ati radeon 9700 128 mb (память у нее своя 128 метров), так что системная память под видео не выделяется. Так как в таких глубинных настройках рублю не очень, то объяснить свои действия не могу. Выполнял инструкции гл. редактора linux format г-на Синицина. Если ты шаришь в настройках может тебе прислать выводы команд (lspci и т. д) ты только напиши что требуется, может у тебя получиться настроить видео. Месяцев 7 парюсь. Испробовал штук 20 дистрибутивов, и денег на журналы, книги и диски потратил 6000-7000 рублей. Всерьез подумывать стал о покупке второго ноута - этот бы жене отдал.



Спасибо за помощь.

С надеждой в будущее.
Ответить

Вернуться в «Железо в Linux»