Subject: DHCP client from ROOT Floppy

From: Munish Mehta <[email-masked]>
Date: Wed, 27 Jan 1999 19:39:44 -0500 (EST)

Hi,

I am a newbie to the world of DHCP. I am not sure if I can
specify my problems appropriately. Here's a try: 

I have copied "dhcpcd" to my root floppy of the Linux machine.
I have also made "/etc/dhcp" directory. I have edited the
/etc/rc.d/rc.inet1 and put "/sbin/dhcpcd" there. 

When I boot the machine using boot/root floppy, this line
doesn't give any error but it doesn't recognize the ethernet
interface either. It seems it is not able to connect DHCP server.

On the contrary, a windows machine on the same network when booted
can get IP address from the DHCP server (meaning that server is working
fine). I have configured server to give IP addresses based on hardware
addresses of the clients.

Could anyone please let me know if "dhcpcd" needs any other files,
or any configurations to be able to run. Please explain from the
point of view of a boot/root floppy system. I want my clients to
be able to get IP addresses from the DHCP server based on their
hardware addresses, whenever they are booted using boot/root
floppy.

----

I also compiled DHCP client on a linux machine by using "make"
and "make install". This linux machine is already has an I.P.
address. If i run "dhcpcd" here, it also exits ( i think it
is supposed to stay as a daemon). I did an strace on it and
the results are :

execve("/sbin/dhcpcd", ["/sbin/dhcpcd"], [/* 21 vars */]) = 0
personality(0 /* PER_??? */)            = 0
getpid()                                = 1236
geteuid()                               = 0
getuid()                                = 0
getegid()                               = 0
getgid()                                = 0
getuid()                                = 0
open(ptrace: umoven: Input/output error
0xbffffd74, O_RDONLY)              = -1 ENOENT (No such file or directory)
sigaction(SIGHUP, NULL, {SIG_DFL})      = 0
sigaction(SIGHUP, {0x8048f2c, [],
SA_STACK|SA_RESTART|SA_INTERRUPT|SA_ONESHOT|0x7fffd94}, NULL) = 0
sigaction(SIGINT, {0x8048f2c, [],
SA_STACK|SA_RESTART|SA_INTERRUPT|SA_ONESHOT|0x7fffd94}, NULL) = 0
sigaction(SIGQUIT, {0x8048f2c, [],
SA_STACK|SA_RESTART|SA_INTERRUPT|SA_ONESHOT|0x7fffd94}, NULL) = 0
sigaction(SIGILL, {0x8048f2c, [],
SA_STACK|SA_RESTART|SA_INTERRUPT|SA_ONESHOT|0x7fffd94}, NULL) = 0
sigaction(SIGTRAP, {0x8048f2c, [],
SA_STACK|SA_RESTART|SA_INTERRUPT|SA_ONESHOT|0x7fffd94}, NULL) = 0
sigaction(SIGABRT, {0x8048f2c, [],
SA_STACK|SA_RESTART|SA_INTERRUPT|SA_ONESHOT|0x7fffd94}, NULL) = 0
sigaction(SIGBUS, {0x8048f2c, [],
SA_STACK|SA_RESTART|SA_INTERRUPT|SA_ONESHOT|0x7fffd94}, NULL) = 0
sigaction(SIGFPE, {0x8048f2c, [],
SA_STACK|SA_RESTART|SA_INTERRUPT|SA_ONESHOT|0x7fffd94}, NULL) = 0
sigaction(SIGKILL, {0x8048f2c, [],
SA_STACK|SA_RESTART|SA_INTERRUPT|SA_ONESHOT|0x7fffd94}, NULL) = -1 EINVAL
(Invalid argument)
sigaction(SIGUSR1, {0x8048f2c, [],
SA_STACK|SA_RESTART|SA_INTERRUPT|SA_ONESHOT|0x7fffd94}, NULL) = 0
sigaction(SIGSEGV, {0x8048f2c, [],
SA_STACK|SA_RESTART|SA_INTERRUPT|SA_ONESHOT|0x7fffd94}, NULL) = 0
sigaction(SIGUSR2, {0x8048f2c, [],
SA_STACK|SA_RESTART|SA_INTERRUPT|SA_ONESHOT|0x7fffd94}, NULL) = 0
sigaction(SIGPIPE, {0x8048f2c, [],
SA_STACK|SA_RESTART|SA_INTERRUPT|SA_ONESHOT|0x7fffd94}, NULL) = 0
sigaction(SIGALRM, {0x8048f2c, [],
SA_STACK|SA_RESTART|SA_INTERRUPT|SA_ONESHOT|0x7fffd94}, NULL) = 0
sigaction(SIGTERM, {0x8048f2c, [],
SA_STACK|SA_RESTART|SA_INTERRUPT|SA_ONESHOT|0x7fffd94}, NULL) = 0
alarm(60)                               = 0
socket(0x11 /* PF_??? */, SOCK_PACKET, 768) = -1 EINVAL (Invalid argument)
brk(0)                                  = 0x807a818
brk(0x807a8a8)                          = 0x807a8a8
brk(0x807b000)                          = 0x807b000
brk(0x807e000)                          = 0x807e000
time([917457217])                       = 917457217
open("/etc/localtime", O_RDONLY)        = 3
fstat(3, {st_dev=makedev(0, 2), st_ino=0, st_mode=0, st_nlink=1250,
st_uid=1024, st_gid=4, st_blksize=907934799, st_blocks=0, st_size=0,
st_atime=0, st_mtime=35/12/23-04:55:56, st_ctime=69/12/31-19:00:03}) = 0
mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x40000000
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1024) = 1024
read(3, "\2\1\2\1\0\1\2\1\2\1\2\1\2\1\2\1"..., 1024) = 226
close(3)                                = 0
munmap(0x40000000, 4096)                = 0
getpid()                                = 1236
sigaction(SIGPIPE, {0x8052240, [], 0}, {0x8048f2c, [], 0}) = 0
socket(PF_UNIX, SOCK_DGRAM, 0)          = 3
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
connect(3, {sun_family=AF_UNIX, sun_path="/dev/log"}, 16) = -1 EPROTOTYPE
(Protocol wrong type for socket)
close(3)                                = 0
socket(PF_UNIX, SOCK_STREAM, 0)         = 3
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
connect(3, {sun_family=AF_UNIX, sun_path="/dev/log"}, 16) = 0
send(3, "<131>Jan 27 12:13:37 dhcpcd[1236"..., 72, 0) = 72
sigaction(SIGPIPE, {0x8048f2c, [], 0}, NULL) = 0
_exit(1)                                = ?

Can anybody kindly let me know why it exits.

I will be highly thankful for any help.

thanks,
Munish