batocera-linux / batocera.linux

batocera.linux
https://batocera.org
Other
1.94k stars 501 forks source link

Nvidia GPU - Black Screen after updating from 37 to 38 #10214

Closed J1mb0987 closed 11 months ago

J1mb0987 commented 11 months ago

Hi All,

Having an issue with black screen after upgrading from 37 to 38.

After the final splash screen (just before it should load the GUI) it just sits on a black screen. If I press ctrl,alt,del and F3 it displays the following;

X Error of failed request: BadValue (interger parameter out of range for operation) Major opcode of failed request: 151 (GLX) Major opcode of failed request: 3 (X_GLXCreateContext) Value in failed request: 0x0 Serial number of failed request: 118 Current serial number output stream: 119 set eDP-1 as primary /usr/bin/xrandr 0bt-Message: failed to open input method 0bt-Message: failed to open input method 0bt-Message: failed to open input method 0bt-Message: failed to open input method

Am using a hybrid laptop that has both intel and NVidia GPU, I've changed to conf file to force over Nvidia same issue, I've also updated from within linux/37 to 38 and the same thing happens.

Not sure how to pull the logs out for nvidia & display but id someone can point me in the right direction I'll upload them.

Cheers

dmanlfc commented 11 months ago

see the wiki for logs to provide...

J1mb0987 commented 11 months ago

I've just taken a photo of the two log files and the details after the last splash screen/ Display Log Nvidia Logs After Load screen

Cheers

muyesuyes commented 11 months ago

I have two separate computers, both GTX 1050 and GT630M. I get the same error after the update on both computers. I think there is a general problem with nvidia in version 38. Also, before the update, when Mesa was reading the Intel card (Intel HD 4000) in version 37, when it was upgraded to version 38, it remained on a black screen.

sorry my bad English.

dmanlfc commented 11 months ago

@muyesuyes you need to do the same as @J1mb0987 - ideally paste the files in here.

dmanlfc commented 11 months ago

@muyesuyes thanks, we have the information to improve this for future releases. in the meantime, set nvidia-driver=true in your batocera-boot.conf file

muyesuyes commented 11 months ago

Even though I tried all the solutions, I always encounter a black screen. Mesa (intel) drivers in version 38 also do not work. I had to revert to version 37. When I activate the nvidia-driver=true setting in version 37, it still gives the same problem. Also, even if I turn the setting off again, it continues to give a black screen. I have to reinstall it.

sorry my bad English.

phanosp commented 11 months ago

I am experiencing the same issue with nvidia geforce 1660 super model. I already have nvidia-driver=true in batocera-boot.conf but the problem still exists. I think emulation station just crushes. If I logged in using ssh and try to stop/start the emulation station there is a flash on the tv while trying to start emulation station and the again black screen

I was able to start the emulation station by setting nvidia-driver=legacy in batocera-boot.conf but in this scenario I have no audio on batocera so this method is not good (I am sending the audio thought the hdmi I have no other cable connected). My setup works just fine in windows and on batocera v37 so I am guessing this is an issue with the latest nvidia driver in batocera v38.

Any suggestions? Which log file (location) should I sent to you (if needed)?

dmanlfc commented 11 months ago

hrmmm - nvidia on v38 works for a bunch of people however...

try this v39 build... https://drive.google.com/drive/folders/1_bqmR7CoZ78i7DolYt5b-RRqB5c-LPyN?usp=share_link

if that doesn't work I need the nvidia.log & display.log files. see the wiki on how to get them.

phanosp commented 11 months ago

I am attaching the nvidia and display logs. nvidia.log display.log

I will also try to upgrade to the version you are suggesting. Since I have already reverted back to v37 until a solution is found should I try to upgrade to v39 directly from version v37 or from version v38?

dmanlfc commented 11 months ago

you can go v37 to v39 no problem

dmanlfc commented 11 months ago

@phanosp - 1280 x 800 @ 74.99 Hz is valid for your monitor I assume. It's the preferred resolution detected.

J1mb0987 commented 11 months ago

After installing v39 everything loaded fine without any amendments, shall I use this version going forward?

nvidia.log display.log

muyesuyes commented 11 months ago

hrmmm - nvidia on v38 works for a bunch of people however...

try this v39 build... https://drive.google.com/drive/folders/1_bqmR7CoZ78i7DolYt5b-RRqB5c-LPyN?usp=share_link

if that doesn't work I need the nvidia.log & display.log files. see the wiki on how to get them.

Is there an installable image file for v39? I don't have my other device right now to install the update manually.

phanosp commented 11 months ago

@phanosp - 1280 x 800 @ 74.99 Hz is valid for your monitor I assume. It's the preferred resolution detected.

@dmanlfc No my TV is a 4k tv. In both windows and batocera v37 I go up to 4k resolutions with not issue.

However I have two display outputs connected on my graphic card. One is HDMI which is directly connected to my TV (4K) and the DP-1 which is connected to my yamaha receiver which in turn is connected to my TV. In this case (because my yamaha receiver only supports up to 1080p) I get resolutions only up to 1080p

Is it possible that batocera v38 gets confused when you upgrade and wrongly detects the resolution in DP-1 and crashes because it believes it is a tv but it is actually a yamaha receiver connected directly to it? I notice a warning on your first line in batocera v38 change log "...Warning: Batocera is now set up to the default TV resolution on most systems...." so maybe this is the issue?

I know this is a long shot but if this the issue do you have a workaround? Maybe a way to force batocera NOT to detect the resolution and load emulation station?

dmanlfc commented 11 months ago

hrmmm - nvidia on v38 works for a bunch of people however... try this v39 build... https://drive.google.com/drive/folders/1_bqmR7CoZ78i7DolYt5b-RRqB5c-LPyN?usp=share_link if that doesn't work I need the nvidia.log & display.log files. see the wiki on how to get them.

Is there an installable image file for v39? I don't have my other device right now to install the update manually.

It's in the full image folder.

dmanlfc commented 11 months ago

@phanosp - 1280 x 800 @ 74.99 Hz is valid for your monitor I assume. It's the preferred resolution detected.

No my TV is a 4k tv. In both windows and batocera v37 I go up to 4k resolutions with not issue.

However I have two display outputs connected on my graphic card. One is HDMI which is directly connected to my TV (4K) and the DP-1 which is connected to my yamaha receiver which in turn is connected to my TV. In this case (because my yamaha receiver only supports up to 1080p) I get resolutions only up to 1080p

Is it possible that batocera v38 gets confused when you upgrade and wrongly detects the resolution in DP-1 and crashes because it believes it is a tv but it is actually a yamaha receiver connected directly to it? I notice a warning on your first line in batocera v38 change log "...Warning: Batocera is now set up to the default TV resolution on most systems...." so maybe this is the issue?

I know this is a long shot but if this the issue do you have a workaround? Maybe a way to force batocera NOT to detect the resolution and load emulation station?

Unplug the receiver and test. If that works, set the video out accordingly and then try with your receiver plugged in. According to the logs it's seeing an output of 'Virtual-1' which is very unusual. Batocera has never supported multiple monitors. The NVIDIA driver update from v37 to v38 may have changed in boot device detection.

phanosp commented 11 months ago

Unplug the receiver and test. If that works, set the video out accordingly and then try with your receiver plugged in.

@dmanlfc Do you mean test after upgrading or revert to v37, unplug the receiver and then upgrade?

I am asking because when I set the nvidia-driver=legacy in batocera-boot.conf and booted to emulation station I tried setting the video correctly but when going to nvidia-driver=true the problem re-appeared.

Also it seems strange to me since I have been using the batocera since v35 and I had no such issue with my setup. Is there a way to make this version detect my setup correctly as in previous versions or the changes in this version make this impossible?

Thanks

dmanlfc commented 11 months ago

We cannot control what the NVIDIA driver does at boot easily. You can set video out in v37 or v39. Either should work. But you should start with a simpler environment and then work from there. I would also not manually set the batocera-boot.conf unless a last resort.

phanosp commented 11 months ago

v37 or v39.

@dmanlfc thanks for the reply. I will do as you suggested and get back to you with results, maybe they will help you in future releases.

Just something I did not understand with what you said above "... You can set video out in v37 or v39...." You mean you can not set video also in v38 (something changed in this version) or you mean "v37 to v39"?

dmanlfc commented 11 months ago

v37 to v39.

phanosp commented 11 months ago

v37 to v39.

@dmanlfc thank you. I will report back when I have more info.

mabounour commented 11 months ago

hrmmm - nvidia on v38 works for a bunch of people however...

try this v39 build... https://drive.google.com/drive/folders/1_bqmR7CoZ78i7DolYt5b-RRqB5c-LPyN?usp=share_link

if that doesn't work I need the nvidia.log & display.log files. see the wiki on how to get them.

i have the same issue with ver 38 i tried both upgrade from ver 37 and clean install for ver 38 and the same black sceen after splash screen i tried ver 39 clean install and the same issue i have laptop aspire v5-573G with nividia Geforce Gt 750M i tried to get you nvidia.log & display.log but i don't understands how to do it from the wiki is there more detailed steps to how to get them

muyesuyes commented 11 months ago

I think my problem is because I am using GT630M, which is a driver that is no longer supported. The same device has Intel HD 4000 and Batocera 37 detects it, I think that's why I can get images. I think I'll stick with v37. Finally, is it possible to update the MAME emulator in v37?

sorry my bad English.

dmanlfc commented 11 months ago

See the wiki @mabounour and @muyesuyes to provide the logs.

phanosp commented 11 months ago

Hi @dmanlfc,

just finished testing different cases and here are my results.

1) Unplug all the excess cables from my pc (including the dp-1 that is was connected to my yamaha receiver) and upgraded from batocera v37 to v38 I am attaching the new nvidia.log and display.log files nvidia.log display.log

Result is the same as before. Emulation stations crashes. I also tried resetting my batocera-boot.conf file but the result is the same. The only way I get emulation station to start is to set nvidia drivers to legacy in batocera-boot.conf but in this scenario I have no sound as I explain above. Is it possible that my graphic card (gefroce gtx 1660 super) is now consider legacy and is not supported in the latest batocera version and later?

2) I tried upgrading to v39 beta (the one you mention above). This was quite a nightmare. First I could not upgrade since the link you provided (using batocera-upgrade command from shell) was not accepted by the command. I then manage to create another link (though real-debrid) which I could pass to the batocera-upgrade command but then I got an error that there was not enough space on boot partition. I tried deleting some files on boot partition (I remount boot parition as rw) but batocera became unusable. Then I had to install fresh version on a usb drive and start from scratch using the the v39 beta version. Unfortunately the result was the same as v38. Emulation station will not start. I only was able to start emulation again by setting nvidia to legacy in batocera-boot.conf but again no audio. So what is stopping me for using batocera v38 is also present in v39 beta.

I will now try to revert back to v37 and try to re-create my settings and data. Can you please suggest any way to make the v38 usable on my setup or should I give up and stick on version v37 from now on? Could this be a bug that you will fix in a later version?

Thanks

dmanlfc commented 11 months ago

@phanosp you're to use the v39 release I posted earlier. Please don't manually set the batocera-boot.conf unless instructed to do so. It messes with the logs I want to capture. The 1660 super should work with the latest driver.

phanosp commented 11 months ago

@dmanlfc I can not really use the v39 release since even with nvidia set to legacy I have no audio :(

dmanlfc commented 11 months ago

Audio we can look at later, I need clean logs of v39 without any manual setting.

phanosp commented 11 months ago

@dmanlfc which logs do you need? nvidia and display or the whole folder?

dmanlfc commented 11 months ago

The same logs I have been requesting. nvidia.log & display.log.

muyesuyes commented 11 months ago

See the wiki @mabounour and @muyesuyes to provide the logs.

My v39-dev log files: display.log nvidia.log mpv.log

dmanlfc commented 11 months ago

@muyesuyes thanks, when did you get the build?

mabounour commented 11 months ago

until i get you the log files i tried to find ver37 on site but i dont find it i delete it by mistake where can i find this ver

dmanlfc commented 11 months ago

@muyesuyes update the build again & try again - it should work.

phanosp commented 11 months ago

Hi @dmanlfc,

I have been trying to get you the logs on a clean installation of v39 on my system but so far it has been proven a challenge. Since I have already reverted back to v37 to get a working system at first I tried to install the v39 on a new usb drive fresh and try that. After booting from the usb I think batocera v39 was "seeing" some of the local files on the local hard drive that I have batocera v37 installed and it was messing the boot process entirely (instead of emulation station I got to a shell that stated that the version was v37 but on usb I have v39 beta and I booted from usb on my system).

After this I removed the hard drive that batocera v37 is installed and tried again. I was able to boot v39 clean in this case but of course emulation station in this case crashed and I had no way of getting the files. I tried ssh to the machine but there was not connection. I notice that I could not ping batocera from a remote client so probably no network service was starting up. I remove the usb and plug it in my linux machine (in order to mount the share partition and hopefully get the files) but the shared partition was empty.

Unless you have some other suggestion in order to get something to start up I need to edit the batocera-boot.conf file but you specifically said you do not want this for the logs. Is there something I miss here? Do you have any suggestions please?

muyesuyes commented 11 months ago

@muyesuyes thanks, when did you get the build?

I installed the v39-dev version you linked. I get the same result in both v38 and v39. It works with intel mesa on v37 (intel hd 4000), but on both versions 38-39 I get the black screen error. :(

mabounour commented 11 months ago

i have the same problem i just have clean insulation for both v38 and ver39 i cant ssh them if you help me with ver37 i can install it and connect to network then i upgrade to v38 then i send you the display.log and nvidia.log

muyesuyes commented 11 months ago

After the previously deleted GT5-6-7M series drivers, I think the existing Intel HD 4000 (Mesa) driver with v38 has also been deleted from the package. What I don't understand is why old drivers are persistently deleted? The reason why people prefer distributions like Batocera is that they can use their old devices and play nostalgic games. I gave up. I will continue with v37. If I have the opportunity to update the MAME version, I would appreciate it if you could at least share its details.

Sorry my bad English.

dmanlfc commented 11 months ago

@muyesuyes check the version is 39-dev-4f1de1e9cd 2023/10/22 01:32 when downloading & try again please. the nvidia.log will show the version. the drivers are NOT deleted, there is a detection problem on your PC. this should be fixed now.

dmanlfc commented 11 months ago

i have the same problem i just have clean insulation for both v38 and ver39 i cant ssh them if you help me with ver37 i can install it and connect to network then i upgrade to v38 then i send you the display.log and nvidia.log

The logs from v37 will be fine.

Boycie456 commented 11 months ago

Hi, just writing to say that I'm new to Batocera and I'm having the same problems, please fix.

dmanlfc commented 11 months ago

Hi, just writing to say that I'm new to Batocera and I'm having the same problems, please fix.

come talk to me on Discord if you're online now

dmanlfc commented 11 months ago

@Boycie456 if you're new, do a clean install using the image from here: https://drive.google.com/drive/folders/1_bqmR7CoZ78i7DolYt5b-RRqB5c-LPyN?usp=share_link

use the full image - batocera-x86_64-x86_64-39-20231022.img.gz

Boycie456 commented 11 months ago

oh, cool, thanks!

On Sun, Oct 22, 2023 at 1:02 PM Daniel Martin @.***> wrote:

@Boycie456 https://github.com/Boycie456 if you're new, do a clean install using the image from here: https://drive.google.com/drive/folders/1_bqmR7CoZ78i7DolYt5b-RRqB5c-LPyN?usp=share_link

use the full image - batocera-x86_64-x86_64-39-20231022.img.gz

— Reply to this email directly, view it on GitHub https://github.com/batocera-linux/batocera.linux/issues/10214#issuecomment-1773978845, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANU2Z7Q7LBP77YJ74XMAVG3YASEDPAVCNFSM6AAAAAA6FFHZXWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONZTHE3TQOBUGU . You are receiving this because you were mentioned.Message ID: @.***>

muyesuyes commented 11 months ago

@muyesuyes check the version is 39-dev-4f1de1e9cd 2023/10/22 01:32 when downloading & try again please. the nvidia.log will show the version. the drivers are NOT deleted, there is a detection problem on your PC. this should be fixed now.

Here is my new v39-dev build logs and screens: display.log mpv.log nvidia.log 20231022_133714 20231022_133456

dmanlfc commented 11 months ago

@muyesuyes excellent, thanks. ok, we now have some stuff to work better with. I'm uploading 39-dev-1548dac599 2023/10/22 07:55 it will be there in 20mins from now. Same share, try again when you can & let me know. It should boot now.

phanosp commented 11 months ago

Hi @dmanlfc ,

I was able to clean boot v39 (filename batocera-x86_64-x86_64-39-20231022) and get you the logs. A clean install and run has the following logs in my system

1.logs.zip

Please let me know if you have a solution for me.

Thanks

muyesuyes commented 11 months ago

@muyesuyes excellent, thanks. ok, we now have some stuff to work better with. I'm uploading 39-dev-1548dac599 2023/10/22 07:55 it will be there in 20mins from now. Same share, try again when you can & let me know. It should boot now.

If you upload it and share the link here, I will download it again and inform you with the images. If we solve the problem, it will be good at least for those who want to evaluate their old devices like me. Currently, it does not recognize nvidia in v37, but at least it works with Intel HD 4000 (mesa). (Of course, unfortunately, I cannot play the games of PS2 and derivative consoles. Sega Saturn, 3DO, TurboGrafx CD, MAME etc. are no problem.)

sorry my bad English.

phanosp commented 11 months ago

Hi @dmanlfc

I just finish testing your latest version (39-dev-1548dac599) and I am sorry to report that the problem is still there for my setup (I am attaching the logs which I got with default settings so you can check your code). logs.zip

I also thought to try something else in this version. Since I notice something about VGA-1 in the logs I tried setting in /userdata/system/batocera.conf with global.videooutput=HDMI-0

After reboot nothing happened but then I tried to run emulation station from ssh shell and it started up. However it was extremely extremely slow. Any change on my controller it takes at least 30 seconds to respond on my TV. I manage to open system information and I notice that in this case the video drivers are mesa drivers.

Then i tried to make changes in the batocera-boot.conf files by setting nvidia-driver=true (along with the global.videooutput=HDMI-0 in /userdata/system/batocera.conf but nothing happened.

Then again I tried nvidia-driver=legacy (instead of nvidia-driver=true) and everything started up correctly. Emulation station started up on its own and it was responding normal. In this scenario the drivers that seem to be loading in batocera (under system information was version 470.xxxx which is different that the current production drivers version 5XX).

I still think that the latest nvidia drivers are not loaded or not working correctly on the v38 version and the latest v39 versions but I am no expert on this so I am waiting for your input.

Thanks

phanosp commented 11 months ago

Hi @muyesuyes,

I download it from here.

https://drive.google.com/drive/folders/1sD9p-qNy_KsqYbd3ACMQCoh05N3ZJ8hj

Maybe this is what you are looking for?