Radeon profile no Xorg

Решение проблем связванных с работой железа. Проблемы программно-аппаратной совместимости.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Va_
рядовой
Сообщения: 36
Зарегистрирован: 2008-10-07 14:44:36

Radeon profile no Xorg

Непрочитанное сообщение Va_ » 2016-05-04 6:44:16

Приветствую!

Есть старенький сервер собраный из десктопного железа. На сервере нет Xorg. Но т.к. BIOS загрузку без видеокарты не подерживает, то в качестве заглушки стоит Radeon X600

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

vgapci0@pci0:1:0:0:   class=0x030000 card=0x21001458 chip=0x3e501002 rev=0x00 hdr=0x00
    vendor     = 'Advanced Micro Devices, Inc. [AMD/ATI]'
    device     = 'RV380 [Radeon X600]'
    class      = display
    subclass   = VGA
    bar   [10] = type Prefetchable Memory, range 32, base 0xd0000000, size 134217728, enabled
    bar   [14] = type I/O Port, range 32, base 0xb000, size 256, enabled
    bar   [18] = type Memory, range 32, base 0xd8030000, size 65536, enabled
    cap 01[50] = powerspec 2  supports D0 D1 D2 D3  current D0
    cap 10[58] = PCI-Express 1 endpoint max data 128(128) RO NS link x16(x16)
                 speed 2.5(2.5) ASPM disabled(L0s/L1)
    cap 05[80] = MSI supports 1 message, 64 bit enabled with 1 message
    ecap 0001[100] = AER 1 0 fatal 0 non-fatal 0 corrected


Замечено, что GPU греется очень сильно, находясь фактически в простое (пальцем к радиатору не притронуться). За год это уже третья умершая GPU по этой, как мне кажется, причине.

Загрузил модуль radeonkms, по https://wiki.freebsd.org/Graphics#Kernel_drivers (добавил kld_list="radeonkms" в /etc/rc.conf)

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

# kldstat
Id Refs Address    Size     Name
 1   42 0xc0400000 7a4ce8   kernel
 2    1 0xc5562000 fa000    radeonkms.ko
 3    1 0xc565c000 45000    drm2.ko
 4    2 0xc56a1000 19000    agp.ko
 5    4 0xc56c2000 4000     iicbus.ko
 6    1 0xc56f9000 3000     iic.ko
 7    1 0xc5700000 4000     iicbb.ko
 8    1 0xc5a4e000 2000     radeonkmsfw_R300_cp.ko


Думается, что необходимо переключить видеокарту в профиль низкой производительности и, как следствие, низкого энергопотребления.
Если бы у меня был Xorg, то я бы сделал в xorg.conf Option "ForceLowPowerMode" "true". Можно ли как то порулить профилями видеокарты, не устанавливая Xorg?

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 34896
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Radeon profile no Xorg

Непрочитанное сообщение Alex Keda » 2016-05-06 1:00:33

э... а чё, в заначке нету чегонить типа PCI S3 TRIO?
я думал у всех такая есть ... на всякий разный случай...
Убей их всех! Бог потом рассортирует...

Va_
рядовой
Сообщения: 36
Зарегистрирован: 2008-10-07 14:44:36

Radeon profile no Xorg

Непрочитанное сообщение Va_ » 2016-05-06 20:37:06

Alex Keda писал(а):э... а чё, в заначке нету чегонить типа PCI S3 TRIO?
я думал у всех такая есть ... на всякий разный случай...

К сожалению нет. Да и любопытно уже. Читайте ниже.

Итак пошел по пути https://wiki.freebsd.org/TuningPowerConsumption

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

To disable all unneeded PCI devices you should build kernel without their drivers and add to loader.conf:
hw.pci.do_power_nodriver=3

Это должно отключать все девайсы, на которые нет драйвера в состояние PCI_POWERSTATE_D3 https://www.freebsd.org/cgi/man.cgi?query=pci&sektion=9

Отключил загрузку модулей видеокарты, пересобрал ядро без device vga и прочих от него зависиостей типа sc. Но почему то не пошло - "current D0" :

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

