Opened 16 years ago
Closed 14 years ago
#2654 closed bug (fixed)
The Boot Menu doesn't work on Intel Macs
Reported by: | VinDuv | Owned by: | axeld |
---|---|---|---|
Priority: | normal | Milestone: | R1 |
Component: | System/Boot Loader | Version: | R1/pre-alpha1 |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Platform: | x86 |
Description
When I start Haiku on my Mac mini (with a USB keyboard), I can press the spacebar to enter the boot menu, but after that nothing happens if I press the arrows or the Enter keys.
Attachments (1)
Change History (10)
comment:1 by , 16 years ago
comment:2 by , 14 years ago
I have the same problem on my Mac Mini 1,1 on hrev41092. The same happens with an Apple Wireless Keyboard (white) and a Dell USB keyboard. I can enter the menu but I cannot navigate using the arrow keys or select using enter. Nothing happens.
by , 14 years ago
Attachment: | keyboard.cpp.diff added |
---|
comment:3 by , 14 years ago
patch: | 0 → 1 |
---|
follow-up: 5 comment:4 by , 14 years ago
Here's an image to try with:
http://www.kirilla.com/bios_keyboard_ticket_2654/haiku-nightly-anyboot.image.xz
It may contain other changes, so don't install from it please.
comment:5 by , 14 years ago
Replying to jonas.kirilla:
Here's an image to try with:
http://www.kirilla.com/bios_keyboard_ticket_2654/haiku-nightly-anyboot.image.xz
It may contain other changes, so don't install from it please.
Nice work kirilla! Tested on my Mac Mini 1,1 and in VirtualBox 4.0.4 on Mac OS X, and it works! I will test it on a couple of more computers this weekend.
comment:6 by , 14 years ago
Well, it's VinDuv's work really.
I tested my anyboot image burned to a CD on an i5, a C2Q and a P4/celeron. The boot menu could be entered and it all seemed to work okay, FWIW. (And the while loop didn't make anything catch fire that I noticed.)
comment:7 by , 14 years ago
I have now tested this on a Macbook Pro, Macbook, Thinkad X21, Thinkpad T41 and a unknown HP Desktop. It works on all of them. I even tested to leave the T41 at the boot menu for half an hour to see if the fan would rev up, but it did'nt.
So it's safe to add this fix to svn and close this ticket. Big thanks to VinDuv for spoting the problem and take the time to create a patch. To bad it took 2 years before anybody took their time to verify it...
comment:8 by , 14 years ago
Status: | new → in-progress |
---|
The patch looks good besides a minor coding style issue, I'm going to commit it now.
comment:9 by , 14 years ago
Resolution: | → fixed |
---|---|
Status: | in-progress → closed |
Applied in hrev41117. The only possible downside would be a higher CPU usage, will see how this turns out in the future.
I just made some more tests.
Since the problem seemed to be in the wait_for_key function (in src/system/boot/platform/bios_ia32/keyboard.cpp), I replaced it with :
Probably not the best way to do this, but it made the boot menu working...
The problem seems to be the "regs.eax = 0; call_bios(0x16, ®s);" call used in wait_for_keys. It seems to hang forever (I tried adding it to the top of check_for_boot_keys, and got nothing but a blinking cursor at boot)