Jump to content











Photo
- - - - -

'CD Shell' and new ISOLINUX module: [SOLVED] "Initial menu has no LABEL entries!"


  • Please log in to reply
32 replies to this topic

#1 allanf

allanf

    Gold Member

  • .script developer
  • 1256 posts

Posted 23 November 2009 - 03:38 AM

Hi,

I'm using CD Shell with ISOLINUX (SYSLINUX 3.83) and new MEMDISK.

CD Shell has not been developed for a while (2005?). The official download contains a module for ISOLINUX.

My isolinux.cfg looks like:

DEFAULT MENU.C32

PROMPT 0



LABEL pe21

MENU LABEL ^P)  Boot Custom Windows PE 2.1

KERNEL PE21BOOT.BIN



LABEL pe21.iso

MENU LABEL ^Q)  Boot Custom Windows PE 2.1 ISO with memdisk

KERNEL MEMDISK

APPEND iso initrd=PE21.ISO

When I try to run "isolinux" or "isolinux menu.c32" from CD Shell cmd-line, I received the following:

ISOLINUX 3.07 03/01/2005
Copyright © 1994-2005 H. Peter Anvin
.
Initial menu has no LABEL entries!
boot:

Note the version. I had to remove "LINUX" and "INITRD" (single-line entries) from the isolinux.cfg to avoid other error/warning messages about unknown keywords. This lead me to think that the "LABEL entries" warning is an issue with backward-compatibility. However, I have some doubts!

From the above, if I run a valid boot: command, the screen shows the updated version number, etc.

However, "boot: menu.c32" gives the same warning as above. So, we're now in the new version of ISOLINUX, but still the same error!?

The valid boot entries work from the isolinux cmd-line, and also from the CD Shell Menu and cmd-line. Here is the part of the CD Shell Menu Script that works OK:
Set ActionCmd1_1   = "isolinux PE21BOOT.BIN"

Set ActionCmd1_2   = "isolinux MEMDISK iso initrd=PE21.ISO"

I would like to also have an option to bring up an ISOLINUX Menu.

What can be wrong?

Thanks :dubbio:

#2 Icecube

Icecube

    Gold Member

  • Team Reboot
  • 1063 posts
  •  
    Belgium

Posted 23 November 2009 - 03:54 PM

This is wrong:

ISOLINUX 3.07 03/01/2005
Copyright © 1994-2005 H. Peter Anvin
.
Initial menu has no LABEL entries!
boot:

Get a newer ISOLINUX (3.83) (which needs to be modified).
That's why it doens't recognise the new keywords.

#3 Sha0

Sha0

    WinVBlock Dev

  • Developer
  • 1682 posts
  • Location:reboot.pro Forums
  • Interests:Booting
  •  
    Canada

Posted 23 November 2009 - 06:35 PM

According to http://www.cdshell.o...f.html#isolinux, the part after the isolinux command is passed on as though it were typed at the boot: prompt. So your
/boot>isolinux menu.c32
command should really be loading menu.c32. If it is not, it would be good to know your directory structure on the disc.

I have no idea what you mean by

From the above, if I run a valid boot: command, the screen shows the updated version number, etc.

Who reports "the updated version number"? Like Icecube said, you must always match ISOLINUX.BIN and .C32 versions. MEMDISK is a "kernel"-format binary and does not depend on Syslinux version, so it can be from anywhere.

If I had to guess, the guess would be that your directory structure is not what ISOLINUX is expecting, or you have mismatched versions somewhere. You could try
/boot>isolinux menu.c32 /boot/isolinux/isolinux.cfg
and see if that makes a difference. (Use an explicit, correct path to tell menu.c32 which config-file to use.)

- Shao Miller

#4 Icecube

Icecube

    Gold Member

  • Team Reboot
  • 1063 posts
  •  
    Belgium

Posted 23 November 2009 - 06:58 PM

I investigated it a bit further.
CD shell uses a patched version of ISOLINUX 3.07.
The files isolinux.asm and ui.inc are patched.