#pciconf -lvbce
...
vgapci0@pci0:1:0:0:     class=0x030000 card=0x21001458 chip=0x3e501002 rev=0x00 hdr=0x00
    vendor     = 'Advanced Micro Devices, Inc. [AMD/ATI]'
    device     = 'RV380 [Radeon X600]'
    class      = display
    subclass   = VGA
    bar   [10] = type Prefetchable Memory, range 32, base 0xd0000000, size 134217728, enabled
    bar   [14] = type I/O Port, range 32, base 0xb000, size 256, enabled
    bar   [18] = type Memory, range 32, base 0xd8030000, size 65536, enabled
    cap 01[50] = powerspec 2  supports D0 D1 D2 D3  current D0
    cap 10[58] = PCI-Express 1 endpoint max data 128(128) RO NS link x16(x16)
                 speed 2.5(2.5) ASPM disabled(L0s/L1)
    cap 05[80] = MSI supports 1 message, 64 bit
    ecap 0001[100] = AER 1 0 fatal 0 non-fatal 0 corrected
vgapci1@pci0:1:0:1:     class=0x038000 card=0x21011458 chip=0x3e701002 rev=0x00 hdr=0x00
    vendor     = 'Advanced Micro Devices, Inc. [AMD/ATI]'
    device     = 'RV380 [Radeon X600] (Secondary)'
    class      = display
    bar   [10] = type Memory, range 32, base 0xd8020000, size 65536, enabled
    cap 01[50] = powerspec 2  supports D0 D1 D2 D3  current D0
    cap 10[58] = PCI-Express 1 endpoint max data 128(128) link x16(x16)
                 speed 2.5(2.5) ASPM disabled(L0s/L1)


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

Нашел такое решение https://forums.freebsd.org/threads/53640/
Установить уже удаленный порт http://www.freshports.org/x11-drivers/xf86-video-ati-ums/
Это устарелый драйвер поддерживает управление энергосбережением, но требует старых Xorg-server и libGL.
Сейчас в процессе. Уйму времени отнимает сборка версий clang, тк каждый порт требует свою версию. То есть у меня есть clang34 и clang37. Graphics/dri требует сlang36.

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

more make.conf
CC=clang37
CXX=clang++37
CPP=clang-cpp37

Не спасает. Это теперь всегда так будет?

Va_
рядовой
Сообщения: 36
Зарегистрирован: 2008-10-07 14:44:36

Radeon profile no Xorg

Непрочитанное сообщение Va_ » 2016-05-07 22:56:11

Вариант с даунгрейдом x11-drivers/xf86-video-ati-ums успешен!
Карта не греется - основная проблема решена.
Причем нет необходимости держать X включеными. Достаточно включить их и выключить. По всей видимости карта переводится в профиль низкого потребления и продолжает в нем быть. Почему бы не загружать профиль низкого энергопотребления при старте карты - большой вопрос производителю. Ведь у нас тут глобальное потепление, а мы просто так энергию сжигаем :x

в xorg.conf

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

Option     "ClockGating" "On"
Option     "ForceLowPowerMode" "On"
Option     "DynamicPM" "On"


Что даунгрейдил

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

pkg version -v
dri-10.6.9,2                       <   needs updating (index has 11.1.2,2)
libEGL-10.6.9                      <   needs updating (index has 11.1.2)
libGL-10.6.9                       <   needs updating (index has 11.1.2)
libXi-1.7.4_1,1                    <   needs updating (index has 1.7.6,1)
libepoxy-1.2                       <   needs updating (index has 1.3.1)
xf86-video-ati-ums-6.14.6_5        ?   orphaned: x11-drivers/xf86-video-ati-ums
xorg-server-1.14.7_6,1             <   needs updating (index has 1.17.4,1)


Главное теперь в попыхах эти порты не обновить. Как то можно заблокировать обновление?

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 34896
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Radeon profile no Xorg

Непрочитанное сообщение Alex Keda » 2016-05-08 13:09:47

сбрать в отдельный префикс, дропнуть упоминания из базы
они там будут, но для системы пакетов их не будет
Убей их всех! Бог потом рассортирует...

Аватара пользователя
f_andrey
майор
Сообщения: 2631
Зарегистрирован: 2007-12-26 1:22:58
Откуда: СПб
Контактная информация:

Radeon profile no Xorg

Непрочитанное сообщение f_andrey » 2016-05-08 13:33:22

Ну вы суровы, вообще то есть

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

man pkg-lock

поговаривают что работает
Если ваша тема перенесена, то смотри viewtopic.php?f=1&t=32308

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 34896
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Radeon profile no Xorg

Непрочитанное сообщение Alex Keda » 2016-05-08 15:29:08

угу... а потом чёнить в зависмость к софту подтянется...
я бы в отдельный префикс вставил
Убей их всех! Бог потом рассортирует...


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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей