Opened 8 years ago

Last modified 9 months ago

#7092 assigned bug

boot fail when certain vesa resolution are selected

Reported by: euan Owned by: nobody
Priority: normal Milestone: R1
Component: System/Kernel Version: R1/alpha3
Keywords: boot-failure Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All

Description (last modified by euan)

When booting haiku will crash immediately after displaying the splash screen if the resolution is one of the following marked with an x:

x 1024x768@32
x 1024x768@16
1024x768@8

x 800x600@32
800x600@16
800x600@8

640x480@32
640x480@16
640x480@8

hardware is a Sony VPCZ11X9E laptop with nvidia-intel hybrid graphics. listdev from haiku attached attached.

Brief hardware spec:

intel core i5, 4gb ram, 2x64GB SSD (RAID), intel GMA HD , nvidia gt216 (330m)

The graphics seems to be stuck in the Nvidia mode without acpi hot switching for the hybrid graphics.

syslog to follow (it seems to be getting overwritten by the wireless lan debug?).

Attachments (2)

devices.txt (3.0 KB) - added by euan 8 years ago.
sony vpc z11 dev list
syslog (121.2 KB) - added by euan 8 years ago.
syslog of hrev40172 boot

Download all attachments as: .zip

Change History (18)

Changed 8 years ago by euan

Attachment: devices.txt added

sony vpc z11 dev list

comment:1 Changed 8 years ago by euan

Description: modified (diff)

Changed 8 years ago by euan

Attachment: syslog added

syslog of hrev40172 boot

comment:2 Changed 8 years ago by euan

might not be in "nvidia" mode as both adapters seem to be exposed.

comment:3 Changed 8 years ago by bonefish

The syslog looks like from a successful boot. A syslog from a failing boot would be interesting.

comment:5 Changed 8 years ago by euan

Alas I have no serial to dump the debug and the file is gone. :(

If I could single step the boot sequence that would be useful. Is there a function to force KDL from the main boot programatically? Or maybe a way to say put delays in the startup function so we can record the event on camera? I know we get as far as the splash screen but maybe it fails to completely draw the bottom lines and segfaults?

comment:6 in reply to:  5 Changed 8 years ago by bonefish

Replying to euan:

Alas I have no serial to dump the debug and the file is gone. :(

If the system boots far enough, you can access the syslog in the boot loader after reset. Have a look at http://dev.haiku-os.org/wiki/ReportingBugs#Syslog.

If I could single step the boot sequence that would be useful.

Not possible, I'm afraid.

Is there a function to force KDL from the main boot programatically?

You can add panic() calls in _start() or -- it probably doesn't get this far in your case -- in main2(). Depending on how early that happens, the on-screen KDL might not be working yet. Since your problem seem to be graphics related, it probably doesn't work, anyway. The (debug) syslog might already show the output -- not that it will be of any help. You can just as well track the point of the crash down by adding an infinite loop in _start() (and called functions) and depending on whether it crashes or hang bisect further. A bit tedious, but it works, if the point of the crash is not affected by changes in the code.

Or maybe a way to say put delays in the startup function so we can record the event on camera? I know we get as far as the splash screen but maybe it fails to completely draw the bottom lines and segfaults?

You could enable the on-screen debut output in the boot loader. It is known to have issues and a full boot usually doesn't work when it is enabled, but maybe it suffices in your case to track the problem down.

comment:7 Changed 8 years ago by axeld

If it crashes only in certain higher resolutions, I would assume that it only actually mapped in 1 MB (or maybe a little more since 640x480x32 works, but that might just be "luck").

In that case, your BIOS incorrectly advertises graphics modes that cannot be used using VESA. It might be possible to find out the amount of graphics memory using VESA, but I don't remember.

comment:8 Changed 8 years ago by euan

looks like its in vesa.h VBEInfoBlock struct, parameter is TotalMemory (in 64k blocks).

I'll add some test code to dump the value, and also try the suggestions from bonefish. The syslog didn't retain any data across the reboot unfortunately.

comment:9 Changed 8 years ago by euan

the bios reports 2047 64k blocks, so 128MB is available.

It crashes after displaying the boot splash in the bootloader. I commented out the actual drawing of the initial splash display and it still crashes. Further bisecting required it seems.

comment:10 Changed 8 years ago by scottmc

Blocking: 7665 added

comment:11 Changed 8 years ago by 5HT

Have exactly the same problem on VAIO Z13.

comment:12 Changed 8 years ago by 5HT

Version: R1/alpha2R1/alpha3

comment:13 Changed 8 years ago by diver

Milestone: UnscheduledR1

comment:14 Changed 2 years ago by axeld

Owner: changed from axeld to nobody
Status: newassigned

comment:15 Changed 9 months ago by waddlesplash

Keywords: boot-failure added

comment:16 Changed 9 months ago by waddlesplash

Blocking: 7665 removed
Note: See TracTickets for help on using tickets.