Some comments and code added to isolinux.asm (not all patched code):
; MKT {

%ifdef MKT_BUILD



; CD Shell needs to know where to copy the command line to.

; Also it needs to patch in an offset to all LBA addresses.

lba_offset:		dd	0		&#59; offset of virtual file system iso

				dw	command_line; location of command line

%endif

; MKT }
Some comments and code added to ui.inc:
no_config_file:



; MKT {

%ifdef MKT_BUILD



; Things we skip:

;	- Don't force display of the boot: prompt if caps-lock, etc. is on.

;	- Don't execute the default command ("linux auto")

;

; Just go straight to processing the command sent from CD Shell.

;

		cmp byte [command_line], 0; check for empty command line

		jne load_kernel		&#59; execute the command line

%endif

; MKT }
It uses'/boot/modules/isolinux' as default path for the isolinux.cfg file.

I am trying to apply the CD shell patches to ISOLINUX to ISOLINUX 3.83.

@ allanf
Can you upload your cdshell.ini file?

#5 allanf

allanf

    Gold Member

  • .script developer
  • 1256 posts

Posted 23 November 2009 - 11:40 PM

Thanks for the response.

According to http://www.cdshell.o...f.html#isolinux, the part after the isolinux command is passed on as though it were typed at the boot: prompt. So your

/boot>isolinux menu.c32
command should really be loading menu.c32. If it is not, it would be good to know your directory structure on the disc.


Directory structure (from ISO Source):
Directory of C:\...\ISO



24/11/2009  10&#58;33 AM	<DIR>		  .

24/11/2009  10&#58;33 AM	<DIR>		  ..

24/11/2009  10&#58;33 AM	<DIR>		  boot

18/01/2008  11&#58;45 PM		   333,203 bootmgr

24/11/2009  10&#58;33 AM	<DIR>		  efi

24/11/2009  10&#58;33 AM	<DIR>		  isolinux

24/11/2009  10&#58;34 AM	<DIR>		  sources

			   1 File&#40;s&#41;		333,203 bytes

			   6 Dir&#40;s&#41;  147,516,485,632 bytes free



 Directory of C&#58;\...\ISO\isolinux



24/11/2009  10&#58;33 AM	<DIR>		  .

24/11/2009  10&#58;33 AM	<DIR>		  ..

24/11/2009  12&#58;13 AM		 2,013,184 hdt-0.3.5.iso

05/10/2009  03&#58;07 PM			14,336 isolinux.bin

24/11/2009  10&#58;33 AM			   361 isolinux.cfg

04/08/2009  01&#58;42 PM			24,972 memdisk

05/10/2009  03&#58;07 PM			57,396 menu.c32

17/11/2009  12&#58;52 AM	   130,138,112 pe21.iso

05/01/2008  03&#58;23 AM			 2,048 pe21boot.bin

			   7 File&#40;s&#41;	132,250,409 bytes

			   2 Dir&#40;s&#41;  147,516,485,632 bytes free

I have no idea what you mean by
Who reports "the updated version number"? Like Icecube said, you must always match ISOLINUX.BIN and .C32 versions. MEMDISK is a "kernel"-format binary and does not depend on Syslinux version, so it can be from anywhere.


Sorry. If I enter "isolinux" or "isolinux menu.c32" at the CD Shell cmd-line, I get the ISOLINUX screen showing the old version, the "LABEL entries" warning and the "boot:" prompt.

If I then enter at boot prompt, an invalid (my mistake - I said valid earlier) command to generate an error, the print-out on the screen shows the the new ISOLINUX version and the error.

If, at the boot prompt, I enter "menu.c32", I again receive the "LABEL entries" warning followed by the boot prompt. It seems a valid enough entry, except for the warning.

If, at the boot prompt, I enter a different valid command, or enter a LABEL from isolinux.cfg, it boots! For example "boot: PE21BOOT.BIN" works; as does "boot: pe21" where pe21 is my LABEL. MEMDISK also works, whether using the full commands or only the LABEL.


Can you upload your cdshell.ini file?

I'm using a very slightly modified "green.cds" Script from DoctorXP, which is included in the CD Shell package.

cdshell.ini is from the downloaded CD Shell package, except replace "example.cds" with "green.cds".

#

# Sample startup script demonstrating some basics.

# For CD Shell 2.0, Feb 2003

#



# Set the name of the file we will attempt to start

set samplePath=&#34;scripts/doctorxp&#34;

set sampleFile=&#34;green.cds&#34;



# Check for the sample script.

if file&#91;$samplePath/$sampleFile&#93;; then cd $samplePath; then script $sampleFile



# Sample script not found.

print &#34;Sample script not found!\n&#34;

end

\ISO\boot\scripts\doctorxp\green.cds is modified only as follows - commented out lines and replaced them with ISOLINUX commands:

#####################

# Set Menu Actions  #

#####################



Set ActionCmd1_1   = &#34;isolinux /ISOLINUX/PE21BOOT.BIN&#34;

##Set ActionCmd1_1   = &#34;chain /cdsh/images/w2kpsect.bin&#34;

Set ActionCmd1_2   = &#34;isolinux MEMDISK iso initrd=PE21.ISO&#34;

##Set ActionCmd1_2   = &#34;chain /cdsh/images/w2kssect.bin&#34;

Set ActionCmd1_3   = &#34;isolinux MEMDISK iso initrd=HDT-0.3.5.ISO&#34;

##Set ActionCmd1_3   = &#34;chain /cdsh/images/w2kasect.bin&#34;

After the adjustments, the content of CD Shell's boot folder is copied to the ISO Source ISO\boot folder.

All works well, except the ISOLINUX Menu.

Regards :dubbio:

EDIT: Added hdt-0.3.5.iso as I was writing this post. Some things are a little amiss. Will correct in a moment.
EDIT: Fixed, to show directory structure and green.cds including HDT-0.3.5.iso... I hope.

#6 Icecube

Icecube

    Gold Member

  • Team Reboot
  • 1063 posts
  •  
    Belgium

Posted 25 November 2009 - 11:59 PM

In the attachment you can find a new ISOLINUX (3.83) module for CD shell.

All modified source files and their original versions are include (so anybody can update the module when a new version of ISOLINUX comes out).

A compiled version of the modules can be found at /boot/modules/isolinux.csm.

If you use c32 modules, be sure to get them from the same version (3.83).
Using UI, LINUX, INITRD, COM32 and other newer syslinux syntax, will work now.

Attached Files



#7 allanf

allanf

    Gold Member

  • .script developer
  • 1256 posts

Posted 26 November 2009 - 01:51 AM

In the attachment you can find a new ISOLINUX (3.83) module for CD shell.


I don't know how to put this .... the word "AWSOME!" springs to mind. ... ;) ...

I tested it and it works.

A CD Shell revival? I'm sure there may be others interested.

Thank you!

#8 was_jaclaz

was_jaclaz

    Finder

  • Advanced user
  • 7101 posts
  • Location:Gone in the mist
  •  
    Italy

Posted 26 November 2009 - 10:33 AM

A CD Shell revival? I'm sure there may be others interested.

Please list the reasons why CDShell has an advantage of any kind over other CD loaders, so maybe people will get interested. :)

;)

jaclaz

#9 allanf

allanf

    Gold Member

  • .script developer
  • 1256 posts

Posted 26 November 2009 - 02:45 PM

Please list the reasons why CDShell has an advantage of any kind over other CD loaders, so maybe people will get interested. :thumbup:

:)

jaclaz


Unlike some other CD loaders, CD Shell does not require any special ISO features like RockRidge or a Boot Info Table. Therefore, I assume that CD Shell would be OK with most ISO-creating software.

CD Shell one of the most remarkable programs for the organization of loading of several operational systems from one disk. CD Shell have own very advanced language for script development and allow create very advanced and beautiful menus, both text, and graphic. CD Shell can load any operational systems and to use all advantages of other boot managers (for example BCDW, IsoLinux and memdisk), also is provided possibility independently to create modules and to add the necessary functionality.

From Nightman

I see a number of CD Shell stalwarts on other forums - some of them eventually succumbing to the latest developments in other bootloaders.

This is my first attempt at a muli-boot project, so give me some time to try them out.

Perhaps you can help by comparing the features of any bootloaders you might be familiar with, in terms of CD booting.

Regards :rofl:

#10 Icecube

Icecube

    Gold Member

  • Team Reboot
  • 1063 posts
  •  
    Belgium

Posted 26 November 2009 - 04:24 PM

