LINUX.ORG.RU

Избранные сообщения fman2

Написал небольшое howto по установке драйверов AMD Radeon RX580 в Debian 9

Форум — Linux-hardware

Интересны комментарии, особенно владельцев карты, но и в любом случае, может где ошибся или что.

Рассматривается установка свободных драйверов OpenGL и проприетарных OpenCL на ветку stable ОС Debian 9.6 (Stretch) с ядром 4.9.0-8. Проприетарных OpenCL, поскольку карта ставится в машину с процессором старее Haswell/Ryzen, которые не поддерживаются ROCm.

Информация также должна годиться для RX570 и RX470, RX480. И скорее всего, для всех остальных RX 4xx, RX 5xx, кроме RX 590 (но может и с ней сразу заработает) - эта карточка стоит несколько особняком. В конце есть пара теоретических (самой карты нет и не пробовал) соображений, что может понадобиться, чтобы она заработала.

Сразу скажу, что информации на официальной вики проекта слишком мало https://wiki.debian.org/GraphicsCard#AMD.2FATI

В терминологии AMD у этой карты архитектура «polaris», она же «Arctic Islands» она же GCN 4th gen (4-е поколение Graphics Core Next). К ней относятся карты RX 460, RX 470, RX 480, RX 540, RX 550, RX 560, RX 570, RX 580

Микроархитектура карт (RX 470, RX 480) == (RX 570, RX580) практически до неразличимости на программно-драйверном уровне. Довольно много подробностей на эту тему можно прочесть здесь: https://wiki.gentoo.org/wiki/AMDGPU. Версия фирмвари от AMD - polaris10 для amd 480 и amd 580 (могут быть разные буквенные индексы у фирмвари).

Так как до этого на компьютере стояли карты от Nvidia надо избавиться от их драйверов. Рекомендации wiki Debian может оказаться недостаточно.

Но по порядку. Все делаем от root, разумеется.

Установка свободного драйвера OpenGL:

  1. Добавляем contrib и non-free в репозиторий (/etc/apt/sources.list), если еще этого не сделано.
  2. Добавляем dpkg --add-architecture i386
    В принципе необязательно, но весьма желательно для некоторых пакетов. В том числе для wine
  3. apt-get update
  4. apt-get install xserver-xorg-video-amdgpu libdrm-amdgpu1 libgl1-mesa-dri libgl1-mesa-glx glx-alternative-mesa
  5. apt-get install -t sid firmware-amd-graphics
    -t sid опционален. (но сам пакет ставить нужно) У меня RX580 и с фирмварью из stable работает, но возможно кому-то.нужны более новые бинарники к карте. Впрочем, вполне можно не подключать testing и sid ветки репозиториев, если отдельно скачать пакет от sid и содержимое /lib/firmware/amdgpu добавить вручную. Также фирмварь появится и при установке проприетарных драйверов, даже только OpenCL.
  6. Проверяем, что модуля nvidia нет в списке /etc/initramfs-tools/modules
    Если он там есть удаляем или коментим #
  7. Редактируем /etc/modprobe.d/nvidia.conf комментируем все записи. Добавляем строчку blacklist nvidia
  8. Выполняем update-glx --config glx
    Выбираем среди альтернатив (скорее всего от nvidia, если была карта nvidia) mesa
  9. Reboot

Должно заработать, если не заработало, то я даже не знаю. Надо будет внимательно читать лог /var/log/Xorg.1.log и смотреть, что там делает строчка nvidia =)

glxinfo -B
name of display: :0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: X.Org (0x1002)
    Device: AMD POLARIS10 (DRM 3.20.0 / 4.9.0-8-amd64, LLVM 3.9.1) (0x67df)
    Version: 13.0.6
    Accelerated: yes
    Video memory: 8171MB
    Unified memory: no
    Preferred profile: core (0x1)
    Max core profile version: 4.3
    Max compat profile version: 3.0
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.1
OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD POLARIS10 (DRM 3.20.0 / 4.9.0-8-amd64, LLVM 3.9.1)
OpenGL core profile version string: 4.3 (Core Profile) Mesa 13.0.6
OpenGL core profile shading language version string: 4.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 3.0 Mesa 13.0.6
OpenGL shading language version string: 1.30
OpenGL context flags: (none)

