Opened 5 years ago
Last modified 3 years ago
#15448 assigned bug
Synchronization with flat-panel display after live-USB boot is broken
Reported by: | Evgen | Owned by: | pulkomandy |
---|---|---|---|
Priority: | normal | Milestone: | R1 |
Component: | Drivers/Graphics/intel_extreme/9xx | Version: | R1/Development |
Keywords: | Cc: | rudolfc | |
Blocked By: | Blocking: | ||
Platform: | x86 |
Description (last modified by )
hrev53561 does not sync with monitor
Display: LG FULL HD 21.7 1920 x 1080 32 bit/pixel 102 dpi 60Hz, plugged to machine via VGA port. Chip: Intel GMA (i915 GM)
Booting with live-USB passes through whole set of icons of splash-screen, but when it comes to welcome to install, synchronization is broken. I have tried to set different video modes (standard VGA, 640 x 480 ...). Does not help. Latest revision that worked with no issues was hrev53543
Update: was actually able to boot with VESA mode with hrev53556, sorry. The last build that works normally was hrev53546. I wonder whether support for videochip on my machine is dropped?
Attachments (28)
Change History (105)
comment:1 by , 5 years ago
Description: | modified (diff) |
---|
comment:2 by , 5 years ago
Component: | Audio & Video → Drivers/Graphics/intel_extreme |
---|---|
Owner: | changed from | to
Status: | new → assigned |
comment:3 by , 5 years ago
Description: | modified (diff) |
---|
comment:4 by , 5 years ago
comment:5 by , 5 years ago
OK, will provide syslogs for both cases. Actually, there seems another problem: when I asked bootloader to show debug info, it shows several pages (that I can continue listing by pressing 'space'), and then machine totally hangs. But if in debugging options I disable page listing, everything is fine and machine proceeds to the desktop.
comment:8 by , 5 years ago
comment:9 by , 5 years ago
hrev53567 bootlog (9 shots). Sorry, mistakenly uploaded them for ticket 14368 too.
comment:10 by , 5 years ago
These screenshots do not include any information from the intel driver (the log stops before that). You should be able to access the syslog this way:
- Boot the machine normally (to a black screen) from a writable device (USB stick or hard disk)
- Reboot (use KDL shortcut and type "reboot", for example) and select VESA from the boot menu
- Get the syslogs from /var/log (previous boot syslogs are stored there as well)
comment:11 by , 5 years ago
Ok, if I got it right:
- Live-USB boot with intel videodriver active. Syslog will be saved.
- Live-USB boot with VESA videodriver active. Previous syslog will be saved in /var/log.
You want this file. All correct?
comment:12 by , 5 years ago
Yes. Get all 3 syslogs from /var/log (syslog, syslog.1 and previous_syslog) just to be sure. I'll find what I need there.
comment:15 by , 5 years ago
Hi,
If I read the syslog correctly, you also have an internal display in your laptop, of resolution 800x480. Is this correct?
It seems the driver is mixing up the two displays and setting a mode partly based on that LVDS panel, and partly based on the VGA output.
comment:16 by , 5 years ago
Hi,
Yes, all correct, the internal display was there, but then I detached it from motherboard (broken matrix). Now the flat panel monitor is plugged in via VGA port.
comment:17 by , 5 years ago
Hi,
Happy New Year! I guess you may not have an access to machine with this particular videochip, but we want the driver :) I cannot help in debugging it due to I don't have knowledges to do that. What if we do the following. You will compile the build where you add another sort of option in menu (accessible when you press "space" before splash screen) where I can edit these PLL values, mentioned in https://git.haiku-os.org/haiku/commit/?id=b8f6e4813d2befd024b556e6dec98398489b69b5 and these values will be passed to videodriver. Once the right set of these values bring back the syncing of flat panel monitor, I will tell you which ones are correct so you will use them to update code for videodriver. Something like this. Have I made myself clear? What do you think?
comment:18 by , 5 years ago
Component: | Drivers/Graphics/intel_extreme → Drivers/Graphics/intel_extreme/9xx |
---|
Hi,
The function to compute the PLL values works, so I have no better values to offer you.
I made some testing on a laptop I have here and I foudn the following:
- If I boot with the VGA display disconnected, and plug it after boot is complete, I get working video on both displays
- If I plug the VGA but boot with display on the laptop screen, I get black screen on both displays
- If I use the BIOS keyboard shortcuts to set the output to VGA, and then boot Haiku, I get working display on VGA only
I will see if I can get this machine to reliably boot with both displays on (in clone mode), and we will see if that helps you as well once it is working for me.
comment:19 by , 5 years ago
Milestone: | Unscheduled → R1/beta2 |
---|
Hi,
There were several fixes in the last few weeks which could make things better. Can you try a recent nightly? If it doesn't work, can you enter KDL and use the following two commands:
ie_pipe 0 ie_pipe 1
It could help me understand the problem. And please upload a new syslog as well as I improved the tracing a bit.
comment:20 by , 5 years ago
Hello,
I have tried hrev53803. No synchronization. Could you tell where exactly I have to enter these two commands. Should I boot in VESA mode?
comment:21 by , 5 years ago
No, you have to enter then in the kernel depugger while the driver is used. You may have to do this "blindly" while the display is not working. Results get written to the syslog
comment:22 by , 5 years ago
Booting ends up into desktop but not into KDL. Is any keystroke combination to get into KDL?
by , 5 years ago
Attachment: | previous_syslog.2 added |
---|
by , 5 years ago
comment:25 by , 5 years ago
Hi,
Syslogs (hrev53819) attached (syslog - VESA mode, previous_syslog - Intel)
comment:26 by , 5 years ago
The ie_pipe command works only when using the driver. So you need to do the following:
- Boot using the driver and get a blackscreen
- Type alt + printscreen + D
- Type "ie_pipe 0"
- Type "ie_pipe 1"
- Type "co"
- Press power button to poweroff machine (press once, it should shutdown cleanly)
- Reboot using VESA and get the syslogs (you can check that the ie_pipe command and results are in the syslogs).
comment:28 by , 5 years ago
Can you try with this change: https://review.haiku-os.org/c/haiku/+/2236
This should not be needed according to the docs but I can't see anything else that has changed.
comment:29 by , 5 years ago
Milestone: | R1/beta2 → R1/beta3 |
---|
Move tickets that will not be solved in beta2 to beta3.
comment:30 by , 4 years ago
Milestone: | R1/beta3 → R1 |
---|
No one is working on the intel driver at the moment so it seems no progress will be made on these issues for beta3. Remove them from the milestone so we can better see our status.
follow-up: 32 comment:31 by , 3 years ago
Hello Evgen, could you please retest with a recent nightly? I've committed a change to the PLL setup in:
This might solve your issue. Please let us know how the current state is for you? Thanks!
comment:32 by , 3 years ago
Hello rudolfc, I have seen these changes and of course tried that nightly. No, it doesn't work. Still the same - no synchro, only VESA (with unplugged VGA cable also at bootloader stage). Latest nightly I have tried is 55636 nightly.
comment:33 by , 3 years ago
Did you test a fresh nightly, so not via an update or so? Since you probably need to make sure the preset modeline on existing installs is removed. Which is the case on a fresh USB stick for instance.
If so, can you upload a full syslog from such a boot in which the intel driver kicks in? From the first syslog you uploaded it seemed the PLL had no problems at all, at least I saw a requested-found offset that was very low so that should not have been a problem..
Anyhow, a syslog would be very interesting to see :-)
by , 3 years ago
Attachment: | previous_syslog.3 added |
---|
follow-up: 37 comment:35 by , 3 years ago
Thank you. syslog 3 seems unrelevant btw. So, with syslog old: I only see that there's an internal panel, but no analog VGA screen connected. To get a better idea of what you are after, can you answer below questions:
- is the internal panel still defective/would you expect a picture there?
- did you have (during syslog.old) have an analog VGA connected screen attached (the 1920x1080)?
- this is a laptop, gen3 graphics, with only an internal panel and one analog VGA connector for a secondary screen?
- what exactly do you intend to see? (I guess I can conclude that from answers to the previous questions?)
The driver at least thinks you only have the internal panel connected, and the PLL settings seem OK for that. (I was pointed to this ticket via https://review.haiku-os.org/c/haiku/+/2236)
I can/will retest the driver on a generation 3 system here, though that isn't a laptop so I will not be able to test your setup for a part, just so you know.
Thanks!
comment:36 by , 3 years ago
Cc: | added |
---|
comment:37 by , 3 years ago
Hi rudolfc, Damn, I think I confused you. Both syslogs are from intel driver, no VESA mode. Anyway:
- is the internal panel still defective/would you expect a picture there?
No, it was broken and I trashed it.
- did you have (during syslog.old) have an analog VGA connected screen attached (the 1920x1080)?
Yes, monitor was plugged in to VGA port.
- this is a laptop, gen3 graphics, with only an internal panel and one analog VGA connector for a secondary screen?
Yes, correct.
- what exactly do you intend to see? (I guess I can conclude that from answers to the previous questions?)
Well, if I got correctly what you say: I boot the machine and during boot prompt I unplug the display, let machine fully boot, plug monitor back. With this scenario I can only get 800 x 600 x 75 Hz mode. I will just mention that last workable build for my case was hrev53546 and I was able to set 1920x1080 res.
Thank you. Let me know if I can help in any way
by , 3 years ago
Attachment: | ticket_15448_evgen.txt added |
---|
comparison between good and bad working driver for evgen: exact settings both outputs.
comment:38 by , 3 years ago
Hi evgen, I think I know what the problem is:
- I uploaded the relevant parts from the good and bad syslog for you. You can see the PLL dividers choosen differ (this is where changes were made in the driver between the good and bad revs), but there is a second important change visible in the syslogs:
- The internal panel is, when VGA works, programmed to display the same mode as the VGA output. On the later non working setups the internal panel is programmed to its native 800x480 mode, with a much lower pixelclock setting as well (of course).
I did a test on my desktop third gen gfx, intel: it only has a VGA output:
- I connected a 1280x1024 analog screen. I can set modes and refreshrates: all good.
- I connected a 1920x1080 analog screen. I can set modes and refreshrates: all good.
- I looked at the syslog, for the 1920 screen, and compared the PLL settings done to the settings done for you in the non-working setup: they are -exactly the same-.
There's just one conclusion I can think of: the PLLs are connected just the other way around. the PLL programmed for the internal panel actually programms the VGA output and vice versa. This would fit exactly the observations above.
But:
- looking at all hrevs between the good and bad revs there is not a single change in the driver that would explain the difference in internal panel programming.
so:
- It must have something to do with the BIOS settings in your laptop. If you choose VGA output only (like pulkomandy did), if possible for you, then I would think there's a (100%) chance you get the current driver working.
Questions I have:
- @evgen: could you please test via BIOS settings or keyboard shortcuts if you can get your analog output going? (leave the VGA screen connected always please: no tricks should be done here!)
- @pulkomandy: would you happen to have the hardware to do some testing with the PLL BIOS assignment, and instead of trying to program it in the driver, follow the BIOS setup for generation 3?
Unfortunately I cannot test this because I don't have the right hardware (laptop, or multiple output desktop gfx in gen 3 version). I would have to program blindly something to try to detect the BIOS setup and follow that, and my experience is that doing so blindly is asking for more trouble. If at all possible I'd rather not do that ;-)
Thanks guys for looking into this!
comment:39 by , 3 years ago
Hi rudolfc, Well, thank you for your efforts. No, the BIOS doesn't have any video settings, so I can't change anything in there. I have reinstalled back hrev53546 to grab the syslog. Could you please have a look at it if there are any details, relevant to the problem.
comment:40 by , 3 years ago
I'll have a look asap. Thanks for retesting that.
BTW Are you running 32 or 64bit? I could upload a patched driver to this ticket that foregoes the lowres forced setting for your internal panel: If I am thinking correctly that should give you a picture on VGA with the current driver (apart from that test-patch). We need to make sure this is the case..
by , 3 years ago
Attachment: | lvds_x86_test_1.zip added |
---|
gen3 LVDS x86 test nr. 1: block panel hardware mode, keep requested mode. (panel scaling is still 'true')
comment:42 by , 3 years ago
Just uploaded a testversion of the driver for you Evgen. Please install in non-system unpackaged hierarchy, Do you know howto do that?
Note this will not work if you have a UEFI BIOS since app_server will never load from this hierarchy 'in time' unfortunately, but I expect you have a legacy bios ;-)
comment:43 by , 3 years ago
Hi, yes, I have BIOS. No, I don't know, to be honest, how to do that. I have placed 2 files from archive to ~/Desktop. What commands in Terminal should I run?
comment:44 by , 3 years ago
Hi, For my nvidia driver (and others) I once created a dedicated webpage. I've added instructions howto install a driver manually on Haiku, which also applies to the intel_extreme driver (same procedure)
Please have a look at my homepage here:
http://rudolfs-place.nl/BeOS/NVdriver/setinst.html#installation
Thanks!
by , 3 years ago
Attachment: | previous_syslog.4 added |
---|
comment:45 by , 3 years ago
Hi, thank you.
I seem followed the recipe and placed files where they should be (please see 2 screenshots to check if I have done something stupid and syslog). Based on syslog the driver (from /boot/home) was not loaded.
Folder /accelerants didn't exist, so I created it and flagged as executable. As well as for the files you have sent.
comment:46 by , 3 years ago
Hi, Thanks! You did it perfectly right. The driver was loaded. I know because I added one specific line to it for the syslog:
- Blocking LVDS mode adaptation, test #1
But the PLL was still programmed for the low refresh mode, so I have to upload a new one for you to test. Stay tuned ;-)
comment:47 by , 3 years ago
BTW: Can you upload a syslog where the analog screen -is- connected next time? From the log it seems this time you tried only with the internal screen? Please confirm..
comment:48 by , 3 years ago
Hmm, Seems you have to retest, with analog screen connected, and upload a syslog from that. The PLL is at least already programmed low because the driver doesn't export higher modelines because there's no screen that can display that..
So please, retest with the current driver, with analog screen connected the whole time, and upload a syslog from that.. :-)
comment:49 by , 3 years ago
Hello, I think I am doing something wrong regarding picking the right syslog. I do the following:
- Fully booting the machine (monitor connected to VGA port). At that stage there is no synchronization. This stage is where intel extreme driver kicks in.
- Wait until machine fully booted.
- Rebooting the machine with reset button.
- Turning on VESA driver and let the machine to fully boot to desktop.
- Collecting file named syslog.old.
Then looking into content of the file, I don't see anything regarding "intel extreme". Am I doing something stupid?
comment:50 by , 3 years ago
Hi, no nothing stupid of course. You're just running into the situation the file gets lost by the reset. You could try:
- push reset button for a short time: the idea is that the OS saves all cached data to file and reboot after that. On older systems, where the reset is a hardware button, instead of a software (like) button, this will not work.
- Other method: shortly press <Alt><Ctl><Del>. This will bring up a haiku dialog that lets you kill processes etc, but you will not see it of course. Wait a few seconds. Now press that combination again, this time for at least 5 seconds, until you hear the system restarting.
- Does the system have a hardware serial port? You could try connecting a second system with a terminal program to that port. Settings are (I think) 115200, 8, 1. The syslog is written to that port as well (com1) so you could grab it from there.
- You could try connecting to the machine using the network and a ftp or so connection. You can simply copy the file over that connection before rebooting the machine.
I hope one of those methods will work for you?
Thank you for your efforts!
by , 3 years ago
by , 3 years ago
Attachment: | syslog.2.old added |
---|
comment:51 by , 3 years ago
Hello again
- push reset button for a short time: the idea is that the OS saves all cached data to file and reboot after that.
Yes, I see a pop-up window and them machine shuts down, so I assume the log is saved before that.
- Other method: shortly press <Alt><Ctl><Del>. This will bring up a haiku dialog that lets you kill processes etc, but you will not see it of course. Wait a few seconds. Now press that combination again, this time for at least 5 seconds, until you hear the system restarting.
This doesn't work for me (<Alt><Ctl><Del> does not bring the dialog). Anyway, I attached both syslog (In both logs I see "Blocking LVDS mode adaptation, test #1".), please throw a look.
comment:52 by , 3 years ago
Hi, syslog.2.old indeed has the VGA display with the testdriver, so you succeeded. But you did not have a picture on the 1920 VGA display I think? Please confirm (how were you able to see the pop-up window?)
comment:53 by , 3 years ago
Hi, Rudolf, no, of course I don't get 1920 picture, just unsychro mess, but I can confirm that right after pressing Reset button some extra mess appears in the central part of the screen and then machine shuts down. It is that pop-up window. What else could that be.
comment:54 by , 3 years ago
Ah yes, I see. Thank you. :-) Please understand that I'm only trying to get the clearest 'picture' of the situation possible, nothing more ;-) Interesting btw, I never saw a dialog coming up from pressing the reset button myself on Haiku. I realize that if all is right I'm only pressing it if I don't have a screen as well, and in my case it's completely black most of the time then.
Anyhow, I'll come up with a new testdriver for you, this time with modified PLL restrictions instead, as mentioned in a old patch on gerrit. If that would work that would mean the mobile gen3 has different restrictions than the desktop version.
by , 3 years ago
Attachment: | vga_x86_test_2.zip added |
---|
test driver nr2: modified PLL settings for VGA (148Mhz instead of 200Mhz)
comment:56 by , 3 years ago
Hi, I just uploaded a new x86 testdriver (will log driver test 2). Please see what it does for your VGA screen.
The modification this time is exactly as mentioned here:
https://review.haiku-os.org/c/haiku/+/2236/1/src/add-ons/accelerants/intel_extreme/pll.cpp
Please upload another syslog from this try. Thank you!
by , 3 years ago
by , 3 years ago
Attachment: | syslog.3.old added |
---|
comment:57 by , 3 years ago
Hi, thank you. Ran with the newest driver. Still no synchro. Syslogs attached.
by , 3 years ago
Attachment: | vga_x86_test_3.zip added |
---|
test driver nr3: modified PLL settings for VGA (reversed P2 only)
follow-up: 59 comment:58 by , 3 years ago
Hi again (sorry for the late reply..) I created a new testdriver for you. The PLL is back at the latest version, though postscaler P2 is reversed as it was in the driver that worked for you.
It must be an error somehow, as other parts of the table surrounding it says so, but still, this is how it was..
Can you retest your VGA output with this driver and upload a new syslog? (the .old syslog contained what I needed from testdriver 2)
Thanks in advance!
by , 3 years ago
Attachment: | syslog.4.old added |
---|
follow-up: 63 comment:59 by , 3 years ago
Hello, No, doesn't work. Stil no synchro. Syslog.old attached
comment:60 by , 3 years ago
Hmm.. that's a pity. Can you do another try with the same driver? the log doesn't contain the (full) attempt.. I could not determine the driver actually ran..
Thanks!
by , 3 years ago
Attachment: | screenshot3.2.png added |
---|
comment:61 by , 3 years ago
Apparently the syslog is not generated by OS during reboot (when I have session with intel extreme driver) process. If you look on screenshot - the syslog.old is from Dec 1st.
comment:62 by , 3 years ago
The syslog is always appended to the syslog file, there is a rollout when the syslog file is too big: https://git.haiku-os.org/haiku/tree/src/servers/syslog_daemon/syslog_output.cpp#n53
if your display isn't working and you need to reboot, press one-time the power button, Haiku will notice and reboot cleanly, including writing the syslog to disk.
comment:63 by , 3 years ago
2 rudolfc, All good. I have installed the hrev56010 and let software get updated. After the reboot intel extreme driver is fully functional as well as the flat panel monitor synchronization seems working properly. I may bring the screenshot to prove it, but I guess it's not necessary. The ticked can be closed.
Thank you for your work.
follow-up: 65 comment:64 by , 3 years ago
Please attach a syslog for reference, thanks. Does the brightness slider work as expected?
by , 3 years ago
comment:65 by , 3 years ago
Replying to korli:
Please attach a syslog for reference, thanks. Does the brightness slider work as expected?
Syslog attached. Slider is movable but brightness does not change.
follow-up: 67 comment:66 by , 3 years ago
Hi, could you tell me the output of this command in KDL (in Terminal, 'kernel_debugger'):
ie_reg 0x61254
comment:67 by , 3 years ago
Replying to korli:
Hi, could you tell me the output of this command in KDL (in Terminal, 'kernel_debugger'):
ie_reg 0x61254
Hi, the output was:
intel_extreme register 0x61254
value: 0xfb00fa (16449786)
comment:69 by , 3 years ago
by , 3 years ago
by , 3 years ago
comment:71 by , 3 years ago
Hi, OK, I'll try to be as precise as possible:
- I took your nightly build from your x86 link and booted.
- No synchro. Rebooted in VESA mode. This is what (1.jpg) I got. Trying to set mode to different one actually didn't work - the screen blinked but didn't switch to different mode.
- Screen became corrupted but somehow I was able (blindly) to set 1280 x 1024 res.
- Rebooted in intel-extreme mode (2.jpg). Was not able to set the native resolution 1920 x 1024 60 Hz (based on what windows nvidia driver says).
- Doing all this on hrev56030.
comment:72 by , 3 years ago
VESA mode setting I can't say. Please provide a syslog maybe with hrev56036.
by , 3 years ago
comment:74 by , 3 years ago
1920x1080@60Hz is listed in VESA EDID. 1920x1080 was first selected, then you changed to 1400x1050.
What about the brightness settings?
comment:75 by , 3 years ago
1400x1050 is the maximum that I can get. Slider doesn't change the brightness.
comment:76 by , 3 years ago
Interesting would be to log why we evict this mode. ATM I can't find where it could happen.
comment:77 by , 3 years ago
Hi, I wonder, is any chance in the future to have screen tilting/rotation feature implemented?
No, we don't drop support for hardware, but testing depends on our access to relevant machines.
There is probably a problem in https://git.haiku-os.org/haiku/commit/?id=b8f6e4813d2befd024b556e6dec98398489b69b5
But it's possible the issue is fixed by https://review.haiku-os.org/c/haiku/+/1898 , if you could build Haiku with that change applied and test that, it would be great to confirm that this works.
Otherwise, I would need a syslog, ideally from both the latest working revision and a current (broken) one.