Problems Connecting via Ethernet after netboot

Using applications, configuring, problems
Post Reply
Message
Author
User avatar
ecomoney
Posts: 2178
Joined: Fri 25 Nov 2005, 07:00
Location: Lincolnshire, England
Contact:

Problems Connecting via Ethernet after netboot

#1 Post by ecomoney »

Ive created a prototype netbooting puppy cybercafe setup using the method described here. The setup includes a command to autoconnect using the puppy network setup wizard (I dont know which file this modifies).

At some cybercafes, the setup connects via ethernet automatically, at another it connects intermittently, and at the one Im at now, it doesnt connect at all! What happens is the browser tries to connect for about 30 seconds, and then displays "The connection has timed out". This is particularly strange as when I install exactly the same setup, not netbooted, but installed on the computers hard disks via grub, they all auto-connect fine. When netbooting, I get an ip address (i.e. 192.168.1.192) and am able to browse the bt-homehub routers admin page at 192.168.1.254, but am unable to connect to google or any other website. This persists even after I run the network setup wizard after netbooting.

Im at a loss as to what to do to test condition...could it be DNS servers, or some setting on the router? I dont know very much about any aspect of networking, what could be causing this problem and what would I do to diagnose? This is holding up the whole development of the prototype so I need to get this sorted before I can proceed. Many thanks in advance for your help. Cheers.
Puppy Linux's [url=http://www.murga-linux.com/puppy/viewtopic.php?p=296352#296352]Mission[/url]

Sorry, my server is down atm!

User avatar
ecomoney
Posts: 2178
Joined: Fri 25 Nov 2005, 07:00
Location: Lincolnshire, England
Contact:

#2 Post by ecomoney »

Ive done a little more research...and found this small snipped of linux lore

http://wiki.archlinux.org/index.php/Dis ... Workaround
DHCP/Network Daemon Workaround

This is to prevent the client from trying to reconnect the network and killing itself. Any disconnect of the network and your client will freeze.

The following workaround involves running the dhcpcd DHCP client on startup with the -s option to use the existing kernel DHCP auto-configured IP address instead of requesting a new one. Note: This workaround assumes that eth0 is the network interface used for DHCP.

Edit /etc/conf.d/dhcpcd and append the DHCPCD_ARGS options with -s $(ifconfig eth0 | grep -o '[0-9]*\.[0-9\.]*' | head -n1)

#
# Arguments to be passed to the DHCP client daemon
#

DHCPCD_ARGS="-d -p -t 30 -h $HOSTNAME -s $(ifconfig eth0 | grep -o '[0-9]*\.[0-9\.]*' | head -n1)"

--Mikep 18:24, 9 January 2010 (EST)
Could it be that the "kernel" already has an ip address...I heard somewhere that the PXE built into the ethernet uses DHCP to find the boot server (the computer on the network offering the initrd and vmlinuz files). Perhaps the clients are not reconnecting to the router when the initial "dhdcpcd eth0" command is run at startup, perhaps the client already has an i.p. address...the one used for netbooting? I dont know :oops:

Looking into the manpage for dhcpcd the -s option is as follows
-S
Forces dhcpcd to send second DHCP_DISCOVER message even after receiving DHCP_OFFER on the first one. Some DHCP servers expect the client to send second DHCP_DISCOVER message before replying on DHCP_REQUEST.
Maybe I need to send another "DHCP_DISCOVER" message out so that the client knows to get its internet connection from the router, rather than from the netboot server. This offers and interesting option...could the clients get their internet connection via the netboot server...this could mean that I could run "squid" to add filtering to my cybercafe system. This would mean I would need to add a DHCP server to the PXE server, and do some "i.p. masquerading"....I really dont know what Im talking about here...just a theory.

Anyway, I have also discovered the "dhcpcd -d" command, the "d" stands for "debug", which runs dhcpcd with all kinds of interesting (but as yet unintelligible...at least to me) messages about whats actually going on when an internet connection is requested....i.e.

Code: Select all

# killall dhcpcd
# dhcpcd -d eth0
Info, eth0: dhcpcd 3.1.8 starting
Info, eth0: hardware address = 00:1e:0b:81:b4:36
Info, eth0: DUID = 00:01:00:01:12:fc:75:e1:00:1e:0b:81:b4:36
Info, eth0: broadcasting for a lease
Debug, eth0: sending DHCP_DISCOVER with xid 0x1dfdb59c
Debug, eth0: waiting on select for 20 seconds
Debug, eth0: got a packet with xid 0x1dfdb59c
Info, eth0: offered 192.168.1.73 from 192.168.1.254
Debug, eth0: sending DHCP_REQUEST with xid 0x1dfdb59c
Debug, eth0: waiting on select for 18 seconds
Debug, eth0: got a packet with xid 0x1dfdb59c
Info, eth0: checking 192.168.1.73 is available on attached networks
Debug, eth0: sending ARP probe #1
Debug, eth0: sending ARP probe #2
Debug, eth0: sending ARP probe #3
Debug, eth0: sending ARP claim #1
Debug, eth0: sending ARP claim #2
Info, eth0: leased 192.168.1.73 for 86400 seconds
Info, eth0: no renewal time supplied, assuming 43200 seconds
Info, eth0: no rebind time supplied, assuming 75600 seconds
Info, eth0: adding IP address 192.168.1.73/24
Info, eth0: adding default route via 192.168.1.254 metric 0
Info, eth0: adding route to 169.254.0.0/16 metric 0
Debug, eth0: writing /etc/resolv.conf
Debug, eth0: writing /var/lib/dhcpcd/dhcpcd-eth0.info
Debug, eth0: exec "/etc/dhcpcd.sh" "/var/lib/dhcpcd/dhcpcd-eth0.info" "new"
Debug, eth0: forking to background
It could also be that dhcpcd is "crashing" (this was mentioned above). I notice from this page on the puppy linux wiki that there is an update to version 4.0.15 from the current installed version (in puppy 4.2.1ce) of 3.1.8. Perhaps this would also solve the problems.

Anyway, the saga continues, I will attempt some experiments at the cybercafe tomorrow and report back.
Puppy Linux's [url=http://www.murga-linux.com/puppy/viewtopic.php?p=296352#296352]Mission[/url]

Sorry, my server is down atm!

User avatar
ecomoney
Posts: 2178
Joined: Fri 25 Nov 2005, 07:00
Location: Lincolnshire, England
Contact:

#3 Post by ecomoney »

Well...none of those worked!!!

What I have on the desktop of the netbooted machines is icons that run scripts to launch the programs (for firefox, skype, gyachi and amsn). These display a splash screen (in the absence of an hourglass) while the application launches, however into each one Ive now inserted...

Code: Select all

killall dhcpcd
dhcpcd eth0

This means that as soon as the user clicks on any of the icons on the desktop, the connection is made!

Not the most elegant of solutions, and in a commercial environment where time is short it did the job (maybe I see now why Microsoft dont release the windows source code? :lol: ). I would like to figure out why it doesnt connect, or even better what to put in which script to make the damn thing connect properly at startup!
Puppy Linux's [url=http://www.murga-linux.com/puppy/viewtopic.php?p=296352#296352]Mission[/url]

Sorry, my server is down atm!

Post Reply