Tiny Core Linux

Tiny Core Base => TCB Q&A Forum => Topic started by: gmc on March 28, 2013, 01:16:03 PM

Title: tc-terminal-server - pxelinux.0 name corruption?
Post by: gmc on March 28, 2013, 01:16:03 PM
Greetings,  I am having a problem with getting pxe boot to work with tc-terminal-server.  One client boots fine, three others don't.  The three that don't are having a problem with the pxelinux.0 file name.  A packet trace shows that the file name being offered by the server has some garbage at the end of the name.  Using gpxe works on one client and ipxe works on another one.  Nothing works on the fourth.

I installed Debian Squeeze and set up dnsmasq for netboot server.  All four clients booted with no problem, using pxe client in ROM.

I have searched forums and found that some people have had success with tc-terminal-server by making some config changes but they did not work for me.  I am wondering if anyone knows of a "fix" that directly addresses the pxelinux.0 filename appended characters problem?
Title: Re: tc-terminal-server - pxelinux.0 name corruption?
Post by: curaga on March 28, 2013, 03:04:01 PM
It uses busybox servers, so it's a busybox bug - please report it to bugs.busybox.net.
Title: Re: tc-terminal-server - pxelinux.0 name corruption?
Post by: tinypoodle on March 28, 2013, 03:23:42 PM
http://www.fogproject.org/wiki/index.php/Dell_Dimension_2400_with_Broadcom_Onboard_NIC_-_TFTP_filename_issue
Title: Re: tc-terminal-server - pxelinux.0 name corruption?
Post by: curaga on March 28, 2013, 03:57:20 PM
@tinypoodle

tc-terminal-server already does that workaround, as I saw the issue when testing the initial version.
Title: Re: tc-terminal-server - pxelinux.0 name corruption?
Post by: gmc on March 28, 2013, 04:08:44 PM
curaga - Thanks for the tip - I will report the bug as you directed.

tinypoodle - I followed the link you gave - it appears that the symbolic link is already in place on the default TCL setup.  It doesn't seem to help in my case.   Perhaps you could elaborate on how it is supposed to work?

I have been working on this for the past couple of weeks and can't seem to find a solution, yet.  I see many others have this or very similar problems but have not yet found a solution that I can successfully implement.

Someone set up dnsmasq on TC but I have not been able to get that working at all - clients don't even see that it is running.  (Debian Squeeze setup was fairly easy.)  I'm relatively new to linux and constantly find myself running into problems due to lack of knowledge/experience.  Would love to have the configuration files and file location details for dnsmasq from someone that has successfully set it up.

I am very impressed by the prompt replies to my posting.  You two certainly spend a lot of time helping the community.  Well done and thanks much!
Title: Re: tc-terminal-server - pxelinux.0 name corruption?
Post by: tinypoodle on March 28, 2013, 04:15:16 PM
@tinypoodle

tc-terminal-server already does that workaround, as I saw the issue when testing the initial version.

Ah yes, should have checked first, however, an interesting bit there is that the same seems to occur even with tftpd-hpa.
Title: Re: tc-terminal-server - pxelinux.0 name corruption?
Post by: gmc on March 28, 2013, 04:17:06 PM
tinypoodle - I see you were writing your last post while I was responding to your first.  Thanks!

So, the symlink work-around is already in place.  Do you know of any other work-arounds that I might try?
Title: Re: tc-terminal-server - pxelinux.0 name corruption?
Post by: tinypoodle on March 28, 2013, 04:38:06 PM
Subject is discussed here:
http://forum.tinycorelinux.net/index.php?topic=8049.0

I had refrained from posting this link, suspecting from your earlier wording you might already have seen it.
Title: Re: tc-terminal-server - pxelinux.0 name corruption?
Post by: gmc on March 28, 2013, 10:04:38 PM
tinypoodle - you are a good "suspecter"!  Yes, I had already seen that link.  I tried changing the file but am not at all sure I did all the needed steps in the correct order.  I am operating under a double handicap here.  I am limited in linux knowledge, and even more so in TCL knowledge.  To make matters worse, I am legally blind and therefore find it very difficult to work with TCL.  I am running TC at 640X480 resolution on a 47" monitor but even then I must use a very powerful magnifying glass.  And with all that I still have trouble making out the characters on screen.  That makes reading manuals very challenging.

With all that said, would you be willing and able to provide the needed steps to make that boot option change as mentioned in the link you provided?  Perhaps I left out a critical step.  Perhaps that change will fix the problem?
Thanks for all your help thus far, and for any you may be able to provide.
Title: Re: tc-terminal-server - pxelinux.0 name corruption?
Post by: tinypoodle on March 28, 2013, 10:24:16 PM
With all that said, would you be willing and able to provide the needed steps to make that boot option change as mentioned in the link you provided?

