LINUX.ORG.RU

Raspbian 10, проприетарный драйвер GPU, и браузер Chromium

 , ,


0

1

В ноябре 2017 года, в Raspbian Linux появился открытый драйвер для GPU. Файлы библиотек не пересекаются: проприетарные файлы называются libEGL.so и libGLESv2.so, а открытые - libEGL.so.1 и libGLESv2.so.2. Но разработчики операционной системы на всякий случай переименовали проприетарные в libbrcmEGL.so и libbrcmGLESv2.so. Переключиться между открытым и закрытым можно в sudo raspi-config. Приятно, что в недавно вышедшем Raspbian 10 эту возможность оставили для Raspberry Pi 3, хоть и написано, что это Legacy Driver.

Я пользуюсь браузером Chromium в связке с открытым драйвером. Работает нормально. Бывают тормоза и лаги, похожие на своппинг. Видео на YouTube аппаратно ускоряется, но иногда вышеозвученные лаги мешают и воспроизведению видео тоже. И дело не в аппаратном декодере: лаги раз в минуту могут быть как на 144p, так и на 1080p.

При переключении на закрытый драйвер, аппаратное ускорение видео работает тоже (для открытого и закрытого используются одни и те же MMAL и OpenMAX IL). Однако обычное ускорение (плавный скроллинг и т.д.) не ускоряется аппаратно, а используется llvmpipe. Браузер слинкован с libEGL.so.1 из Месы. Если активен проприетарный драйвер, то Меса начинает работать софтварно. Надо, чтобы браузер был слинкован с libEGL.so. Может где-то есть сборки?

P.S. Вообще, замедление работы от софтварного OpenGL ES очень маленькое, и поэтому не критичное. И чаще всего я пользуюсь открытым драйвером, тогда как проприетарный драйвер мне нужен очень редко, например для запуска старых игр.

P.P.S. На официальном форуме спрашивал, ответа не дали

★★★★★

Последнее исправление: ZenitharChampion (всего исправлений: 6)

Попробуй сделать символьную ссылку на проприетарную библиотеку.

anonymous
()
Ответ на: комментарий от anonymous

Я попробовал - это не подействовало:

[4374:4374:1206/045723.497716:ERROR:gl_surface_egl.cc(943)] EGL display query failed with error EGL_SUCCESS
[4374:4374:1206/045723.498296:ERROR:gl_surface_egl.cc(957)] eglInitialize Default failed with error EGL_BAD_DISPLAY
[4374:4374:1206/045723.498442:ERROR:gl_initializer_x11.cc(154)] GLSurfaceEGL::InitializeOneOff failed.
[4374:4374:1206/045723.517910:ERROR:viz_main_impl.cc(170)] Exiting GPU process due to errors during initialization

После чего браузер включает софтварную реализацию OpenGL ES под названием OpenShift.

Похоже, что если компилировать Chromium с EGL из Месы, то с EGL из проприетарного драйвера Broadcom не будет работать. Я погуглил эту ошибку, и нашёл некие патчи, которые решают в точности такую же ошибку на Mali 400.

ZenitharChampion ★★★★★
() автор топика
Ответ на: комментарий от ZenitharChampion

На одном гигабайте памяти, ага.

Cross compiling, либо через чрут компилируй.

fehhner ★★★★★
()
1 февраля 2020 г.

Я тут нашёл интересное. Как в проекте jogl определяют, какой драйвер сейчас используется: опенсорсный, или проприетарный.

Если файл /opt/vc/lib/libbcm_host.so существует, а /sys/module/vc4 не существует, то сначала пробовать загрузить проприетарный, а потом - опенсорсный. Upd: Следующим комментом пишут, что всё проще: с одним из драйверов существует файл /dev/dri/card0, а с другим - нет.

Ссылки:

https://jogamp.org/bugzilla/show_bug.cgi?id=1290#c3
https://github.com/gohai/processing/commit/3fe066201bf6cbbbc1834153791e6329ac...
https://jogamp.org/cgit/jogl.git/commit/?id=347271ffdd09153a2334fda593774d490...

ZenitharChampion ★★★★★
() автор топика
Последнее исправление: ZenitharChampion (всего исправлений: 3)
Ответ на: комментарий от ZenitharChampion

честно говоря совсем не вижу смысла использовать малину в качестве десктопа. Последний раз попробовал сузю 64 когда купил 4 версию, ну можно смотреть кино ИЛИ шариться в инете, на этом все. Когда запущенно несколько програм одновременно начинаются бесконечные фризы, пусть хоть и мелкие. Если взять например аналогичные минипц с андроидом на борту, то там можно работать как на обычном десктопе. А малина имхо это максимум экономичный сервак

jtad
()
Ответ на: комментарий от jtad

Эту проблему бы обнаружить и пофиксить. Либо пользоваться не системой, установленной на флешку, а LiveUSB с созданием рамдиска. Если это возможно. Тогда бы ничего не лагало, даже с учётом того, что 4 гига оперативки делятся на оперативку и рамдиск

ZenitharChampion ★★★★★
() автор топика
Последнее исправление: ZenitharChampion (всего исправлений: 2)
Ответ на: комментарий от ZenitharChampion

а ты пробовал другие дистры? Распбиан конечно мощно развивается, но опенсузя, например, первая предоставила 64 систему для малины. Может у других реализовано по другому?

jtad
()
Ответ на: комментарий от jtad

Raspberry Pi это

1. Медиаплеер 2. Компьютер для умного дома 3. Платформа для различных экспериментов с периферийными устройствами и DIY поделок.

«Экономичный сервак» - это ниочем.

И 64 бит туда не надо.

tommy ★★★★★
()
Ответ на: комментарий от tommy

1 ненужно 2 кто заморачивается с умным домом? Даже если так, то 4 дорогое решение 3 детский сад

А вот для сервака даже 3 с убогими скоростями сетевухи не подходит. С 4 гораздо веселее плюс два внешних ссд. Не скажу что прям суперсервер, но для домашнего окружениядостойно

jtad
()
Ответ на: комментарий от jtad

Я написал реальные применения Raspberry Pi, а не вот эту ерунду с «бюджетным сервером».

С миром ненужнистов это не пересекается, но это их проблемы.

tommy ★★★★★
()
Ответ на: комментарий от tommy

тогда назови альтернативу торрент качалке и файловой шаре доступной везде из интернета 24/7? Я видео смотрю с сервака начиная со 2 версии малины плюс удобная помойка без надобности постоянно подключать разные внешние хдд и еще вспоминать где что валяется. Разные игрушки это реальное применение устройства за 50 евро )) Я уже молчу об экономичности, ибо в европе цены на лектричество заоблачные

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