@ allanf
I am happy that you like it :) .

You can use also the name of a LABEL after the isolinux command:

So instead of:
Set ActionCmd1_3   = &#34;isolinux MEMDISK iso initrd=HDT-0.3.5.ISO&#34;
you can use:
Set ActionCmd1_3   = &#34;isolinux hdt&#34;
If you have the LABEL hdt in your isolinux.cfg file:
LABEL hdt

LINUX memdisk

INITRD HDT-0.3.5.ISO

APPEND iso


#11 was_jaclaz

was_jaclaz

    Finder

  • Advanced user
  • 7101 posts
  • Location:Gone in the mist
  •  
    Italy

Posted 26 November 2009 - 07:41 PM

Therefore, I assume that CD Shell would be OK with most ISO-creating software.

Sure :thumbup:, and this must be the reason why since the dawn of time it used mkisofs as "suggested app".

Try comparing the mkisofs command line suggested:
http://www.cdshell.o...oc/buildcd.html

mkisofs -o output.iso -b boot/loader.bin -no-emul-boot -boot-load-size 4 root-of-iso-tree


With the one suggested for grub4dos in it's original documentation and copied verbatim on the guide:
http://diddy.boot-la.../install_cd.htm

mkisofs -R -b grldr -no-emul-boot -boot-load-size 4 -o grldr.iso iso_root


But out of curiosity, would you try hex-editing the embedded menu.lst in grldr (changing "menu.lst" into "MENU.LST") as discussed here:
http://www.boot-land...?...c=9696&st=6
and try creating a grub4dos .iso with this command line? :

mkisofs -b grldr -no-emul-boot -boot-load-size 4 -o grldr.iso iso_root


If :) it boots and finds MENU.LST :thumbup:, we have removed the -R (or -r, as cdob would suggest :thumbup: ) RockRidge Extensions from the "equation" and we have put CDSHELL and grldr on a par:

mkisofs -b boot/loader.bin -no-emul-boot -boot-load-size 4 -o output.iso root-of-iso-tree

mkisofs -b grldr -no-emul-boot -boot-load-size 4 -o grldr.iso iso_root


Now besides your own experience, read about other people experience:
http://www.boot-land...?showtopic=9550
http://www.boot-land...?showtopic=8021

Now, you may be right in thinking that I do use this:

mkisofs -v -iso-level 4 -l -D -d -J -joliet-long -R -volid "GRLDR" -A GRLDR/MKISOFS -sysid "Win32" -b grldr -no-emul-boot -boot-load-seg 0x1000 -allow-multidot -hide grldr -hide boot.catalog -o grldr.iso iso_root

mainly because I am heartless bastard :rofl: that likes to add unneded command line switches that would be otherwise completely unneeded, in order to make life difficult to new mkisofs users, but the above works.

As well as this one (with the alternative -boot-load-size 4):

mkisofs -v -iso-level 4 -l -D -d -J -joliet-long -R -volid "GRLDR" -A GRLDR/MKISOFS -sysid "Win32" -b grldr -no-emul-boot -boot-load-size 4 -allow-multidot -hide grldr -hide boot.catalog -o grldr.iso iso_root

and as this one cleaned of the -R option since grldr has embedded menu.lst hexedited:

mkisofs -v -iso-level 4 -l -D -d -J -joliet-long -volid "GRLDR" -A GRLDR/MKISOFS -sysid "Win32" -b grldr -no-emul-boot -boot-load-size 4 -allow-multidot -hide grldr -hide boot.catalog -o grldr.iso iso_root

and as this one, cleaned of the "volume label/editor" options:

mkisofs -v -iso-level 4 -l -D -d -J -joliet-long -b grldr -no-emul-boot -boot-load-size 4 -allow-multidot -hide grldr -hide boot.catalog -o grldr.iso iso_root

and as this one, cleaned of the "hiding of system files":

mkisofs -v -iso-level 4 -l -D -d -J -joliet-long -b grldr -no-emul-boot -boot-load-size 4 -allow-multidot -o grldr.iso iso_root

and as this one, cleaned of the actually not strictly needed (as I see it) remaining options:

