WelcomeWelcome | FAQFAQ | DownloadsDownloads | WikiWiki

Author Topic: [SOLVED[ PXE default menu.c32 locks up boot  (Read 51296 times)

Offline gmc

  • Full Member
  • ***
  • Posts: 141
[SOLVED[ PXE default menu.c32 locks up boot
« on: April 03, 2013, 02:14:40 AM »
Greetings again.

Now that tc-terminal-server is up and running I have run into a new problem.  I am trying to set up a boot menu that allows the user to select from multiple boot options.  I have three choices at the moment, each of which works if I put the label name on the first line of the 'default' file.  But when I try to set it up with 'menu.c32' in place of a label name PXE boot stops with the message:

Trying to load: pxelinux.cfg/default

My 'default' file contents are as follows:

default menu.c32
prompt 0
   
    menu title PXE Boot Menu
   
    label bootlocal
      menu label ^Boot Local Drive
      menu default
      localboot 0
      timeout 80
      TOTALTIMEOUT 900
   
       
label seatools
  menu label ^Sea Tools HD Test Program
  kernel memdisk
  append initrd=seatools.img floppy

LABEL core
MENU LABEL ^Tiny Core Linux (base only)
KERNEL vmlinuz
APPEND quiet 786 initrd=core.gz


If I replace 'menu.c32' with 'core', 'seatools' or 'bootlocal', save the change and reboot the client, the selected name will function properly, the client will boot with that selection.  But 'menu.c32' or 'vesamenu.c32' will stop the system from booting.

I have searched the wiki, forum and the Web at large, trying many things, but nothing I have tried fixes the problem.

For whatever clue it may offer, if I put in something that is not recognized by pxelinux it tells me that it does not recognize the syntax.  That leads me to believe that the frile is being read and parsed.

Oh, this basic menu structure works fine on my Debian Squeeze server which leads me to belive that it may be something related to how TC sets up things with terminal server.  Just a thought...

I am using the syslinux package from the TC apps installer.

Any ideas?  I'm stumped...
« Last Edit: May 08, 2013, 05:06:20 PM by gmc »

Offline Rich

  • Administrator
  • Hero Member
  • *****
  • Posts: 11694
Re: PXE default menu.c32 locks up boot
« Reply #1 on: April 03, 2013, 02:33:34 AM »
Hi gmc
Don't you need to set  prompt  to 1?

Online curaga

  • Administrator
  • Hero Member
  • *****
  • Posts: 11049
Re: PXE default menu.c32 locks up boot
« Reply #2 on: April 03, 2013, 04:36:54 AM »
Sorry if this is being too obvious, but does the c32 file you try to load exist in the right place? The extra files of syslinux/pxelinux are not included by default, so you'd need to manually copy what's needed to /netboot.

edit: I tried it, the menu.c32 included in syslinux.tcz causes KVM to freak out. So possibly something in menu.c32, perhaps try the menu.c32 binary from Debian?
« Last Edit: April 03, 2013, 04:43:43 AM by curaga »
The only barriers that can stop you are the ones you create yourself.

Offline gmc

  • Full Member
  • ***
  • Posts: 141
Re: PXE default menu.c32 locks up boot
« Reply #3 on: April 03, 2013, 11:59:58 AM »
Thanks Rich for the prompt suggestion (pun intended) but that's not it.  Appreciate you taking the time to answer.

Curaga - Never hesitate to state the obvious - sometimes it is the best answer!  But in this case I believe I have it in the correct location, especially since the file is being parsed (as indicated by the fact that improper syntax is flagged in an error message if I deliverately include "garbage" text for a test).

I have tried using the menu.c32 (and vesamenu.c32 as well) from the Debian setup.  No change.  I am encouraged by the fact that you are able to reproduce the problem at your end.  That tells me that an answer will be forthcoming!  Thanks for the assistance.

Offline gerald_clark

  • TinyCore Moderator
  • Hero Member
  • *****
  • Posts: 4254
Re: PXE default menu.c32 locks up boot
« Reply #4 on: April 03, 2013, 12:09:40 PM »
Don't mix files from different versions of syslinux.

Online curaga

  • Administrator
  • Hero Member
  • *****
  • Posts: 11049
Re: PXE default menu.c32 locks up boot
« Reply #5 on: April 03, 2013, 01:24:57 PM »
Excellent point. I had the impression that they had some ABI stability, but seems not.

@gmc

Using pxelinux.0 and menu.c32 from the same syslinux source works.
The only barriers that can stop you are the ones you create yourself.

Offline nick65go

  • Hero Member
  • *****
  • Posts: 839
Re: PXE default menu.c32 locks up boot
« Reply #6 on: April 03, 2013, 02:20:50 PM »
Excellent point. I had the impression that they had some ABI stability, but seems not.

@gmc

Using pxelinux.0 and menu.c32 from the same syslinux source works.

exactly. it works for me also. be aware about source for menu.c32
from boot/isolinux:
-r--r--r-- 1 tc staff 61440 Jan 19 21:28 menu.c32

from usr/local/share/syslinux
-rw-r--r-- 1 tc staff 56036 Apr 21  2012 menu.c32

http://www.syslinux.org/wiki/index.php/Common_Problems

"Modules, especially COM32 modules (.c32 files), should ideally come from the same package as the core binaries (isolinux.bin, ldlinux.sys, pxelinux.0...) that you're using. Syslinux v4+ is strictly incompatible with older COM32 modules"

"When updating the Syslinux core binaries, it is highly advised that you also update all modules at the same time"

"Incorrect syntax in configuration files is another common error. If you aren't getting the menu or results you expect double check the syntax in your configuration file(s) is correct"

==
for example, my PXE from qmenu is like this qPXE-TC64.sh:
# Qemu TFTP (10.0.2.2) with root at tftp=./
export QEMU_AUDIO_DRV=oss
sudo modprobe -v kvm-intel

qemu-system-x86_64 -enable-kvm -machine q35 -m 256M -smp 2 -cpu core2duo\
 -vga vmware -soundhw hda -usbdevice mouse -serial none -parallel none\
 -net nic,vlan=0,model=virtio -net user,vlan=0,tftp=./,bootfile=./pxelinux.0\
 -drive file=disk-dummy-1G.qcow,if=virtio,media=disk\

and the ./pxelinux.cfg/01-52-54-00-12-34-56 is ("default" renamed as "01-52-54-00-12-34-56", for speed)
DEFAULT TC64
UI menu.c32
PROMPT 0
TIMEOUT 50

MENU TITLE Qemu Master menu
LABEL TC64
 MENU LABEL TinyCore64 PXE
  TEXT HELP
   Starts TC64
  ENDTEXT
LINUX tc-boot/myvmlinuz64
INITRD tc-boot/mycore64.gz
INITRD tc-boot/myX64.gz
APPEND tftplist=10.0.2.2:/tce/onboot.lst blacklist=pcspkr

MENU SEPARATOR

LABEL com32_hdt
 MENU LABEL HDT(com32) Menu mode
  TEXT HELP
   Starts hdt.c32 using the MENU mode
  ENDTEXT
COM32 hdt.c32
APPEND modules_alias=ids/modules.alias.gz pciids=ids/pci.ids.gz
« Last Edit: April 03, 2013, 04:15:20 PM by nick65go »

Offline genec

  • Full Member
  • ***
  • Posts: 240
Re: PXE default menu.c32 locks up boot
« Reply #7 on: April 03, 2013, 08:55:20 PM »
Yes, I wrote those after seeing numerous issues.  It's more critical with COMBOOTs when they don't handle the return that the API call doesn't exist, either out of deprecation or using a new COMBOOT on an old Syslinux core binary.

For the most part, a COM32 that doesn't use the COMBOOT APIs  should work within its major version (EDIT: but there are no guarantees).  v4.xx and v5.xx changed a LOT.
« Last Edit: April 03, 2013, 09:35:47 PM by genec »

Offline gmc

  • Full Member
  • ***
  • Posts: 141
Re: PXE default menu.c32 locks up boot
« Reply #8 on: April 03, 2013, 09:28:12 PM »
Thanks everyone for jumping in on this issue.  I'm not sure exactly where I stand.  I understand about not mixing versions, but not sure where that leaves me.  I installed syslinux from the apps installer.  Is that a different version than what TC core is working with?  If so, what do I need to do to fix it?  Thanks again.

Offline genec

  • Full Member
  • ***
  • Posts: 240
Re: PXE default menu.c32 locks up boot
« Reply #9 on: April 03, 2013, 10:07:48 PM »
Is that a different version than what TC core is working with?  If so, what do I need to do to fix it?  Thanks again.
Yes, the ISO was built with "4.02 debian-20101024" while the extension contains 4.05.  I presume you're trying to use menu.c32 from the extension?

EDIT: Personally, I prefer to use the precompiled binaries.
« Last Edit: April 03, 2013, 10:24:18 PM by genec »

Offline gmc

  • Full Member
  • ***
  • Posts: 141
Re: PXE default menu.c32 locks up boot
« Reply #10 on: April 04, 2013, 12:06:47 AM »
genc, you are correct, I am tryhing to use the 4.05 extension version.  I am something of a newbie to the Linux world so am not as proficient here as I would like.  Would you have a suggestion as to the simplest method for resolving this problem?

Offline genec

  • Full Member
  • ***
  • Posts: 240
Re: PXE default menu.c32 locks up boot
« Reply #11 on: April 04, 2013, 06:08:13 AM »
Any chance you could try the official precompiled binaries for 4.05 from kernel.org?  This is one of the reasons Syslinux is distributed as a binary and source archive.  From the archive, you should only need pxelinux.0, menu.c32 and any other modules you're using.

Online curaga

  • Administrator
  • Hero Member
  • *****
  • Posts: 11049
Re: PXE default menu.c32 locks up boot
« Reply #12 on: April 04, 2013, 08:26:47 AM »
In addition to copying menu.c32 to /netboot, also copy pxelinux.0 (overwriting the version that was there). No need to restart tc-terminal-server.
The only barriers that can stop you are the ones you create yourself.

Offline gmc

  • Full Member
  • ***
  • Posts: 141
Re: PXE default menu.c32 locks up boot
« Reply #13 on: April 04, 2013, 03:55:56 PM »
OK - I downloaded the 4.05 binaries directly from the syslinux kernal.org site, extracted and copied menu.c32 and pxelinux.0 to /netboot.  Client boot still freezes at the same message:

Trying to load: pxelinux.cfg/default

Hmmm....  Stumped.

Offline gmc

  • Full Member
  • ***
  • Posts: 141
Re: PXE default menu.c32 locks up boot
« Reply #14 on: April 05, 2013, 01:16:29 AM »
Hi all,

I have done some more testing to see if I could find out anything that might prove useful to anyone that may have insight into this problem.

First I tried doing a clean boot from CD on a machine that had never been used with TCL before.  This was identical hardware but untouched by TCL.  I used the TCL 4.7.5 iso.  I modified the tc-terminal-server script to fix the boot_file name problem so that my pxe clients would boot. I verified that the pxe client booteed into TC from the TC pxe server.  I next copied menu.c32 into /netboot and changed the default file from "DEFAULT core" to "DEFAULT menu.c32".  When I rebooted the pxe client it froze at the same error message (..trying to load default...).

I next added one more change to default: PROMPT 0.  Client still froze at same error message.  Just to see what would happen, I changed default to: PROMPT 1 and rebooted the client.  This gave a

boot:

prompt on the client.  If I pressed enter the client froze.  On the next boot I tried typing "core" and Enter and got a successful boot into TC.

Just in case I was missing something critical I tried copying a functional default file with a working menu from another machine.  It froze at the same error message as the bare-bones default file did.
As a side note, it may be of interest that the timeout does not appear to do anything when menu.c32 is used.

For further testing I tried making the basic menu change (DEFAULT menu.c32) on previous versions of TCL going back as far as version 3.6, all versions tested had the same results.  One thing I can say about this problem is that it is consistent.  Sigh…

Just curios, what version of TCL first had tc-terminal-server included?

Does anyone have menu.c32 or vesamenu.c32 working with the terminal server setup?  I would very much like to see the contents of a working default file.
Thanks in advance for any help offered.