safe mode

Jeremy Chadwick freebsd at jdc.parodius.com
Fri Oct 29 17:40:17 UTC 2010


On Fri, Oct 29, 2010 at 01:12:29PM -0400, Stephen Clark wrote:
> On 10/29/2010 12:54 PM, Jeremy Chadwick wrote:
> >On Fri, Oct 29, 2010 at 11:17:50AM -0400, Stephen Clark wrote:
> >>I am having a problem getting 6.3 to boot on an intel atom mb. When
> >>it gets to where it should identify the drive it hangs.
> >Can you try 8.1-RELEASE or an 8.1-STABLE snapshot instead?  I mean, you
> >*are* using an Intel Atom system, which contains significantly more
> >advanced hardware than was available during the RELENG_6 days.
> >
> >Oh, I think you answer this further down...
> >
> >>If I boot with no acpi it does the same thing.
> >>
> >>If I boot with safe mode it comes up and identifies the drive but then
> >>starts spewing the following errors:
> >>ipfw2 initialized, divert enabled, rule-based forwarding disabled,
> >>default to ad
> >>interrupt storm detected on "irq15:"; throttling interrupt source
> >>ad4: 152627MB<WDC WD1600BEKT-00A25T0 01.01A01>  at ata2-master PIO4
> >>interrupt storm detected on "irq15:"; throttling interrupt source
> >>interrupt storm detected on "irq15:"; throttling interrupt source
> >>interrupt storm detected on "irq15:"; throttling interrupt source
> >>
> >>FreeBSD runs but I continue to get these errors:
> >>
> >>What exactly does safe mode do - I am afraid my forth skills are not
> >>what they should be.
> >"Safe mode" does the following before doing "boot":
> >
> >set hw.ata.ata_dma=0
> >set hw.ata.atapi_dma=0
> >set hw.ata.wc=0
> >set hw.eisa_slots=0
> >set hint.kbdmux.0.disabled=1
> >
> >It also does the following if you're booting/running i386:
> >
> >unset acpi_load
> >set hint.acpi.0.disabled=1
> >set loader.acpi_disabled_by_user=1
> >set hint.apic.0.disabled=1
> >
> >The code is in /boot/beastie.4th.
> >
> >IMHO, you shouldn't be disabling ACPI, or using "safe mode" to try and
> >get your system working.  Can you please boot Verbose mode instead and
> >provide all of the output somewhere?  You'll probably need serial
> >console for this, since the system hangs.
> >
> >
> >>atapci0 at pci0:0:31:1:    class=0x01018a card=0x28508086
> >>chip=0x28508086 rev=0x03 hdr=0x00
> >>     vendor     = 'Intel Corporation'
> >>     device     = '82801H (ICH8 Family) Ultra ATA Storage Controllers'
> >>     class      = mass storage
> >>     subclass   = ATA
> >>atapci1 at pci0:0:31:2:    class=0x01018f card=0x28288086
> >>chip=0x28288086 rev=0x03 hdr=0x00
> >>     vendor     = 'Intel Corporation'
> >>     device     = 'ICH8M (ICH8 Family) 3 port SATA Controller'
> >>     class      = mass storage
> >>     subclass   = ATA
> >Your storage controller is an Intel ICH8, which is supported by FreeBSD,
> >but the ATA layer differs greatly between 6.x and 8.x (read: better on
> >8.x).  AHCI is also well-supported on 8.x if your system/BIOS supports
> >it.
> >
> >>I am stuck for now on 6.3 so moving to a later release 7+ is not feasible.
> >Can you explain why?  (If I don't ask it, someone else will.)  This will
> >almost certainly be the key to this discussion, especially since you
> >say:
> >
> I am supporting over 700 units in the field that are acting as
> firewall/router/vpn devices,
> that are running 6.3. It would not be feasible to upgrade them to a
> new version of FreeBSD
> remotely. Also if I was going to move to a  later release of FreeBSD
> for the new hardware
> it would involve months  of new testing and validation of the new
> release, where putting a patched
> 6.3 kernel is relatively straightforward.

I'm a little confused.  Did you deploy over 700 field units running
FreeBSD 6.3 without testing it first on this particular piece of
hardware/setup?  Or did you recently upgrade from FreeBSD X.Y to 6.3 and
found that things broke?  What I'm trying to find out is whether or not
these systems ever worked for you, and if so, at what point did they
stop working.  Possibly we can work backwards to figure out what code
change/commit broke things for you.  Keep reading for some ideas.

First question: are you using any parameters in /boot/loader.conf or
/boot.config?  If so, what are they?

Second question: can you provide your kernel configuration file?

As for the verbose boot -- thanks much.  Appropriate folks should be
here on the list, so if they have ideas they'll probably reply.  A quick
analysis indicates the following:

ata0 --> atapci0 --> Intel ATA controller master, IDE/PATA, IRQ 14
ata1 --> atapci0 --> Intel ATA controller slave,  IDE/PATA, IRQ 14
ata2 --> atapci1 --> Intel ATA controller master, IDE/PATA, IRQ 15
ata3 --> atapci1 --> Intel ATA controller slave,  IDE/PATA, IRQ 15

A single device is found on ata2, but no other devices are found on the
other ATA busses:

> ata2: reset tp2 stat0=50 stat1=00 devices=0x1<ATA_MASTER>

That probably correlates with what you see when you boot "safe mode",
since there we see this message:

  ad4: 152627MB <WDC WD1600BEKT-00A25T0 01.01A01> at ata2-master PIO4

However, there's other messages which are a serious concern, given their
association with the ATA controller in question:

  interrupt storm detected on "irq15:"; throttling interrupt source
  interrupt storm detected on "irq15:"; throttling interrupt source
  interrupt storm detected on "irq15:"; throttling interrupt source
  interrupt storm detected on "irq15:"; throttling interrupt source

You might try escaping to the loader prompt (I forget what menu item it
is on 6.x, might be item 6) and entering the following commands.  These
are the 3 things I'd try first, and in this order:

1) set hint.apic.0.disabled=1
   boot

2) set hw.ata.ata_dma=0
   boot

3) set hint.apic.0.disabled=1
   set hw.ata.ata_dma=0
   set hint.kbdmux.0.disabled=1
   boot

If any of these work (I'm hoping #1 or #2 suffices), you can add the
appropriate lines to your /boot/loader.conf without the "set" portion
and they should be retained going forward.

-- 
| Jeremy Chadwick                                   jdc at parodius.com |
| Parodius Networking                       http://www.parodius.com/ |
| UNIX Systems Administrator                  Mountain View, CA, USA |
| Making life hard for others since 1977.              PGP: 4BD6C0CB |



More information about the freebsd-stable mailing list