I started messing around with the rc.sysinit file thinking that maybe
something had changed between the different versions.
I found the problem was with this section
if [ "x`grep ip= /proc/cmdline`" = "x" ]
then
udhcpc -i eth0 -b -p /var/run/udhcpc.eth0.pid >/dev/null 2>&1
fi
So I tested the udhcpc with the above command in a normal terminal and
it doesn't go to the background.
I then tested it without sending the output to /dev/null. I get this
output.
udhcpc (v1.11.2) started
Sending discover...
Sending select for 192.168.1.169...
Sending select for 192.168.1.169...
Sending select for 192.168.1.169...
Sending discover...
Sending select for 192.168.1.169...
Sending select for 192.168.1.169...
Sending select for 192.168.1.169...
It just keeps repeating like that forever. Possibly something wrong
with the -b in this version?
Once I removed that line everything else seemed to boot fine.
Denys Vlasenko wrote:
> On Tuesday 23 September 2008 19:15, Michael Davis wrote:
>
>> I am working with the cirrus EP9301 ARM CPU. The current environment
>> they supply uses Busybox 1.1.3. I decided to upgrade to 1.11.2. So I
>> rebuilt it with all the configuration options I wanted, but ran into a
>> problem. If I include -msoft-float in the compile it hangs at the
>> following point. Note debug mode on init is turned on.
>>
>> init started: BusyBox v1.11.2 (2008-09-22 16:26:05 CDT)
>> command='/etc/rc.sysinit' action=1 tty='/dev/null'
>>
>> command='-/sbin/start-opie' action=2 tty='/dev/tty1'
>>
>> command='-/bin/sh' action=4 tty='/dev/tty2'
>>
>> command='-/bin/sh' action=2 tty='/dev/ttyAM0'
>>
>> command='/bin/umount -a' action=64 tty='/dev/null'
>>
>
> These messages come from new_init_action() routine, and it is called here
> in init.c, parse_inittab():
>
> for (a = actions; a[0]; a += strlen(a) + 1) {
> if (strcmp(a + 1, action + 1) == 0) {
> *runlev = '\0';
> if (*id != '\0') {
> if (strncmp(id, "/dev/", 5) == 0)
> id += 5;
> strcpy(tmpConsole, "/dev/");
> safe_strncpy(tmpConsole + 5, id,
> sizeof(tmpConsole) - 5);
> id = tmpConsole;
> }
> ======> new_init_action((uint8_t)a[0], command + 1,
> id);
> goto next_line;
> }
> }
> *command = ':';
> /* Choke on an unknown action */
> bad_entry:
> message(L_LOG | L_CONSOLE, "Bad inittab entry: %s", id);
> next_line: ;
> }
> fclose(file);
> }
>
> (Calls to new_init_action() elsewhere would not trigger for you I think).
>
> Apparently init segfaults somewhere after this.
> Can you add these debug prints in the above code fragment
> and tell us what do you see?
>
>
> for (a = actions; a[0]; a += strlen(a) + 1) {
> if (strcmp(a + 1, action + 1) == 0) {
> *runlev = '\0';
> if (*id != '\0') {
> if (strncmp(id, "/dev/", 5) == 0)
> id += 5;
> strcpy(tmpConsole, "/dev/");
> safe_strncpy(tmpConsole + 5, id,
> sizeof(tmpConsole) - 5);
> id = tmpConsole;
> }
> bb_error_msg("before new_init_action");
> new_init_action((uint8_t)a[0], command + 1,
> id);
> bb_error_msg("after new_init_action");
> goto next_line;
> }
> }
> *command = ':';
> /* Choke on an unknown action */
> bad_entry:
> message(L_LOG | L_CONSOLE, "Bad inittab entry: %s", id);
> next_line: ;
> }
> bb_error_msg("finished parsing iniitab");
> fclose(file);
> }
>
> --
> vda
>
>
--
Michael Davis
Software Engineer
DTL Controls, LLC
Ph. 402-502-2340
[EMAIL PROTECTED]
_______________________________________________
busybox mailing list
[email protected]
http://busybox.net/cgi-bin/mailman/listinfo/busybox