This document describes how to use CD-R or CD-RW drives on an Ultra 10 running Solaris 7. The process is not all that simple because of a variety of factors ranging from the lack of SCSI support on the Ultra 10 to various problems relating more specifically to the default configuration of Solaris.
Update 3/5/2002: If you are looking for more generic instructions on converting an IDE-based Sun machine to UltraSCSI, Jonathan P. Voss has expanded on these instructions.
If you wish to incorporate this information into other documentation that is distributed under an Open Source license, feel free to do so. Please give credit where credit is due.
Update 11/1/2000: Solaris 8 10/00 comes with a supplement CD that contains the command cdrw(1). That may make the rest of this document obsolete.
This document was written using the following configuration:
Experience tells me that third party SCSI host adapters that use the
same Symbios chip will work. In my Ultra 10, I have installed a
Koutech Systems, Inc. Kouwell
Ultra-Wide SCSI Card model KW-801V75, which cost
about $80 from Aberdeen, Inc.
My CD-RW works fine with it, although I do have a slight problem booting my
IBM UltraSCSI disk with it. (I can boot from the drive, but whenever a
full reset of the system occurs (reboot from Solaris, power cycle, or reset
from openboot) I get a "Trap 3E" error. I suspect that this is related to
the lack of a terminator jumper on the drive. I from the openboot
ok prompt I can boot.) Update 6/29/2000: This problem
with the IBM drive seems to have been fixed by a suggestion made by
ssimpson@Sequoia.seattleschools.org. The suggestion was to disable sync
negotiation by setting the appropriate jumper.
Other companies may create SCSI cards that work on an Ultra 10 under Solaris as well. See Sun's compatibility list for details. At the time that I wrote this, Adaptec [23]94[04]UW/OF cards were listed. In early 1999 I found that Apaptec's cards did not work reliably under load on Solaris 7 using Solaris 2.6 drivers. Furthermore a conversation with the product manager for Adaptec's OF (open firmware) cards revealed that they were being discontinued.
If you really need a dual-channel UltraSCSI card or you plan on going with external hard drives, you may want to consider buying the SCSI card from Sun. While it is rather pricey, it does come with high quality cables for connecting external devices. High quality SCSI cables are quite expensive, thus there is some extra value in the card from Sun. Additionally, if I had bought my SCSI card from Sun and it gave me the "Trap 3E" error, I would be able to call up tech support and talk to someone that knows what OpenBoot and Solaris are.
Update 11/3/1999 Sun just announced a single-channel, single-ended, UltraSCSI host adapter priced at $199 (part no X5010A). The target audience for this card are those that need to use SCSI devices on Ultra 5's and Ultra 10's. Note that this card comes without cables, unlike the dual-channel card mentioned above.
On the Yamaha drive, there is a "block" jumper that should be set as well. This makes it so that the drive will accept transfers in the size that Solaris likes to send and receive.
You will also need to install the scg device driver. I installed it by getting SCHILYscg.sparc.tar.Z and scg-sparcv9-sol2.7. I then did the following:
% compress -dc SCHILYscg.sparc.tar.Z | tar xvf - # pkgadd -d . SCHILYscg # cp scg-sparcv9-sol2.7 /kernel/drv/scg/sparcv9
Dealing with vold(1M)
Because of a bad interaction with vold(1M) and unformatted media, it is necessary to make vold either go away or be nicer.
Making vold(1M) go away
To make vold not run anymore, you can simply get rid of the init(1M) script.
# rm /etc/rc2.d/S92volmgtThis will have the effect of requiring root intervention to mount floppies and CD's. Some people prefer to rename the script to start with a lower-case 's' (that is, mv S92volmgt s92volmgt) in case it is needed in the future. Note that by removing S92volmgt, you really are not deleting the file, as it is a hard link to /etc/init.d/volmgt. In any case, I think that the following section offers a better solution.
Making vold(1M) nicer
To make vold(1M) only pay attention to your IDE CD-ROM drive, change vold.conf(4) (/etc/vold.conf) to
# @(#)vold.conf 1.21 96/05/10 SMI # # Volume Daemon Configuration file # # Database to use (must be first) db db_mem.so # Labels supported label dos label_dos.so floppy rmscsi pcmem label cdrom label_cdrom.so cdrom label sun label_sun.so floppy rmscsi pcmem # Devices to use use cdrom drive /dev/rdsk/c0*s2 dev_cdrom.so cdrom%d use floppy drive /dev/rdiskette[0-9] dev_floppy.so floppy%d use pcmem drive /dev/rdsk/c0*s2 dev_pcmem.so pcmem%d forceload=true # use rmscsi drive /dev/rdsk/c*s2 dev_rmscsi.so rmscsi%d # Actions insert dev/diskette[0-9]/* user=root /usr/sbin/rmmount insert dev/dsk/c0* user=root /usr/sbin/rmmount eject dev/diskette[0-9]/* user=root /usr/sbin/rmmount eject dev/dsk/c0* user=root /usr/sbin/rmmount notify rdsk/* group=tty user=root /usr/lib/vold/volmissing -p # List of file system types unsafe to eject unsafe ufs hsfs pcfsThe key difference here is that
/dev/dsk/c* and
/dev/rdsk/c* have been changed to /dev/dsk/c0*
and /dev/rdsk/c0* to make it only pay attention to the IDE
buses.
# reboot -- -r
% isainfo -b 32
-r flag to boot(1M) (passed by reboot -- -r)
should have caused /dev/scg0 to be created:
% ls -l /dev/scg0 lrwxrwxrwx 1 root other 41 Sep 21 10:38 /dev/scg0 -> ../devices/pci@1f,0/pci@1/scsi@1/scg@0,0:
# /opt/schily/bin/cdrecord -dev=0,4,0 -ejectYou can also create an image and write it to the disk.
# mkisofs -J -r -L -V My_Test_Image -o /var/tmp/myimage.iso /some/directory # /opt/schily/bin/cdrecord -dev=0,4,0 /var/tmp/myimage.isoNote that I did this as root and that the
-dev argument reflects that I have the CD-RW drive on SCSI
bus 0, ID 4, LUN 0. It is important to also note that the corresponding
device files are /dev/dsk/c1*, as the IDE buses use
/dev/dsk/c0t[0-3].
In order for regular users to run cdrecord, consider the advice given in the cdrecord man page.
If you don't want to allow users to become root on your sys-
tem, cdrecord may safely be installed suid root. This allows
all users or a group of users with no root privileges to use
cdrecord. Cdrecord in this case checks, if the real user
would have been able to read the specified files. To give
all user access to use cdrecord, enter:
chmod 4711 /usr/local/bin/cdrecord
To give a restricted group of users access to cdrecord
enter:
chmod 4710 /usr/local/bin/cdrecord
chgrp cdburners /usr/local/bin/cdrecord
and add a group cdburners on your system.
Never give write permissions for non root users to the
/dev/scg? devices unless you would allow anybody to
read/write/format all your disks.
I have tried gcombust and ECLiPt Roaster. I was able to get both of them to write a CD. I think that I prefer gcombust, but I have not used either of them enough to give a really fair comparison.
Both of gcombust and ECLiPt Roaster require portions of GNOME, which itself requires quite a bit of work to install. See the summary of what I did to build gnome on Solaris for some pointers.
|
Mike Gerdts gerdts@cae.wisc.edu Hey! Did you see my resume? |
||