On Fri, 15 Jan 2021 at 23:16, Archange <archange@xxxxxxxxxxxxx> wrote: > > Le 14/01/2021 à 19:15, Emil Velikov a écrit : > > On Wed, 13 Jan 2021 at 16:52, Archange <archange@xxxxxxxxxxxxx> wrote: > >> Le 12/01/2021 à 21:45, Emil Velikov a écrit : > >>> On Tue, 12 Jan 2021 at 18:24, Archange <archange@xxxxxxxxxxxxx> wrote: > >>> > >>>> OK, will try to check tomorrow with a friend that has an Optimus laptop. > >>>> > >>> Perfect, thanks in advance. > >>> > >>> To trigger the event one has to echo into a sysfs file... Don't recall > >>> exactly, some of the following should be it. > >>> a) If the nvidia module is driving an fbcon: > >>> - echo "0" > /sys/class/vtconsole/vtconX/bind > >>> b) and/or a combination of the following > >>> - echo "remove" (or was it "unbind") > /sys/class/drm/cardX/device/uevent > >>> - echo "remove" (or was it "unbind") > > >>> /sys/class/drm/cardX/device/driver/uevent > >>> - echo "1" > /sys/class/drm/cardX/device/driver/unbind > >>> > >> 2) If the driver is loaded before X, it works for PRIME. However, the > >> card refuse to unbind because it’s in use by X even if nothing is > >> actually running on it. > >> > > It just works here so I suspect that a command or the order was off. > > > > My setup: > > - Intel/Nvidia system, monitor plugged/powered by Intel GPU > > - Therefore fb0 is for Intel (alongside card0) and Nvidia does not > > have fb device only card1. > > Same on the laptop of my friend. > > > What I've done: > > - Toggle render offload ON via xrandr, try glxgears > > - Toggle render offload OFF via xrandr > > Not sure how I’m supposed to do that, didn’t find any reference online. > Oops sorry about that - disabling it is a hard requirement, actually. The reason why it's barely mentioned, is that people (tend to) use FOSS drivers, where rmmod isn't needed ;-) > > - Issue the removal - echo "remove" > /sys/class/drm/card1/uevent > This segfaults Xorg right away. > > - Confirm that it works - Xorg.0.log should list "removing GPU device > > ...blabla/card1" > > It does appear, with the segfault: > Did you disable the offload as mentioned above? You may also want to close any apps you've started while offload was enabled. To put it otherwise: - xrandr enable offload - X and newly started programs start using the other GPU - echo "remove" > .../uevent sends an event to userspace that the GPU is being removed Most programs do not handle, GPU removal so they crash. Therefore, using "remove" w/o disabling offload, is akin to (physically) plugging out the GPU, while running optirun $app. A scenario which I suspect is not supported with bumblebee. > Maybe I missed a fb? Not sure… > Seems like I should add some information there. Our systems usually have 8 VT. On one of those we have X (intentionally ignoring Wayland/Weston here and multiple X instances) and on the rest we have vtcon (aka VT framebuffer console). Even with X completely killed, a kernel module can be used for vtcon (usually, if a screen physically connected to the GPU you have one), thus rmmod will fail. You will see the reference counter in `lsmod | grep driver` show 1. > I might try again tomorrow but really not sure, I have a plane to catch > and my friend might not be available early enough. > Sure, please don't miss your plane. Everything else can happen in due time. Thanks Emil