Tonight I was playing with trying to get ProDVD to see a dvd burner in my Solaris 10 machine tonight. The current version of Solaris 10 (06/06) has a version of cdrecord in it, but here are the notes from the what’s new page:

cdrecord, readCD, and cdda2wav Available

This device management feature is new in the Solaris 10 6/06 release.

Previously, cdrecord was available on a companion CD. In this release, cdrecord is now available in the Solaris OS. cdrecord is a powerful tool for burning CDs. cdrecord supports more burners than cdrw. cdrecord works better with USB and 1394 external burners. cdrecord is, however, limited to DVD images that are less than 2 Gbytes.

For further information, see the cdrecord, readCD, and cdda2wav man pages.

This is cool, but I did not like the last part “….limited to DVD images that are less than 2 Gbytes.” I was wanting to burn some backup DVD’s and making them less than 2 Gbytes seemed like a waste of media. So I downloaded the new version of ProDVD (from Jörg Schilling, who also wrote cdrecord). So I tried doing the following command, and it “barfed” on me:

[telly:/home/source] root# ./cdrecord-ProDVD -scanbus
Cdrecord-ProDVD-Clone 2.01a21 (i386-pc-solaris2.9) Copyright (C) 1995-2003 Jörg Schilling
Unlocked features: ProDVD Clone
Limited  features:
This copy of cdrecord is licensed for: private/research/educational_non-commercial_use
Warning: Using USCSI interface.
./cdrecord-ProDVD: No such file or directory. Cannot open ‘/dev/rdsk/c0t0d0s2′. Cannot open SCSI driver.
./cdrecord-ProDVD: For possible targets try ‘cdrecord -scanbus’. Make sure you are root.
./cdrecord-ProDVD: For possible transport specifiers try ‘cdrecord dev=help’

Needless to say this doesn’t look good. What is interesting is if I used the bundled cdrecord from Solaris I get this:

[telly:/home/source] root# cdrecord -scanbus
Cdrecord-Clone 2.01 (i386-pc-solaris2.10) Copyright (C) 1995-2004 Jörg Schilling
Warning: Using USCSI interface.
Using libscg version ’schily-0.8′.
scsibus0:
        0,0,0     0) ‘MATSHITA’ ‘DVD-RAM SW-9585 ‘ ‘B100′ Removable CD-ROM
        0,1,0     1) *
        0,2,0     2) *
        0,3,0     3) *
        0,4,0     4) *
        0,5,0     5) *
        0,6,0     6) *
        0,7,0     7) *

So why does the Sun one work but the other doesn’t? Well, lets use truss to see what is happening:

