Your problem sounds like it is related to the lease time of your IP address. When you boot, the "dhcpcd" program tries to get a lease for an IP address with the local DHCP server (most probably your cable/dsl internet router). Once the computer has obtained an IP lease, that lease will remain valid for a specific amount of time, determined by the DHCP server. Within the first 50% of that lease time, your "dhcpcd" program will feel no need to query the DHCP server because it knows the IP address it has cached is still valid. Only after that 50% timeline has passed, will the dhcpcd program begin directing cautious queries toward the DHCP server, to verify the IP address is not about to be leased to some other PC.
Your PC's talks to the DHCP server seems to cause rather large delays. When the IP address lease has been obtained, subsequent (re)boots seem to go much quicker, up to the point where obviously the 50% timeline is passed, and the lengthy process of querying the DHCP server begins again.
Check the content of /etc/dhcpc/dhcpd-wlan0.info for the value of "RENEWALTIME" and divide that value by 8600 to get the number of days that the dhcp client may use the IP address before starting a new query.
Also, you might need to activate your wlan0 interface earlier in the boot process. The rc.local file is only executed after all the other programs have been started. If you run Slackware 10.2 (not earlier) you can add this to /etc/rc.d/rc.inet1.conf for your wlan0 interface:
Code:
# Config information for wlan0:
IFNAME[1]="wlan0"
IPADDR[1]=""
NETMASK[1]=""
USE_DHCP[1]="yes"
Then, the network interface configuration will happen much sooner in the boot process, and chances are you will have an IP address by the time X is starting.
Long story, but I guess you should check that DHCP server to see if it is being too busy.
Eric