OpenGL ES profile version string: OpenGL ES 3.1 Mesa 13.0.6
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10

Добавляем apt-get install mesa-vdpau-drivers libvdpau-va-gl1 для ускорения фильмов.

Вот не помню, нужно ли было для свободного драйвера ставить заголовки ядра или только для проприетарного, а также llvm. Но не исключено, что потребуется.

Добавление возможностей OpenCL

  1. Берем пакет 17.50 для Ubuntu. Официально драйвера рассчитаны на Ubuntu, SuSe или RHEL c CentOS, так как Ubuntu весьма родственна Debian, она наиболее совместимая. При этом 18-я версия для Stretch (Debian 9) не подойдет. 17.50 вроде последняя среди 17-ой версии. Версия 17.50 почему-то не находится явно по ссылкам для для предыдущих версий на сайте amd
    Поэтому скачиваем по прямой ссылке, не забудьте referer - без него не даст скачать.
    wget -c -O amdgpu-pro-17.50-511655.tar.xz --referer=http://support.amd.com https://www2.ati.com/drivers/linux/ubuntu/amdgpu-pro-17.50-511655.tar.xz

    Проверяем по контрольной сумме корректность скачивания (есть сообщения, что часто отдается битый файл, тогда надо повторять до успеха).
    md5sum 
         7c3da10af92f6e259bd5d2b250a70c91  amdgpu-pro-17.50-511655.tar.xz
    sha256sum
         a623f95b7bdbad981e19bd30304f7943f8827d230b702dc5b580793efe70ea07  amdgpu-pro-17.50-511655.tar.xz
    
  2. Создаем каталог
    #mkdir /var/opt/amdgpu-pro-local/
  3. Распаковываем туда содержимое скаченных драйверов tar -xpJf amdgpu-pro-17.50-511655.tar.xz --strip=1 -C /var/opt/amdgpu-pro-local/
    Обратите внимание на опцию --strip=1 - она убирает первый уровень вложенности каталогов, без нее внутри был бы создан вложенный каталог с пакетами, а этого нам не надо.
  4. Устанавливаем нужные права владельца:
    chown -Rv _apt:root /var/opt/amdgpu-pro-local/
    Важно. Без этого потом установка будет валиться с ошибкой типа
    N: Download is performed unsandboxed as root as file '/var/opt/amdgpu-pro-local/./amdgpu-core_17.50-511655_all.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)
    - причем в том числе и если запустить установочный скрипт внутри пакета с драйверами, даже если там поменять ubuntu на debian. Вот все вроде будет нормально, но зафейлится в процессе установки на правах для установщика пакета.
  5. Создаем файл /etc/apt/sources.list.d/amdgpu-pro-local.list
    echo 'deb [ trusted=yes ] file:/var/opt/amdgpu-pro-local/ ./' > /etc/apt/sources.list.d/amdgpu-pro-local.list
  6. apt-get update
  7. apt-get install amdgpu-core amdgpu-dkms amdgpu-pro-core clinfo-amdgpu-pro ids-amdgpu libdrm-amdgpu-amdgpu1 libdrm2-amdgpu libopencl1-amdgpu-pro
    Внимательно следим за процессом установки, компиляция чере dkms драйвера и его установка должны быть безошибочными. Это ключевой момент, без чего работать ничего не будет. Разумеется должны быть установлены заголовки ядра linux-headers-4.9.0-8-common и компиляторы со всем необходимым. dkms вроде сам добавится через зависимости, если еще не стоит.
  8. Опционально. Можно переустановить пакет или скопировать из других драйверов содержимое с более свежим firmware для amd, так как amdgpu-dkms содержит каталог firmware которым перепишет старые бинарники.
  9. reboot

Теперь OpenCL версии 1.2 доступно. Можно для проверки запустить clinfo или поставить какой-нибудь пакет, его использующий, например, hashcat и запустить бенчмарк hashcat -b

Некоторые мысли по поводу RX 590. Я не знаю, может этого и не нужно или наоборот этого не хватит для работы, просто предполагаю.