mkisofs -iso-level 4 -l -D -d -J -joliet-long -b grldr -no-emul-boot -boot-load-size 4 -allow-multidot -o grldr.iso iso_root


Maybe some of these are actually useful/needed on a mult-boot CD (or even a single boot CD for some OS/PE) :rofl:.


Perhaps you can help by comparing the features of any bootloaders you might be familiar with, in terms of CD booting.

The comparison is easily made, IMHO:
grub4dos or isolinux/memdisk can boot practically everything.
They have the advantage that the same (or a "strictly related" loader like Syslinux) that share the same syntax can be used on ALL other kind of media, this makes them superiosr as you learn only one (or two) syntaxes and you can use what you learned everywhere.

ANY other loader is an additional, normally unneeded overlay (which added complexity needs to be justified somehow, as an example with exceptional graphical capabilities, as an example Aerostudio, or because of a missing features, as an example PLoP, which USB stack allows booting where it was impossible before) and requires learning a "new" syntax.

CD Shell in 2003, 2004 and maybe 2005, when it was "left alone", was great :) .

Nowadays it doesn't look like the best option available, again IMHO.

:rofl:

jaclaz

#12 allanf

allanf

    Gold Member

  • .script developer
  • 1256 posts

Posted 26 November 2009 - 11:32 PM

Sure :rofl:, and this must be the reason why since the dawn of time it used mkisofs as "suggested app".

Suggested? By whom? For whom? mkisofs is absolutely recommended for users of mkisofs. So what? Read it in the link you kindly provided.
http://www.cdshell.o...oc/buildcd.html



... try hex-editing the embedded menu.lst in grldr ... [so that] we have removed the -R (or -r, as cdob would suggest :thumbup: ) RockRidge Extensions from the "equation" and we have put CDSHELL and grldr on a par:

Ha! That is cheating! ... :thumbup: ...



Now besides your own experience, read about other people experience:
http://www.boot-land...?showtopic=9550
http://www.boot-land...?showtopic=8021

You're saying that any program that takes up (read, wastes) a million miles of thread on umpteen forums is good?



The comparison is easily made, IMHO:
grub4dos or isolinux/memdisk can boot practically everything ... [referring to] ALL other kind of media


Read it again ... slowly this time ...
"QUOTE (allanf @ Nov 26 2009, 04:45 PM)
Perhaps you can help by comparing the features of any bootloaders you might be familiar with, in terms of CD booting."
Emphasis added, with the hope that you might provide some comparison on a level playing field.



CD Shell in 2003, 2004 and maybe 2005, when it was "left alone", was great :rofl: .

To my knowledge it has been left alone - perhaps for too long. Maybe I miss your meaning. Would you care to elaborate what you mean by "when it was left alone, was great"? Do I detect a hint of sarcasm?

Regards :)

#13 was_jaclaz

was_jaclaz

    Finder

  • Advanced user
  • 7101 posts
  • Location:Gone in the mist
  •  
    Italy

Posted 27 November 2009 - 11:14 AM

To my knowledge it has been left alone - perhaps for too long. Maybe I miss your meaning. Would you care to elaborate what you mean by "when it was left alone, was great"? Do I detect a hint of sarcasm?


No sarcasm at all.
I do think that CD Shell at the time was a GREAT program, and still is :).

What I was trying to tell you, and evidently completely failed to, was that regardless what you might think about mkisofs (which actually, while being one of the best -please read the BEST - program to create a .iso, it is also one of the WORSTLY documented program I have ever seen :rofl:) it offers some NEEDED features for a multi-boot CD that "most" ISO-creating software may fail to provide.
What you miss in here:

Unlike some other CD loaders, CD Shell does not require any special ISO features like RockRidge or a Boot Info Table. Therefore, I assume that CD Shell would be OK with most ISO-creating software.

is that in a multiboot CD additional, particular, specific settings for the .iso making may be NEEDED not by the loader itself, but by the actual OS, PE or whatever the loader will try to boot.

In other words, since you stated:

This is my first attempt at a muli-boot project, so give me some time to try them out.

I was trying to make you focus NOT on the loader only, each one has his/her own like or like-not, the good thing is that there many of them to choose among, but on the actual problems you will face as soon as you will try adding to your multi-boot CD something that is NOT a PE2.x.
I tried to show you how you can use grub4dos grldr with exactly the same syntax for mkisofs showed on the original CD shell page, with a small modification.
Therefore I "assume" that, once you have edited it, grldr also "would be OK with most ISO-creating software".
From experience, I can tell you that "most ISO-creating software" will produce a coaster when it comes to a multi-boot CD, unless it provides the additional features needed by the various things it will attempt booting.

:thumbup:

jaclaz

#14 allanf

allanf

    Gold Member

  • .script developer
  • 1256 posts

Posted 16 December 2009 - 09:38 AM

In the attachment you can find a new ISOLINUX (3.83) module for CD shell.

All modified source files and their original versions are include (so anybody can update the module when a new version of ISOLINUX comes out).

A compiled version of the modules can be found at /boot/modules/isolinux.csm.

If you use c32 modules, be sure to get them from the same version (3.83).
Using UI, LINUX, INITRD, COM32 and other newer syslinux syntax, will work now.


@Icecube

Can the new module file - on its own - be redistributed? Say, as an embedded attachment in a script in a winbuilder project?

The project would automatically download the CD SHELL package when first required, then replace the old module and create a bootable ISO using oscdimg. The CD SHELL package contains some older licenses.

The project also has an option to use ISOLINUX (by downloading SYSLINUX) instead of CD SHELL; or ISOLINUX along side of CD SHELL with priority given to CD SHELL because it may be more reliable when using oscdimg.

My preference would be to have a permanent home for the new module's package - not just the file; and have the package downloaded when first required by the project.

Your thoughts would be welcome.

Thanks

#15 allanf

allanf

    Gold Member

  • .script developer
  • 1256 posts

Posted 18 December 2009 - 08:32 AM

Sorry to be a pain and bump this along.

My problem is that winbuilder cannot automatically download the new module's package from an attachment to a post. (A similar problem arises with the latest memdisk attched to another of your posts - although this may not be an issue when the updated memdisk is integrated with the next release of SYSLINUX Project.)

I'm reluctant to embed the whole package into a winbuilder script because I like to keep the scripts light.

Don't you have a winbuilder.net server where you could keep things for public downloads? I do, and if you would like me to host it, I can try to find the password. :rolleyes:

#16 Icecube

Icecube

    Gold Member

  • Team Reboot
  • 1063 posts
  •  
    Belgium

Posted 18 December 2009 - 01:28 PM

I don't have a Winbuilder.net server.
You can't distribute the isolinux module of CD shell on its own (without the source). I will ask the Syslinux developers what is allowed and what is not.

#17 allanf

allanf

    Gold Member

  • .script developer
  • 1256 posts

Posted 18 December 2009 - 03:28 PM

I don't have a Winbuilder.net server.
You can't distribute the isolinux module of CD shell on its own (without the source). I will ask the Syslinux developers what is allowed and what is not.


Thanks for the reply.

I assumed that the old source contained in the CD Shell package would not be sufficient to allow the redistribution of the new module file, even though the old CD Shell package and the new module would be combined in the same project - the former downloaded during the build process, and the latter dettached from a winbuilder script at the same time.

However, the new module would only be required when the corresponding SYSLINUX project is also downloaded to provide up-to-date menu.c32 and possibly chain.c32 (and maybe more as the project evolves). So the source would be available after the first run of the project when those SYSLINUX elements are required. But there would be no obvious nexus between a single .csm file embedded in a winbuilder script and the downloaded SYSLINUX project.

I intend to stick with CD Shell as an option for a CD Boot Menu in my project - primarily because I only use tools from the Windows Automated Installation Kit for the project (i. e. compatability with oscdimg is a requirement). The old CDShell/CDImage combination for multiboot CDs appears to have fallen out of favour several years ago. Not sure why. And the interest in the new ISOLINUX module for CD Shell is somewhat underwhelming judging by the number of downloads of your attachment.

Nevertheless, it would be good to keep the licensing issues in order.

Regards :rolleyes:

#18 allanf

allanf

    Gold Member

  • .script developer
  • 1256 posts

Posted 21 December 2009 - 11:41 AM

... so anybody can update the module when a new version of ISOLINUX comes out ...


Not anybody!

