Hints, notes, and known problems

updated 10-03-2000


Can't use CD-writers as readers

The CD writers we've seen don't support the "revert" command, so the SGI SCSI CD driver won't work with these devices for normal read operations. An icon will show up on your desktop, and you can eject the media with the icon or "eject" command, but that's about it for the familiar SGI desktop tools.

SCSI alerts on your console/SYSLOG

A few nasty looking (but harmless) errors show up on the console when CD media is put in the drive:
unix: dks1d4vol: [Alert] Illegal request: Illegal logical block address (asc=0x21, asq=0x0), Block #0
unix: dks1d4vol: [Alert] Illegal request: Invalid field in parameter list (asc=0x26, asq=0x0), (data byte 9), Block #0
mediad: DIOCSELECT failed on CD-ROM /dev/rdsk/dks1d4vol: I/O error
This is mediad and the driver trying to figure out what the drive (which they think is a regular cdrom) is doing, then finding out it isn't an acceptable drive (see above).
If you see the different messages, look below at the SCSI disconnect issue.


Indigo/Indigo2/Indy SCSI Disconnect Notes

There is a problem with some CD writers and the Indigo2/Indy if SCSI disconnects are enabled on the drive's SCSI bus (which they are by default). You will see console or SYSLOG messages like:
WARNING: wd93 SCSI Bus=0 ID=4 LUN=0: SCSI cmd=0xe1
timeout after 40100 msec. Resetting SCSI bus
WARNING: wd93 SCSI Bus=0 ID=4 LUN=0: SCSI cmd=0x3
Unexpected info phase 0, state 40. Resetting SCSI bus
To disable SCSI disconnects on SCSI controller, type the command:
% jot /var/sysgen/master.d/wd93
and change the lines that say:
int wd93_enable_disconnect[SC_MAXADAP] = {1 /* scsibus 0 */, 1 /* scsibus 1 */,
        1 /* scsibus 2 */, 1 /* scsibus 3 */};

On the Indigo2 with your CD writer on the external SCSI bus (bus 1) to:

int wd93_enable_disconnect[SC_MAXADAP] = {1 /* scsibus 0 */, 0 /* scsibus 1 */,
        1 /* scsibus 2 */, 1 /* scsibus 3 */};

On the Indigo/Indy external SCSI bus (bus 0) to:

int wd93_enable_disconnect[SC_MAXADAP] = {0 /* scsibus 0 */, 1 /* scsibus 1 */,
        1 /* scsibus 2 */, 1 /* scsibus 3 */};

Rebuild your kernel:

% autoconfig

And reboot:
% reboot

We have not seen this problem on any O2 or Octane machines (and they don't have wd93 controllers).


I/O errors using "dd" option to copy iso9660 disks

You may occasionally get an error using the "dd" option on xisofs (James' version). The problem results from a control issue between mediad (mount_iso9660) and the program attempting to do a raw read of the cd media. The symptoms are seen in the "build image" phase, where you get an immediate return with an "I/O error - 0 records in + 0 records out".

To work around this, you can type as root:

umount /CDROM #(if that's the drive you're copying from)
/etc/init.d/mediad stop
This allows access for dd. You can restart mediad when you're finished reading the cd media:
/etc/init.d/mediad start

Perltk & eoe.sw.svr4net &libnsl.so

Perl/Tk 400.202 needs libnsl.so, which is a part of the "eoe.sw.svr4net" package. If you get a message about libnsl.so (on an older version of this package) or get a conflict when trying to install the software, you can remedy the problem by installing eoe.sw.svr4 from your base (first) IRIX OS CD or your foundation OS CD (6.5.X).

Xisofs

"Use DD to make image" can be used to make a copy of an already existing data CD, including volume headers and other nice things. Put the path to the vol slice of the raw CD device in the "Source Path" field. For example, on Tangent (and O2), the CD is device device 4. We put /dev/rdsk/dks0d4vol in the Source Path field.

To make an ISO9660 CD and preserve the long file names, check the "Allow Full 32 Character Filenames", "Use Rock Ridge Protocol". and "Generate Adjusted Rock Ridge Attributes" checkboxes. Macs, and most flavors of UNIX understand Rock Ridge extensions, however PC's don't, so they still won't be able to read the long filenames unless you give them hints by checking "Generate translation table"

Perl Problems
If you see something very much like:

tangent 64% xisofs
Can't locate loadable object for module Tk in @INC (@INC contains: /usr/freeware/lib/xisofs /usr/freeware/lib/perl5/5.00503/irix-n32 /usr/freeware/lib/perl5/5.00503 /usr/freeware/lib/perl5/site_perl/5.005/irix-n32 /usr/freeware/lib/perl5/site_perl/5.005 /usr/freeware/lib/perl5/sgi_perl/irix-n32 /usr/freeware/lib/perl5/site_perl .) at /usr/freeware/bin/xisofs line 29
BEGIN failed--compilation aborted at /usr/freeware/bin/xisofs line 29.

then you have a version of perl with new n32 binaries (better, faster, yet incompatible with o32)
that has also disrupted the o32 stuff that the perltk package (not available at freeware.sgi.com, sadly) was built upon.
If you're running IRIX 6.5.X, you can load this updated version of perltk; if not, I suggest using gcombust, or manually using mkisofs and cdrecord.


Drive Can't Read CD You've Written

As noted earlier, if you've used re-writable CD media to make your new CD, chances are very good that your SGI machine with and older drive will not be able to read it. Use write-once media.

If you are running IRIX 6.4 with very few or very old patches installed and you want to read ISO9660 CDROMS, you may need a new patch! If you've written a CD and can read it in an O2 but not your Octane, this is likely to be your problem.

As the patches and patch sets are updated all the time, look to http://support.sgi.com for required/recommended patches for IRIX 6.4, and install the ones for SCSI and ISO9660.


No Realtime/High Priority Apps while writing CD's!

Applications like mediarecorder may have high or realtime priorities set in the kernel. If you try and record full-frame video while writing a CD, you may have problems! cdrecord and xisofs will let you know if you've underrun your CD writer data. You can throw away the CD you were writing, turn off your high-priority application for a bit, and try again.

comments/questions to rickv@sgi.com