Project

General

Profile

Actions

Bug #1332

open

DFBSD 2.2 - Booting usbcdrom/usbsticks on thinkpad hangs on "BTX Halted"

Added by tuxillo almost 15 years ago. Updated almost 3 years ago.

Status:
Feedback
Priority:
Normal
Assignee:
-
Category:
Other
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:

Description

Hi

This is a bug reported by claus on the IRC and initally investigated by Jordan
(smtms).

It seems that booting USB cdrom/stick on a Thinkpad (model still to determine)
hangs and stops with BTX Halted.

claus reported that FBSD 7.1 booted without problems with that USB Cdrom drive,
but with FBSD 7.0 it crashes also.

This is a know issue on FreeBSD that was fixed in revision 177039. Also relevant
revisions are 181433, 181436 and 189017.

Cheers,
Antonio

Actions #2

Updated by tuxillo almost 15 years ago

Claus reported on IRC that booting on a thinkpad t40 works

Actions #3

Updated by jgordeev almost 15 years ago

I've adapted some fixes from FreeBSD for the booting issues that result
in "BTX halted".
My changes are available at
git://leaf.dragonflybsd.org/~smtms/dragonfly.git, branch "btxhalted".
Everybody should test that these changes don't break booting for them.
Additionally, people that have seen "BTX Halted" on some of their
computers should test to confirm that the issue is fixed.
What the changes do basically: make the BTX switch the processor to real
mode before making BIOS calls and then go back to protected mode. The
previous practice relied on BIOS code that is not exercised by common
operating systems, and thus not tested during BIOS development.
Some side effects of the changes: the BTX kernel size is now reduced to
690 bytes. It was 780 bytes previously.
boot2 is now 224 bytes smaller, leaving 296 bytes available; boot2_64
(for 64-bit disklabels) is 228 bytes smaller, leaving 4904 bytes available.
If somebody decides to commit these changes, please squash the commits.

Actions #4

Updated by ftigeot almost 15 years ago

On Thu, May 21, 2009 at 09:18:25PM +0300, Jordan Gordeev wrote:

I've adapted some fixes from FreeBSD for the booting issues that result
in "BTX halted".
My changes are available at
git://leaf.dragonflybsd.org/~smtms/dragonfly.git, branch "btxhalted".
Everybody should test that these changes don't break booting for them.
Additionally, people that have seen "BTX Halted" on some of their
computers should test to confirm that the issue is fixed.

I think one of my machines may be affected by this issue.

I would like to try your changes, but I'm lost in git land.
I tried to generate a patch from your branch; it weights 100K and I believe
many of the differences are irrelevant (many files in rc.d/) :-(

Is there any way to just get the changes you made relative to HEAD and not
just every changes in HEAD since then ?

Actions #5

Updated by jgordeev almost 15 years ago

Hi, Francois!
The easiest way to get my changes is to create your own branch ("git
branch mylocalbranch master; git checkout mylocalbranch"), then merge
the "btxhalted" branch into it ("git merge smtms-on-leaf/btxhalted").
To view what changes are in branch "btxhalted", but not in master, first
checkout master ("git checkout master"), then run "git log
..smtms-on-leaf/btxhalted"). Notice the two dots.

Testing the changes consists of two parts: testing new boot blocks
('boot1' and 'boot2') and testing new 'loader'.
To test new boot blocks you need to install them to disk using
"disklabel -B -b /path/to/boot1 -s /path/to/boot2 <somedisk>".
To test new 'loader', you just copy it to /boot/loader on the respective
medium.
To test new PXE loader, you replace 'pxeboot' (or 'pxeboot_tftp') in
your TFTP-exported directory with new versions.
I'm not sure what the instructions would be for building a new release
ISO containing the changed 'cdboot'.

I admit that it wasn't a good idea to post to users@ without including
instructions on how to obtain and how to test changes.

Regards,
Jordan Gordeev

Actions #6

Updated by ftigeot almost 15 years ago

On Sat, May 23, 2009 at 10:18:02PM +0300, Jordan Gordeev wrote:

Francois Tigeot wrote:

On Thu, May 21, 2009 at 09:18:25PM +0300, Jordan Gordeev wrote:

I've adapted some fixes from FreeBSD for the booting issues that result
in "BTX halted".
My changes are available at
git://leaf.dragonflybsd.org/~smtms/dragonfly.git, branch "btxhalted".

Is there any way to just get the changes you made relative to HEAD and not
just every changes in HEAD since then ?

The easiest way to get my changes is to create your own branch ("git

Thanks. I managed to pick-up the changes in sys/boot the hard way.

Testing the changes consists of two parts: testing new boot blocks
('boot1' and 'boot2') and testing new 'loader'.
To test new boot blocks you need to install them to disk using
"disklabel -B -b /path/to/boot1 -s /path/to/boot2 <somedisk>".
To test new 'loader', you just copy it to /boot/loader on the respective
medium.

I did an installworld before seeing your mail, so I did not test boot1 boot2
and loader separately.

The good news is they really fix the issue I was having:

I tried to upgrade a machine to a hammer / with a spare 500GB drive, and for
some reason the PC kept rebooting just after displaying the first boot
messages "F1 DF/FBSD" and "F5 Drive 1"
I couldn't see if there was a "BTX halted" message, the screen blanked too
quickly for that.
The same machine had no trouble with a 400GB drive and an UFS root.

With your new boot blocks, the system boots as it should.
Thank you, I'm a happy bunny now :-)

I admit that it wasn't a good idea to post to users@ without including
instructions on how to obtain and how to test changes.

Well, it didn't occur to me I would have had to create my own branch. Beeing
only used to cvs and svn, git is really a strange animal.

Actions #7

Updated by ftigeot almost 15 years ago

On Sun, May 24, 2009 at 09:54:45AM +0200, Francois Tigeot wrote:

With your new boot blocks, the system boots as it should.
Thank you, I'm a happy bunny now :-)

I have spoken too soon.

I still have the instant reboot problem (and this time I could see a "BTX
halted" message, complete with register dump).

Steps to reproduce:

1. Install a Dragonfly system on an entire new disk, using a livecd snapshot
/dev/ad4s1a is now a big Hammer partition, complete with many pfs.

2. Boot from another disk, delete all Hammer PFSes in ad4s1a:/pfs/ with
hammer pfs-destroy.

3. Reboot on the first disk.
/boot/loader now fails with the dreaded "BTX halted" register dump and
instantly reboots the machine.

The first step bootloaders are still usable. It is possible to interrupt the
boot sequence during the rotating \ | display and boot directly a kernel on
0:ad(0,a)/kernel

Replacing step 2) above by a newfs on the root partition, followed by a restore
from backup of /boot gives the same result.

Actions #8

Updated by tuxillo about 9 years ago

  • Description updated (diff)
  • Category set to Other
  • Status changed from New to Feedback
  • Assignee deleted (0)
  • Target version set to 4.2

Hi,

There was commit 9f163f397ee13c569d290e7d020b84cd17db4868 but I don't know if this addresses the problem or not.

I think the processors with this thinkpad can run in 64-bit mode so remember we only support 64-bits now:
Intel Core 2 Duo P8700,
Intel Core 2 Duo P8800,
Intel Core 2 Duo P9700

Can you please try it again?

Cheers,
Antonio Huete

Actions #9

Updated by tuxillo almost 3 years ago

  • Target version changed from 4.2 to 6.0
Actions

Also available in: Atom PDF