Opened 13 years ago

Last modified 6 years 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:
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 13 years ago.
sony vpc z11 dev list
syslog (121.2 KB ) - added by euan 13 years ago.
syslog of hrev40172 boot

Download all attachments as: .zip

Change History (18)

by euan, 13 years ago

Attachment: devices.txt added

sony vpc z11 dev list

comment:1 by euan, 13 years ago

Description: modified (diff)

by euan, 13 years ago

Attachment: syslog added

syslog of hrev40172 boot

comment:2 by euan, 13 years ago

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

comment:3 by bonefish, 13 years ago

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

comment:5 by euan, 13 years ago

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?

in reply to:  5 comment:6 by bonefish, 13 years ago

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 by axeld, 13 years ago

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 by euan, 13 years ago

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 by euan, 13 years ago

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 by scottmc, 13 years ago

Blocking: 7665 added

comment:11 by 5HT, 13 years ago

Have exactly the same problem on VAIO Z13.

comment:12 by 5HT, 13 years ago

Version: R1/alpha2R1/alpha3

comment:13 by diver, 13 years ago

Milestone: UnscheduledR1

comment:14 by axeld, 7 years ago

Owner: changed from axeld to nobody
Status: newassigned

comment:15 by waddlesplash, 6 years ago

Keywords: boot-failure added

comment:16 by waddlesplash, 6 years ago

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