Accueil

CPU_SET
INFINITY
MB_CUR_MAX
MB_LEN_MAX
__setfpucw
_exit
_syscall
a64l
abort
abs
accept
access
acct
acos
acosh
addpart
addseverity
adduser
adjtime
adjtimex
aio_cancel
aio_error
aio_fsync
aio_read
aio_return
aio_suspend
aio_write
alarm
alloc_hugepages
alloca
apropos
arch
arch_prctl
argz_add
armscii-8
arp
ascii
asin
asinh
asprintf
assert
assert_perror
at
atan
atan2
atanh
atd
atexit
atof
atoi
atq
atrm
atrun
backend-spec
backtrace
basename
bash
bashbug
batch
bcmp
bcopy
bdflush
bind
bindresvport
blockdev
boot
bootlogd
bootparam
bosskill
brk
bsd_signal
bsearch
bstring
btowc
btree
builtin
builtins
byteorder
bzero
c
cabs
cacheflush
cacos
cacosh
cal
canonicalize_file_name
capabilities
capget
carg
casin
casinh
catan
catanh
catgets
catopen
cbrt
ccos
ccosh
ceil
cerf
cexp
cexp2
cfree
chage
charmap
charsets
chatise
chdir
chgrp
chmod
chown
chpasswd
chroot
chrt
chsh
cimag
clearenv
clock
clock_getcpuclockid
clock_getres
clock_nanosleep
clog
clog10
clog2
clone
close
closedir
cmp
cmsg
col
complex
confstr
conj
connect
console
console_codes
console_ioctl
consoletype
copysign
core
cos
cosh
cp
cp1251
cpow
cproj
cpuid
cpuset
creal
create_module
createrepo
credentials
cron
crond
crontab
crypt
crypttab
csin
csinh
csqrt
ctan
ctanh
ctermid
ctime
ctluser
ctrlaltdel
daemon
db2dvi
db2html
db2pdf
db2ps
db2rtf
dbopen
dd
ddp
delete_module
delpart
depmod
des_crypt
df
diff
diff3
difftime
dir
dir_colors
dircolors
dirfd
div
dl_iterate_phdr
dlopen
dmesg
docbook2dvi
docbook2html
docbook2man
docbook2man-spec
docbook2pdf
docbook2ps
docbook2rtf
docbook2tex
docbook2texi
docbook2texi-spec
docbook2txt
doexec
domainname
dprintf
drand48
drand48_r
dsp56k
du
dup
dysize
ecvt
ecvt_r
egrep
eject
elf
encrypt
end
endian
environ
envz_add
epoll
epoll_create
epoll_ctl
epoll_wait
erf
erfc
err
errno
error
ether_aton
ethers
euidaccess
eventfd
evim
exec
execve
exit
exit_group
exp
exp10
exp2
expm1
exportfs
exports
fabs
faccessat
faillog
fallocate
fchmodat
fchownat
fclose
fcloseall
fcntl
fd
fdformat
fdim
fdisk
feature_test_macros
fenv
ferror
fexecve
fflush
ffs
fgetgrent
fgetpwent
fgetwc
fgetws
fgrep
fifo
filesystems
finite
flock
flockfile
floor
fma
fmax
fmemopen
fmin
fmod
fmtmsg
fnmatch
fopen
fopencookie
fork
fpathconf
fpclassify
fpurge
fputwc
fputws
fread
free
frexp
frontend-spec
fseek
fseeko
fstab
fstab-decode
fstatat
fsync
ftime
ftok
ftpusers
fts
ftw
full
fuser
futex
futimes
futimesat
fwide
gamma
gcvt
get_kernel_syms
get_mempolicy
get_thread_area
getaddrinfo
getcontext
getcpu
getcwd
getdate
getdents
getdirentries
getdomainname
getdtablesize
getenv
getfsent
getgid
getgrent
getgrent_r
getgrnam
getgrouplist
getgroups
gethostbyname
gethostid
gethostname
getifaddrs
getipnodebyname
getitimer
getkey
getline
getloadavg
getlogin
getmntent
getnameinfo
getnetent
getnetent_r
getopt
getpagesize
getpass
getpeername
getpid
getpriority
getprotoent
getprotoent_r
getpt
getpw
getpwent
getpwent_r
getpwnam
getresuid
getrlimit
getrpcent
getrpcent_r
getrpcport
getrusage
gets
getservent
getservent_r
getsid
getsockname
getsockopt
getsubopt
gettid
gettimeofday
getttyent
getuid
getumask
getusershell
getutent
getutmp
getw
getwchar
getxattr
glob
gnu_get_libc_version
gpasswd
grantpt
grep
group
groupadd
groupdel
groupmod
grpck
grpconv
grpunconv
gshadow
gsignal
gssd
gunzip
guru
gzexe
gzip
halt
hash
hd
hier
host
hostname
hosts
hsearch
hypot
i386
icmp
iconv
iconv_close
iconv_open
idle
idmapd
ifconfig
ilogb
index
inet
inet_ntop
inet_pton
infnan
init
init_module
initgroups
initlog
initrd
initscript
inittab
inotify
inotify_add_watch
inotify_init
inotify_rm_watch
insmod
insque
install
install-catalog
intro
io_cancel
io_destroy
io_getevents
io_setup
io_submit
ioctl
ioctl_list
ioperm
iopl
ioprio_set
ip
ipc
ipcalc
ipcrm
ipcs
ipv6
isalpha
isatty
isgreater
iso_8859-1
iso_8859-10
iso_8859-11
iso_8859-13
iso_8859-14
iso_8859-15
iso_8859-16
iso_8859-2
iso_8859-3
iso_8859-4
iso_8859-5
iso_8859-6
iso_8859-7
iso_8859-8
iso_8859-9
issue
iswalnum
iswalpha
iswblank
iswcntrl
iswctype
iswdigit
iswgraph
iswlower
iswprint
iswpunct
iswspace
iswupper
iswxdigit
j0
jade
jw
key_setsecret
kill
killall
killall5
killpg
koi8-r
koi8-u
last
lastb
lastlog
ld
ldconfig
ldd
ldexp
lgamma
libc
link
linkat
linux32
linux64
listen
listxattr
llseek
ln
locale
localeconv
lockd
lockf
log
log10
log1p
log2
logb
login
longjmp
lookup_dcookie
lp
lrint
lround
ls
lsearch
lseek
lseek64
lsmod
lspci
lsusb
madvise
mailaddr
makecontext
makedev
makewhatis
malloc
malloc_hook
man
man-pages
math_error
matherr
mbind
mblen
mbrlen
mbrtowc
mbsinit
mbsnrtowcs
mbsrtowcs
mbstowcs
mbtowc
mcookie
mdoc
mem
memccpy
memchr
memcmp
memcpy
memfrob
memmem
memmove
mempcpy
memset
mesg
mincore
mkdir
mkdirat
mkdtemp
mkfifo
mkfifoat
mkfs
mknod
mknodat
mkstemp
mkswap
mktemp
mlock
mmap
mmap2
modf
modify_ldt
modifyrepo
modinfo
modprobe
more
motd
mount
mountd
mountpoint
mouse
move_pages
mpool
mprotect
mq_close
mq_getattr
mq_getsetattr
mq_notify
mq_open
mq_overview
mq_receive
mq_send
mq_unlink
mremap
msgctl
msgget
msgop
msr
msync
mtrace
mv
nan
nanosleep
netdevice
netlink
netreport
netstat
networks
newgrp
newusers
nextafter
nfs
nfsd
nfsservctl
nfsstat
nice
nicknames
nisdomainname
nl_langinfo
nmap
nologin
nscd
nsgmls
nsswitch
ntpd
ntpdc
null
numa
offsetof
on_exit
onsgmls
open
openat
opendir
openjade
openpty
operator
osgmlnorm
ospam
ospcat
ospent
osx
outb
package-cleanup
packet
passwd
path_resolution
pause
pciconfig_read
pcilib
perror
personality
pgrep
pidof
pipe
pivot_root
pkill
plipconfig
pmap
poll
popen
posix_fadvise
posix_fallocate
posix_memalign
posix_openpt
posixoptions
pow
pow10
poweroff
ppp-watch
pppoe
pppoe-connect
pppoe-relay
pppoe-server
pppoe-setup
pppoe-sniff
pppoe-start
pppoe-status
pppoe-stop
pppoe-wrapper
prctl
pread
printf
proc
profil
program_invocation_name
protocols
psignal
pstree
pthread_atfork
pthread_attr_destroy
pthread_attr_getdetachstate
pthread_attr_getinheritsched
pthread_attr_getschedparam
pthread_attr_getschedpolicy
pthread_attr_getscope
pthread_attr_init
pthread_attr_setaffinity_np
pthread_attr_setdetachstate
pthread_attr_setguardsize
pthread_attr_setinheritsched
pthread_attr_setschedparam
pthread_attr_setschedpolicy
pthread_attr_setscope
pthread_attr_setstack
pthread_attr_setstackaddr
pthread_attr_setstacksize
pthread_cancel
pthread_cleanup_pop
pthread_cleanup_pop_restore_np
pthread_cleanup_push
pthread_cleanup_push_defer_np
pthread_cond_broadcast
pthread_cond_destroy
pthread_cond_init
pthread_cond_signal
pthread_cond_timedwait
pthread_cond_wait
pthread_condattr_destroy
pthread_condattr_init
pthread_create
pthread_detach
pthread_equal
pthread_exit
pthread_getattr_np
pthread_getcpuclockid
pthread_getschedparam
pthread_getspecific
pthread_join
pthread_key_create
pthread_key_delete
pthread_kill
pthread_kill_other_threads_np
pthread_mutex_destroy
pthread_mutex_init
pthread_mutex_lock
pthread_mutex_trylock
pthread_mutex_unlock
pthread_mutexattr_destroy
pthread_mutexattr_getkind_np
pthread_mutexattr_gettype
pthread_mutexattr_init
pthread_mutexattr_setkind_np
pthread_mutexattr_settype
pthread_once
pthread_self
pthread_setaffinity_np
pthread_setcancelstate
pthread_setcanceltype
pthread_setconcurrency
pthread_setschedparam
pthread_setschedprio
pthread_setspecific
pthread_sigmask
pthread_testcancel
pthread_tryjoin_np
pthread_yield
pthreads
ptrace
pts
ptsname
pty
putenv
putgrent
putpwent
puts
putwchar
pwck
pwconv
pwdx
pwunconv
qecvt
qsort
query_module
queue
quotactl
raise
ram
rand
random
random_r
raw
rbash
rcmd
re_comp
read
readahead
readdir
readlink
readlinkat
readv
realpath
reboot
recno
recv
regex
remainder
remap_file_pages
remove
removexattr
remquo
rename
renameat
renice
repo-rss
repoquery
reposync
resolv
resolver
rev
rewinddir
rexec
rgrep
rint
rm
rmdir
rmmod
round
route
rpc
rpm
rpmatch
rquotad
rtc
rtime
rtld-audit
rtnetlink
runlevel
scalb
scalbln
scandir
scanf
sched_get_priority_max
sched_getcpu
sched_rr_get_interval
sched_setaffinity
sched_setparam
sched_setscheduler
sched_yield
sd
sdiff
securetty
sed
seekdir
select
select_tut
sem_close
sem_destroy
sem_getvalue
sem_init
sem_open
sem_overview
sem_post
sem_unlink
sem_wait
semctl
semget
semop
send
sendfile
service
services
set_mempolicy
set_thread_area
set_tid_address
setaliasent
setarch
setbuf
setenv
seteuid
setfsgid
setfsuid
setgid
setjmp
setlocale
setlogmask
setnetgrent
setpci
setpgid
setresuid
setreuid
setsid
setuid
setup
setxattr
sfdisk
sg
sgetmask
sgmldiff
sgmlnorm
shadow
shells
shm_open
shm_overview
shmctl
shmget
shmop
showmount
shutdown
sigaction
sigaltstack
siginterrupt
signal
signalfd
signbit
significand
sigpause
sigpending
sigprocmask
sigqueue
sigreturn
sigset
sigsetops
sigsuspend
sigvec
sigwait
sigwaitinfo
sin
sincos
sinh
sk98lin
skill
slabinfo
slabtop
slattach
sleep
snice
sockatmark
socket
socketcall
socketpair
spam
spent
splice
spu_create
spu_run
spufs
sqrt
st
standards
stat
statd
statfs
statvfs
stdarg
stdin
stdio
stdio_ext
stime
stpcpy
stpncpy
strcasecmp
strcat
strchr
strcmp
strcoll
strcpy
strdup
strerror
strfmon
strfry
strftime
string
strlen
strnlen
strpbrk
strptime
strsep
strsignal
strspn
strstr
strtod
strtoimax
strtok
strtol
strtoul
strverscmp
strxfrm
suffixes
sulogin
svcgssd
svipc
swab
swapoff
swapon
switchdesk
sx
symlink
symlinkat
sync
sync_file_range
sys-unconfig
syscall
syscalls
sysconf
sysctl
sysfs
sysinfo
syslog
system
sysv_signal
tailf
tan
tanh
tcgetpgrp
tcgetsid
tcp
tee
telinit
telldir
tempnam
termcap
termio
termios
tgamma
time
timegm
timer_create
timer_delete
timer_getoverrun
timer_settime
timeradd
timerfd_create
times
tkill
tkpppoe
tload
tmpfile
tmpnam
toascii
touch
toupper
towctrans
towlower
towupper
trunc
truncate
tsearch
tty
ttyS
tty_ioctl
ttyname
ttyslot
ttytype
tzfile
tzselect
tzset
ualarm
udp
udplite
ulimit
umask
umount
uname
undocumented
ungetwc
unicode
unimplemented
units
unix
unlink
unlinkat
unlocked_stdio
unlockpt
unshare
update-pciids
updwtmp
uptime
uri
uselib
useradd
userdel
usermod
usernetctl
usleep
ustat
utf-8
utime
utimensat
utmp
vcs
vdir
vfork
vhangup
vigr
vim
vimdiff
vimtutor
vipw
vm86
vmsplice
vmstat
volname
w
wait
wait4
wall
watch
wavelan
wcpcpy
wcpncpy
wcrtomb
wcscasecmp
wcscat
wcschr
wcscmp
wcscpy
wcscspn
wcsdup
wcslen
wcsncasecmp
wcsncat
wcsncmp
wcsncpy
wcsnlen
wcsnrtombs
wcspbrk
wcsrchr
wcsrtombs
wcsspn
wcsstr
wcstoimax
wcstok
wcstombs
wcswidth
wctob
wctomb
wctrans
wctype
wcwidth
whatis
whereis
wmemchr
wmemcmp
wmemcpy
wmemmove
wmemset
wordexp
wprintf
write
x25
x86_64
xcrypt
xdr
xxd
y0
ypcat
ypchfn
ypchsh
ypdomainname
ypmatch
yppasswd
yppoll
ypset
yptest
ypwhich
yum
yum-builddep
yum-complete-transaction
yum-shell
yum-updatesd
yum-utils
yum-verify
yumdownloader
zcat
zcmp
zdiff
zdump
zforce
zgrep
zic
zmore
znew

Pages de MAN

ST(4)			  Manuel du programmeur Linux			 ST(4)



NOM
       st - Lecteur de bandes SCSI

SYNOPSIS
       #include 

       int ioctl(int fd, int request [, (void *)arg3]);
       int ioctl(int fd, MTIOCTOP, (struct mtop *)mt_cmd);
       int ioctl(int fd, MTIOCGET, (struct mtget *)mt_status);
       int ioctl(int fd, MTIOCPOS, (struct mtpos *)mt_pos);

DESCRIPTION
       Le pilote de périphérique st fournit une interface vers un grand nombre
       de lecteurs de bandes SCSI. Actuellement, ce pilote prend  le  contrôle
       de  tous	 les  périphériques  détectés de type « accès séquentiel ». Le
       pilote st utilise un numéro majeur valant 9.

       Chaque périphérique utilise huit numéros mineurs. Les 5 bits  de	 poids
       faible  des numéros mineurs sont assignés séquentiellement dans l'ordre
       de détection. Avec le noyau 2.6, les bits au-delà des 8 bits  de	 poids
       faible sont concaténés aux 5 bits de poids faible pour former le numéro
       de lecteur de bande. Les numéros mineurs peuvent être groupés  en  deux
       ensembles  de  quatre  numéros :	 les  numéros  mineurs	principaux des
       périphériques (avec rembobinage automatique), n, et les numéros mineurs
       des   périphériques   sans   rembobinage	  automatique  (n+  128).  Les
       périphériques ouverts avec le numéro principal recevront	 une  commande
       REWIND  à  la  fermeture.  Les  périphériques  ouverts  avec  le numéro
       « no-rewind » ne la recevront pas. (Notez qu'essayer de positionner  la
       bande  d'un  périphérique avec rembobinage automatique en utilisant par
       exemple mt, ne produit pas le résultat désiré : la bande est à  nouveau
       rembobinée  après  l'utilisation de la commande mt et la commande suiv-
       ante prend effet dès le début de la bande.

       Au sein de chaque groupe,  4  numéros  mineurs  sont  disponibles  pour
       définir des périphériques avec des caractéristiques différentes (taille
       de bloc, compression, densité, etc.). Lorsque le système démarre,  seul
       le  premier  périphérique  est  disponible.  Les	 3 autres sont activés
       lorsque les caractéristiques par défaut sont définies (voir plus	 bas).
       (En  modifiant  les  constantes	à  la compilation, on peut modifier la
       répartition entre le nombre maximal de lecteurs de bandes et le	nombre
       de  numéros  mineurs par lecteur. Les allocations par défaut permettent
       de contrôler 32 lecteurs de bandes. Par exemple,	 il  est  possible  de
       contrôler  jusqu'à  64  lecteurs	 avec  deux  numéros  mineurs pour les
       options différentes.)

       Les fichiers spéciaux sont créés typiquement ainsi :

	   mknod -m 660 /dev/st0   c 9 0
	   mknod -m 660 /dev/st0l  c 9 32
	   mknod -m 660 /dev/st0m  c 9 64
	   mknod -m 660 /dev/st0a  c 9 96
	   mknod -m 660 /dev/nst0  c 9 128
	   mknod -m 660 /dev/nst0l c 9 160
	   mknod -m 660 /dev/nst0m c 9 192
	   mknod -m 660 /dev/nst0a c 9 224

       Il n'existe pas de périphériques blocs correspondants.

       Le pilote utilise une mémoire tampon interne qui doit être assez grande
       pour  contenir au moins un bloc de données de la bande. Dans les noyaux
       avant le 2.1.121, le tampon était alloué sous forme  de	bloc  continu.
       Cela  limitait la taille de bloc au plus grand espace contigu allouable
       par le noyau. Cette limite est actuellement de 128 Ko pour  les	archi-
       tectures	 32 bits  et  256Ko  pour  les	64 bits.  Dans les noyaux plus
       récents, le pilote alloue la mémoire tampon en plusieurs	 parties  dis-
       jointes si nécessaire. Par défaut, le nombre maximal de parties est 16.
       Ceci signifie que la taille maximale de bloc est très grande  (2 Mo  si
       l'allocation de 16 blocs de 128 Ko réussit).

       La taille de la mémoire tampon interne est déterminée par une constante
       à la compilation du noyau, que l'on peut supplanter par une  option  au
       démarrage  du  système.	De  plus, le pilote essaie d'allouer un tampon
       temporaire plus grand lors de son exécution si cela s'avère nécessaire.
       Toutefois  l'allocation	à  l'exécution	de  grands blocs contigus peut
       échouer, et il vaut  mieux  ne  pas  compter  dessus  avec  les	noyaux
       antérieurs  au 2.1.121 (cela s'applique également au chargement de mod-
       ule à la demande avec kerneld ou kmod).

       Le pilote ne gère pas spécifiquement un type ou une marque  de  lecteur
       de  bandes.  Après le démarrage du système, les options du périphérique
       sont définies  par  le  microcode  du  périphérique.  Par  exemple,  si
       celui-ci réclame un mode de blocs fixes, le lecteur de bandes utilisera
       ce mode. Les options peuvent être modifiées  par	 des  appels  ioctl(2)
       explicites et restent effectives lorsque le périphérique est fermé puis
       réouvert.  La  configuration  des  options  affecte  aussi   bien   les
       périphériques avec rembobinage automatique que ceux sans.

       Des   options   différentes   peuvent  être  fournies  pour  différents
       périphériques au sein du sous-groupe de quatre.	Les  options  prennent
       effet à l'ouverture du périphérique. Par exemple, l'administrateur peut
       définir un périphérique	qui  écrit  des	 blocs	fixes  d'une  certaine
       taille,	et  un	qui  écrit  avec des blocs de longueur variable (si le
       périphérique accepte les deux modes).

       Le pilote gère les partitions de bandes si elles sont acceptées par  le
       lecteur.	 (Notez que les partitions de bande n'ont rien à voir avec les
       partitions de disques. Une bande partitionnée peut être	vue  comme  un
       ensemble	 de bandes logiques dans le même support). La gestion des par-
       titions doit être activé par un ioctl(2). L'emplacement de la bande est
       sauvegardé au sein de chaque partition au cours des changements de par-
       titions. La partition utilisée  pour  les  opérations  ultérieures  est
       sélectionnée  avec un ioctl(2). Le changement de partition est effectué
       au moment de la suivante opération bande afin d'éviter  les  mouvements
       inutiles de la bande. Le nombre maximal de partitions sur une bande est
       défini par une constante à la compilation (4  par  défaut).  Le	pilote
       contient	 un ioctl(2) qui peut formater une bande avec une ou deux par-
       titions.

       Le fichier spécial de périphérique /dev/tape est généralement  un  lien
       symbolique ou un matériel vers le lecteur de bandes par défaut.

       Depuis  le  noyau  2.6.2, le pilote exporte dans le répertoire de sysfs
       /sys/class/scsi_tape les périphériques attachés et  certains  de	 leurs
       paramètres.

   Transfert de données
       Le  pilote  accepte  un fonctionnement aussi bien dans un mode de blocs
       fixes que dans un mode de blocs de longueur variable (si c'est  accepté
       par  le	lecteur).  En  mode  de blocs fixes, le périphérique écrit les
       blocs de la taille indiquée et la taille des blocs ne dépend pas de  la
       quantité de données transmises lors de l'appel système. Dans le mode de
       longueur variable, un bloc de données est écrit à chaque appel  système
       write  et  le nombre d'octets transmis indique la taille du bloc corre-
       spondant sur la bande. Notez que les blocs de la bande  ne  contiennent
       aucune  information  sur	 le  mode  d'écriture utilisé : la seule chose
       importante est d'utiliser lors de la lecture une commande  qui  accepte
       la taille des blocs de la bande.

       En  mode	 variable,  le nombre d'octets à lire n'a pas besoin de corre-
       spondre exactement à la taille du  bloc	de  la	bande.	Si  le	nombre
       demandé	est  plus  grand  que  la taille du bloc suivant sur la bande,
       l'appel système renverra la quantité de données effectivement lues.  Si
       la  taille  de  bloc  est  plus	grande	que le nombre demandé, l'appel
       système renverra les données demandées et le reste du  bloc  est	 aban-
       donné.

       En  mode	 fixe,	le nombre d'octets demandé peut être arbitraire, si la
       mémoire tampon est activée, ou un multiple de la taille de bloc, si  ce
       tampon  est  désactivé.	Les  noyaux  antérieurs	 au 2.1.121 permettent
       l'écriture avec un nombre  quelconque  si  les  mémoires	 tampons  sont
       activées.  Dans	tous  les autres cas (les noyaux antérieurs au 2.1.121
       sans mémoire tampon ou les noyaux plus récents), le nombre  d'octets  à
       écrire doit être un multiple de la taille des blocs.

       Dans  le noyau 2.6, le pilote essaie de transférer les données directe-
       ment entre la mémoire tampon de l'utilisateur et	 le  périphérique.  Si
       cela  n'est  pas	 possible,  la	mémoire	 tapon	interne	 au  pilote de
       périphérique est utilisée. Les raisons de ne pas	 utiliser  des	trans-
       ferts  directs  sont  entre  autres un mauvais alignement de la mémoire
       tampon de l'utilisateur (par défaut  512 octets	mais  cela  peut  être
       changé  par  le pilote HBA), l'adaptateur SCSI ne peut pas atteindre un
       ou plusieurs blocs de la mémoire tampon de l'utilisateur, etc.

       Une marque « filemark » est automatiquement écrit sur la	 bande	si  la
       dernière opération avant fermeture était une écriture.

       En  lecture, une marque « filemark » provoque les événements suivants :
       s'il reste des données dans le tampon lorsqu'on trouve la  marque,  les
       données	en  mémoire  sont renvoyées ; la lecture suivante renvoie zéro
       octet; la lecture suivante renvoie les données du fichier suivant ;  la
       fin  des	 données enregistrées est signalée par un retour de zéro octet
       pour deux appels successifs en lecture. Enfin, le troisième appel  ren-
       voie une erreur.

   Ioctls
       Le  pilote gère trois requêtes ioctl(2). Les requêtes non reconnues par
       st sont transmises au contrôleur SCSI. Les définitions ci-dessous  sont
       extraites de /usr/include/linux/mtio.h :

   MTIOCTOP - Effectue une opération sur la bande
       Cette  requête  prend  un  paramètre  de type (struct mtop *). Certains
       contrôleurs ne gèrent pas toutes les opérations. Le pilote renvoie  une
       erreur EIO si le périphérique n'accepte pas l'opération.

	   /* Structure MTIOCTOP - pour les opérations sur bande : */
	   struct mtop {
	       short  mt_op;	 /* opérations définies ci-dessous */
	       int    mt_count;	 /* nombre d'opérations		   */
	   };

       Opérations sur bande magnétique lors d'une utilisation normale :

       MTBSF	     Reculer la bande de mt_count filemarks.

       MTBSFM	     Reculer  la bande de mt_count filemarks. Repositionner la
		     bande sur le côté EOT de la dernière marque.

       MTBSR	     Reculer  la  bande	 de  mt_count  enregistrements	(blocs
		     bande).

       MTBSS	     Reculer la bande de mt_count setmarks.

       MTCOMPRESSION Valider  la  compression  des  données  sur bande dans le
		     lecteur  si  mt_count  est	  non	nul,   désactiver   la
		     compression  si  mt_count est nul. Cette commande utilise
		     la page MODE 15 supportée par la plupart des DAT.

       MTEOM	     Aller  à  la  fin	des   enregistrements	(ajouter   des
		     fichiers).

       MTERASE	     Efface  la bande. Avec un noyau 2.6, un effacement rapide
		     (bande marquée vide) est effectué	si  le	paramètre  est
		     zéro.  Sinon, un effacement long (effacement complet) est
		     effectué.

       MTFSF	     Avancer la bande de mt_count filemarks.

       MTFSFM	     Avancer la bande de mt_count  filemarks.  Positionner  la
		     bande du côté BOT de la dernière marque.

       MTFSR	     Avancer de mt_count enregistrements (blocs bande).

       MTFSS	     Avancer de mt_count setmarks.

       MTLOAD	     Exécuter  la  commande de chargement SCSI. Un cas partic-
		     ulier est prévu pour certains chargeurs automatiques  HP.
		     Si	 mt_count  correspond  à  la  somme  de	 la  constante
		     MT_ST_HPLOADER_OFFSET et  d'un  nombre,  ce  dernier  est
		     envoyé  au pilote pour contrôler le chargeur automatique.

       MTLOCK	     Verrouiller la porte du lecteur de bande.

       MTMKPART	     Formater la bande en une ou deux partitions. Si  mt_count
		     n'est  pas	 nul, il correspond à la taille de la première
		     partition, et la seconde partition correspond au reste de
		     la	 bande.	 Si  mt_count est nul, la bande n'est formatée
		     qu'en une seule partition. Cette commande n'est autorisée
		     que  si  le support de partitionnement est activé pour le
		     lecteur (voir MT_ST_CAN_PARTITIONS plus bas).

       MTNOP	     Ne rien faire - Vider les tampons du pilote - À  utiliser
		     avant de lire l'état avec MTIOCGET.

       MTOFFL	     Rembobiner la bande et éteindre le lecteur.

       MTRESET	     Réinitialiser le lecteur.

       MTRETEN	     Retendre la bande.

       MTREW	     Rembobiner la bande.

       MTSEEK	     Rechercher	 sur  la  bande le bloc numéro mt_count. Cette
		     opération nécessite soit un contrôleur  SCSI-2  qui  sup-
		     porte   la	  commande   LOCATE   (adresse	spécifique  au
		     périphérique), soit un lecteur SCSI-1 compatible Tandberg
		     (Tandberg,	 Archive  Viper,  Wangtek, ... ). Le numéro de
		     bloc devrait toujours être un numéro renvoyé précédemment
		     par  MTIOCPOS si les adresses spécifiques au lecteur sont
		     utilisées.

       MTSETBLK	     Définit la longueur de  blocs  du	lecteur	 à  la	valeur
		     spécifiée dans mt_count. Une longueur de bloc nulle place
		     le lecteur dans le mode de blocs de tailles variables.

       MTSETDENSITY  Définit la	 densité  de  la  bande	 à  celle  codée  dans
		     mt_count. Les codes des densités acceptées par un lecteur
		     sont disponibles dans la documentation de celui-ci.

       MTSETPART     La partition active devient celle indiquée par  mt_count.
		     Les   partitions	sont  numérotées  depuis  zéro.	 Cette
		     commande n'est autorisée que si la gestion du  partition-
		     nement est activée pour le lecteur (voir MT_ST_CAN_PARTI-
		     TIONS plus bas).

       MTUNLOAD	     Exécuter la commande de déchargement SCSI	(n'éjecte  pas
		     la bande).

       MTUNLOCK	     Déverrouiller la porte du lecteur de bande.

       MTWEOF	     Écrire mt_count filemarks.

       MTWSM	     Écrire mt_count setmarks.

       Fonctions  de  configuration  du	 lecteur  de bande magnétique (pour le
       superutilisateur) :

       MTSETDRVBUFFER
	       Définit diverses options du pilote ou du	 lecteur  en  fonction
	       des bits codés dans mt_count. Ces options concernent le type de
	       tampon du lecteur, des options booléennes du pilote,  le	 seuil
	       d'écriture  du  tampon,	les  valeurs par défaut des tailles de
	       blocs et de densité, ainsi que les délais de réponse (pour  les
	       noyaux  2.1 et ultérieurs). Une fonction n'agit que sur un seul
	       des éléments de la liste ci-dessus à la	fois  (l'ensemble  des
	       booléens constitue un élément).

	       Une  valeur  ayant  ses 4 bits de poids forts à 0 sera utilisée
	       pour indiquer le type de tampon du lecteur. Les types de tampon
	       sont :

		   0   Le  contrôleur  ne  renverra pas l'état BON en écriture
		       avant que les données ne soient réellement écrites  sur
		       le support.

		   1   Le  contrôleur peut renvoyer l'état BON en écriture dès
		       que les données ont été transmises aux tampons internes
		       du lecteur de bande.

		   2   Le  contrôleur peut renvoyer l'état BON en écriture dès
		       que les données ont été transmises aux tampons internes
		       du   lecteur   de   bande,   si	toutes	les  écritures
		       précédentes  des	 tampons  sur  le  support   se	  sont
		       déroulées correctement.

	       Pour  contrôler	le  seuil  d'écriture,	on  doit  inclure dans
	       mt_count la constante MT_ST_WRITE_THRESHOLD  associée  avec  le
	       nombre  de  blocs  dans	les 28 bits de poids faibles par un OU
	       binaire « | ». Le nombre de blocs concerne des  blocs  de  1024
	       octets,	et  non pas la taille physique des blocs sur la bande.
	       Le seuil ne peut pas excéder la taille des tampons internes  du
	       contrôleur. (voir DESCRIPTION, plus bas).

	       Pour  valider  ou  invalider  les options booléennes, la valeur
	       mt_count doit  inclure  l'une  des  constantes  MT_ST_BOOLEANS,
	       MT_ST_SETBOOLEANS,   MT_ST_CLEARBOOLEANS	 ou  MT_ST_DEFBOOLEANS
	       associées par un OU binaire avec une  combinaison  des  options
	       décrites	 ci-dessous.  Avec  MT_ST_BOOLEANS  les	 options  sont
	       définies avec les valeurs indiquées. Avec MT_ST_SETBOOLEANS les
	       options sont activées sélectivement et inhibées avec MT_ST_DEF-
	       BOOLEANS.

	       Les options  par	 défaut	 pour  un  contrôleur  de  bande  sont
	       choisies avec MT_ST_DEFBOOLEANS. Un périphérique non actif (par
	       exemple avec un numéro mineur de 32 ou 160) est activé  lorsque
	       les  options par défaut sont définies pour la première fois. Un
	       périphérique actif hérite des options non fixées	 explicitement
	       du périphérique actif au démarrage.

	       Les options booléennes sont :

	       MT_ST_BUFFER_WRITES (Défaut : vrai)
		      Les  opérations  d'écriture  en  mode de bloc fixes sont
		      mises en cache. Si cette option  est  invalidée,	et  si
		      l'enregistreur utilise une longueur de bloc fixe, toutes
		      les opérations d'écriture	 doivent  se  faire  avec  une
		      longueur	multiple  de  celle du bloc. Cette option doit
		      être  fausse  pour  créer	 des   archives	  multivolumes
		      fiables.	MT_ST_ASYNC_WRITES (Défaut : true) Quand cette
		      option est validée, les opérations d'écriture retournent
		      immédiatement  si les données tiennent dans le tampon du
		      pilote, sans attendre que celles-ci soient effectivement
		      transmises  au  lecteur  de  bande.  Le  seuil du tampon
		      d'écriture détermine le taux de  remplissage  du	tampon
		      avant  d'effectuer  une commande SCSI. Toute erreur ren-
		      voyée  par  le  périphérique  sera   conservée   jusqu'à
		      l'opération suivante. Cette option doit être fausse pour
		      créer des archives multivolumes fiables.

	       MT_ST_READ_AHEAD (Défaut : vrai)
		      Cette option indique au pilote de fournir	 un  cache  en
		      lecture,	ainsi  qu'une lecture anticipée des données en
		      mode de blocs fixes. Si cette option est	invalidée,  et
		      que  le lecteur utilise une taille de blocs fixe, toutes
		      les opérations de lecture	 doivent  se  faire  avec  une
		      taille multiple de celle du bloc.

	       MT_ST_TWO_FM (Défaut : faux)
		      Cette  option modifie le comportement du pilote quand un
		      fichier est fermé. L'attitude normale consiste à	écrire
		      une  seule  filemark,  néanmoins	si  cette  option  est
		      validée, le pilote écrira deux filemarks et replacera la
		      tête au-dessus de la seconde.

		      Note :  Cette  option ne doit pas être utilisée avec les
		      lecteurs de bandes QIC car  ils  ne  sont	 pas  capables
		      d'écraser	 une  filemark.	 Ces lecteurs détectent la fin
		      des données enregistrées en cherchant de la bande vierge
		      à	 la place des deux filemarks consécutives habituelles.
		      La plupart des autres lecteurs courants détectent égale-
		      ment  la	présence  de bande vierge, aussi l'utilisation
		      des deux filemarks n'est	généralement  utile  que  lors
		      d'échange de bandes avec d'autres systèmes.

	       MT_ST_DEBUGGING (Défaut : faux)
		      Cette  option  valide les divers messages de débogage du
		      pilote, si celui-ci a  été  compilé  avec	 la  constante
		      DEBUG ayant une valeur non nulle).

	       MT_ST_FAST_EOM (Défaut : faux)
		      Cette  option  indique  que les opérations MTEOM doivent
		      être  envoyées  directement  au  lecteur,	 ce  qui  peut
		      accélérer	 les  opérations,  mais	 aussi faire perdre au
		      pilote le compte des pistes du fichier  en  cours,  nor-
		      malement	 renvoyé   par	 la   requête	MTIOCGET.   Si
		      MT_ST_FAST_EOM est fausse, le contrôleur répondra à  une
		      requête  MTEOM  en  sautant  en  avant  de  fichiers  en
		      fichiers.

	       MT_ST_AUTO_LOCK (Défaut : faux)
		      Lorsque cette option est vraie, la porte du lecteur  est
		      verrouillée  lorsque le fichier périphérique est ouvert,
		      et déverrouillée lorsque le périphérique est refermé.

	       MT_ST_DEF_WRITES (Défaut : faux)
		      Les options de bande (taille  de	bloc,  mode,  compres-
		      sion...)	 peuvent   varier   lorsque  l'on  passe  d'un
		      périphérique lié à un lecteur à  un  autre  périphérique
		      correspondant  au	 même lecteur. Cette option définit si
		      les changements sont fournis au pilote en utilisant  les
		      commandes	 SCSI, et si les capacités d'auto-détection du
		      lecteur sont fiables. Si l'option est fausse, le	pilote
		      envoie  les  commandes  SCSI  immédiatement  lorsque  le
		      périphérique change. Si cette option est vraie, les com-
		      mandes  SCSI  ne	sont  pas  envoyées  avant une demande
		      d'écriture. Dans ce cas, le micro-code  est  habilité  à
		      détecter la structure de la bande lors de la lecture, et
		      les commandes SCSI ne sont utilisées que pour être  sûrs
		      que la bande est écrite correctement.

	       MT_ST_CAN_BSR (Défaut : faux)
		      Lorsque la lecture anticipée est utilisée, la bande doit
		      parfois être ramenée en  arrière	en  position  correcte
		      lors  de	la  fermeture  du  périphérique, et on utilise
		      alors la commande SCSI pour sauter en arrière par-dessus
		      les enregistrements. Certains anciens lecteurs ne trait-
		      ent pas correctement cette  commande,  et	 cette	option
		      permet  d'en  avertir  le	 pilote. Le résultat final est
		      qu'une bande avec blocs fixes et lecture anticipée  peut
		      être  mal	 positionnée dans un fichier lors de la ferme-
		      ture du périphérique. Avec un  noyau 2.6,	 l'option  est
		      activée par défaut pour les lecteurs qui gèrent la norme
		      SCSI-3.

	       MT_ST_NO_BLKLIMS (Défaut : faux)
		      Certains lecteurs n'acceptent pas la commande SCSI  READ
		      BLOCK  LIMITS  de	 lecture des limites de blocs. Si l'on
		      utilise cette option, le pilote n'invoque pas cette com-
		      mande.  L'inconvénient  est  que	le  pilote ne peut pas
		      vérifier, avant d'envoyer des commandes, si la taille de
		      bloc choisie est acceptée par le lecteur.

	       MT_ST_CAN_PARTITIONS (Défaut : faux)
		      Cette  option active le support des partitions multiples
		      sur une  bande.  Cette  option  s'applique  à  tous  les
		      périphériques liés au lecteur.

	       MT_ST_SCSI2LOGICAL (Défaut : faux)
		      Cette  option  indique au pilote d'utiliser les adresses
		      de blocs logiques définies dans le standard SCSI-2, lors
		      d'opérations de positionnement et de lecture de la posi-
		      tion (aussi bien lors des commandes MTSEEK  et  MTIOCPOS
		      que  lors	 des  changements  de  partitions).  Sinon  il
		      utilise les adresses spécifiques au périphérique. Il est
		      très  recommandé	d'activer  cette  option si le lecteur
		      supporte les adresses  logiques  car  elles  contiennent
		      également	 les  filemarks. Il existe d'ailleurs quelques
		      lecteurs qui ne supportent que les adresses logiques.

	       MT_ST_SYSV (Défaut : faux)
		      Lorsque cette option est activée, les  périphériques  de
		      bande  utilisent	les  sémantiques System V. Dans le cas
		      contraire,  ils  utilisent   la	sémantique   BSD.   La
		      différence  principale  est  le  comportement lors de la
		      fermeture d'un périphérique en lecture.  Avec  System V,
		      la bande est positionnée en avant à la suite de la file-
		      mark suivante si cela n'a pas déjà eu lieu  lors	de  la
		      lecture.	Dans  la sémantique BSD, la position ne change
		      pas.

	       MT_NO_WAIT (Défaut : faux)
		      Active le mode immédiat (i.e. n'attend pas la fin de  la
		      commande) pour certaines commandes comme le rembobinage.

	       Un exemple :

		   struct mtop mt_cmd;
		   mt_cmd.mt_op = MTSETDRVBUFFER;
		   mt_cmd.mt_count = MT_ST_BOOLEANS |
			   MT_ST_BUFFER_WRITES | MT_ST_ASYNC_WRITES;
		   ioctl(fd, MTIOCTOP, mt_cmd);

	       La taille de bloc par défaut pour  un  périphérique  peut  être
	       configurée  avec	 MT_ST_DEF_BLKSIZE  et	le code de densité par
	       défaut avec MT_ST_DEFDENSITY. Les valeurs des  paramètres  sont
	       associées par un OU logique avec le code opératoire.

	       Avec les noyaux 2.1.x et ultérieurs, la valeur de délai maximum
	       peut  être  fournie  avec  la  sous-commande  MT_ST_SET_TIMEOUT
	       associée	 par  OU  avec	le  délai  en  seconde.	 Le délai long
	       (utilisé pour les rembobinages ou les commandes	pouvant	 durer
	       longtemps) peut être configuré avec MT_ST_SET_LONG_TIMEOUT. Les
	       valeurs par défaut du noyau sont très longues afin de s'assurer
	       qu'une  commande	 valide n'est jamais interrompue pour dépasse-
	       ment de délai, et ceci quel que soit le	lecteur.  À  cause  de
	       cela,  le  pilote  peut parfois sembler gelé alors qu'il est en
	       attente de dépassement de délai. Ces commandes permettent  donc
	       de  fixer des valeurs plus pratiques pour un lecteur donné. Les
	       délais fixés pour  un  périphérique  s'appliquent  à  tous  les
	       périphériques liés au même lecteur.

	       A  partir  des  noyaux  2.4.19 et 2.5.43, le pilote gère un bit
	       d'état qui indique si  le  lecteur  demande  un	nettoyage.  La
	       méthode utilisée par le lecteur pour renvoyer l'information sur
	       le  nettoyage  est  fixée   en	utilisant   la	 sous-commande
	       MT_ST_SEL_CLN.  Si la valeur est zéro, le bit du nettoyage vaut
	       toujours zéro. Si la valeur est 1, la donnée TapeAlert  définie
	       dans  le	 standard SCSI-3 est utilisée (pas encore implémenté).
	       Les valeurs 2 à 17 sont réservées.  Si  les  8  bits  de	 poids
	       faible donnent une valeur supérieure à 18, les bits des données
	       « extended sense » sont utilisés. Les bits 9 à  16  forment  un
	       masque  pour  sélectionner les bits à observer et les bits 17 à
	       23 indiquent un motif de bits à rechercher. Si le motif de bits
	       est  nul,  un  bit ou plus sous le masque indique la requête de
	       nettoyage. Si le motif est non nul, le motif doit  correspondre
	       à l'octet des données « sense » masqué.

   MTIOCGET --- Obtenir l'état
       Cette requête prend un paramètre du type (struct mtget *).

	   /* Structure pour MTIOCGET - État de la bande magnétique */
	   struct mtget {
	       long	mt_type;
	       long	mt_resid;
	       /* Les registres suivants dépendent du matériel */
	       long	mt_dsreg;
	       long	mt_gstat;
	       long	mt_erreg;
	       /* Ces deux derniers champs sont parfois inutilisés */
	       daddr_t	mt_fileno;
	       daddr_t	mt_blkno;
	   };

       mt_type	  Le fichier d'en-tête définit plusieurs valeurs pour mt_type,
		  mais	le  pilote  actuel  renvoie   uniquement   les	 types
		  génériques  MT_ISSCSI1 (lecteur SCSI-1 générique) et MT_ISS-
		  CSI2 (lecteur SCSI-2 générique).

       mt_resid	  Contient le numéro de partition courante.

       mt_dsreg	  Renvoie la configuration actuelle de	la  longueur  de  bloc
		  (dans	 les 24 bits de poids faibles) et la densité (dans les
		  8  bits  de  poids  forts).  Ces  champs  sont  définis  par
		  MT_ST_BLKSIZE_SHIFT,	    MT_ST_BLKSIZE_MASK,	    MT_ST_DEN-
		  SITY_SHIFT, et MT_ST_DENSITY_MASK.

       mt_gstat	  Renvoie des informations génériques de statut	 (indépendants
		  du  périphérique).  Le  fichier d'en-tête définit les macros
		  suivantes pour tester les bits de statut :

		  GMT_EOF(x) : La bande est positionnée juste après une	 file-
		      mark (toujours faux après une opération MTSEEK).

		  GMT_BOT(x) : La bande est positionnée juste au début du pre-
		      mier fichier (toujours faux après une opération MTSEEK).

		  GMT_EOT(x) :	Une  opération a atteint la fin physique de la
		      bande (End Of Tape).

		  GMT_SM(x) : La bande est positionnée sur une	setmark	 (tou-
		      jours faux après une opération MTSEEK).

		  GMT_EOD(x) :	La  bande est positionnée à la fin des données
		      enregistrées.

		  GMT_WR_PROT(x) : La bande est	 protégée  en  écriture.  Pour
		      certains enregistreurs, ceci signifie qu'ils ne support-
		      ent pas l'écriture sur ce type de bande.

		  GMT_ONLINE(x) : La dernière opération open(2)	 a  trouvé  le
		      lecteur prêt à agir, avec une bande à l'intérieur.

		  GMT_D_6250(x),  GMT_D_1600(x),  GMT_D_800(x) :  Ces informa-
		      tions  "génériques"  de  statut  renvoient  la   densité
		      actuelle des lecteurs de bandes 9-pistes ½" seulement.

		  GMT_DR_OPEN(x) : Le lecteur ne contient pas de bande.

		  GMT_IM_REP_EN(x) :  Mode  de	rapport	 immédiat.  Ce bit est
		      activé lorsqu'il n'y a aucune assurance que les  données
		      aient  été  physiquement	écrites	 sur  la bande lors du
		      retour de l'appel système. Le bit est à  zéro  seulement
		      lorsque  le  lecteur  ne cache pas les données et que le
		      pilote est configuré pour ne  pas	 faire	de  cache  non
		      plus.

		  GMT_CLN(x) :	Le  lecteur a demandé un nettoyage. Implémenté
		      depuis les noyaux 2.4.19 et 2.5.43.

       mt_erreg	  Le seul champ défini dans mt_erreg est le  nombre  d'erreurs
		  corrigées,  dans  les 16 bits de poids faibles (comme défini
		  par les masques MT_ST_SOFTERR_SHIFT et  MT_ST_SOFTERR_MASK).
		  À  cause  d'incompatibilités dans les méthodes utilisées par
		  les lecteurs pour rendre compte  des	corrections  d'erreur,
		  cette	 valeur	 n'est	pas  toujours  fournie (la plupart des
		  lecteurs ne renvoient pas,  par  défaut,  les	 erreurs  cor-
		  rigées,  mais	 cela  peut être modifié avec la commande SCSI
		  MODE SELECT).

       mt_fileno  Renvoie le numéro du fichier en cours (commençant à  0).  La
		  valeur  est  mise  à	-1 si le numéro du fichier est inconnu
		  (par exemple, après un MTBSS ou un MTSEEK).

       mt_blkno	  Renvoie le numéro de bloc (commençant à 0) à l'intérieur  du
		  fichier en cours. Cette valeur est mise à -1 quand le numéro
		  de bloc est inconnu (par exemple, après un MTBSF, un	MTBSS,
		  ou un MTSEEK).

   MTIOCPOS --- Obtenir la position de la bande
       Cette  requête  prend  un paramètre du type (struct mtpos *) et renvoie
       une valeur spécifique au lecteur, correspondant au numéro  de  bloc  en
       cours,  et qui n'est pas la même que mt_blkno renvoyée par MTIOCGET. Ce
       lecteur doit être un modèle SCSI-2 qui supporte la commande READ	 POSI-
       TION ou un lecteur SCSI-1 compatible Tandberg (Tandberg, Archive Viper,
       Wangtek, ... ).

	   /* Structure pour MTIOCPOS - Commande pour obtenir la position */
	   struct mtpos {
	       long mt_blkno;	 /* numéro du bloc courant */
	   };

VALEUR RENVOYÉE
       EACCES	     Tentative d'écriture ou d'effacement sur une bande
		     protégée  en  écriture.  (Cette erreur ne peut pas
		     être détectée lors de open(2).)

       EBUSY	     Le périphérique est déjà utilisé ou le pilote  n'a
		     pas assez de mémoire.

       EFAULT	     Le	 paramètre  de	commande pointe en dehors de la
		     mémoire adressable par le processus appelant.

       EINVAL	     Un appel système ioctl(2) avait un	 paramètre  non
		     valable ou la taille de bloc demandée était incor-
		     recte.

       EIO	     L'opération demandée a échoué.

       ENOMEM	     Le nombre d'octet lu par read(2)  est  plus  petit
		     que le prochain bloc physique sur la bande. (Avant
		     2.2.18 et 2.4.0-test6 les	octets	supplémentaires
		     étaient ignorés sans rien dire.)

       ENOSPC	     Une  écriture  a  échoué car la fin de bande a été
		     atteinte.

       ENOSYS	     Appel système ioctl(2) inconnu.

       ENXIO	     Durant l'ouverture, le lecteur de	bande  n'existe
		     pas.

       EOVERFLOW     Tentative	de lire ou d'écrire un bloc de longueur
		     variable plus grand  que  la  taille  des	tampons
		     internes du contrôleur.

       EROFS	     On tente l'ouverture avec O_WRONLY ou O_RDWR alors
		     que la bande est protégée en écriture.

FICHIERS
       /dev/st*	   Les lecteurs de bandes SCSI	à  rembobinage	automa-
		   tique

       /dev/nst*   Les lecteurs de bandes SCSI sans rembobinage automa-
		   tique

NOTES
       1.  Lors d'un échange de données entre systèmes	différents,  il
	   faut	 se  mettre  d'accord  sur  la	taille	des  blocs. Les
	   paramètres d'un lecteur  après  le  démarrage  sont	souvent
	   différents  de  ceux	 qu'utilisent  la  plupart  des	 autres
	   systèmes d'exploitation. La plupart	utilisent  un  mode  de
	   blocs  de  longueur	variable  si le lecteur le permet. Ceci
	   concerne la plupart des lecteurs  modernes,	y  compris  les
	   DAT,	 les  lecteurs	8mm hélicoïdaux, les DLTs, etc. Il peut
	   être judicieux d'utiliser ces lecteurs en mode  de  longueur
	   variable  sous  Linux aussi (en utilisant MTSETBLK ou MTSET-
	   DEFBLK au démarrage), du moins lors de l'échange de	données
	   avec	 des systèmes d'exploitation différents. L'inconvénient
	   de ceci est qu'il faut utiliser une	taille	de  bloc  assez
	   grande pour obtenir des taux de transfert acceptables sur un
	   bus SCSI.

       2.  Beaucoup de programmes (comme par exemple tar(1)) permettent
	   à l'utilisateur de spécifier le facteur de bloc sur la ligne
	   de commande. Notez que ceci	détermine  la  taille  de  bloc
	   physique uniquement en mode de bloc de taille variable.

       3.  Pour utiliser les lecteurs de bandes SCSI, le pilote SCSI de
	   base, un pilote d'adaptateur SCSI et le  pilote  du	lecteur
	   SCSI	 doivent  tous être configurés dans le noyau ou chargés
	   comme modules. Si  le  pilote  des  bandes  SCSI  n'est  pas
	   présent,  le	 lecteur  est reconnu, mais le support de bande
	   décrit dans cette page n'est pas disponible.

       4.  Le pilote écrit les messages d'erreur sur la	 console  et/ou
	   les	fichiers  de  journalisation  (log).  Les  codes  SENSE
	   présents  dans  certains   messages	 sont	automatiquement
	   traduits en texte si les messages SCSI complets sont activés
	   dans la configuration du noyau.

       5.  L'utilisation du tampon interne permet  de  bons  débits  en
	   mode	 blocs	fixes même avec peu d'octets lus (avec read(2))
	   ou écrits (avec write(2)). Avec les transferts directs, cela
	   n'est pas possible et peut provoquer une surprise lors de la
	   mise à jour vers le noyau 2.6. La solution est  de  demander
	   au  logiciel d'utiliser des transferts plus importants (sou-
	   vent en lui indiquant d'utiliser de plus gros blocs). Si  ce
	   n'est  pas  possible,  les  transferts  directs peuvent être
	   désactivés.

VOIR AUSSI
       mt(1)

       Le fichier drivers/scsi/README.st  ou  Documentation/scsi/st.txt
       (pour  les noyaux >= 2.6) dans les sources du noyau contient les
       informations les plus récentes à propos	du  pilote  et	de  ses
       capacités de configuration.

COLOPHON
       Cette  page  fait  partie  de  la  publication  3.23  du	 projet
       man-pages Linux. Une description du projet et  des  instructions
       pour  signaler  des  anomalies peuvent être trouvées à l'adresse
       .

TRADUCTION
       Depuis 2010, cette traduction est maintenue à l'aide de	l'outil
       po4a    par l'équipe de tra-
       duction	  francophone	 au    sein    du    projet    perkamon
       .

       Christophe     Blaess	 
       (1996-2003),   Alain   Portal   
       (2003-2006).   Simon Paillard et l'équipe francophone de traduc-
       tion de Debian (2006-2009).

       Veuillez signaler toute	erreur	de  traduction	en  écrivant  à
       .

       Vous  pouvez  toujours  avoir  accès à la version anglaise de ce
       document	 en  utilisant	 la   commande	 « LC_ALL=C man	    ».



Linux			       16 décembre 2007				 ST(4)

 


www.eurower.info