MKISOFS for OS/2 released



Developer Robert Lalla just released MKISOFS for OS/2. The archive mkisofs.zip (75,538k) was uploaded in Hobbes. mkisofs is effectively a pre-mastering program to generate the iso9660 filesystem - it takes a snapshot of a given directory tree, and generates a binary image which will correspond to an iso9660 filesystem when written to a block device. Operating System/Version: OS/2 v3, v4 Additional requirements: EMX runtime dlls.


MKISOFS is also capable of generating the System Use Sharing Protocol records specified by the Rock Ridge Interchange Protocol. This is used to further describe the files in the iso9660 filesystem to a unix host, and pro vides information such as longer filenames, uid/gid, posix permissions, and block and character devices.

Each file written to the iso9660 filesystem must have a filename in the 8.3 format (8 characters, period, 3 char acters, all upper case), even if Rock Ridge is in use.
This filename is used on systems that are not able to make use of the Rock Ridge extensions (such as MS-DOS), and each filename in each directory must be different from the other filenames in the same directory. mkisofs generally tries to form correct names by forcing the unix filename
to upper case and truncating as required, but often times this yields unsatisfactory results when there are cases where the truncated names are not all unique. MKISOFS assigns weightings to each filename, and if two names that are otherwise the same are found the name with the lower
priority is renamed to have a 3 digit number as an extension (where the number is guaranteed to be unique). An example of this would be the files foo.bar and foo.bar.~1~ - the file foo.bar.~1~ would be written as FOO.000;1 and the file foo.bar would be written as FOO.BAR;1

Note that MKISOFS is not designed to communicate with the writer directly. Most writers have proprietary command sets which vary from one manufacturer to another, and you need a specialized tool to actually burn the disk. The cdwrite utility is one such tool that runs under Linux and
performs this task. The latest version of cdwrite is capable of communicating with Phillips/IMS/Kodak, HP and Yamaha drives. Most writers come with some version of DOS software that allows a direct image copy of an iso9660 image to the writer. The current version of cdwrite is available from sunsite.unc.edu: /utils/disk-management/cdwrite-2.0.tar.gz.

MKISOFS FOR OS/2

This is a straight OS/2 port of the MKISOFS unix utility for cdrom image file creation. In order to run MKISOFS.EXE on OS/2 the EMX runtime dlls need to be present your LIBPATH.

How to use MKISOFS.EXE? Please read the MANUAL file.

!!Warning: The use of MKISOFS.EXE is at your own risk!!

RSJ users only: Please take a look at the RSJ_HEAD utility.

Known restrictions:
* support for ISO9660 level2 "-l" and RockRidge "-r" longnames only, no Joliet longnames (Windows), no ISO9660 level3 names (multiple dots). Conflicting
file names will be renamed without any user interaction.
* multisession capabilities not tested
* due to a missing device driver, currently an OS/2 bootable CD is not possible, DOS bootable CD is OK.
* "-c" option without "-b" option will crash the program

To recompile you need to download the source code package (MKISOFS-1_11_2.GZ), and the GCC/EMX compiler.
Simply append my additions contained in CONFIG_H.ADD to the original CONFIG.H file und run BUILD.CMD.
(no makefile used)

MULTIPLE SESSIONS

This release of mkisofs has basic support completed for multiple sessions. At this point, it hasn't been tested thoroughly at all - we still need some interaction between cdwrite and mkisofs for this to work correctly.

There are a few new options to mkisofs to allow for this.
The first one is "-M /dev/scd0", and is used so that mkisofs can examine the entirety of the previous image so that it can figure out what additional files need to be written in the new session.

There is also a temporary hack in mkisofs in the form of a '-C' option. The -C option takes two numbers as input, which are delimited by commas. For example, you could specify "-C 1000,1020", but you should never just make up numbers to use here. These numbers are determined from cdwrite.

There are patches to cdwrite in the file cdwrite.c.diff, which add a new information gathering option. To use this, you specify '-m', and instead of actually writing any data, cdwrite dumps two numbers to stdout which are comma delimited. These are the same numbers that mkisofs uses
with the -C option.

Thus in practice you should in principle be able to do something like:

mkisofs [other options] -C `cdwrite --device /dev/sgX --multi` \
-M /dev/cdblkdev

to tie these things together. Admittedly this is a very crude
interface between the two programs right now, and this will be cleaned up later. For now, it provides the minimal functionality required to write multiple session discs.

Note: As of the 1.10b4 release, nobody has actually tried to burn any discs with this. It is entirely possible that bugs exists, or that further tweaks will be required somewhere along the way to get things
working correctly. The data gathering mode of cdwrite has been
tested, and I believe it works correctly. Caveat Emptor.

RSJ_HEAD.EXE

Do you want to write an image file created by MKISOFS to CD
using the CDVIEW tool contained in the RSJ packagage?

!!Warning: The use of RSJ_Head.exe is at your own risk!!

* move KBDVIO32.DLL into your LIBPATH, unless already done
* rename the CD image file to TRACK01.TRK
* run RSJ_Head TRACK01.TRK
* move TRACK01.TRK into the ?\CDWFS\TRACKS directory
* transfer track #1 to an empty CD-R using the CDVIEW tool

The RSJ_Head utility will copy a RSJ XA header in front
of the image file. For disk space reasons, this copy
operation is done "in-place". So whenever you interrupt
the operation of RSJ_Head, the image file will be damaged.

CONTACT THE AUTHOR:

Robert Lalla, Loerrach, Germany
rlalla@stepnet.de


@Macarlo, Inc.
@Macarlo's Shareware & Web
OS/2
Java Lobby Member
Java Site Accredited

[TOP] [HOME] [INDEX]