Как слить BIOS видеокарты в Linux и немного побаловаться с ним...

Еще пост технического плана. Может, кому-то будет полезно.

ДИСКЛЕЙМЕР: вы можете убить свою карту, если не понимаете сути написанного, и даже если понимаете - тоже можете, как и я сам. за убитое железо ответственности я не несу.


Как я уже писал, на барахолке была взята карта Radeon HD4890. Появилась очевидная проблема - оно довольно криво работало с энергосбережением, шумело карлсоном и всячески меня раздражало. Гугление результата не дало. Заметил одну характерную фигню - профили питания читаются неверно, да и вентиль уж как-то крайне агрессивно настроен.

Решил поковырять биос, и тут выяснилось, что есть два стула как минимум два способа слить биос - верный и не очень. Не очень верный - это через фичи вида:


echo 1 > /bla/bla/card0/rom
cat /bla/bla/card0/rom > bios.bin


Потому как скорее всего считается не больше 64К, что на полный биос не тянет.

Как слить правильно(ну, наверное)? С /dev/mem, куда наш микрокод заботливо отмаплен.

Перво-наперво узнаем точный размер биоса в интернете, система скорее всего будет безбожно врать, в моем случае это 128К, или 0x20000 байт.

Потом надо узнать адрес, откуда биос начинается. Это можно сделать либо через (от рута)


grep 'Video ROM' /proc/iomem

Либо выполнить (от пользователя)


lspci -v | grep -C 10 ROM

и найти строку Expansion ROM at ... для нужной карты.


Наконец, получаем биос командой типа


dd if=/dev/mem of=vgabios.bin bs=1c skip=$[0x000c0000] count=$[0x20000]

где 0x000c0000 - адрес начала, 0x20000 - размер биоса в байтах (128К).

Вот, получили vgabios.bin. Его можно расколупать редактором биоса, поправить профили, управление вертушками, да и разогнать даже. Для разных карт редакторы свои.


Я использовал RBE под Wine.

Как слить BIOS видеокарты в Linux и немного побаловаться с ним... Железо, IT, Linux, Длиннопост, Инструкция

Теперь самое интересное - пробный заезд. Шить в карту сходу - идея неоч.

Но я тут уже рассказывал про проброс видюхи в Qemu. Вот пост:


http://pikabu.ru/story/eshche_odin_post_kak_igrat_v_virtualnoy_mashine_4736956


Так вот, есть возможность подргрузить туда биос из файла, не прошивая его. Хоть сто биосов тестируйте, с некорректным карта просто не стартанет, хотя риск спалить, конечно, остается. Добьем строчку:


-device vfio-pci,host=06:00.0,id=hostdev0,multifunction=on,x-vga=on,romfile=/path/to/vgabios.bin


И, на удивление, все сразу заработало, загрузил образ KDE neon, карта перестала шуметь. То ли прежний владелец, то ли Sapphire такие молодцы - поставили в powersave 1.26V, хотя карта нормально пашет и при 0.93V. Разница в потреблении будет аж целых 80%. Ну и вертушка была задрана на 100% при 60C.

Теперь о прошивке. Хоть подгрузка из файла и работает, мне осталось убедиться, что прочитанное сверх 64К - это точно не рандомный мусор из памяти, и тогда можно шить.

За сим откланяюсь.

GNU/Linux

1K пост15.5K подписчиков

Добавить пост

Правила сообщества

Все дистрибутивы хороши.

Будьте людьми.

Вы смотрите срез комментариев. Показать все
2
Автор поста оценил этот комментарий

А может проще зайти под винду и вытащить/зашить биос через Ati Winflash? А редактировать в vbe7

раскрыть ветку (11)
3
Автор поста оценил этот комментарий
А может проще зайти под винду и вытащить/зашить биос через Ati Winflash?

Если ты считаешь, что поставить винду - это проще, чем выполнить по сути одну команду в консоли... ну я даже не знаю, что тут возразить...


А редактировать в vbe7
А vbe7 поддерживает карты 4xxx?

раскрыть ветку (9)
Автор поста оценил этот комментарий
А зачем ставить? Разве с PE'шки не будет работать?
2
Автор поста оценил этот комментарий

ох бля, ты настоящий!!! я думал такие линуксоиды только на башорге бывают!)

и это. А нах ты вообще биос редактировал? Я сколько их не шил, всегда бекапил только для того, чтобы откатить назад "если шо не так". А после бекапа шил заводской прошивкой, и всё всегда оживало. Редактировать биос самому, чтобы вентилятор помедленнее крутил это пиздец решение линуксоида) Типо колечко на ключах разогнулось, пойду куплю токарный станок

раскрыть ветку (3)
2
Автор поста оценил этот комментарий

удивительно, что человек, который "сколько их не шил" удивляется, что их кто-то редактирует.

я, может, его расколупал, чтобы в powersave карту перевести и на слабый БП повесить, но кого это интересует, если я линуксоид, правда?

раскрыть ветку (2)
Автор поста оценил этот комментарий
Забей. Он и мне тоже настоятельно советовал вернуться на Винду, емнип. Не докажешь ничего ему.
1
Автор поста оценил этот комментарий

именно так. Хуйней еще всякой маятся, пффф

1
DELETED
Автор поста оценил этот комментарий
Только вот до этой команды нужно еще добраться, о чем собственно и пост. А результат - "подозреваю, что биос я снял некорректно".

Пожалуй, LiveCD с виндой будет побыстрее. А еще есть AtiFlash, которую можно запустить с флешки с DOS. Образов в сети полно, раскатать образ на флешку в линуксе - минутное дело...

RBE, кстати, даже при малейшем изменении (допустим, имени вендора) дополнительно пишет в биос маркер, свидетельствующий, что биос был изменен в RBE.
1
Автор поста оценил этот комментарий
поставить винду - это проще
Ибо.

Команды в линуксе надо знать, знать про особенности считывания памяти, сохранения данных рома.

А для винды скачать гуи приложение и нажать кнопку.

Да и чтобы ввести команду надо тоже поставить линукс.


Нет, я не против линукса, просто отмечаю тот факт что на винде это реально проще. Люди не замечают тот факт что чтобы сделать подобную вещь на винде уходит меньше времени на обучение, да возможно в итоге на линуксе можно зная команды делать это за минуты, но чтобы узнать что за команды нужны, какие параметры к этим командам нужно делать нужно порой потратить несколько недель.

И вот в этом аспекте винда проще.

раскрыть ветку (2)
4
Автор поста оценил этот комментарий

Это бессмысленный разговор.

Жить в париже проще, чем во владивостоке, пойти из владивостока в париж за хлебом - нет. Даже если там сервис получше, чем в местном универмаге.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Ну так и спор из разряда где лучше жить во владивостоке или в париже.

1
Автор поста оценил этот комментарий
Есть принципиальные линупсоиды.
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку