"ip=" command line strangeness...

T Ziomek ctz001 at email.mot.com
Fri Aug 25 09:38:53 EST 2006


On my previous project, a 2.4 kernel on PPC, I frequently used 
"ip=w.x.y.z" on the kernel command line to specify a static IP address for
my target board (when booting with a flash- or RAM-based root filesystem).
    Similarly, when using an NFS-mounted root fs, I would use
"ip=w.x.y.z:a.b.c.d", along with the appropriate "nfsroot=..." setting,
with my NFS server having IP a.b.c.d .

Now I am working with a 2.6.10-based kernel on ARM.  Using an NFS root fs
works fine when I use the expected "ip=w.x.y.z:a.b.c.d".  And booting off
with "root=/dev/hda1" works fine with "ip=dhcp".
    I'd expect to be able to use "root=/dev/hda1 ip=w.x.y.z" if I want the
target using a static IP address.  But this fails, and in a VERY weird
way:  (1) It tries doing DHCP, which it shouldn't, and (2) the DHCP fails,
which it shouldn't because it works when I want DHCP to be used.
    Here's a snippet of console output:
             .
             .
             .
            NET: Registered protocol family 2
            IP: routing cache hash table of 512 buckets, 4Kbytes
            TCP: Hash tables configured (established 8192 bind 16384)
            NET: Registered protocol family 1
            NET: Registered protocol family 17
            Sending DHCP requests ...... timed out!
            EMAC: TX Complete: Starting queue
            IP-Config: Reopening network devices...
            Sending DHCP requests ...

Okay, that's two weird things.  There is a third -- this problem goes a-
way if I change the command line to something like
"root=/dev/hda1 ip=w.x.y.z:a.b.c.d".  The only change is adding an NFS
server IP address to the "ip=" command, which should have no effect be-
cause NFS is not being used.  Yet when I do that the board boots as ex-
pected -- it does not try to do DHCP, it does use /dev/hda1 for its root
fs, and it does take the specified IP address.

In fact, it works even if I use a command line with, literally,
"root=/dev/hda1 ip=199.5.233.72:gobbledygook":
             .
             .
             .
            NET: Registered protocol family 2
            IP: routing cache hash table of 512 buckets, 4Kbytes
            TCP: Hash tables configured (established 8192 bind 16384)
            NET: Registered protocol family 1
            NET: Registered protocol family 17
            IP-Config: Guessing netmask 255.255.255.0
            IP-Config: Complete:
                  device=eth0, addr=199.5.233.72, mask=255.255.255.0, gw=255.255.255.255,
                 host=199.5.233.72, domain=, nis-domain=(none),
                 bootserver=232.0.0.0, rootserver=232.0.0.0, rootpath=
             .
             .
             .

This isn't a big problem, but can anybody explain what the heck is going
on?

Thanks, Tom
-- 
   /"\  ASCII Ribbon Campaign   |
   \ /                          |   Email to user 'CTZ001'
    X        Against HTML       |             at 'email.mot.com'
   / \     in e-mail & news     |



More information about the Linuxppc-embedded mailing list