[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: 2nd try: reboot hangs - a little more



see end....

Miles Fidelman wrote:
Ok...
- booting with normal kernel... still doesn't reboot
- booting with normal kernel, in single-user mode, with loglevel=7, still doesn't work, with the following as the last few console messages:

[36. ...] md: stopping all md devices
[36. ...] md: md2 switched to read-only mode
[38. ...] sd 0:0:1:0: [sdb: Synchronizing SCSI cache]
[38. ...] sd 0:0:0:0: [sda: Synchronizing SCSI cache]
[38. ...] ehci_hcd 0000:00:03.3 PCI INT D disabled
[38. ...] ehci_hcd 0000:00:03.2 PCI INT C disabled
[38. ...] ehci_hcd 0000:00:03.1 PCI INT B disabled
[38. ...] ehci_hcd 0000:00:03.0 PCI INT A disabled
[38. ...] Restarting system
[38. ...] machine restart

So.. it's not Xen, and the last console message is from the kernel, just before it does <something> to jump to the restart code.

This is the point at which you can use reboot=bios to tell an x86 kernel to jump to the BIOS' restart code, but you can't do that for an amd64 kernel.

Hmmm...... what next? (I've tried pretty much all of the other reboot options.)
So... a little perusing of kernal documentation and code (2.6.32-5), yields the observation that:

- in linux/arch/x86/kernel/reboot.c - there is code to support a kernal option "reboot=bios" that specifically writes, specific magic numbers, to several CMOS and memory locations, before jumping into the bios to restart -- this code ("machine_real_restart") is also used to deal with quirks of a long list of specific machines

- there is no equivalent code associated with the amd64 kernel (or anything besides the x86 kernel, for that matter)

I wonder why? I wonder if there are any workarounds short of building a custom kernel? I wonder who to ask?

Miles


--
In theory, there is no difference between theory and practice.
In practice, there is.   .... Yogi Berra



Reply to: