Opened 9 months ago

Last modified 2 weeks ago

#14276 new bug

intel_extreme: GM945 driver causes Haiku not to get past the splash screen.

Reported by: torad Owned by: kallisti5
Priority: normal Milestone: R1/beta2
Component: Drivers/Graphics/intel_extreme Version: R1/Development
Keywords: Cc:
Blocked By: Blocking: #14524
Has a Patch: no Platform: x86

Description

My netbook, the Dell Latitude 2100 will not boot past the splash screen while using the default driver (intel_extreme), and can only get past the splash screen while using the backup VESA driver. This seems to be a bug started from the nightly 41000 build to the present 52000 builds.

Attachments (6)

syslog (356.5 KB) - added by torad 9 months ago.
syslog from Haiku hrev49662
syslog.2 (452.6 KB) - added by torad 8 months ago.
syslog from recent Haiku hrev52211
DSCN0406.JPG (4.9 MB) - added by bbjimmy 8 months ago.
photo of on-screen debug output during boot.
20180812_144612.jpg (2.2 MB) - added by torad 8 months ago.
It seems for me, the point at which the splash screen freezes is at the main driver. Not the accelerant. It doesn't seem to start the accelerant at all.
wow.png (454.0 KB) - added by torad 8 months ago.
Here is the listdev output.
IMG_20190405_172557.jpg (657.7 KB) - added by torad 2 weeks ago.

Change History (27)

comment:1 Changed 9 months ago by torad

Correction: The bug did not show up until the 50000 builds, sorry about that.

comment:2 Changed 9 months ago by waddlesplash

Please post a syslog from a working build.

Changed 9 months ago by torad

Attachment: syslog added

syslog from Haiku hrev49662

Changed 8 months ago by torad

Attachment: syslog.2 added

syslog from recent Haiku hrev52211

comment:3 Changed 8 months ago by pulkomandy

This log seems to be several boots with the VESA driver, and none with intel_extreme enabled. The previous one is old, and the driver didn't have very good tracing then.

So:

  • delete your syslogs in /var/log/syslog
  • enable intel_extreme
  • reboot to black screen
  • shut down computer cleanly (press the power button once)
  • reboot to VESA
  • get the syslogs from /var/log/syslog* (there may be .old files, etc, grab them all just in case)

comment:4 in reply to:  3 Changed 8 months ago by torad

Replying to pulkomandy:

This log seems to be several boots with the VESA driver, and none with intel_extreme enabled. The previous one is old, and the driver didn't have very good tracing then.

So:

  • delete your syslogs in /var/log/syslog
  • enable intel_extreme
  • reboot to black screen
  • shut down computer cleanly (press the power button once)
  • reboot to VESA
  • get the syslogs from /var/log/syslog* (there may be .old files, etc, grab them all just in case)

It's not giving any syslogs with intel_extreme. It's hanging on the splash screen, of which I assume the syslog daemon isn't started from. (if I'm wrong please correct me)

comment:5 Changed 8 months ago by bbjimmy

On hrev52197, I removed all the log files to verify that I was only logging the error and re-booted. The system hangs after the rocket lights up, requiring the power switch to be pressed to re-boot. I chose a different install to boot this time, and found no logs in the /boot/system/var/log directory of the hrev52197 install. There is no log file written for this error.

Last edited 8 months ago by bbjimmy (previous) (diff)

Changed 8 months ago by bbjimmy

Attachment: DSCN0406.JPG added

photo of on-screen debug output during boot.

comment:6 Changed 8 months ago by pulkomandy

Ok, indeed if it freezes completely, the relevant part of the syslog don't get flushed to disk. But if the screen doesn't turn black, this also means we can rely on the on-screen debug.

So, I made a build of the accelerant with extra tracing based on bbjimmy's capture: http://pulkomandy.tk/drop/intel_extreme.accelerant

If you can install this in non-packaged and blacklist the original driver, then boot with on screen debug enabled. We should get a more precise idea where it crashes. This may take a few back and forth attempts before we nail the problem.

Changed 8 months ago by torad

Attachment: 20180812_144612.jpg added

It seems for me, the point at which the splash screen freezes is at the main driver. Not the accelerant. It doesn't seem to start the accelerant at all.

comment:7 Changed 8 months ago by pulkomandy

Ok, then we have two different problems.

@bbjimmy, can you open a separate ticket for yours?

@torad: can you include listdev output so I know which generation of card we're dealing with?

In your case, it seems we don't manage to allocate RAM for the framebuffer and map it between the CPU and GPU. I see there were some changes in that area for some GPU generations, so I need to know which one we're dealing with here.

Last edited 8 months ago by pulkomandy (previous) (diff)

Changed 8 months ago by torad

Attachment: wow.png added

Here is the listdev output.

comment:8 Changed 7 months ago by LeapingFrog

I am a new comer. I find a similar symptom on my machine. I created a ticket #14524 but it seems the problem is the same.

I think I can cooperate by reporting syslog and symptoms by booting with debugger options set in several ways.

Indeed, my situation is suitable for tests. I can install several revisions of Haiku-OS to different partitions and compare syslog/symptom by booting again and again. Three partitions of 2 GiB for Haiku-OS is OK. I wait for hints on debugger options, revisions and so on.

comment:9 Changed 7 months ago by diver

Blocking: 14524 added

comment:10 Changed 7 months ago by LeapingFrog

I was silly. The disk does not accept so many partitions.

So, I tried booting from USB. The revision is hrev49662 and it booted without any problem. I used diff to find out the difference of syslog of hrev52357 and of hrev49662.

I found syslog of hrev52357 says

KERN: intel_extreme: Warning: zero active displays were found!

After this point, several messages on 10baseT continues. If we move to a little earlier messages, we find

KERN: loaded driver /boot/system/add-ons/kernel/drivers/dev/graphics/vesa
KERN: register_domain(5, internet6)
KERN: devfs: "intel_810" api_version missing
KERN: i810: init_hardware() - no supported devices

I think the newer revision gives up graphics after it failed in advances features of graphic controllers.

comment:11 Changed 7 months ago by diver

It looks like there was either a regression in intel_extreme driver or your graphics card wasn't supported by this driver in hrev49662 so it used vesa driver.

Can you check this by booting to hrev49662 and issuing listimage | grep accel?

comment:12 Changed 7 months ago by LeapingFrog

Here are results of "listimage | grep accel".

hrev49662

1089 0x01cbb000 0x01cc9000     0          0 /boot/system/add-ons/accelerants/intel_extreme.accelerant

hrev52357 with fail_safe_video_mode

 1051 0x005b9000 0x005bd000     0          0 /boot/system/add-ons/accelerants/vesa.accelerant

For hrev52357 without fail_safe_video_mode, I need a trick to run a shell script under black screen. If Haiku has login script, I can put suitable shell commands in login script and collect data.

I insist the previous messages from syslog are taken from hrev52357 without fail_safe_video_mode.

I now feel I should emphasize more messages placed before 10baseT in syslog.

KERN: intel_extreme: Probing DisplayPort 1intel_extreme: IsConnected: DisplayPort A PortRegister: 0x2004000
KERN: intel_extreme: IsConnected: DisplayPort A link not detected
KERN: intel_extreme: Probing DisplayPort 2intel_extreme: IsConnected: DisplayPort B PortRegister: 0x5004100
KERN: intel_extreme: IsConnected: DisplayPort B link not detected
KERN: intel_extreme: Probing DisplayPort 3intel_extreme: IsConnected: DisplayPort C PortRegister: 0x5004200
KERN: intel_extreme: IsConnected: DisplayPort C link not detected
KERN: intel_extreme: Probing DisplayPort 4intel_extreme: IsConnected: DisplayPort D PortRegister: 0x5004300
KERN: intel_extreme: IsConnected: DisplayPort D link not detected
KERN: intel_extreme: Probing eDPintel_extreme: IsConnected: Embedded DisplayPort A PortRegister: 0x2004000
KERN: intel_extreme: IsConnected: Embedded DisplayPort A link not detected
KERN: intel_extreme: Probing HDMI 2intel_extreme: Probing HDMI 3intel_extreme: Probing HDMI 4intel_extreme: Probing DVIintel_extreme: IsConnected: DVI B PortRegister: 0x5001140
KERN: intel_extreme: CALLED status_t Port::GetEDID(edid1_info *, bool = false)
KERN: intel_extreme: DVI B: trying to read EDID
KERN: intel_extreme: DVI B: using ddc @ 0x4005020
KERN: DDC: ddc2_read: DDC information read failure
KERN: Last message repeated 3 times.
KERN: intel_extreme: DVI B: no EDID information found.
KERN: intel_extreme: Probing LVDSintel_extreme: IsConnected: LVDS C PortRegister: 0x5001180
KERN: intel_extreme: CALLED status_t Port::GetEDID(edid1_info *, bool = false)
KERN: intel_extreme: LVDS C: trying to read EDID
KERN: intel_extreme: LVDS C: using ddc @ 0x4005018
KERN: DDC: ddc2_read: DDC information read failure
KERN: Last message repeated 3 times.
KERN: intel_extreme: LVDS C: no EDID information found.
KERN: intel_extreme: LVDS: Couldn't find any valid EDID!
KERN: intel_extreme: Probing Analogintel_extreme: IsConnected: Analog A PortRegister: 0x5001100
KERN: intel_extreme: CALLED status_t Port::GetEDID(edid1_info *, bool = false)
KERN: intel_extreme: Analog A: trying to read EDID
KERN: intel_extreme: Analog A: using ddc @ 0x4005010
KERN: DDC: ddc2_read: DDC information read failure
KERN: Last message repeated 3 times.
KERN: intel_extreme: Analog A: no EDID information found.
KERN: intel_extreme: dump_ports: No ports connected
KERN: intel_extreme: Warning: zero active displays were found!

I detect the order:

   (VESA -->) DisplayPorts --> HDMI --> DVI.

This might be related to the topic

Black screen after “rocket”, no chance to enter bootmenue

of tlb dated October 2017 in the Forum.

As a Mac user , I guess the right order is

   VESA --> DisplayPorts --> DVI --> HDMI.

And the OS should use the last one which is available. Among 3 stages of availability

supported device in the machine --> connection at use --> connected display powered up,

I think the last stage (connected display powered up) is preferable.

I would like to ask two things.

   Current revision might be use the availability in the sense of "supported device in the machine"
   This might hide HDMI connection in the machine with DVI ports present but without DVI ports connected to any display.

   Current revision might be forgetting the successful connection after it begins to search for more advanced connections.

comment:13 Changed 7 months ago by diver

Ok, this looks like a regression in intel_extreme driver then.

comment:14 Changed 7 months ago by diver

To get you a previously working intel_extreme driver what you can probably is to:

comment:15 Changed 7 months ago by LeapingFrog

It took 2 days. I cloned haiku source on my macBook and tried to copy the entire source to BFS on my PC. For this, I needed to expend the BFS. Technically, this means I neeeded to remove the partition of BFS by some software on Windows and then shrink the partition of Windows ( " C: " ). The day before yesterday, "diskpart" on Windows refused to shrink so much. I looked for workaround and the solution was "EasuUs Patition Master". I admit it was rather complicated. Anyway, I managed to create a partition of roughly 8.9 GiB. I installed Haiku on it.

Now, I copied buildtools and haiku to the directory HaikuSource on BFS on my PC. I typed "git checkout hrev49662" on the Terminal of haiku. (I was on the working directory set to haiku.) The command gave an error message

    error: Your local changes to the following files would be overwritten by checkout:
    ....
    Please commit your changes or stash them before you switch branches.
    Aborting

The "..." is a list of about 40 pathnames.

I do not know what went wrong. I might need to issue some command before "git clone ..." , or it might be a bad idea to use macOS drag and drop to copy buildtools and haiku to USB, or may be the source on the git-hub was not ready for git's checkout.

Is there some workaround?

If this problem is solved then I need to know hot to manually apply hrev52196 .

I believe "jam intel_extreme intel_extreme.accelerant" is a command on Terminal. I think I saw documents on blacklisting and non-packaged. So, the last three steps should be OK.

comment:16 Changed 7 months ago by diver

It is much easier to compile Haiku from within Haiku, so I'd recommend to do that. This way you don't need to get buildtools. I hope it still works as hrev49662 is rather old. Otherwise you'll need to get haiku image from around that revision.

get the sources

  • git clone https://review.haiku-os.org/haiku

download the patch

  • wget https://git.haiku-os.org/haiku/patch/?id=cd7bd4377832d6860578ba5428bb732a093af637 -O intel_extreme.patch

and another one I forgot

  • wget https://git.haiku-os.org/haiku/patch/src/add-ons/kernel/drivers/graphics/intel_extreme?id=5bd8cf13c57941483f0a3df97ce2b624c379d2d8 -O intel_extreme2.patch

apply them

  • patch -p1 < /path/to/intel_extreme.patch
  • patch -p1 < /path/to/intel_extreme2.patch

configure the build

  • ./configure

build the driver and accelerant

  • jam intel_extreme intel_extreme.accelerant

comment:17 Changed 7 months ago by LeapingFrog

I made progress but still suffer from problems of network.

I downloaded a versio of wget which supports my mac. (McOS 10.9) I got two patches. I moved them to haiku via USB-Stick. I applied them to the source and then I ran "sh ./configure". The next thing was "jam intel_extreme intel_extreme.accelerant". This resulted in a failure. The error message began with the follwoing lines.

DownloadLocatedFile1 /boot/home/HaikuSource/haiku/generated/download/gcc_x86_syslibs_devel-7.3.0_2018_05_01-3-x86_gcc2.hpkg 
--2018-09-30 10:20:41--  https://eu.hpkg.haiku-os.org/haikuports/master/build-packages/49928953773cf053b5dcd916d10aba130181cb5cf5d6e440528ebbca9ffb85d6/packages/gcc_x86_syslibs_devel-7.3.0_2018_05_01-3-x86_gcc2.hpkg
Resolving eu.hpkg.haiku-os.org... failed: Non-recoverable failure in name resolution.
wget: unable to resolve host address ‘eu.hpkg.haiku-os.org’

}}
I think I must download several files manually through my mac.

Currently, compilation on myMc is difficult.
I need to create a case-senstive file system.
Does it work on USB-Stick?

A tricky work around is to move everything on a case-sensitive file system and then "Jam" on my macBook.
After that move everything to haiku and then "Jam" again.

comment:18 Changed 7 months ago by korli

You should build Haiku on an OS which access internet

comment:19 Changed 6 months ago by pulkomandy

Milestone: R1R1/beta2

comment:20 Changed 2 weeks ago by waddlesplash

Please retest after hrev53040.

Changed 2 weeks ago by torad

Attachment: IMG_20190405_172557.jpg added

comment:21 Changed 2 weeks ago by torad

Booting with on screen output results in the above, and hangs on that screen until shutdown.

Note: See TracTickets for help on using tickets.