[telly:/home/source] root# truss ./cdrecord-ProDVD -scanbus
execve("cdrecord-ProDVD", 0×08047BB4, 0×08047BC0)  argc = 2
resolvepath("/usr/lib/ld.so.1", "/lib/ld.so.1", 1023) = 12
getcwd("/home/source", 1007)              = 0
resolvepath("/home/source/cdrecord-ProDVD", "/home/source/cdrecord-ProDVD", 1023) = 34
sysconfig(_CONFIG_PAGESIZE)                     = 4096
xstat(2, "/home/source/cdrecord-ProDVD", 0×080479A8) = 0
open("/var/ld/ld.config", O_RDONLY)             Err#2 ENOENT
xstat(2, "/tmp/schily/lib/libsocket.so.1", 0×08047240) Err#2 ENOENT
xstat(2, "/opt/schily/lib/libsocket.so.1", 0×08047240) Err#2 ENOENT
xstat(2, "../libs/i386-sunos5-cc/libsocket.so.1", 0×08047240) Err#2 ENOENT
xstat(2, "/lib/libsocket.so.1", 0×08047240)     = 0
resolvepath("/lib/libsocket.so.1", "/lib/libsocket.so.1", 1023) = 19
open("/lib/libsocket.so.1", O_RDONLY)           = 3
mmap(0×00010000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_ALIGN, 3, 0) = 0xFEFC0000
mmap(0×00010000, 114688, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEFA0000
mmap(0xFEFA0000, 43330, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 3, 0) = 0xFEFA0000
mmap(0xFEFBB000, 2605, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 45056) = 0xFEFBB000
munmap(0xFEFAB000, 65536)                       = 0
mmap(0×00000000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFEF90000
memcntl(0xFEFA0000, 11632, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(3)                                        = 0
xstat(2, "/tmp/schily/lib/libnsl.so.1", 0×08047240) Err#2 ENOENT
xstat(2, "/opt/schily/lib/libnsl.so.1", 0×08047240) Err#2 ENOENT
xstat(2, "../libs/i386-sunos5-cc/libnsl.so.1", 0×08047240) Err#2 ENOENT
xstat(2, "/lib/libnsl.so.1", 0×08047240)        = 0
resolvepath("/lib/libnsl.so.1", "/lib/libnsl.so.1", 1023) = 16
open("/lib/libnsl.so.1", O_RDONLY)              = 3
mmap(0xFEFC0000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFEFC0000
mmap(0×00010000, 577536, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEF00000
mmap(0xFEF00000, 522597, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 3, 0) = 0xFEF00000
mmap(0xFEF80000, 19753, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 524288) = 0xFEF80000
mmap(0xFEF85000, 29920, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0xFEF85000
memcntl(0xFEF00000, 57428, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(3)                                        = 0
xstat(2, "/tmp/schily/lib/libdl.so.1", 0×08047240) Err#2 ENOENT
xstat(2, "/opt/schily/lib/libdl.so.1", 0×08047240) Err#2 ENOENT
xstat(2, "../libs/i386-sunos5-cc/libdl.so.1", 0×08047240) Err#2 ENOENT
xstat(2, "/lib/libdl.so.1", 0×08047240)         = 0
resolvepath("/lib/libdl.so.1", "/lib/libdl.so.1", 1023) = 15
open("/lib/libdl.so.1", O_RDONLY)               = 3
mmap(0xFEFC0000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0xFEFC0000
close(3)                                        = 0
xstat(2, "/tmp/schily/lib/libc.so.1", 0×08047240) Err#2 ENOENT
xstat(2, "/opt/schily/lib/libc.so.1", 0×08047240) Err#2 ENOENT
xstat(2, "../libs/i386-sunos5-cc/libc.so.1", 0×08047240) Err#2 ENOENT
xstat(2, "/lib/libc.so.1", 0×08047240)          = 0
resolvepath("/lib/libc.so.1", "/lib/libc.so.1", 1023) = 14
open("/lib/libc.so.1", O_RDONLY)                = 3
mmap(0×00010000, 4096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_ALIGN, 3, 0) = 0xFEEF0000
mmap(0×00010000, 851968, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEE10000
mmap(0xFEE10000, 751253, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_TEXT, 3, 0) = 0xFEE10000
mmap(0xFEED8000, 24239, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_INITDATA, 3, 753664) = 0xFEED8000
mmap(0xFEEDE000, 5656, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0xFEEDE000
munmap(0xFEEC8000, 65536)                       = 0
memcntl(0xFEE10000, 120300, MC_ADVISE, MADV_WILLNEED, 0, 0) = 0
close(3)                                        = 0
mmap(0×00000000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON, -1, 0) = 0xFEE00000
munmap(0xFEEF0000, 4096)                        = 0
mmap(0×00010000, 24576, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON|MAP_ALIGN, -1, 0) = 0xFEEF0000
getcontext(0×08047740)
getrlimit(RLIMIT_STACK, 0×08047738)             = 0
getpid()                                        = 4902 [4901]
lwp_private(0, 1, 0xFEEF2000)                   = 0×000001C3
setustack(0xFEEF2060)
sigfillset(0xFEEDE6E8)                          = 0
sysi86(SI86FPSTART, 0xFEEDECD8, 0×0000133F, 0×00001F80) = 0×00000001
getuid()                                        = 0 [0]
getrlimit64(RLIMIT_NOFILE, 0×08045690)          = 0
open("/etc/default/cdrecord", O_RDONLY)         Err#2 ENOENT
open("/etc/default/cdrecord", O_RDONLY)         Err#2 ENOENT
open("/etc/default/cdrecord", O_RDONLY)         Err#2 ENOENT
ioctl(1, TCGETA, 0×08045424)                    = 0
fstat64(1, 0×08045390)                          = 0
Cdrecord-ProDVD-Clone 2.01a21 (i386-pc-solaris2.9) Copyright (C) 1995-2003 Jörg Schilling
write(1, " C d r e c o r d - P r o".., 90)      = 90
Unlocked features: ProDVD Clone
write(1, " U n l o c k e d   f e a".., 33)      = 33
Limited  features:
write(1, " L i m i t e d     f e a".., 20)      = 20
This copy of cdrecord is licensed for: private/research/educational_non-commercial_use
write(1, " T h i s   c o p y   o f".., 87)      = 87
fstat64(2, 0×08045610)                          = 0
sigaction(SIGALRM, 0×080455F0, 0×08045670)      = 0
getpid()                                        = 4902 [4901]
getpid()                                        = 4902 [4901]
time()                                          = 1163908913
alarm(9)                                        = 0
brk(0×080BB9E0)                                 = 0
brk(0×080BD9E0)                                 = 0
brk(0×080BD9E0)                                 = 0
brk(0×080BF9E0)                                 = 0
open("/dev/scg0", O_RDWR)                       Err#2 ENOENT
open("/dev/scg1", O_RDWR)                       Err#2 ENOENT
open("/dev/scg2", O_RDWR)                       Err#2 ENOENT
open("/dev/scg3", O_RDWR)                       Err#2 ENOENT
open("/dev/scg4", O_RDWR)                       Err#2 ENOENT
open("/dev/scg5", O_RDWR)                       Err#2 ENOENT
open("/dev/scg6", O_RDWR)                       Err#2 ENOENT
open("/dev/scg7", O_RDWR)                       Err#2 ENOENT
open("/dev/scg8", O_RDWR)                       Err#2 ENOENT
open("/dev/scg9", O_RDWR)                       Err#2 ENOENT
open("/dev/scg10", O_RDWR)                      Err#2 ENOENT
open("/dev/scg11", O_RDWR)                      Err#2 ENOENT
open("/dev/scg12", O_RDWR)                      Err#2 ENOENT
open("/dev/scg13", O_RDWR)                      Err#2 ENOENT
open("/dev/scg14", O_RDWR)                      Err#2 ENOENT
open("/dev/scg15", O_RDWR)                      Err#2 ENOENT
Warning: Using USCSI interface.
write(2, " W a r n i n g :   U s i".., 32)      = 32
open("/dev/rdsk/c0t0d0s2", O_RDONLY|O_NDELAY)   Err#16 EBUSY
open("/dev/rdsk/c0t1d0s2", O_RDONLY|O_NDELAY)   Err#2 ENOENT
open("/dev/rdsk/c0t2d0s2", O_RDONLY|O_NDELAY)   Err#2 ENOENT
open("/dev/rdsk/c0t3d0s2", O_RDONLY|O_NDELAY)   Err#2 ENOENT
open("/dev/rdsk/c0t4d0s2", O_RDONLY|O_NDELAY)   Err#2 ENOENT

–Output Cut off–

Basicly all I was looking for was the open(”/dev/rdsk/c0t0d0s2…… line. Interesting the Err shows “Err #16 EBUSY”. So what the heck is using the device? (I know there is nothing in the drive.) So I did this:

svcadm disable -t volfs

Now try to run cdrecord again:

[telly:/home/source] root# ./cdrecord-ProDVD dev=0,0,0 -scanbus
Cdrecord-ProDVD-Clone 2.01a21 (i386-pc-solaris2.9) Copyright (C) 1995-2003 J?rg Schilling
Unlocked features: ProDVD Clone
Limited  features:
This copy of cdrecord is licensed for: private/research/educational_non-commercial_use
scsidev: ‘0,0,0′
scsibus: 0 target: 0 lun: 0
Warning: Using USCSI interface.
Using libscg version ’schily-0.7′
scsibus0:
        0,0,0     0) ‘MATSHITA’ ‘DVD-RAM SW-9585 ‘ ‘B100′ Removable CD-ROM
        0,1,0     1) *
        0,2,0     2) *
        0,3,0     3) *
        0,4,0     4) *
        0,5,0     5) *
        0,6,0     6) *
        0,7,0     7) *

And as my High school Chem teacher used to say “eeeeeeeeeeeeee haaaaaaaaaaa”. Now hopefully I can try burning a DVD and see if it will work.

Posted by unixwiz, filed under Interesting, Random Stuff, Solaris, ultra 20. Date: November 18, 2006, 11:41 pm | No Comments »

08  Jun
Sad Day

It upset me today to have to install Microsoft Windows on an Ultra 20.. We are doing a Sun Ray demo next week and I needed a Windows server for Remote Desktop. So I had to get a copy of Windows Server 2003 R2 and installed it on a brand new Sun Ultra 20. Couple of quirks.

  1. Windows Server 2003 R2 is not “supported” on the Ultra 20
  2. After the install you will not have an Network connection. (no drivers for the nVidia ethernet card.
  3. VGA driver refresh rate sucks.
  4. Hung the machine after trying to do something simple. Ended up having to do an “unplanned” reboot.

So to fix the drivers problem, I downloaded the drivers disk from Sun’s website for the ultra 20 and mounted it on my Mac so I could copy the drivers out of it on to a USB drive. (I did not have a cd burner to burn the cd). Once I got the drivers installed it “seems” to work well. And I got to the Windows update to download the 27 security fixes for it.

Hopefully I will also get to put Solaris Express on it so that it is not feeling bad about having to run windows.

Posted by unixwiz, filed under ultra 20. Date: June 8, 2006, 9:47 pm | No Comments »