[Bug 4598] New: udhcpc stop getting address from dhcp server from version 1.19.0 and up

bugzilla at busybox.net bugzilla at busybox.net
Mon Dec 12 12:30:41 UTC 2011


https://bugs.busybox.net/show_bug.cgi?id=4598

           Summary: udhcpc stop getting address from dhcp server from
                    version 1.19.0 and up
           Product: Busybox
           Version: 1.19.x
          Platform: Other
        OS/Version: Linux
            Status: NEW
          Severity: critical
          Priority: P5
         Component: Networking
        AssignedTo: unassigned at busybox.net
        ReportedBy: gianlucarenzi at eurekelettronica.it
                CC: busybox-cvs at busybox.net
   Estimated Hours: 0.0


I am using for ages busybox in my own cross-build environments all based on
ARM.
Last time I upgraded busybox was from an ancient version (pre-1.0 or similar)
to 1.18.4. The only thing I had to patch was a fbsplash utility to support
screen depth higher than 16bpp. Everything was working fine.
After some months I decided to upgrade to 1.18.5 (with the same configuration
files as the procedure is fully automatic). Everything is working fine until I
tried the 1.19.2 version, because of an already patched framebuffer utilities
to support 24/32 bpp depth.
Now the udhcpc client is not getting any address anymore from my dhcp server.
The same problem appear in version 1.19.2 and 1.19.3.

The only workaround I found is replace the dhcpc.c/.h from 1.18.5 to higher
version, and luckily it compiles and runs properly in my hardware.

Here is my specs:

Platform A: Samsung S3C2442 (arm toolchain 4.1.1)
Linux Kernel: 2.6.27

Platform B: Freescale i.MX27 (arm toolchain 4.1.1)
Linux Kernel: 2.6.19.2

Here is an (almost) detailed log of WORKING (1.18.5) busybox installation:

# busybox
BusyBox v1.18.5 (2011-12-12 12:37:09 GMT) multi-call binary.
Copyright (C) 1998-2009 Erik Andersen, Rob Landley, Denys Vlasenko
and others. Licensed under GPLv2.
See source distribution for full notice.

Usage: busybox [function] [arguments]...
   or: busybox --list[-full]
   or: function [arguments]...

        BusyBox is a multi-call binary that combines many common Unix
        utilities into a single executable.  Most people will create a
        link to busybox for each function they wish to use and BusyBox
        will act like whatever it was invoked as.