В принципе, RX 590 почти тоже самое, что и RX580, но могут быть нужны новые фирмвари, которые можно взять из новейших драйверов 18.50, распотрошив файл amdgpu-dkms_18.50-708488_all.deb и достав их из каталога usr/src/amdgpu-18.50-708488/firmware/amdgpu скопировав затем в /lib/firmware/amdgpu

Также в пакете ids-amdgpu от 17.50 есть файл amdgpu.ids установленный в /opt/amdgpu/share/libdrm/amdgpu.ids - его полезно будет заменить таким же из пакета libdrm-amdgpu-common_1.0.0-708488_all.deb

Чего я не понял, это почему для OpenCL пишется что-то вроде Memory : 4048/7916 MB allocatable

Куда 4Гб памяти дели? Или так и должно быть, там какое-то разделение есть на основную и константную, может просто не понял чего насчет работы OpenCL.

 , ,

praseodim
()

Накидайте опен-сурс web-платформ на все случаи жизни (для локалхоста/своего сервера)

Форум — Web-development

Например:

Diaspora - это соц.сеть которую можно развернуть у себя.

Wordpress - бложик для локалхоста

Opencart - интернет-магазин на свой сервер

owncloud - хранилка документов

и т.д.

 , ,

buggycoder
()

Докладываю по поводу Ubuntu и AMD видеокарты.

Форум — Linux-hardware

В течение нескольких дней я создал две темы на лоре: Выбор видеокарты. AMDGPU vs AMDGPU-PRO vs ??

Я себе взял Asus RX 580 4 gb. Мне пришлось заново переустановить Ubuntu.

В Ubuntu работает из коробки гораздо быстрее и плавнее, чем Nvidia GTX 660 Ti с 394ми проприетарными драйверами.

Нет ни тиринга, ни каких-то фризов, разрывов и так далее, что у меня было иногда на Nvidia. Intel HD 4600 также из коробки работал очень плавно, здесь с AMD у них паритет.

Драйвера AMDGPU-PRO после переустановки я не ставил. Звук по HDMI есть из коробки.

Кстати система с RX580 работает плавнее, чем мой рабочий комп с AMD 6570.

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

Зачем ты переустанавливал Ubuntu? Драйвера же в ядре находятся.

Ну да. У меня была Nvidia, поменял ее на AMD, были фризы. Думаю, что за фигня? Удалил Nvidia - не помогло. Почистил xorg - не помогло. Установил AMDGPU-PRO - фризит все равно система. Ну банально - при изменении ресайза окон, окно за курсором не успевает. Бесило это меня.

Пошел на крайние меры - переустановка. У меня в системе сейчас 4 HDD в Ext4 и SSD под систему, так что я все равно ничего не терял. Переустановил - это оно! Стало все супер идеально.

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

 , ,

fman2
()

Выбираем грид для админки

Форум — Web-development

Обзоры для отбора:

Текущий остаток

Первый круг требований

Изменяемая ширина колонок (хотя я уже теперь думаю - а нужна ли она?), постраничный просмотр, поддержка AJAX, маркер текущей записи, хождение по записям стрелками, доступность исходника.

Не прошли первый круг: tui.grid, jsGrid, Quickgrid, jqGrid, jexcel, https://github.com/paulopmx/Flexigrid (нет указателя текущей записи), http://www.evolutility.org/demo/demo_ToDo.aspx (нет указателя текущей записи), https://datatables.net/ (то же),

Идём на второй круг

Теперь должно выполняться следующее:

  • при любой навигации, кроме прокрутки за скроллбар, текущая запись видна на экране
  • кнопки pgup-pgdn позволяют листать запись
  • ctrl-f ищет в гриде, если грид фокусирован, и на всей странице, включая грид, если грид не фокусирован. Вообще это требование спорное, т.к. требует загрузки всего контента в страницу. Т.е., либо нужно перешибить Ctrl-f и листать страницы программно, либо не нужен скроллбар, а нужно явно показать, что на странице присутствует лишь часть данных.
  • не тормозит при хождении стрелками

Не прошли второй круг: w2ui.

https://paramquery.com/demos/readonly_cells - ctrl-f не листает по строкам.

