Сайт | Скачать | Видео | Wiki

Автор Тема: xorg-server  (Прочитано 4179 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
xorg-server
« : 23 Январь 2019, 15:31:01 »
http://opensource.rock-chips.com/wiki_Xserver
http://opensource.rock-chips.com/wiki_Graphics#Graphics_with_X11

Готовые пакеты  для ubuntu bionic и ссылки на src
Переключение дров

У меня тормозят браузеры

Установил xorg и прочее
на тв-боксе A5 - улучшений не заметил
Закомпилил libdrm (в пакете нет) -  улучшений не заметил
« Последнее редактирование: 25 Январь 2019, 16:48:24 от sfs »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: xorg-server
« Ответ #1 : 23 Январь 2019, 16:02:16 »
А ваш xorg в логи умеет?
да- как везде
В аттаче. Только что там можно вычитать про браузер...
В армбиан (с xorg из ) используется драйвер armsoc
В обычном армбиан и арче -
Код
# inxi -G
Graphics:  Device-1: display-subsystem driver: rockchip_drm v: N/A
           Device-2: mali-450 driver: mali_utgard v: N/A
           Device-3: rk3328-dw-hdmi driver: dwhdmi_rockchip v: N/A
           Display: server: X.org 1.20.3 driver: dwhdmi_rockchip tty: 138x40
Плохо во всех вариантах

Попробовал сам скомпилить https://github.com/paolosabatino/xf86-video-armsoc
В арче с родным xorg120 - даже не пытается его грузить

Попробовал https://github.com/teacupx/xserver
Пишут : Xserver with 2D accel
Код
/usr/bin/ld: common/.libs/libcommon.a(xf86Xinput.o): in function `xf86NewInputDevice':
xf86Xinput.c:(.text+0xa40): undefined reference to `major'
/usr/bin/ld: xf86Xinput.c:(.text+0xa4c): undefined reference to `minor'
/usr/bin/ld: os-support/.libs/libxorgos.a(lnx_init.o): in function `linux_parse_vt_settings.part.2':
lnx_init.c:(.text+0x2dc): undefined reference to `major'
/usr/bin/ld: lnx_init.c:(.text+0x2ec): undefined reference to `minor'
collect2: error: ld returned 1 exit status
make[4]: *** [Makefile:807: Xorg] Ошибка 1
make[4]: выход из каталога «/mnt/mmcblk0p2/-2a-work/media-script-arch/xorg-server-rockchip/src/xserver/hw/xfree86»
make[3]: *** [Makefile:862: all-recursive] Ошибка 1
make[3]: выход из каталога «/mnt/mmcblk0p2/-2a-work/media-script-arch/xorg-server-rockchip/src/xserver/hw/xfree86»
make[2]: *** [Makefile:671: all] Ошибка 2
make[2]: выход из каталога «/mnt/mmcblk0p2/-2a-work/media-script-arch/xorg-server-rockchip/src/xserver/hw/xfree86»
make[1]: *** [Makefile:611: all-recursive] Ошибка 1
make[1]: выход из каталога «/mnt/mmcblk0p2/-2a-work/media-script-arch/xorg-server-rockchip/src/xserver/hw»
make: *** [Makefile:779: all-recursive] Ошибка 1
==> ОШИБКА: Произошел сбой в build().


Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: xorg-server
« Ответ #2 : 23 Январь 2019, 19:07:34 »
В арче с родным xorg120 - даже не пытается его грузить
Добавил
Код
# cat /etc/X11/xorg.conf.d/01-armbian-defaults.conf 
Section "Device"
    Identifier  "Rockchip Graphics"

## Use armsoc driver
Driver "armsoc"
## End armsoc configuration

## Use modesetting and glamor
#    Driver      "modesetting"
#    Option      "AccelMethod"    "glamor"     ### "glamor" to enable 3D acceleration, "none" to disable.
#    Option      "DRI"            "2"
#    Option      "Dri2Vsync"      "true"
## End glamor configuration

EndSection

Section "Screen"
    Identifier "Default Screen"
    SubSection "Display"
        Depth 24
        # Modes "1920x1080" "1280x1024" "1024x768" "800x600"
    EndSubSection
EndSection
заработало в арче
Причем и скомпилкнные под родной xorg120 и под хитрый армбиановский
Армбиановский xorg119, вроде, побыстрее
Пока на нем и остановился
В логах:
Код
 (EE) AIGLX error: dlopen of /usr/lib/aarch64-linux-gnu/dri/armsoc_dri.so failed
(/usr/lib/aarch64-linux-gnu/dri/armsoc_dri.so: cannot open shared object
Симлинк  сделал, но armsoc_dri.so нет
Попробовал скомпилить
Код
# make install
Making install in src
make[1]: вход в каталог «/mnt/mmcblk0p2/-2a-work/media-script-arch/1/xf86-video-armsoc-r4p0/src»
  CC       drmmode_display.lo
drmmode_display.c: В функции «drmmode_set_mode_major»:
drmmode_display.c:381:3: ошибка: «xf86_reload_cursors» is deprecated [-Werror=deprecated-declarations]
   xf86_reload_cursors(pScrn->pScreen);
   ^~~~~~~~~~~~~~~~~~~
In file included from drmmode_driver.h:31,
                 from drmmode_display.c:56:
/usr/include/xorg/xf86Crtc.h:1068:37: замечание: объявлено здесь
 static _X_INLINE _X_DEPRECATED void xf86_reload_cursors(ScreenPtr screen) {}
                                     ^~~~~~~~~~~~~~~~~~~
drmmode_display.c: В функции «drmmode_screen_init»:
drmmode_display.c:1879:2: ошибка: неявная декларация функции «AddGeneralSocket» [-Werror=implicit-function-declaration]
  AddGeneralSocket(drmmode->fd);
  ^~~~~~~~~~~~~~~~
drmmode_display.c:1879:2: ошибка: вложенная extern-декларация «AddGeneralSocket» [-Werror=nested-externs]
drmmode_display.c:1882:33: ошибка: в передаче аргумента 1 «RegisterBlockAndWakeupHandlers»: несовместимый тип указателя [-Werror=incompatible-pointer-types]
  RegisterBlockAndWakeupHandlers((BlockHandlerProcPtr)NoopDDA,
                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/xorg/privates.h:151,
                 from /usr/include/xorg/cursor.h:53,
                 from /usr/include/xorg/scrnintstr.h:53,
                 from /usr/include/xorg/xf86str.h:39,
                 from /usr/include/xorg/xf86.h:44,
                 from /usr/include/xorg/xf86i2c.h:9,
                 from /usr/include/xorg/xf86DDC.h:16,
                 from drmmode_display.c:39:
/usr/include/xorg/dix.h:233:80: замечание: ожидался тип «ServerBlockHandlerProcPtr» {aka «void (*)(void *, void *)»}, но аргумент имеет тип «void (*)(void *, struct timeval **, void *)»
 extern _X_EXPORT Bool RegisterBlockAndWakeupHandlers(ServerBlockHandlerProcPtr blockHandler,
                                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
drmmode_display.c:1883:4: ошибка: в передаче аргумента 2 «RegisterBlockAndWakeupHandlers»: несовместимый тип указателя [-Werror=incompatible-pointer-types]
    drmmode_wakeup_handler, pScrn);
    ^~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/xorg/privates.h:151,
                 from /usr/include/xorg/cursor.h:53,
                 from /usr/include/xorg/scrnintstr.h:53,
                 from /usr/include/xorg/xf86str.h:39,
                 from /usr/include/xorg/xf86.h:44,
                 from /usr/include/xorg/xf86i2c.h:9,
                 from /usr/include/xorg/xf86DDC.h:16,
                 from drmmode_display.c:39:
/usr/include/xorg/dix.h:234:81: замечание: ожидался тип «ServerWakeupHandlerProcPtr» {aka «void (*)(void *, int)»}, но аргумент имеет тип «void (*)(void *, int,  void *)»
                                                      ServerWakeupHandlerProcPtr wakeupHandler,
                                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
cc1: все предупреждения считаются ошибками
make[1]: *** [Makefile:513: drmmode_display.lo] Ошибка 1
make[1]: выход из каталога «/mnt/mmcblk0p2/-2a-work/media-script-arch/1/xf86-video-armsoc-r4p0/src»
make: *** [Makefile:440: install-recursive] Ошибка 1

https://github.com/mripard/xf86-video-armsoc - тоже не компилится
Вообще это для GL - браузеру вряд ли поможет...
« Последнее редактирование: 23 Январь 2019, 19:16:59 от sfs »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
« Последнее редактирование: 23 Январь 2019, 19:40:14 от sfs »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: xorg-server
« Ответ #4 : 25 Январь 2019, 15:06:34 »
Добавил в шапку ссылку на вики

Переключение :
Код
x We are going to install two different drivers for        x  
x accelerated X desktop. You can switch between them by    x 
x editing /etc/X11/xorg.conf.d/01-armbian-defaults.conf    x 
x Which version do you prefer by default?                  x 
x lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk x 
x x Arm  Armsoc, only fulscreen vsync but better desktop  x x 
x x Gla  Glamor, complete vsync but laggier desktop      x x

Arm Armsoc, только полноэкранный vsync, но лучший рабочий стол
Gla Glamour, полная vsync, но более медленный рабочий стол


В юбунту, для которого есть готовые deb срабатывает
С гламуром на экране местами  артефакты и firefox рисует только рамку окна
Код
[  1487.409] (II) modeset(0): Using GLES2.
[  1487.410] (WW) modeset(0): Glamor is using GLES2 but GLX needs GL. Indirect GLX may not work correctly.
[  1487.410] (II) modeset(0): glamor initialized
       
В арче с перепакованными из юбунтовского пака xorg + glamore : ффокс и хром   рисует только рамку окна

                             
« Последнее редактирование: 25 Январь 2019, 16:17:13 от sfs »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: xorg-server
« Ответ #5 : 28 Январь 2019, 13:36:48 »
Gla Glamour, полная vsync, но более медленный рабочий стол
В юбунту, для которого есть готовые deb срабатывает
В арче тоже. Так же с артефактами. Не нашел практического смысла в этом режиме. Может для игр....
А без этого режима нет смысла в спец xorg

С обычным xorg в арче не хуже. xf84-armsoc (спец видеодрайвер) нормально компилится, но плюсов с ним не нашел. В итоге юзаю modeset без glamor
Плавность перемещения окон получил использованием compton. При воспроизведении видео его лучше отключать
Пакеты для арча выложу по запросу