Puppy release 1.0.0 had a separate iso for the multisession cd. Is this no longer necessary? Is burning the regular iso to a cd using the multisession option all that is necessary now for the 1.0.2 release?

Yeah, but read the bit on the News page, about how got strange effects at bootup with the "-msinfo" option of cdrecord.
That has stuffed things up a bit.

Is there a clever person who can think how to ask the inserted CD if it was burnt "closed" or "open"?
"Open" means that another track can be added.

I can't find anything in /proc with that info.
The only application I can find that determines that, is the abovementioned cdrecord.
Surely it must be possible to write a little C program that can read that info off the CD? ...because, obviously it must be there somewhere on the CD/DVD, some little flag or whatever.

...anyone reading this who thinks they might know how to tackle it, it will be greatly appreciated. This little problem is holding up the multisession project.
We need to access the drive as a plain ATAPI, ie as /dev/hdx, not use any scsi stuff.

Is there a clever person who can think how to ask the inserted CD if it was burnt "closed" or "open"?
"Open" means that another track can be added.

I can't find anything in /proc with that info.
The only application I can find that determines that, is the abovementioned cdrecord.
Surely it must be possible to write a little C program that can read that info off the CD? ...because, obviously it must be there somewhere on the CD/DVD, some little flag or whatever.

I don't know about how to access the 'flag or whatever',(or If i can be classed as a clever person ) but I've just thought of a simple way to do it.

Using a small script, write the word 'Test' to the CD in a hidden file './puppytest' ( for example ). Then read the file from the cd. If it's not found then the CD can't be written to. Suppress the error message and replace with something like 'CLOSED CD'. If the file can be read successfully, delete the file, and look for it again. If the file is still there then it's an OPEN CD. If it's gone then it's OPEN and REWRITEABLE.

It's probably quite a naive way of doing it - and I apologise for that. But it wouldn't take more than a dozen lines of text to accomplish.

How soon in the boot process does Puppy need to know that it is booting from a multisession CD?

Very early on.
The detection is supposed to happen in /etc/rc.d/rc.sysinit, the first boot script, and if it detects the cd is multisession it is then supposed to execute /etc/rc.d/rc.sysinit-cd instead id rc.sysinit. In other words, it jumps out of rc.sysinit.

.... It's written in C++ for Linux and FreeBSD but the intention is to allow it to work on other systems. The device interface works at a fairly low-level by sending ATAPI commands directly to the CDROM.

Excerpt from the docs ...

Quote:

Here's what you can do:

* Read each sector of data on the disk. You can arrange to have an md5 checksum computed and saved for each sector. Any information that can be read from the sector (such as what track it is in, the type of data, if there were any data errors, etc) is saved. Usually, the data itself (more than 600MBytes over an entire CD) is discarded.
* Find out information about the CD-ROM drive itself. Items such as does it support reading and writing CDs, the manufacturer, model numbers, etc.
* Read the table of contents for the CD. You can also construct a table of contents based on the sectors read from the disk. You can compare several the Mode 0 and Mode 2 table of contents. Finally, you can try and lookup the artist and album on the network.
* Finally, there are a number of tests that can be run. These can be repeatedly run and just work on whatever data has already been collected. For example, if no table of contents has been read, then those tests don't do anything significant. Similarly, of only a few sectors of data are read, then the tests are only for those sectors.

It works for my computers limited environment, it correctly identifies one particular multisession cdrom I have as multisession, and a comercial stamped cd as closed, but I don't currently have a burner to make my own test cases.

It really really should work , the program uses the linux kernel "uniform cdrom driver interface" which dates back to kernel 2.1.x. Which is why I am quite happy to post the source code in a public forum.

What I don't know:
1) is if it correctly identifies a multisession disc with only one track (one session of writing on it).

2) if a multisession disc that gets closed, is still identified as "multisession".

Can people who want to test this, have a go and post back to this thread. With either success or failure for cases #1 and #2.
If you have a problem with it, please send me the "-d" debug output from it.

Run with -h flag for info.
Puppy Binary and source code inside archive.

Jesse,
Sorry to be the bearer of bad tidings, but it isn't working for me.
Yes, it works if the CD has more than one track, but I have a multisession CD newly burned, only one track, and cdrominfo returns "Closed".

I just checked the CD with "cdrecord -msinfo dev=/dev/hdd"
and it returns "0,42579"
whereas a closed CD returns "cdrecord: Cannot read first writable address"

Here this one might do it
the numbers for "singe track open multisession" that you get from cdrecord should be the same numbers that you get on this MULTI line (from debug output):
MULTI: 18008, 330701
though for single track the first number will be 0.

The reason that I don't know if its right yet is I can't find a definition of what is "multisession open".

A multisession CD with only one track returned this:
MULTI: 0, 31183
MULTI: is not XA
MULTI: addr format is LBA
TOC: 1-1

...so, it remains elusive!
The solution to the problem is the error message that cdrecord returns when it determines that a CD is not multi-session. It somehow determines that beyond the first track is not writable.

You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot vote in polls in this forumYou cannot attach files in this forumYou can download files in this forum