Weston won't launch natively

When I try to start Weston natively with the weston-launch command, it switches to a black screen, then crashes back to the VT. Does the new drivers support running weston natively? I’m using the git builds by the way.

Stock builds of Weston currently won’t work because they use some interfaces that the nvidia driver doesn’t currently implement. Please see Andy’s sticky post for details on how to get Weston running.

Do you now if the patches from Nvidia have been added upstream to the weston-git? I just did a git pull and compiled 5 minutes ago and it still will crash back to the VT. I saw some commits about gdm being changed to EGL or something like that, but it still crashes the same wayway.

That’s not usually how it works. If you post patches to an open source project, they go through a long review process, especially if they are more than just some coding style error corrections.

You can follow the mainling list here.

https://lists.freedesktop.org/archives/wayland-devel/2016-March/date.html

It’s fairly easy to extract the 6 patches from Miguel’s e-Mails and apply them to the weston codebase.

There have been two git commits from Miquel recently. You can see them here . I assume thats not all the patches that NVIDIA sent to the Wayland devs. Im just going to wait until Miquel commits the changes made by NVIDIA to the git.

2 of the 6 patches have been merged, because they are useful even without the (at this point) NVIDIA specific codepath. It’s not looking very good for the rest of the patches, because it seems like there was a lack of communication between NVIDIA and the Wayland/Weston devs about the need for the EGLStreams interface.

Hmm, thats a shame. Maybe I can ask the package maintainer for the weston-git on Arch Linux to include the patches. I’ll ask him.

Well, the package maintainer wishes to keep it the content with just upstream commits, which is understandable. He said I should create my own package and add the patches myself. I don’t know how to add those patches to the code, so I can’t do that.

I threw together a weston-eglstream package on the AUR, if that helps: AUR (en) - weston-eglstream

Awesome, thank you so much. I’ll give them a try tonight.

I tried out the weston-eglstream package, and I get a garbled screen of colors when I launch weston from the tty using “weston --use-egldevice”. I also tried to use “weston-launch”, and it tries to load, but it crashes back to the tty. I’m currently using the wayland-git package. I’ll try launching weston tomorrow using the wayland stable package and let you know what happens.

Try this:

  1. Create nvidia-drm.conf in /etc/modprobe.d/ containing “options nvidia-drm modeset=1”, without “”.
  2. Reboot and in your bootloader edit the kernel line and append a 3 at the very end.
  3. When it booted into tty1, login and run “weston --use-egldevice”.

It’s best to have nothing else running like an Xserver on a different tty1. For some reason the modeset=1 parameter resets when I first boot into Gnome and then switch to a tty and stop GDM which closes the X server. I don’t know what the difference between weston-launch and weston is. For me only “weston --use-egldevice” works.

I do have that command in my modprobe.conf file, but I’ll make a nvidia-drm.conf file when I get home from work and try that as well. I do notice that when I boot X that my screen will flicker before going into X. I also assumed it was X disabling the nvidia-drm module.

I just tried the 3 at the end of my kernel line, and it did change the color noise quite a bit. There is a lot more blackness, with random color noise scattered about. Installing the stable Wayland package also gives the same result. I still can’t get it too work. What do those numbers do at the endend of the kernel line? Is there a page that lists what each number does? I googled it and couldn’t find anything. Using a value of 1 booted into recovery mode for me.

That’s strange. The number is the run level that you want to boot into. Sys V run levels map to specific systemd target. 3 means it get you into a minimal environment where you can log in. The default target (graphical.target) also start up your login manager and therefore X11 and loads all or desktop services.
https://wiki.archlinux.org/index.php/systemd#Targets

Can you git clone this repo GitHub - aritger/eglstreams-kms-example: Example of using EGLStreams + DRM KMS and run “make” inside the directory it creates? This should build a binary, which you can try to launch instead of “weston --use-egldevice”. Use run level 3 again as advices in the README part: “Stop the X server, or any other potential DRM client. eglstreams-kms-example requires the ability to become DRM master in order to do modesets.”

I don’t use a login manager. I just use startx. I’m going to just try out some other things and post back when I give up/figure it out lol

Well, I give up. I’ll just wait for nvidia to make a driver that supports gdm. I deleted my weston.ini file, I loaded the DRM module via kernel parameters, and it still just produces color noise.

I compiled the eglstreams-kms-example program and it ran fine. I saw the glxgears moving, so I really have no idea why it isn’t working for me. Could someone who got weston to run on the nvidia propietary drivers post there weston.ini config?

I don’t use weston with a custom weston.ini at all. I only did it once to disable the animations, which are kind of annoying and slow and to enable the xwayland module, which turned out to not work. I just start it as I explained in a previous post and it uses default settings.

Do you use arch Linux? If so, could you download the weston-eglstream package from the AUR, and try starting Weston and see if it starts for you?