Date: Sat, 12 Apr 2014 19:07:43 -0700 From: Doug Hardie <bc979@lafn.org> To: freebsd-stable@freebsd.org Cc: "dteske@FreeBSD.org Teske" <dteske@FreeBSD.org>, Chris H <bsd-lists@bsdforge.com> Subject: Re: 9.2 Boot Problem Message-ID: <1D50A38D-8919-4034-A4E5-EEF8E78E638D@lafn.org> In-Reply-To: <89290759-E5C2-4991-B644-A82648BEDD52@lafn.org> References: <175D3755-BB9B-4EAD-BDAD-06E9670E06AB@lafn.org> <186472F9-A97B-4863-81BC-67BE788D5E9A@lafn.org> <a865b8f2ccb9ad4918544bad3d49554d.authenticated@ultimatedns.net> <791C8200-023A-4ACB-9B6F-F5A8B0E170F4@lafn.org> <5bfb4fb619954c3dfbd3499aafa98917.authenticated@ultimatedns.net> <4F983E6A-0A7D-403C-AFAA-9CCCCB05716F@lafn.org> <feeca307c8da9ca3b385cf47d75904a7.authenticated@ultimatedns.net> <0f3f01cf5439$13cf8570$3b6e9050$@FreeBSD.org> <981CAA9F-1E67-4E56-A119-BA6D1D29F383@lafn.org> <89290759-E5C2-4991-B644-A82648BEDD52@lafn.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 10 April 2014, at 14:23, Doug Hardie <bc979@lafn.org> wrote: >=20 > On 9 April 2014, at 16:53, Doug Hardie <bc979@lafn.org> wrote: >=20 >>=20 >> On 9 April 2014, at 14:17, dteske@FreeBSD.org wrote: >>=20 >>>=20 >>>=20 >>>> -----Original Message----- >>>> From: Chris H [mailto:bsd-lists@bsdforge.com] >>>> Sent: Wednesday, April 9, 2014 2:03 PM >>>> To: Doug Hardie >>>> Cc: freebsd-stable@freebsd.org List >>>> Subject: Re: 9.2 Boot Problem >>>>=20 >>>>>=20 >>>>> On 9 April 2014, at 13:49, "Chris H" <bsd-lists@bsdforge.com> = wrote: >>>>>=20 >>>>>>>=20 >>>>>>> On 9 April 2014, at 11:29, "Chris H" <bsd-lists@bsdforge.com> = wrote: >>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> On 4 April 2014, at 21:08, Doug Hardie <bc979@lafn.org> wrote: >>>>>>>>>=20 >>>>>>>>>> I put this out on Questions, but got no responses. Hopefully >>>>>>>>>> someone here has some ideas. >>>>>>>>>>=20 >>>>>>>>>> FreeBSD 9.2. All of my systems are hanging during boot right >>>>>>>>>> after the screen that has the picture. Its as if someone hit = a >>>>>>>>>> space on the keyboard. However, these systems have no = keyboard. >>>>>>>>>> If I plug one in, or use the serial console, and enter a = return, >>>>>>>>>> the boot continues properly. >>>>>>>>>>=20 >>>>>>>>>> The boot menu is displayed along with Beastie. However, the = line >>>>>>>>>> that says Autoboot in n seconds=85 never appears. It just = stops >>>>>>>>>> there. These are all new installs from CD systems. >>>>>>>>>> I just used freebsd-update to take a toy server from 9.1 to = 9.2 >>>>>>>>>> and it doesn't exhibit this behavior. It boots properly. I = have >>>>>>>>>> updated one of the production servers with the latest 9.2 = changes >>>>>>>>>> and it still has the issue. I first thought that some config >>>>>>>>>> file did not get updated properly on the CD. I have dug = around >>>>>>>>>> through the 4th files and don't see anything obvious that = would >>>>>>>>>> cause this. I have now verified that all the 4th files in = boot >>>>>>>>>> are identical (except for the version number. They are = slightly >>>>>>>>>> different). I don't believe this is a BIOS setting issue as >>>>>>>>>> FreeBSD 7.2 didn't exhibit this behavior. All >>>>>>>>>> 4 >>>>>>>>>> systems are on totally different motherboards. >>>>>>>>>>=20 >>>>>>>>>> I tried setting loader_logo=3D"none" in /boot/config.rc and = that >>>>>>>>>> eliminated the menu and Beastie. I think the system = completed >>>> booting, but the serial console was then dead. >>>>>>>>>> It >>>>>>>>>> did not respond or output anything. I had to remove that and >>>>>>>>>> reboot to get the console back again. >>>>>>>>>>=20 >>>>>>>>>> I need to get this fixed as these are production servers that = are >>>>>>>>>> essentially unmanned so its difficult to get them back up = again. >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> No response here either. Surely someone must know the loader. = I >>>> have been digging >>>>>>>>> through >>>>>>>>> the code, and can't find any differences between the systems = that >>>> work and those that >>>>>>>>> don't. >>>>>>>>> Is there any way to debug this? Is there a way to find out = where the >>>> loader is sitting >>>>>>>>> waiting on input from the terminal. That might give a clue as = to why it >>>> didn't >>>>>>>>> autoboot. >>>>>>>>>=20 >>>>>>>> OK. This is the first I've seen of your post. I'm not going to = profess >>>>>>>> being an expert. But I might suggest adding the following to >>>>>>>> loader.conf(5) >>>>>>>>=20 >>>>>>>> verbose_loading=3D"YES" >>>>>>>> boot_verbose=3D"YES" >>>>>>>>=20 >>>>>>>> This raises the "noise level". Maybe that will help to provide = you with >>>>>>>> a bit more information, as to what, or if, your booting. DO = have a look >>>>>>>> through /boot/defaults/loader.conf for more hints, as to what, = and >>>> how >>>>>>>> you can control the boot process. As well as = /etc/defaults/rc.conf. >>>>>>>> In fact, you can pre-decide what, and how, to boot. Even = passing by the >>>>>>>> boot menu entirely. >>>>>>>=20 >>>>>>> Thanks Chris. I did that and here is what I get: >>>>>>>=20 >>>>>>> Rebooting... >>>>>>> cpu_reset: Stopping other CPUs >>>>>>> /boot.config: -Dh >>>>>>> Consoles: internal video/keyboard serial port >>>>>>> BIOS drive A: is disk0 >>>>>>> BIOS drive C: is disk1 >>>>>>> BIOS 640kB/2087360kB available memory >>>>>>>=20 >>>>>>> FreeBSD/x86 bootstrap loader, Revision 1.1 >>>>>>> (doug@zool.lafn.org, Tue Apr 8 20:30:20 PDT 2014) >>>>>>> Loading /boot/defaults/loader.conf >>>>>>> Warning: unable to open file /boot/loader.conf.local >>>>>>> /boot/kernel/kernel text=3D0xdb3171 data=3D0xf3c04+0xbb770 >>>> syms=3D[0x4+0xeda80+0x4+0x1b8ebf] >>>>>>> zpool_cache...failed! >>>>>>> \ >>>>>>> H[Esc]ape to loader prompt_ _____ _____ >>>>>>> | ____| | _ \ / ____| __ \ >>>>>>> | |___ _ __ ___ ___ | |_) | (___ | | | | >>>>>>> | ___| '__/ _ \/ _ \| _ < \___ \| | | | >>>>>>> | | | | | __/ __/| |_) |____) | |__| | >>>>>>> | | | | | | || | | | >>>>>>> |_| |_| \___|\___||____/|_____/|_____/ ``` = ` >>>>>>> s` = `.....---.......--.``` -/ >>>>>>> + Welcome to FreeBSD + +o .--` = /y:` +. >>>>>>> | | yo`:. :o = `+- >>>>>>> | 1. Boot Multi User [Enter] | y/ 3;46H / >>>>>>> | 2.-- / | >>>>>>> | | >>>>>>> | 4. Reboot | `: = :` >>>>>>> | | `: = :` >>>>>>> | Options: / = / >>>>>>> | 5. Configure Boot [O]ptions... .- = -. >>>>>>> | -- = -. >>>>>>> | `:` = `:` >>>>>>> | .-- = `--. >>>>>>> | = .---.....----. >>>>>>> +-----------------------------------------+ >>>>>>>=20 >>>>>>> FreeBSD `Nakatomi = Socrates' 9.2 >>>>>>>=20 >>>>>>>=20 >>>>>>> Now it waits for a return. I have tried changing the logo, = setting the >>>> autoboot timeout >>>>>>> and >>>>>>> a couple others. The only thing that did anything different was = setting >>>> the logo to an >>>>>>> invalid value. Basically the console was dead after that, but = the system >>>> did boot. I >>>>>>> never >>>>>>> see the Auto Boot in n seconds message. Its also interesting = that the list >>>> of options >>>>>>> above >>>>>>> appears incomplete. On the working system, items 1 through 5 = are all >>>> present. I have >>>>>>> now >>>>>>> checked all the cksum's for all the files in /boot and they are = all the same. >>>>>>>=20 >>>>>> Hmmm. Looks like you're going to make me do all your research, = for you. >>>> ;) >>>>>> You /did/ read the contents of /boot/defaults/loader.conf. Yes? = I'm >>>> guessing >>>>>> that you've also already read loader.4th(8), and the other = related info. >>>>>> Now this is pure supposition; as it appears that you're looking = for a serial >>>>>> console. I'd /speculate/ that you want to turn all that NASTY = ANSI stuff >>>> OFF >>>>>> That's why your not seeing the complete menu -- hear that Devin! >>>>>> I'm going to post just this much for now, just to get you = started. I know >>>>>> what else you need/are looking for. But need to find the = /correct/ syntax >>>> -- >>>>>> paraphrasing, just won't get it. :)\ >>>>>=20 >>>>> Setting loader_color=3D"NO" (from man page) does give back the = full menu. >>>> Still waits for >>>>> return after the version name. I haven't found in the forth where = it is >>>> reading the >>>>> keyboard. Yes, I have to use a serial console. These machines = are about >>>> 100 miles away. >>>>> Something is stopping the autoboot from even starting. >>>>=20 >>>> See my reply to this. I think I've given you the hints you need -- = fingers >>>> crossed. :) >>>>=20 >>>=20 >>> He's using console=3Dcomconsole (serial boot). >>> When that is the case, loader_color is automatically set to NO. >>> There's no reason to set both loader_color=3DNO and console=3D >>> comconsole. The code that does this is here: >>>=20 >>> = http://svnweb.freebsd.org/base/release/9.2.0/sys/boot/forth/color.4th?revi= sion=3D255898&view=3Dmarkup >>> Line 48 within the loader_color? function: >>> boot_serial? if FALSE else TRUE then >>>=20 >>> As for answering the quandary of where the keyboard is polled >>> during the timeout countdown, that's the getkey function in here: >>>=20 >>> = http://svnweb.freebsd.org/base/release/9.2.0/sys/boot/forth/menu.4th?revis= ion=3D255898&view=3Dmarkup >>> --=20 >>=20 >>=20 >>=20 >> I commented out the 3 cursor positions in menu-timeout-update. It = does not appear that word is being used. The Autoboot message never = appeared. Obviously getkey is being used as it does respond properly to = a return. I am beginning to suspect that menu_timeout_enabled is zero. = I believe adding a line after getkey's begin with >>=20 >> s"menu_timeout_enabled =3D " type menu_timeout_enabled @ . 10 = spaces >>=20 >> will tell me. >=20 >=20 >=20 > There is a missing space after the first " above. However, that does = confirm my suspicion that menu_timeout_enabled is set to 0. It is only = displayed once. On a working system the value is 1 and that message is = output numerous times until the 10 seconds expires and then the boot = begins. >=20 > Now to figure out how that value is getting set incorrectly. >=20 After much digging, I now know what it going on, but not why. When = getkey is called the first time, menu_timeout_enable is set to one. = However, it is set to zero on every check after that. In getkey after = the comment "Was a key pressed" is a check of key to see if a key was = pressed. It is returning a decimal 7 (BEL). That then clears = menu_timeout_enable and it then sits there waiting for a valid key = input. There is no keyboard plugged into the system. I have no idea = how that BEL is being generated or even how to prevent it. Could it be = possible that it comes from the serial console? I tend to doubt thats = the case since the system hangs during boot when the serial console is = not connected. I suppose that I could put in a test for a key value = that is not a control character, but that would only work until the next = system update. I'd have to remember to put it back in each time. Thats = not likely to happen. My memory is not that good. Whats interesting is = that I have 4 systems (i386) doing this and 1 system (i386) and 2 = systems (amd64) not doing it. The only common thread is the 4 systems = doing it are about 100 miles from me and the working ones are here.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1D50A38D-8919-4034-A4E5-EEF8E78E638D>