From: Steve S. <sa...@gm...> - 2008-03-03 15:29:09
|
No, there's not a solution in upside-down text at the bottom of this email :-) During the gumstix-oe boot process you may have noticed text similar to the following in the boot messages: Freeing init memory: 148K Ive .udev/ already exists on the static /dev! The mystery is the source of the "Ive" message. You'll often see variants of this text: "IEn", "Ivion 2.", etc. This message comes at the point in the boot process where the root file system has been mounted and /sbin/init has been launched. It always begins with "I" but after that all bets are off, though there seem to be some popular combinations of seemingly random characters. I believe that the initial "I" comes from a kprintf which is attempting to print "Init". At that point, however, the console seems to go wonky and just bits and pieces of following messages make it out. It eventually recovers and the console messages continue without further strangeness. I've been doing some work on a process to boot from mmc or cf and this problems seems to occasionally become much worse, with console messages being disrupted all the way to the final init script for i2c. I'd like to fix this but my todo list is way long. So let's have a little contest! The first person who can explain what is going on here and submit a patch with a reasonable solution will get a shipment of surprise gumstix goodies. Steve |
From: <pa...@pa...> - 2008-03-03 19:03:44
|
Steve Sakoman wrote: > Freeing init memory: 148K > Ive > .udev/ already exists on the static /dev! > > The mystery is the source of the "Ive" message. You'll often see > variants of this text: "IEn", "Ivion 2.", etc. Hmmm, just when I was looking for a good reason to test my brand new 5GB gumstix-oe directory... Hint: The garbled messages seem to be from /sbin/init.sysvinit: INIT: version 2.86 booting (produces "Ive" and "Ivion 2" ?) INIT: Entering runlevel: 5 (produces "IEn" ?) Workaround: --- gumstix-oe/tmp/work/gumstix-custom-verdex-angstrom-linux-gnueabi/sysvinit-2.86-r36/sysvinit-2.86/src/init.c.orig 2008-03-03 18:41:40.000000000 +0100 +++ gumstix-oe/tmp/work/gumstix-custom-verdex-angstrom-linux-gnueabi/sysvinit-2.86-r36/sysvinit-2.86/src/init.c 2008-03-03 19:36:14.000000000 +0100 @@ -727,6 +727,7 @@ if ((fd = console_open(O_WRONLY|O_NOCTTY|O_NDELAY)) >= 0) { write(fd, s, strlen(s)); + sleep(1); close(fd); } } It looks like either sysvinit is not accessing the console properly, or the PXA serial driver is losing data on close(). Anyone, feel free to confirm and fix this and claim the goodies :-) BTW, running bounties this way will cause lots of duplicated effort. Maybe contestants should announce publicly when they start working on a challenge ? Pascal |
From: Jeremy H. <jer...@gm...> - 2008-03-03 19:40:26
|
Another thing: if the string passed to the print() function is terminated with a newline ("\n"), they print fine, else, only the two characters. On Mon, Mar 3, 2008 at 11:03 AM, <pa...@pa...> wrote: > Steve Sakoman wrote: > > Freeing init memory: 148K > > Ive > > .udev/ already exists on the static /dev! > > > > The mystery is the source of the "Ive" message. You'll often see > > variants of this text: "IEn", "Ivion 2.", etc. > > Hmmm, just when I was looking for a good reason to > test my brand new 5GB gumstix-oe directory... > > > Hint: > > The garbled messages seem to be from /sbin/init.sysvinit: > INIT: version 2.86 booting (produces "Ive" and "Ivion 2" ?) > INIT: Entering runlevel: 5 (produces "IEn" ?) > > > Workaround: > > --- > gumstix-oe/tmp/work/gumstix-custom-verdex-angstrom-linux-gnueabi/sysvinit- > 2.86-r36/sysvinit-2.86/src/init.c.orig 2008-03-03 18:41:40.000000000+0100 > +++ > gumstix-oe/tmp/work/gumstix-custom-verdex-angstrom-linux-gnueabi/sysvinit- > 2.86-r36/sysvinit-2.86/src/init.c 2008-03-03 19:36:14.000000000 +0100 > @@ -727,6 +727,7 @@ > > if ((fd = console_open(O_WRONLY|O_NOCTTY|O_NDELAY)) >= 0) { > write(fd, s, strlen(s)); > + sleep(1); > close(fd); > } > } > > It looks like either sysvinit is not accessing the console properly, > or the PXA serial driver is losing data on close(). Anyone, feel > free to confirm and fix this and claim the goodies :-) > > BTW, running bounties this way will cause lots of duplicated effort. > Maybe contestants should announce publicly when they start working > on a challenge ? > > Pascal > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > gumstix-users mailing list > gum...@li... > https://lists.sourceforge.net/lists/listinfo/gumstix-users > |
From: <pa...@pa...> - 2008-03-04 15:12:10
|
Jeremy Halter wrote: > Another thing: if the string passed to the print() function is terminated > with a newline ("\n"), they print fine, else, only the two characters. That's a better workaround than my sleep(1), of course. However I am reluctant to blame this problem on something as widespread as sysvinit. Even tcdrain(fd) does not help. I compiled a kernel without bugfix-serial-register-status.patch, and this causes "INIT:" messages to come out correctly with an unaltered /sbin/init.sysvinit. The original author of bugfix-serial-register-status.patch seems to agree that it might cause problems: http://thread.gmane.org/gmane.linux.ports.arm.kernel/22204/focus=22211 Maybe this went unnoticed until now because buildrot used busybox as /sbin/init. I am not sure why this patch was added (bluetooth hwuart bug ?), so it is hard to tell whether the PXA270 still needs it. Pascal |
From: Steve S. <sa...@gm...> - 2008-03-04 15:21:17
|
> However I am reluctant to blame this problem on something as > widespread as sysvinit. Even tcdrain(fd) does not help. The sysvinit code is pretty funky on this particular message. It opens and closes the console driver 3 times for a one line message! Steve On Tue, Mar 4, 2008 at 7:11 AM, <pa...@pa...> wrote: > Jeremy Halter wrote: > > Another thing: if the string passed to the print() function is terminated > > with a newline ("\n"), they print fine, else, only the two characters. > > That's a better workaround than my sleep(1), of course. > > However I am reluctant to blame this problem on something as > widespread as sysvinit. Even tcdrain(fd) does not help. > > I compiled a kernel without bugfix-serial-register-status.patch, > and this causes "INIT:" messages to come out correctly with > an unaltered /sbin/init.sysvinit. > > The original author of bugfix-serial-register-status.patch > seems to agree that it might cause problems: > http://thread.gmane.org/gmane.linux.ports.arm.kernel/22204/focus=22211 > Maybe this went unnoticed until now because buildrot used > busybox as /sbin/init. > > I am not sure why this patch was added (bluetooth hwuart bug ?), > so it is hard to tell whether the PXA270 still needs it. > > > > Pascal > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > gumstix-users mailing list > gum...@li... > https://lists.sourceforge.net/lists/listinfo/gumstix-users > |