-
Notifications
You must be signed in to change notification settings - Fork 54
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Linux player development should be abandoned in favor of making the Windows player more compatible with Wine #277
Comments
You are correct that we are struggling to make any improvements to the Linux player, and we need to make a decision regarding it's future. Running under WINE is an interesting idea and certainly something we've explored in the past. Last time we tried we encountered a few issues, some of which you've already identified:
I'd be very interested to know if the browser functionality works in your testing? Thanks! |
Browser functionality does indeed work. I haven't had any issues with it after installing Is there any video codecs with known issues I could test? |
Ah, that's interesting! It gets us much closer to a functional player then, even if there are some stability issues (which we do also have on the existing Linux Player). Regarding video, we had problems with anything that wasn't a run of the mill H.264 MP4. We haven't tested recently though, so it might be that this is resolved. In any case we can recommend a codec.
I think this will be difficult as we're heavily invested in WPF in terms of how the player layers its content and renders into frames, etc.
I wonder if we could take a modular approach to this and convert the networking functionality (XMDS, XMR, web server, etc) into a .NET core application which can has native support on Windows/Linux. The WPF section (which we run under WINE) handles the rendering, but doesn't require any networking capability. |
I don't specifically remember what the issue with Wine's stable version was anymore. However, I think development efforts should be focused on something else as Wine will eventually support the current networking implementation in its stable version. If you want to dig-in on the actual issue, simply try to start the player with the current stable version of Wine and otherwise follow my guide above. I'll do some testing with different video codecs and I'll post any further developments in terms of stability improvements. |
I should clarify that my goal in this issue is to move focus to making the Windows player run better on Wine, but also easier to install. |
Understood thank you for your efforts. I'll set aside some time to test on Ubuntu 22.04 under Wayland and see if any other issues pop up as a result. |
I've done some more testing and I've found the sole culprit of the stability issues at the moment. Currently the player seems to stay stable for about 2 hours, after which
"A C0000005 error is memory error. Specifically, a C0000005 error is an access violation error caused by a buffer overrun", says Microsoft. There are some errors related to SMB networking. Does Xibo use that directly? Otherwise, this might be a defiance in Wine or a bug in the Xibo Windows player. In any case, my next step is to fix the SMB networking issues anyway, which will probably involve installing a distro-specific |
No, Xibo does not use SMB directly. We have seen various memory related bugs in the past, although they always need to originate in the layer below our code. For example we saw the old browser engine throw all sorts of memory issues out. |
Interesting. I'll see if I can find some more details on under what conditions these crashes happen and if they are related to any certain content being displayed. EDIT: The issue is being raised at runtime and might be related to the change of layout. However, it seems Winetricks has improperly configured which .NET versions Wine should use. I'll have to redo most of my testing and see if some further trickery is required during the installation process to fix these misconfigurations. However, my current theory is that I accidentally broke some configs while re-installing various dependencies. |
At this time, the player is reporting 100% uptime (with only browser content) in the last day after I reinstalled .NET (see edit in last post) and the missing SMB networking dependencies. I'll move on to testing video content. EDIT: The Xibo dashboard was showing incorrect results. The player crashed 4 times in 24h. |
I have more details on this crash (I'll post a full stack soon). |
@dasgarner I have an update on video playback support. So far I've been able to get past issues related to missing encoders and such. However, I've hit a dead end. My PC I use for testing has an iGPU that is too old (Intel Haswell generation). In short, I need someone else to test video playback. I'm going to update my original issue with some things I've changed to get as far as I am now. |
The up time report is based on whether the player checks in at the configured frequency, so its certainly possible it crashed and restarted before it missed its window.
This is the underlying Chromium process from CEF. The stack goes Xibo -> CefSharp -> CEF. Changing layout, or changing widget in a region will tear down and recreate a browser.
I've got a Linux machine set up in our lab which I can use to do some video testing. I won't be there until Wednesday unfortunately, but once I've set it up I can get access more easily. |
Well I have no idea what I am doing 😄 following the instructions (all worked OK) up until running Xibo gives me the attached output. wine_terminal_log.txt on Ubuntu 20.04. Wine staging is now 7.22 and I couldn't work out how to install the older one. Xibo is on v3 R307. In any case I have TeamViewer on the machine so I can poke around with it over the holiday period. |
Wine staging should work fine as well. I went through my notes and the new component in the staging branch we need is |
I've seen this issue before. Try to do what is said here. |
Thanks, that got it running! 👍 I'll do some testing and report back. |
OK so for web content (text, tickers, etc) the CEF sub process crashes with this message:
The display management functions all seem to be working well - all the files downloaded and XMR is connected. Images display fine. Videos don't display and go to the fault state with this message, which means
|
Could I get the full log related to that cef crash? EDIT: Actually, could you provide full (individual) logs of trying to display video and trying to display browser content? |
I'm trying to get some more detail here, but it doesn't seem like anything else is logged within the player itself. Here are the terminal logs. wine_terminal_log.txt. I couldn't separate the two events out unfortunately - but if we look at the video one first, the other one should then be isolated. There are messages in there from Gstreamer about a missing quicktime codec - although the video is a MP4: It looks like the |
Everything related to OpenVR should just be disabled. I'll try to figure out how to do that. However, it seems your Quardo P400 is unsupported by Vulkan... or has outdated drivers:
This could explain problems with video playback. You seem to be missing
On Debian you can simply use I'll look into the OpenVR issues. In the meantime, try yo install the quicktime codec and see what happens with GStreamer. |
I've updated to the latest nvidia driver available and installed I installed |
Wonderful that we've at least gotten a little further. The missing plugin errors should be fixed by just installing the proper plugins. I am unfamiliar with Gstreamer, but I'd just try to install the Anyway, what would happen if you tried something else than |
Agreed - and it is stable showing just images, which is good! 👍
I can't get any type of video playing. This is the command I used to install it:
I have since fixed the plugin errors though, by installing the
Yes they are, and the Cef process is still crashing. |
Could I get the latest logs for trying to display browser and video content? |
Do you have multiple GPUs? |
This machine does have two of the Quadro 4200's in it yes, although only one of those has a monitor connected to it.
This log is for a short run of the player from start up to showing the first layout which has both a web browser and a video on it. |
Wine's |
@dasgarner Could you install the To disable
|
With I think we have reached a point where this isn't a good test anymore? Maybe I can try and find a different machine with only one GPU. |
Perhaps. Running with uncommon configurations, such as with 2 GPUs, can cause various issues. At least we know 2 GPUs don't seem to work at all in this case. |
UPDATE Everything still pretty much boils down to the instructions in my original issue post, just with Wine 8.0. |
That sounds encouraging! We'd be happy to run the test again with Wine 8 once you're happy on your side. |
Is there any decision made or any news? |
I'm working on Dockerizing the Windows player. I've been rather busy lately, but I'm pretty much done with it. |
A player for Linux remains a popular request, but currently has to sit in the queue behind the work we're doing for Xibo v4. We do not see a future for the C++/GTK player in this repository, but we are exploring multiple options alongside and including the work Esinko is kindly doing. |
Now, that v4 comes closer. Are there any plans for this milestone? Any updates on the docker version? I'd love to remove the snap solution... :) |
I am indeed working on it. The largest issue I have at the moment is testing, so if someone could help with that I could publish the repository asap, maybe even today. |
If testing main/general things is enough, I would be happy to help. We have a display next to my office, which I can observe. I would simply assign our layout, if this is enough. Or do you need special tests? |
Yeah that'll do. I have only been able to test web content so far, but I'm already aware that video playback will require some work. I'm basically asking for wine's logs when issues happen, that's all. EDIT: I'll be able to get on this in around 8h from now. |
Here is the repository. It's not fully functional yet, but the installer runs and the player configuration pops up nicely. I have no reason to believe at least web content wouldn't work just like before. |
Currently testing. I had several issues to build the image and made some improvements to the Dockerfile and entrypoint. As soon as it runs, I will make an PR. |
I've made fixes since my last comment. It builds fine on a few of my laptops. The player starts fine on my end, so if you're stuck try to clone the repo again. It includes fixed to both the Dockerfile and entrypoint. |
Ah, I see. Yes exacrly the wget was silently failing. I also set the COPY to the end of the dockerfile (for testings inside entrypoint better as we dont need to build all over again, its just the entrypoint that changes). I also added I discard my changes and start over. |
Hi, I just followed your initial post trying to set it up for apptainer on ubuntu 22.04. How did you handle the Mono warning on installing dotnet742. It refuses to install dotnet472 because it says that it is broken with wine-7.17. |
Wine-mono should not be installed at all, it's not needed. Winetricks should automatically uninstall it when you install any dotnet package. Anyway, you can run the player in a Docker container, so you don't have to bother with installing anything yourself. Check out the repo I linked in one of my previous comments. |
I am working with apptainer only is the problem for me. It may be possible to run a docker container with apptainer too, but I want to build it natively. |
Alright, well I'd just install the latest version of Wine. The instructions are a little outdated. |
Okay, why did you choose v3-R301.1 and not the latest v3 R310 before the new major release? |
It was the first one I happend to try that worked. No real reason. Some later versions might work. |
I got it working to open the xibo-client but then it says: "Fatal Error initialising the application. Configuration system failed to initialize". Do you know this error and may have any suggestion for it? |
Could you give more details and logs perhaps? Which version did you use (Wine, .net, Xibo)? To answer your question: No, but we can figure it out |
Hey, sorry I was a little bit too hasty. After that I only get black screens when trying to launch Xibo. At the moment I'm trying to figure out whats wrong. Looks like the graphics are having some problem, but I am really unsure about that. If you want to have a look at it, you can find the log in the attachment. Btw. I try to get it working for the latest stuff:
|
Is your feature request related to a problem? Please describe.
The Linux player is severely outdated and cannot display modern web content.
Describe the solution you'd like
The development of the Linux player should be abandoned in favor of making the Windows player more Wine compatible. At this time, I've been able to run the Windows player (version
v3-R301.1
) with Wine (7.17-staging
) using thedotnet472
anddxvk
libraries installed with Winetricks.There are only a few issues currently:
The advantages of abandoning the Linux player in favor of making the Windows player more compatible with Wine should be self-explanatory: the development team can focus on only the Windows player with minimal overhead, while supporting Windows and Linux platforms.
Describe alternatives you've considered
In theory just continuing work on the Linux player would be the ultimate solution, however, there does not seem to be any interest to do so.
Additional context
dotnet472
is dependent on bunch of other .Net versions. Installing is a pain. Lots of clickingcontinue
, but just one command with Winetricks.dxvk
is a compatibility library to convert DirectX calls to Vulkan calls. This is required for the player to be stable at runtime.7.17-staging
must be used, because the stable version of Wine does not support the networking implementation of the Windows player at this time.Short tutorial: How to run the Xibo Windows player with Wine
Note: Desktop of some sort required. I used plain X11.
7-17
(or later!) https://wiki.winehq.org/Wine_User%27s_Guide#Getting_Winehttps://github.com/Winetricks/winetricks/releases
cabextract
(https://www.cabextract.org.uk/) andGStreamer
(32-bit, https://gstreamer.freedesktop.org/documentation/installing/on-linux.html?gi-language=c)dotnet472
andcorefonts
winetricks -q dotnet472 corefonts
dxvk
winetricks -q dxvk
winecfg -v win10
wget "https://github.com/xibosignage/xibo-dotnetclient/releases/download/3R301/xibo-client-v3-R301.1-win32-x86.msi"
wine ./xibo-client-v3-R301.1-win32-x86.msi
6.1. Disable the Watchdog by renaming the executable
To know why, read the comments above
mv "$HOME/.wine/drive_c/Program Files (x86)/Xibo Player/watchdog/x64/XiboClientWatchdog.exe" "$HOME/.wine/drive_c/Program Files (x86)/Xibo Player/watchdog/x64/DXiboClientWatchdog.exe"
mv "$HOME/.wine/drive_c/Program Files (x86)/Xibo Player/watchdog/x86/XiboClientWatchdog.exe" "$HOME/.wine/drive_c/Program Files (x86)/Xibo Player/watchdog/x86/DXiboClientWatchdog.exe"
wine "$HOME/.wine/drive_c/Program Files (x86)/Xibo Player/XiboClient.exe"
append
o
after the command as an argument to start the options programThe text was updated successfully, but these errors were encountered: