452 lines
12 KiB
Groff
452 lines
12 KiB
Groff
.\" @(#)btcflash.1 1.10 16/01/26 Copyr 2006-2016 J. Schilling
|
|
.\" Manual page for btcflash
|
|
.\"
|
|
.if t .ds a \v'-0.55m'\h'0.00n'\z.\h'0.40n'\z.\v'0.55m'\h'-0.40n'a
|
|
.if t .ds o \v'-0.55m'\h'0.00n'\z.\h'0.45n'\z.\v'0.55m'\h'-0.45n'o
|
|
.if t .ds u \v'-0.55m'\h'0.00n'\z.\h'0.40n'\z.\v'0.55m'\h'-0.40n'u
|
|
.if t .ds A \v'-0.77m'\h'0.25n'\z.\h'0.45n'\z.\v'0.77m'\h'-0.70n'A
|
|
.if t .ds O \v'-0.77m'\h'0.25n'\z.\h'0.45n'\z.\v'0.77m'\h'-0.70n'O
|
|
.if t .ds U \v'-0.77m'\h'0.30n'\z.\h'0.45n'\z.\v'0.77m'\h'-0.75n'U
|
|
.if t .ds s \\(*b
|
|
.if t .ds S SS
|
|
.if n .ds a ae
|
|
.if n .ds o oe
|
|
.if n .ds u ue
|
|
.if n .ds s sz
|
|
.TH BTCFLASH 1L "2016/01/26" "J\*org Schilling" "Schily\'s USER COMMANDS"
|
|
.SH NAME
|
|
btcflash \- Firmware flash utility for BTC DRW1008 DVD+/-RW recorder
|
|
.SH SYNOPSIS
|
|
.B
|
|
btcflash
|
|
.BI dev= device
|
|
[
|
|
.I options
|
|
]
|
|
[
|
|
.BI f= firmwarefile
|
|
]
|
|
.SH DESCRIPTION
|
|
.B Btcflash
|
|
is used to read update the Firmware for a BTC DRW1008 DVD+/-RW recorder.
|
|
.PP
|
|
Be very careful when writing firmware as this program does not check
|
|
for the correctness of the target device.
|
|
.PP
|
|
.SS "Device naming"
|
|
For a list of possible device name parameters call
|
|
.B "btcflash \-scanbus
|
|
or
|
|
.B "btcflash dev=help
|
|
and then use the right
|
|
.B dev=
|
|
parameter based on the device listing.
|
|
|
|
.SH OPTIONS
|
|
.TP
|
|
.B \-help
|
|
Prints a short summary of the
|
|
.B p
|
|
options and exists.
|
|
.TP
|
|
.B \-version
|
|
Print version information and exit.
|
|
.TP
|
|
.BI dev= target
|
|
Set the SCSI target for the CD/DVD/BluRay-Recorder, see notes above.
|
|
A typical target device specification is
|
|
.BI dev= 1,6,0
|
|
\&.
|
|
If a filename must be provided together with the numerical target
|
|
specification, the filename is implementation specific.
|
|
The correct filename in this case can be found in the system specific
|
|
manuals of the target operating system.
|
|
On a
|
|
.I FreeBSD
|
|
system without
|
|
.I CAM
|
|
support, you need to use the control device (e.g.
|
|
.IR /dev/rcd0.ctl ).
|
|
A correct device specification in this case may be
|
|
.BI dev= /dev/rcd0.ctl:@
|
|
\&.
|
|
.sp
|
|
.B \h'-2m'General SCSI addressing
|
|
.br
|
|
The
|
|
.I target device
|
|
to the
|
|
.B dev=
|
|
option
|
|
refers to
|
|
.IR scsibus / target / lun
|
|
of the CD/DVD/BluRay-Recorder. Communication on
|
|
.I SunOS
|
|
is done with the SCSI general driver
|
|
.B scg.
|
|
Other operating systems are using a library simulation of this driver.
|
|
Possible syntax is:
|
|
.B dev=
|
|
.IR scsibus , target , lun
|
|
or
|
|
.B dev=
|
|
.IR target , lun .
|
|
In the latter case, the CD/DVD/BluRay-Recorder has to be connected to the default
|
|
SCSI bus of the machine.
|
|
.IR Scsibus ,
|
|
.I target
|
|
and
|
|
.I lun
|
|
are integer numbers.
|
|
Some operating systems or SCSI transport implementations may require to
|
|
specify a filename in addition.
|
|
In this case the correct syntax for the device is:
|
|
.B dev=
|
|
.IR devicename : scsibus , target , lun
|
|
or
|
|
.B dev=
|
|
.IR devicename : target , lun .
|
|
If the name of the device node that has been specified on such a system
|
|
refers to exactly one SCSI device, a shorthand in the form
|
|
.B dev=
|
|
.IR devicename : @
|
|
or
|
|
.B dev=
|
|
.IR devicename : @ , lun
|
|
may be used instead of
|
|
.B dev=
|
|
.IR devicename : scsibus , target , lun .
|
|
.sp
|
|
.B \h'-2m'Remote SCSI addressing
|
|
.br
|
|
To access remote SCSI devices, you need to prepend the SCSI device name by
|
|
a remote device indicator. The remote device indicator is either
|
|
.BI REMOTE: user@host:
|
|
or
|
|
.BI REMOTE: host:
|
|
A valid remote SCSI device name may be:
|
|
.BI REMOTE: user@host:
|
|
to allow remote SCSI bus scanning or
|
|
.BI REMOTE: user@host:1,0,0
|
|
to access the SCSI device at
|
|
.I host
|
|
connected to SCSI bus # 1,target 0, lun 0.
|
|
In order to allow remote access to a specific
|
|
.IR host ,
|
|
the
|
|
.BR rscsi (1)
|
|
program needs to be present and configured on the
|
|
.IR host .
|
|
.sp
|
|
.B \h'-2m'Alternate SCSI transports
|
|
.br
|
|
.B ATAPI
|
|
drives are just
|
|
.B SCSI
|
|
drives that inherently use the
|
|
.I "ATA packet interface
|
|
as
|
|
.B SCSI
|
|
command transport layer build into the IDE (ATA) transport.
|
|
You may need to specify an alternate transport layer on the command line
|
|
if your OS does not implement a fully integrated kernel driver subsystem that
|
|
allows to access any drive using
|
|
.B SCSI
|
|
commands via a single unique user interface.
|
|
.sp
|
|
To access SCSI devices via alternate transport layers,
|
|
you need to prepend the SCSI device name by a transport layer indicator.
|
|
The transport layer indicator may be something like
|
|
.B USCSI:
|
|
or
|
|
.BR ATAPI: .
|
|
To get a list of supported transport layers for your platform, use
|
|
.B dev=
|
|
.IR HELP :
|
|
.sp
|
|
.B \h'-2m'Portability Background
|
|
.br
|
|
To make
|
|
.B btcflash
|
|
portable to all \s-2UNIX\s0 platforms, the syntax
|
|
.B dev=
|
|
.IR devicename : scsibus , target , lun
|
|
is preferred as it hides OS specific knowledge about device names from the user.
|
|
A specific OS may not necessarily support a way to specify a real device file name nor a
|
|
way to specify
|
|
.IR scsibus , target , lun .
|
|
.sp
|
|
.I Scsibus
|
|
0 is the default SCSI bus on the machine. Watch the boot messages for more
|
|
information or look into
|
|
.B /var/adm/messages
|
|
for more information about the SCSI configuration of your machine.
|
|
If you have problems to figure out what values for
|
|
.IR scsibus , target , lun
|
|
should be used, try the
|
|
.B \-scanbus
|
|
option of
|
|
.B btcflash
|
|
described below.
|
|
.sp
|
|
.B \h'-2m'Using logical names for devices
|
|
.br
|
|
If no
|
|
.I dev
|
|
option is present,
|
|
.B btcflash
|
|
will try to get the device from the
|
|
.B CDR_DEVICE
|
|
environment.
|
|
.sp
|
|
If a file /etc/default/cdrecord exists, and
|
|
if the argument to the
|
|
.B dev=
|
|
option
|
|
or the
|
|
.B CDR_DEVICE
|
|
environment
|
|
does not contain the characters ',', '/', '@' or ':',
|
|
it is interpreted as a device label name that was defined in the file
|
|
/etc/default/cdrecord (see FILES section).
|
|
.sp
|
|
.B \h'-2m'Autotarget Mode
|
|
.br
|
|
If no
|
|
.B dev=
|
|
option
|
|
and no
|
|
.B CDR_DEVICE
|
|
environment
|
|
is present, or if it
|
|
only contains a transport specifyer but no address notation,
|
|
.B btcflash
|
|
tries to scan the SCSI address space for CD-ROM drives.
|
|
If exactly one is found, this is used by default.
|
|
.TP
|
|
.BI timeout= #
|
|
Set the default SCSI command timeout value to
|
|
.IR # " seconds.
|
|
The default SCSI command timeout is the minimum timeout used for sending
|
|
SCSI commands.
|
|
If a SCSI command fails due to a timeout, you may try to raise the
|
|
default SCSI command timeout above the timeout value of the failed command.
|
|
If the command runs correctly with a raised command timeout,
|
|
please report the better timeout value and the corresponding command to
|
|
the author of the program.
|
|
If no
|
|
.I timeout
|
|
option is present, a default timeout of 40 seconds is used.
|
|
.TP
|
|
.BI debug= "#, " -d
|
|
Set the misc debug value to # (with debug=#) or increment
|
|
the misc debug level by one (with -d). If you specify
|
|
.I -dd,
|
|
this equals to
|
|
.BI debug= 2.
|
|
This may help to find problems while opening a driver for libscg.
|
|
as well as with sector sizes and sector types.
|
|
Using
|
|
.B \-debug
|
|
slows down the process and may be the reason for a buffer underrun.
|
|
.TP
|
|
.BR kdebug= "#, " kd= #
|
|
Tell the
|
|
.BR scg -driver
|
|
to modify the kernel debug value while SCSI commands are running.
|
|
.TP
|
|
.BR \-silent ", " \-s
|
|
Do not print out a status report for failed SCSI commands.
|
|
.TP
|
|
.B \-v
|
|
Increment the level of general verbosity by one.
|
|
This is used e.g. to display the progress of the process.
|
|
.TP
|
|
.B \-V
|
|
Increment the verbose level with respect of SCSI command transport by one.
|
|
This helps to debug problems
|
|
during the process, that occur in the CD-Recorder.
|
|
If you get incomprehensible error messages you should use this flag
|
|
to get more detailed output.
|
|
.B \-VV
|
|
will show data buffer content in addition.
|
|
Using
|
|
.B \-V
|
|
or
|
|
.B \-VV
|
|
slows down the process.
|
|
.TP
|
|
.BI f= file
|
|
Specify the filename where the firmware should be read from.
|
|
.TP
|
|
.B \-scanbus
|
|
Scan all SCSI devices on all SCSI busses and print the inquiry
|
|
strings. This option may be used to find SCSI address of the
|
|
devices on a system.
|
|
The numbers printed out as labels are computed by:
|
|
.B "bus * 100 + target
|
|
.TP
|
|
.BI scgopts= list
|
|
A comma separated list of SCSI options that are handled by libscg.
|
|
The implemented options may be uptated indepentendly from applications.
|
|
Currently, one option:
|
|
.B ignore\-resid
|
|
is supported to work around a Linux kernel bug.
|
|
.TP
|
|
.BR ts= #
|
|
Set the maximum transfer size for a single SCSI command to #.
|
|
The syntax for the
|
|
.B ts=
|
|
option is the same as for cdrecord fs=# or sdd bs=#.
|
|
.sp
|
|
If no
|
|
.B ts=
|
|
option has been specified,
|
|
.B btcflash
|
|
defaults to a transfer size of 256 kB. If libscg gets lower values from the
|
|
operating system, the value is reduced to the maximum value that is possible
|
|
with the current operating system.
|
|
Sometimes, it may help to further reduce the transfer size or to enhance it,
|
|
but note that it may take a long time to find a better value by experimenting
|
|
with the
|
|
.B ts=
|
|
option.
|
|
|
|
|
|
.SH EXAMPLES
|
|
.SH ENVIRONMENT
|
|
.TP
|
|
.B RSH
|
|
If the
|
|
.B RSH
|
|
environment is present, the remote connection will not be created via
|
|
.BR rcmd (3)
|
|
but by calling the program pointed to by
|
|
.BR RSH .
|
|
Use e.g.
|
|
.BR RSH= /usr/bin/ssh
|
|
to create a secure shell connection.
|
|
.sp
|
|
Note that this forces
|
|
.B cdrecord
|
|
to create a pipe to the
|
|
.B rsh(1)
|
|
program and disallows
|
|
.B cdrecord
|
|
to directly access the network socket to the remote server.
|
|
This makes it impossible to set up performance parameters and slows down
|
|
the connection compared to a
|
|
.B root
|
|
initiated
|
|
.B rcmd(3)
|
|
connection.
|
|
.TP
|
|
.B RSCSI
|
|
If the
|
|
.B RSCSI
|
|
environment is present, the remote SCSI server will not be the program
|
|
.B /opt/schily/sbin/rscsi
|
|
but the program pointed to by
|
|
.BR RSCSI .
|
|
Note that the remote SCSI server program name will be ignored if you log in
|
|
using an account that has been created with a remote SCSI server program as
|
|
login shell.
|
|
.SH "SEE ALSO"
|
|
.BR cdrecord (1),
|
|
.BR scg (7),
|
|
.BR rcmd (3),
|
|
.BR ssh (1).
|
|
.SH NOTES
|
|
.SH DIAGNOSTICS
|
|
.PP
|
|
A typical error message for a SCSI command looks like:
|
|
.sp
|
|
.RS
|
|
.nf
|
|
btcflash: I/O error. test unit ready: scsi sendcmd: no error
|
|
CDB: 00 20 00 00 00 00
|
|
status: 0x2 (CHECK CONDITION)
|
|
Sense Bytes: 70 00 05 00 00 00 00 0A 00 00 00 00 25 00 00 00 00 00
|
|
Sense Key: 0x5 Illegal Request, Segment 0
|
|
Sense Code: 0x25 Qual 0x00 (logical unit not supported) Fru 0x0
|
|
Sense flags: Blk 0 (not valid)
|
|
cmd finished after 0.002s timeout 40s
|
|
.fi
|
|
.sp
|
|
.RE
|
|
The first line gives information about the transport of the command.
|
|
The text after the first colon gives the error text for the system call
|
|
from the view of the kernel. It usually is:
|
|
.B "I/O error
|
|
unless other problems happen. The next words contain a short description for
|
|
the SCSI command that fails. The rest of the line tells you if there were
|
|
any problems for the transport of the command over the SCSI bus.
|
|
.B "fatal error
|
|
means that it was not possible to transport the command (i.e. no device present
|
|
at the requested SCSI address).
|
|
.PP
|
|
The second line prints the SCSI command descriptor block for the failed command.
|
|
.PP
|
|
The third line gives information on the SCSI status code returned by the
|
|
command, if the transport of the command succeeds.
|
|
This is error information from the SCSI device.
|
|
.PP
|
|
The fourth line is a hex dump of the auto request sense information for the
|
|
command.
|
|
.PP
|
|
The fifth line is the error text for the sense key if available, followed
|
|
by the segment number that is only valid if the command was a
|
|
.I copy
|
|
command. If the error message is not directly related to the current command,
|
|
the text
|
|
.I deferred error
|
|
is appended.
|
|
.PP
|
|
The sixth line is the error text for the sense code and the sense qualifier if available.
|
|
If the type of the device is known, the sense data is decoded from tables
|
|
in
|
|
.IR scsierrs.c " .
|
|
The text is followed by the error value for a field replaceable unit.
|
|
.PP
|
|
The seventh line prints the block number that is related to the failed command
|
|
and text for several error flags. The block number may not be valid.
|
|
.PP
|
|
The eight line reports the timeout set up for this command and the time
|
|
that the command really needed to complete.
|
|
|
|
.SH BUGS
|
|
.SH AUTHOR
|
|
.nf
|
|
J\*org Schilling
|
|
Seestr. 110
|
|
D-13353 Berlin
|
|
Germany
|
|
.fi
|
|
.PP
|
|
Additional information can be found on:
|
|
.br
|
|
http://cdrecord.org/private/cdrecord.html
|
|
.PP
|
|
If you have support questions, send them to:
|
|
.PP
|
|
.B
|
|
cdrtools-support@lists.sourceforge.net
|
|
.PP
|
|
If you have definitely found a bug, send a mail to:
|
|
.PP
|
|
.B
|
|
cdrtools-developers@lists.sourceforge.net
|
|
.br
|
|
or
|
|
.B
|
|
joerg.schilling@fokus.fraunhofer.de
|
|
.PP
|
|
To subscribe, use:
|
|
.PP
|
|
.B
|
|
https://lists.sourceforge.net/lists/listinfo/cdrtools-developers
|
|
.br
|
|
or
|
|
.B
|
|
https://lists.sourceforge.net/lists/listinfo/cdrtools-support
|