Following along in your readme, I could probably "patch" the /core/isolinux.asm and /core/ui.inc files, but I'm not real confident. What program was used to generate the .diff files?

The next bit has me worried the most - "build whole Syslinux". You've probably done that more than a couple of times. A step-by-step procedure would help a lot.

Updating the CD Shell module looks quite straighforward - but I'll only find out once I get to that stage.

I'm keen to try out the new SYSLINUX Project but need to rewrite parts of my winbuilder project to use the included memdisk. And that also means getting a new module for CD Shell.

Can you help?

Thanks ;)

#19 Icecube

Icecube

    Gold Member

  • Team Reboot
  • 1063 posts
  •  
    Belgium

Posted 21 December 2009 - 02:21 PM

What program was used to generate the .diff files?

The program diff was used.
To apply the patch to the original isolinux.asm, go to the /core dir of the Syslinux package and run:
patch -p0 < isolinux.asm.diff

The next bit has me worried the most - "build whole Syslinux". You've probably done that more than a couple of times. A step-by-step procedure would help a lot.

I don't know if you can build Syslinux succesfully from Windows. You need the gcc compiler, make, nasm and perl at least.

You can build Syslinux on Ubuntu.
Get the necessary tools (build-essential (gcc, make, ...) and nasm):
sudo apt-get install build-essential nasm
Go to the extracted Syslinux source tar ball.
cd to the /core dir and apply the isolinux.asm.diff and ui.inc.diff patch and go back to the main dir:
cd core

patch -p0 < isolinux.asm.diff

patch -p0 < ui.inc.diff

cd ..
and run 'make':
make
Have some patience and you will have the compiled ISOLINUX.

If I find some time, I will make a new patch against ISOLINUX 3.84. Which won't need a patched /cdshell/source/modules/isolinux/special.asm. ISO-hybrid mode of ISOLINUX won't work in that case, but I think this is not important when you use it with CD shell.

#20 Icecube

Icecube

    Gold Member

  • Team Reboot
  • 1063 posts
  •  
    Belgium

Posted 23 December 2009 - 06:35 PM

In the attachment you can find a new version.
Whole CD shell (+ modifications) and Syslinux 3.84 (+ modifications) are included. The patch is less invasive than the previous one. The original isolinux.bin and isolinux-debug.bin of the original Syslinux archive can still be build normally. isolinux-cdshell.bin is now used for building the ISOLINUX module for CD shell.

The attachment is a bit messy.
It consists of 2 zip files: ISOLINUX_module_for_CDshell.7z.001.zip and ISOLINUX_module_for_CDshell.7z.002.zip
which contain a splitted 7z archive. The 7z archive contains a tar file with all files.

Attached Files



#21 allanf

allanf

    Gold Member

  • .script developer
  • 1256 posts

Posted 24 December 2009 - 01:05 AM

In the attachment you can find a new version.
Whole CD shell (+ modifications) and Syslinux 3.84 (+ modifications) are included. The patch is less invasive than the previous one. The original isolinux.bin and isolinux-debug.bin of the original Syslinux archive can still be build normally. isolinux-cdshell.bin is now used for building the ISOLINUX module for CD shell.

The attachment is a bit messy.
It consists of 2 zip files: ISOLINUX_module_for_CDshell.7z.001.zip and ISOLINUX_module_for_CDshell.7z.002.zip
which contain a splitted 7z archive. The 7z archive contains a tar file with all files.


Thanks Icecube

I need more time to figure out how (or if) this can fit into my winbuilder project which really only requires the updated .csm file. How to redistribute it so everybody's happy?

I understand that you have provided the full packages to make it easier to see how to keep the CD Shell isolinux module up to date.

Great work.

Two things I like about CD Shell - fits nicely with ISO created by oscdimg, and easily boots off Windows Boot Manager.

Regards :dubbio:

#22 Icecube

Icecube

    Gold Member

  • Team Reboot
  • 1063 posts
  •  
    Belgium

Posted 24 December 2009 - 10:09 AM

I think I have found a way.
Part of GPLv2:

3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
:dubbio: Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)

http://www.gnu.org/l...l-2.0.html#SEC3