Currently defined functions:
        [, [[, addgroup, adduser, adjtimex, ar, arp, arping, ash, awk, base64,
        basename, beep, bootchartd, brctl, bunzip2, bzcat, cal, cat, chgrp,
        chmod, chown, chpasswd, chroot, chvt, clear, cmp, comm, cp, cpio,
        crond, crontab, cut, date, dc, dd, deallocvt, delgroup, deluser,
        depmod, df, dirname, dmesg, dnsdomainname, dos2unix, dpkg, dpkg-deb,
        du, dumpkmap, echo, ed, egrep, env, expr, false, fbset, fbsplash,
        fdisk, fgrep, find, fold, free, ftpget, ftpput, getopt, getty, grep,
        gunzip, gzip, halt, hd, head, hexdump, hostid, hostname, httpd,
        hwclock, id, ifconfig, ifdown, ifenslave, ifplugd, ifup, init,
        inotifyd, insmod, install, ionice, ipcalc, kill, killall, killall5,
        klogd, last, length, less, linuxrc, ln, loadfont, loadkmap, logger,
        login, logread, losetup, ls, lsmod, lsusb, makedevs, md5sum, mkdir,
        mkdosfs, mkfs.vfat, mknod, mkswap, mktemp, modinfo, modprobe, more,
        mount, mv, nameif, nbd-client, nc, netstat, nice, nohup, nslookup, od,
        openvt, passwd, patch, pidof, ping, ping6, pipe_progress, pivot_root,
        poweroff, printf, ps, pwd, rdate, readlink, readprofile, realpath,
        reboot, renice, reset, rm, rmdir, rmmod, route, rpm, run-parts, rx,
        sed, sendmail, seq, setkeycodes, sh, sleep, sort, start-stop-daemon,
        stat, strings, stty, su, sulogin, sum, swapoff, swapon, sync, sysctl,
        syslogd, tail, tee, telnet, telnetd, test, tftp, tftpd, time, top,
        touch, tr, traceroute, traceroute6, true, tty, udhcpc, umount, uname,
        uncompress, uniq, unix2dos, unzip, uptime, usleep, uudecode, uuencode,
        vi, vlock, watchdog, wc, wget, which, who, whoami, xargs, yes, zcat

# udhcpc -v
Adapter index 2
MAC 00:60:35:10:7e:ff
udhcpc (v1.18.5) started
Executing /usr/share/udhcpc/default.script deconfig
eth0: status: link is up
eth0: config: auto-negotiation on, 100FDX, 100HDX, 10FDX, 10HDX.
Entering listen mode: raw
Opening raw socket on ifindex 2
Got raw socket fd 5
Attached filter to raw socket fd 5
Created raw socket
Adapter index 2
MAC 00:60:35:10:7e:ff
Sending discover...
Waiting on select...
Adapter index 2
MAC 00:60:35:10:7e:ff
Sending discover...
Waiting on select...
NETDEV WATCHDOG: eth0: transmit timed out
eth0: transmit timed out.
Got valid DHCP packet
Adapter index 2
MAC 00:60:35:10:7e:ff
Sending select for 192.168.143.151...
Waiting on select...
Got valid DHCP packet
Waiting on select...
Got valid DHCP packet
Lease of 192.168.143.151 obtained, lease time 14400
Executing /usr/share/udhcpc/default.script bound
deleting routers
route: SIOCDELRT: No such process
adding dns 192.168.143.2
adding dns 8.8.8.8
Entering listen mode: none



and now the NON WORKING busybox udhcpc installation on the same hardware:

# busybox 
BusyBox v1.19.0 (2011-12-12 12:44:52 GMT) multi-call binary.
Copyright (C) 1998-2011 Erik Andersen, Rob Landley, Denys Vlasenko
and others. Licensed under GPLv2.
See source distribution for full notice.

Usage: busybox [function] [arguments]...
   or: busybox --list[-full]
   or: function [arguments]...

        BusyBox is a multi-call binary that combines many common Unix
        utilities into a single executable.  Most people will create a
        link to busybox for each function they wish to use and BusyBox
        will act like whatever it was invoked as.

Currently defined functions:
        [, [[, addgroup, adduser, adjtimex, ar, arp, arping, ash, awk, base64,
        basename, beep, bootchartd, brctl, bunzip2, bzcat, cal, cat, chgrp,
        chmod, chown, chpasswd, chroot, chvt, clear, cmp, comm, cp, cpio,
        crond, crontab, cut, date, dc, dd, deallocvt, delgroup, deluser,
        depmod, df, dirname, dmesg, dnsdomainname, dos2unix, dpkg, dpkg-deb,
        du, dumpkmap, echo, ed, egrep, env, expr, false, fbset, fbsplash,
        fdisk, fgrep, find, fold, free, ftpget, ftpput, getopt, getty, grep,
        gunzip, gzip, halt, hd, head, hexdump, hostid, hostname, httpd,
        hwclock, id, ifconfig, ifdown, ifenslave, ifplugd, ifup, init,
        inotifyd, insmod, install, ionice, ipcalc, kill, killall, killall5,
        klogd, last, less, linuxrc, ln, loadfont, loadkmap, logger, login,
        logread, losetup, ls, lsmod, lsusb, makedevs, md5sum, mkdir, mkdosfs,
        mkfs.vfat, mknod, mkswap, mktemp, modinfo, modprobe, more, mount, mv,
        nameif, nbd-client, nc, netstat, nice, nohup, nslookup, od, openvt,
        passwd, patch, pidof, ping, ping6, pipe_progress, pivot_root, poweroff,
        printf, ps, pwd, rdate, readlink, readprofile, realpath, reboot,
        renice, reset, rm, rmdir, rmmod, route, rpm, run-parts, rx, sed,
        sendmail, seq, setkeycodes, sh, sleep, sort, start-stop-daemon, stat,
        strings, stty, su, sulogin, sum, swapoff, swapon, sync, sysctl,
        syslogd, tail, tee, telnet, telnetd, test, tftp, tftpd, time, top,
        touch, tr, traceroute, traceroute6, true, tty, udhcpc, umount, uname,
        uncompress, uniq, unix2dos, unzip, uptime, usleep, uudecode, uuencode,
        vi, vlock, watchdog, wc, wget, which, who, whoami, xargs, yes, zcat

# udhcpc -v
Adapter index 2
MAC 00:60:35:10:7e:ff
udhcpc (v1.19.0) started
Executing /usr/share/udhcpc/default.script deconfig
eth0: status: link is up
eth0: config: auto-negotiation on, 100FDX, 100HDX, 10FDX, 10HDX.
Entering listen mode: raw
Opening raw socket on ifindex 2
Got raw socket fd 5
Attached filter to raw socket fd 5
Created raw socket
Adapter index 2
MAC 00:60:35:10:7e:ff
Sending discover...
Waiting on select...
Adapter index 2
MAC 00:60:35:10:7e:ff
Sending discover...
Waiting on select...
NETDEV WATCHDOG: eth0: transmit timed out
eth0: transmit timed out.
Adapter index 2
MAC 00:60:35:10:7e:ff
Sending discover...
Waiting on select...
Adapter index 2
MAC 00:60:35:10:7e:ff
Executing /usr/share/udhcpc/default.script leasefail
Waiting on select...

and wait forever (until a CTRL-C)

Can you check what is changed between versions 1.18 and 1.19?
diff gives me a lot of API changes... Maybe some pitfalls in between??

Best regards,
Gianluca

-- 
Configure bugmail: https://bugs.busybox.net/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


More information about the busybox-cvs mailing list