LINUX.ORG.RU

buildroot + новые дрова от амд = ядро не компилится

 , ,


0

1

немного длинное повествование. просто хочу описать как это примерно получалось, процесс.

1) скачал дрова 17.40 пробовал варианты rhel7 и ubuntu.

2) распаковал.

3) прошивки firmware новые на место положил, в buildroot/output/build/linux-firmware-2e87d5268df346f92s48.

4) библиотеки в оверлей + систему линков сделал чётко, «/opt/amdgpu-pro» > "../usr" для убунту «/usr/lib/x86_64-linux-gnu» > "." для RHEL «/usr/lib64 > „lib“ это позволяет обходиться полностью без LD_LIBRARY_PATH

---

если собираю билдрут обычным макаром - то всё работает почти нормально, RX580 определяется, выставляется разрешение но две проблемы.

1) в dmesg видно что ругается на powerplay и можно управлять только скоростью вентилляторов (разгон карты и частоты не работает - в /sys/class/drm/... просто отсутствуют файлы для управления этими параметрами)

2) при попытки обращения к opencl (простейший clinfo например) в лучшем случае ловим segfault а обычно просто сразу моментальный ребут.

---

ясное дело - нужно пересобирать сам драйвер в ядре. делаю:

1) скопировал драйвера из скачанного распакованного пакета в разные места. пути вида usr/src/amdgpu-17.40-492261/amd > buildroot/output/build/linux-4.13.12/drivers/gpu/drm/amd/ также ttm, ещё пара каких-то фигней...

ps. если честно, я с трудом вникаю в огород который там нагородили из полуневнятных аббревиатур. моя задача проста - заставить пахать OpenCL на голом ядре.

2) также скопировал include в linux-4.13.12/include

3) в оригинальном linux-headers все те же файлы лежат, в том числе и .с исходники. поэтому я продублировал все эти же действия в linux-headers

4) пересобираю ядро на чистую (из состояния конфигурировано-скачано-распаковано-пропатчено) и не собирается ни amdgpu ни amdkfd. и действительно, компилятор прав - я посмотрел - там различается и число параметров, и типы... что за фигня? у стандартного ядра один интерфейс вызовов а дрова амдейцы пишут под какойто свой другой. о_О

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



Последнее исправление: xakepp35 (всего исправлений: 4)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.