xfangfang/wiliwili

香橙派orangepi5plus在armbian上编译运行问题

Closed this issue · 11 comments

系统版本:Linux orangepi5-plus 6.1.75-vendor-rk35xx #1 SMP Fri Sep 20 21:10:09 CST 2024 aarch64 GNU/Linux
GnomeVersion 43.9
WindowingSystem Wayland

$ glxinfo -B
name of display: :0
display: :0 screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
Vendor: Mesa (0xffffffff)
Device: Mali-G610 (Panfrost) (0xffffffff)
Version: 24.1.3
Accelerated: yes
Video memory: 7937MB
Unified memory: yes
Preferred profile: core (0x1)
Max core profile version: 3.1
Max compat profile version: 3.1
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.1
OpenGL vendor string: Mesa
OpenGL renderer string: Mali-G610 (Panfrost)
OpenGL core profile version string: 3.1 Mesa 24.1.3-2+bookworm
OpenGL core profile shading language version string: 1.40
OpenGL core profile context flags: (none)

OpenGL version string: 3.1 Mesa 24.1.3-2+bookworm
OpenGL shading language version string: 1.40
OpenGL context flags: (none)

OpenGL ES profile version string: OpenGL ES 3.1 Mesa 24.1.3-2+bookworm
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10

根据您给出的在树莓派上编译#78 (comment)
在armbian上编译运行有以下问题:
1)打开程序窗口固定(是直接运行编译完成buil目录下的wiliwili程序),不能移动窗口
2)播放窗口不能随全屏模式或者窗口模式缩放
3)疑似硬解加速没开启
Screenshot from 2024-10-08 16-46-06
Screenshot from 2024-10-08 17-00-50

  1. 用dev分支代码编译(注意依赖的git库也要更新:https://github.com/xfangfang/wiliwili/wiki#拉取项目
  2. "打开程序窗口固定" 我没太理解,建议来段录屏
  3. 应用运行的log是什么?,用 -d -t 运行,可以看到播放器的log
  4. 编译时具体使用的编译参数是什么?(就是 cmake 指令都写了什么)

dev 分支下对 Wayland 做了一点调整,前面说的 log 一定要在 dev分支下,重新编译后截取。

既然 orangepi5plus 已经支持 opengl3 了就没必要使用 opengl2 了

也就是 编译参数使用

cd wiliwili
cmake -B build -DPLATFORM_DESKTOP=ON -DCMAKE_BUILD_TYPE=Release -DUSE_GLES3=ON -DGLFW_BUILD_WAYLAND=ON
make -C build wiliwili -j$(nproc)

硬件解码需要在设置中打开,也取决于 ffmpeg 的版本是否支持硬解

我记着 nanovg 要求的是 OpenGL3.2,但是他发的配置支持是 OpenGL3.1,感觉也可以用 -DUSE_GLES3=ON 试试。

https://github.com/xfangfang/wiliwili/wiki#编译参数

硬件解码需要在设置中打开,也取决于 ffmpeg 的版本是否支持硬解

在应用设置里面已经开启硬件解码

我记着 nanovg 要求的是 OpenGL3.2,但是他发的配置支持是 OpenGL3.1,感觉也可以用 -DUSE_GLES3=ON 试试。

请稍等,重新编译dev分支。如何加入-d -t 查看log
Screenshot from 2024-10-08 17-46-04

./wiliwili -d -t

既然 orangepi5plus 已经支持 opengl3 了就没必要使用 opengl2 了

刚刚编译完成默认yoga分支,编译参数cmake -B build -DPLATFORM_DESKTOP=ON -DGLFW_BUILD_WAYLAND=ON -DGLFW_BUILD_X11=OFF -DCMAKE_BUILD_TYPE=Release -DUSE_GL3=ON

sl@orangepi5-plus:~/Downloads/new/wiliwili/build$ ./wiliwili -d -t
18:00:20.668[INFO] XDG_CURRENT_DESKTOP: GNOME
18:00:20.670[INFO] wiliwili v1.4.1
18:00:20.670[INFO] Current working directory: /home/sl/Downloads/new/wiliwili/build
18:00:20.670[INFO] setting: {"app_theme":"dark","danmaku":true,"danmaku_filter_advanced":false,"danmaku_filter_bottom":true,"danmaku_filter_color":true,"danmaku_filter_level":1,"danmaku_filter_scroll":true,"danmaku_filter_top":true,"danmaku_render_quality":100,"danmaku_smart_mask":true,"danmaku_style_alpha":80,"danmaku_style_area":100,"danmaku_style_fontsize":15,"danmaku_style_line_height":120,"danmaku_style_speed":100,"fullscreen":false,"home_window_state":"0,1280x720,0x0","on_top_mode":0,"player_bottom_bar":false,"player_exit_fullscreen_on_end":false,"player_hwdec":true,"player_inmemory_cache":50,"player_skip_opening_credits":false,"player_volume":100,"video_quality":120}
18:00:20.670[INFO] Load config from: /home/sl/.config/wiliwili/wiliwili_config.json
18:00:20.670[INFO] Load window state: 1280x720,0x0
18:00:20.670[INFO] Set app locale: zh-Hans
Couldn't open plugin directory: No such file or directory
No plugins found, falling back on no decorations
18:00:20.733[INFO] Using platform GLFW
18:00:20.807[ERROR] OpenGL 3.2 (the minimum requirement) is not available: EGL: Failed to create context: Arguments are inconsistent
18:00:20.816[ERROR] Fatal error: glfw: Failed to create window
terminate called after throwing an instance of 'std::logic_error'
what(): glfw: Failed to create window
Aborted

yoga分支加入 -DUSE_GLES3=ON 不能编译通过

[ 74%] Linking CXX executable wiliwili
/usr/bin/ld: CMakeFiles/wiliwili.dir/wiliwili/source/utils/image_helper.cpp.o: undefined reference to symbol 'stbi_image_free'
/usr/bin/ld: /lib/aarch64-linux-gnu/libsixel.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[3]: *** [CMakeFiles/wiliwili.dir/build.make:2169: wiliwili] Error 1
make[3]: Leaving directory '/home/sl/Downloads/new/wiliwili/build'
make[2]: *** [CMakeFiles/Makefile2:529: CMakeFiles/wiliwili.dir/all] Error 2
make[2]: Leaving directory '/home/sl/Downloads/new/wiliwili/build'
make[1]: *** [CMakeFiles/Makefile2:536: CMakeFiles/wiliwili.dir/rule] Error 2
make[1]: Leaving directory '/home/sl/Downloads/new/wiliwili/build'
make: *** [Makefile:190: wiliwili] Error 2
make: Leaving directory '/home/sl/Downloads/new/wiliwili/build'

  1. 用dev分支代码编译(注意依赖的git库也要更新:https://github.com/xfangfang/wiliwili/wiki#拉取项目
  2. "打开程序窗口固定" 我没太理解,建议来段录屏
  3. 应用运行的log是什么?,用 -d -t 运行,可以看到播放器的log
  4. 编译时具体使用的编译参数是什么?(就是 cmake 指令都写了什么)

dev 分支下对 Wayland 做了一点调整,前面说的 log 一定要在 dev分支下,重新编译后截取。

armbian录屏不方便,就是打开wiliwil后窗口不能拖拽移动,没有边框

2)播放窗口不能随全屏模式或者窗口模式缩放?

(切换到dev分支后,该问题没有复现了)
以下是
切换到dev分支,编译参数cmake -B build -DPLATFORM_DESKTOP=ON -DGLFW_BUILD_WAYLAND=ON -DGLFW_BUILD_X11=OFF -DCMAKE_BUILD_TYPE=Release -DUSE_GLES3=ON

运行dev分支编译后的wiliwili -d -t
log:
sl@orangepi5-plus:~/Downloads/dev/wiliwili/build$ ./wiliwili -d -t
19:11:23.760[INFO] wiliwili v1.4.1-27-g31547b4
19:11:23.760[INFO] Current working directory: /home/sl/Downloads/dev/wiliwili/build
19:11:23.760[INFO] setting: {"app_theme":"dark","danmaku":true,"danmaku_filter_advanced":false,"danmaku_filter_bottom":true,"danmaku_filter_color":true,"danmaku_filter_level":1,"danmaku_filter_scroll":true,"danmaku_filter_top":true,"danmaku_render_quality":100,"danmaku_smart_mask":true,"danmaku_style_alpha":80,"danmaku_style_area":100,"danmaku_style_fontsize":15,"danmaku_style_line_height":120,"danmaku_style_speed":100,"fullscreen":false,"home_window_state":"0,1280x720,0x0","on_top_mode":0,"player_bottom_bar":false,"player_exit_fullscreen_on_end":false,"player_hwdec":true,"player_inmemory_cache":50,"player_skip_opening_credits":false,"player_volume":100,"video_quality":120}
19:11:23.760[INFO] Load config from: /home/sl/.config/wiliwili/wiliwili_config.json
19:11:23.760[INFO] Load window state: 1280x720,0x0
19:11:23.760[INFO] Set app locale: zh-Hans
19:11:23.761[INFO] Found inhibitor service: org.freedesktop.ScreenSaver
Couldn't open plugin directory: No such file or directory
No plugins found, falling back on no decorations
19:11:23.822[INFO] Using platform GLFW
19:11:23.920[ERROR] GLFW 65548: Wayland: The platform does not support setting the window icon
19:11:23.920[ERROR] GLFW 65548: Wayland: The platform does not support setting the window position
19:11:23.921[INFO] glfw: GL Vendor: Mesa
19:11:23.921[INFO] glfw: GL Renderer: Mali-G610 (Panfrost)
19:11:23.921[INFO] glfw: GL Version: OpenGL ES 3.1 Mesa 24.1.3-2+bookworm
19:11:23.921[INFO] glfw: GLFW Version: 3.4.0
19:11:23.929[ERROR] GLFW 65548: Wayland: The platform does not provide the window position
19:11:23.929[WARNING] Cannot find custom gamepad db, (Searched at: /home/sl/.config/wiliwili/gamecontrollerdb.txt)
19:11:24.287[INFO] glfw: joystick 0 GUID 03000000cf1b0000c205000000010000
19:11:24.287[WARNING] Cannot find custom font, (Searched at: /home/sl/.config/wiliwili/font.ttf)
19:11:24.287[INFO] Trying to use internal font: ./resources/font/switch_font.ttf
19:11:24.295[ERROR] GLFW 65548: Wayland: Platform does not support making a window floating
19:11:24.295[INFO] createWindow done
19:11:24.295[DEBUG] Adding an inputs block token (tokens=1)
19:11:24.301[DEBUG] View RecyclingGrid: create
19:11:24.306[DEBUG] RecyclingGrid::checkWidth from 0 to 169
19:11:24.306[DEBUG] RecyclingGrid::onLayout reloadData()
19:11:24.307[DEBUG] RecyclingGrid::checkWidth from 169 to 231.5
19:11:24.307[DEBUG] RecyclingGrid::onLayout reloadData()
19:11:24.307[DEBUG] RecyclingGrid::checkWidth from 231.5 to 232
19:11:24.307[DEBUG] RecyclingGrid::onLayout reloadData()
19:11:24.307[DEBUG] RecyclingGrid::checkWidth from 232 to 296
19:11:24.307[DEBUG] RecyclingGrid::onLayout reloadData()
19:11:24.308[DEBUG] RecyclingGrid::checkWidth from 296 to 360.5
19:11:24.308[DEBUG] RecyclingGrid::onLayout reloadData()
19:11:24.308[DEBUG] RecyclingGrid::checkWidth from 360.5 to 361
19:11:24.308[DEBUG] RecyclingGrid::onLayout reloadData()
19:11:24.308[DEBUG] View CustomButton: create
19:11:24.308[DEBUG] View HintLabel: create
19:11:24.308[DEBUG] Fragment HomeTab: create
19:11:24.309[DEBUG] RecyclingGrid::checkWidth from 361 to 360.5
19:11:24.309[DEBUG] RecyclingGrid::onLayout reloadData()
19:11:24.310[DEBUG] RecyclingGrid::checkWidth from 360.5 to 361
19:11:24.310[DEBUG] RecyclingGrid::onLayout reloadData()
19:11:24.310[DEBUG] RecyclingGrid::checkWidth from 361 to 360.5
19:11:24.310[DEBUG] RecyclingGrid::onLayout reloadData()
19:11:24.311[DEBUG] RecyclingGrid::checkWidth from 360.5 to 361
19:11:24.311[DEBUG] RecyclingGrid::onLayout reloadData()
19:11:24.311[DEBUG] RecyclingGrid::checkWidth from 361 to 360.5
19:11:24.311[DEBUG] RecyclingGrid::onLayout reloadData()
19:11:24.311[DEBUG] RecyclingGrid::checkWidth from 360.5 to 361
19:11:24.311[DEBUG] RecyclingGrid::onLayout reloadData()
19:11:24.311[DEBUG] View CustomButton: create
19:11:24.311[DEBUG] View CustomButton: create
19:11:24.312[DEBUG] RecyclingGrid::checkWidth from 361 to 1172
19:11:24.312[DEBUG] RecyclingGrid::onLayout reloadData()
19:11:24.313[DEBUG] Giving focus to AutoSidebarItem
19:11:24.314[DEBUG] Hiding brls::AppletFrame
19:11:24.314[DEBUG] push activity to the stack
19:11:24.314[DEBUG] Showing brls::AppletFrame
19:11:24.314[DEBUG] Analytics url: https://www.google-analytics.com/mp/collect
19:11:24.329[INFO] IME switched: OFF
19:11:24.526[DEBUG] Removing an inputs block token (tokens=0)
19:11:24.710[INFO] max_thread_num: 4
19:11:34.325[DEBUG] report event: {"client_id":"GA1.1269","events":[{"name":"open_app","params":{"engagement_time_msec":100,"git":"v1.4.1-27-g31547b4","language":"zh-Hans","platform":"Linux","session_id":"GA1.1269","user":"26","version":"1.4.1","window":"1280x720"}}],"timestamp_micros":"1728385894000000","user_id":"26","user_properties":{"device":{"value":"Linux"},"git":{"value":"v1.4.1-27-g31547b4"},"platform":{"value":"Linux"}}}
19:11:36.321[ERROR] Cannot check update: 0
19:11:43.337[INFO] IME switched: OFF

应该与wayland的几个错误有关
[ERROR] GLFW 65548: Wayland: The platform does not provide the window position
[ERROR] GLFW 65548: Wayland: Platform does not support making a window floating

@gufeisheng001

  1. 窗口相关的问题,我认为应该是你那边环境的问题,根据log:
    Couldn't open plugin directory: No such file or directory
    No plugins found, falling back on no decorations

这个应该是你需要安装个什么插件来实现 window decoration (就是你说的,没有边框),这个是你那边桌面环境的问题。
其他的log中的 wayland 报错是正常的,wayland目前还没有完善那些功能,但是不会影响wiliwili。

  1. 硬解问题,就看你用的ffmpeg和mpv了,这个一定与wiliwili无关啦。

这个应该是你需要安装个什么插件来实现 window decoration (就是你说的,没有边框),这个是你那边桌面环境的问题。 其他的log中的 wayland 报错是正常的,wayland目前还没有完善那些功能,但是不会影响wiliwili。

  1. 硬解问题,就看你用的ffmpeg和mpv了,这个一定与wiliwili无关啦。

不能拖动窗口已确认是armbian系统问题,更换系统即可。硬件解码应该已启用,可能只是F1查看详细信息有误。