https://dhtmlx.com/docs/products/dhtmlxGrid/ - указатель уходит за границы экрана.

Третий круг

Здесь мы выкидываем те гриды, которые не поддерживают фильтрацию на сервере.

Не прошли: dynamic-table - казалось, что у него уникально хорошее хождение с клавиатуры, но slick grid победил. Поэтому dynamic-table исключается из дальнейшего рассмотрения. Остальные выжили.

Остаток требований:

  • грид находится в двух состояниях - фокусирован или нет. При щелчке вне грида грид не фокусирован
  • быстро показывает набор из 100 записей, находящихся в виде JSON на самой странице.

Итог Пока что выбрал SlickGrid, его хвалят за модульность и быстроту. У него сейчас одна основная ветка. Он используется в stackoverflow (data.stackexchange.com), pgAdmin4 (уж не знаю, хорошо это или наоборот), как модуль Drupal (500 сайтов).

 ,

den73
()

А есть нормальная и адекватная литература по структурам данных и алгоритмам

Форум — Development

Собственно потребовалось ручками реализовывать разные деревья, решил книжки посмотреть, а там непотребство пишут - даже на простых вещах обсираются по полной, как пример путают Tree Sort с поиском по BST дереву, хотя Tree Sort в общем случае вполне себе работает с данными, которые дублируются, т.к. работает с частично-упорядоченными бинарными деревьями, а не с BST деревьями, которые по определению полностью упорядоченные.

 , ,

peregrine
()

Посоветуйте толковые книги на русском/английском по Си++ (Cxx11)

Форум — Development

Посоветуйте толковые книги на русском/английском по Си++.
Чтобы был нормальный перевод и содержание.
У меня где-то лежит каталог с O'Reilly, надо бы посмотреть среди них. Ещё что-то брал по акции «книга за 1 рубль» в books.ru

В двух словах - я старпёр, который изучал Си/Си++ в 1996-1997 году по книжкам:
* В.В.Подбельский Язык Си++ (Финансы и статистика)
* Беляков М.И., Рабовер Ю.И., Фридман А.Л. Мобильная операционная система
* немного смотрел русский перевод Керниган-Ритчи в бумажном виде в библиотеке когда интернетов не было, а свою книгу купить - стипендия не позволяла
* в 2004-2005 году читал книгу Страуструп Б. Дизайн и эволюция С++

Все эти книги читал в бумажном варианте.

По работе писал только на Си с классами и на Паскале с классами (+Делфи). Сейчас хотел бы по-изучать Си++, чтобы понимать современный код. Какие книги посоветуете? Интересует компактное изложение фундаментальных основ, желательно - на русском языке. Или что-то не очень тяжёлое на английском (чтобы не надо было переводить каждое слово со словариком). Надеюсь, понятно объяснил. Спасибо.

Просто я встретил на днях код вида

A::B::C::D ...
, и понял, что пора догонять поезд. На университетских знаниях 20-летней давности сейчас делать почти нечего. Хочу перестать заниматься быдлокодерством, и начать осваивать современные знания.

Ещё - есть ли краткая табличка с основными различиями в стандартах (Comparison table/list)? Или лучше просто прочитать для начала Wikipidia:C++11, и составлять такую таблицу самому?

За что браться не следует однозначно новичку, что освоить для быстрого JFF-эффекта, если хорошо знал в своё время Си с классами? Нравится концепция namespaces. Ещё хотелось бы впоследствии плавный переход на какую-то функциональщину, чтобы знания по современному Си++ пригодились. Какие концепции/подходы есть общие?

 ,

Mirage1_
()

Видеокарты: Nvidia и AMD

Форум — Linux-hardware

Есть очень хорошая видеокарта Nvidia GeForce 9800GTX+. На ней нет тиринга (даже без композитинга), производительность нормальная (лучше всяких затычек) и т.д.

Есть ли видеокарта от AMD, которая является аналогом этой по производительности и замечательно работает под линуксом со свободными дровами?

 ,

telikan
()

Кто в какие open source игры играет?

Форум — Games

Расскажите пожалуйста во что вы играете и почему?

 ,

Deleted
()