I don't think I would be suitable to do so, as personally I have no experience of making it work with quirks and I think your best bet is trial and error.
My experience is limited to either case where tc-terminal-server works right out of the box or case of failure where I gave up after finding there was a hardware incompatibility, I recommend you check for your specific hardware and PXE implementations here:
http://www.syslinux.org/wiki/index.php/Hardware_Compatibility#Problematic_network_cards

and maybe search the syslinux wiki for more info about options of pxe booting in general.
Title: Re: tc-terminal-server - pxelinux.0 name corruption?
Post by: nick65go on March 29, 2013, 08:57:24 AM
@gmc

Hi, there are two suspects here: the configuration file (/netboot/udhcpd.conf) and the busybox applets (dhcp and tftp programs).

1.  You need a good config file; try to google for dhcpd options like:
option   tftp   192.168.1.65
boot_file /netboot/pxelinux.0
different syntax!

2A. see the individual commands inside the tc-terminal-server script; then in a aterm (terminal) run each of them, one by one, manually (eventually with debug parameters); write down the error messages and look up for them on the internet.

2B. grab a NEW busybox, not from Tinycore, preferably statically linked, just for testing that the OLD applets are not the buggy ones.
(sample: http://www.busybox.net/downloads/binaries/latest/ )
or build /compile one yourself (in few minutes), from a git/ snapshot one;

Remarks: I hope you did check that you do not run two (or many more) dhcpd or tftp demons (servers) simultaneous.
When you run tc-terminal-server script, it dynamically create a configuration file AND it starts the two servers; this means tc-terminal-server script will OVERWRITE your manual edited configuration. So first understand how tc-terminal-server works. Then after killing the servers from memory (use top / htop), try to mimic yourself what tc-terminal-server script did. When a dhcpd server is running, it has already read its configuration (/netboot/udhcpd.conf) so you need to kill it and start it again to read your new config.

TC is about learning yourself; If it is too demanding for you and it does not worth the effort, I advise you to wait until TC 5.0 will be issue and maybe busybox is updated/corrected. Or just use another combination of dhcp+tftp for PXE booting.

All the best.
Title: Re: tc-terminal-server - pxelinux.0 name corruption?
Post by: gmc on March 29, 2013, 01:48:34 PM
Hi tinypoodle - I understand, no problem.  Somehow I got the impression that you would just know all things PXE.  Well, it didn't hurt to ask.  I do appreciate all your assistance.  Thanks much.  I'll check out the link...
Title: Re: tc-terminal-server - pxelinux.0 name corruption?
Post by: gmc on March 29, 2013, 02:00:31 PM
Hi nick65go.  Thanks for the very helpful replyl.  I'll check out those ideas.  As far as having two servers running at once, no fear.  I only have one running at a time.  For testing between the Debian and TC machines I unplug the network cable for whichever one I am not using for the test.  And I use different IP ranges for DHCP - that makes it very easy to see which server I am connected to at PXE boot time.

I really liked your idea about trying out a later version of busybox.  I'll also keep working on the configuration options to see what effect they might have.

Thanks very much for taking the time to respond and thanks again for the great suggestions.
Title: Re: tc-terminal-server - pxelinux.0 name corruption?
Post by: gmc on March 29, 2013, 07:39:23 PM
Success!  Thanks to all who have been so helpful.  I tried the "boot_file" option one more time.  I don't know what I did different, but it worked!

I changed:
option bootfile /pxelinux.0

to

boot_file /pxelinux.0

in the tc-terminal-server script.

Saved and ran the script.  Viola!  Success!

For what it is worth, I first tried:
option bootfile /netboot/pxelinux.0
and
option bootfile //netboot/pxelinux.0

Neither of those changes were successful at removing the extra characters at the end of the file name.

Now I just need to read up on making the changes to tc-terminal-server persistant...

Thanks again, your support and helpful tips were wonderful!
Title: Re: tc-terminal-server - pxelinux.0 name corruption?
Post by: curaga on March 30, 2013, 07:40:03 AM
Ok, we'll add that.
Title: Re: tc-terminal-server - pxelinux.0 name corruption?
Post by: genec on March 30, 2013, 11:56:27 AM
I can't say I've had any experience with tc-terminal-server but can say I have quite a bit with PXELINUX as a user and contributor.  I would be curious at a quick analysis of the DHCP packets.  I've found that the RFC 2131 fields sname and file are generally the only ones that matter and that attempting to pack those fields with DHCP options (using RFC2132 option 52) and use DHCP options 66/67 generally doesn't work with PXE clients.  PXELINUX however can deal with these but if the underlying OROM doesn't handle them, PXELINUX is never loaded in the first place.

As a side-note, on a Microsoft DHCP server, you set the DHCP options 66/67 BUT the server then uses this data to populate the sname/file fields and doesn't present DHCP options 66/67 to the client (probably assuming you don't pack too much data in).
Title: Re: tc-terminal-server - pxelinux.0 name corruption?
Post by: gmc on March 30, 2013, 11:22:50 PM
Thanks Curaga - you made my day!