I made a small package this time:
/cdshell.diff ==> patch file for CD shell

  /isolinux.csm ==> this is the new ISOLINUX module for CD shell

  /README_ISOLINUX_MODULE.txt ==> README

  /syslinux.diff ==> patch file for Syslinux
The README_ISOLINUX_MODULE.txt tells where to find the full package.

Attached Files



#23 allanf

allanf

    Gold Member

  • .script developer
  • 1256 posts

Posted 01 January 2010 - 03:42 PM

I think I have found a way.


I hope you're right. But I'm prepared to take a slap on the wrist if not.

I attached the whole .zip package to a .script file. The .script exxtracts the .zip to a Downloads Directory, then unzips the package to the same Directory and copies the .csm only to the bootable project's /boot/modules folder, replacing the old .csm module. The readme, etc stays on the host. Thinking about it now, it may be better if everything goes into the bootable project - it won't take up much space. Anyway, here's the relevant winbuilder script (subject to change). Everything works well and I should be able to post an updated set of project scripts soon.

Thanks for all the effort. I'm very grateful.

//------------------- Update CD Shell isolinux module --------------------//

//------------- Extract new module package attached to script ------------//

Echo,&#34;Extracting attached ISOLINUX_3.84_module_for_CDshell_minimal.zip to %pe2ArchiveDir%&#34;

ExtractFile,&#34;%ScriptFile%&#34;,&#34;isolinux&#34;,&#34;ISOLINUX_3.84_module_for_CDshell_minimal.zip&#34;,&#34;%pe2ArchiveDir%&#34;

//------------- Unzip new module package to %pe2ArchiveDir% --------------//

Set,&#34;%ArchiveFile%&#34;,&#34;ISOLINUX_3.84_module_for_CDshell_minimal.zip&#34;

If,ExistFile,&#34;%pe2ArchiveDir%\%ArchiveFile%&#34;,Echo,&#34;Unzipping %ArchiveFile% to %pe2ArchiveDir%&#34;

Run,&#34;%ProjectDir%\script.project&#34;,uzip,&#34;%pe2ArchiveDir%&#34;

//---------- Copy .csm module file to %ISOSource%\boot\modules -----------//

If,ExistFile,&#34;%pe2ArchiveDir%\ISOLINUX_3.84_module_for_CDshell_minimal\isolinux.csm&#34;,Echo,&#34;Copying isolinux.csm to %ISOSource%\boot\modules&#34;

If,ExistFile,&#34;%ISOSource%\boot\modules\isolinux.csm&#34;,DirMove,&#34;%ISOSource%\boot\modules\isolinux.csm&#34;,&#34;%ISOSource%\boot\modules\isolinux.csm.original&#34;

If,ExistFile,&#34;%pe2ArchiveDir%\ISOLINUX_3.84_module_for_CDshell_minimal\isolinux.csm&#34;,Echo,&#34;Updating&#34;%ISOSource%\boot\modules\isolinux.csm.&#34;

If,ExistFile,&#34;%pe2ArchiveDir%\ISOLINUX_3.84_module_for_CDshell_minimal\isolinux.csm&#34;,FileCopy,&#34;%pe2ArchiveDir%\ISOLINUX_3.84_module_for_CDshell_minimal\isolinux.csm&#34;,&#34;%ISOSource%\boot\modules&#34;

If,NotExistFile,&#34;%pe2ArchiveDir%\ISOLINUX_3.84_module_for_CDshell_minimal\isolinux.csm&#34;,Echo,&#34;!! Cannot find %pe2ArchiveDir%\ISOLINUX_3.84_module_for_CDshell_minimal\isolinux.csm!&#34;


#24 Icecube

Icecube

    Gold Member

  • Team Reboot
  • 1063 posts
  •  
    Belgium

Posted 02 January 2010 - 11:56 AM

Thinking about it now, it may be better if everything goes into the bootable project - it won't take up much space.

Yes, it would be better (or at least add the README).

#25 allanf

allanf

    Gold Member

  • .script developer
  • 1256 posts

Posted 02 January 2010 - 02:53 PM

Yes, it would be better (or at least add the README).


OK. I understand.

For a variety of reasons, I've decided to scrap my project (again ... :) ...). Hope you got something out of this exercise.

Regards :)




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users