st(4) Device Drivers Manual st(4) NOME st - Dispositivo de Fita SCSI SINOPSE #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); DESCRICAO O controlador st prove a interface para varios dispositivos de fita SCSI. Atualmente, o controlador controla todos os dispositivos detectados do tipo "acesso-sequencial". O controlador st usa o numero de dispositvo principal 9. Each device uses eight minor device numbers. The lowermost five bits in the minor numbers are assigned sequentially in the order of detection. In the 2.6 kernel, the bits above the eight lowermost bits are concatenated to the five lowermost bits to form the tape number. The minor numbers can be grouped into two sets of four numbers: the principal (auto-rewind) minor device numbers, n, and the "no-rewind" device numbers, (n + 128). Devices opened using the principal device number will be sent a REWIND command when they are closed. Devices opened using the "no-rewind" device number will not. (Note that using an auto-rewind device for positioning the tape with, for instance, mt does not lead to the desired result: the tape is rewound after the mt command and the next command starts from the beginning of the tape). Em cada grupo, quatro numeros menores estao disponiveis para definir dispositivos com caracteristicas diferentes (tamanho do bloco, compressao, densidade, etc). Quando o sistema inicia, apenas o primeiro dispositivo esta disponivel. Os outros tres sao ativados quando as caracteristicas padroes sao definidas (veja abaixo). (Alterando as constantes durante a compilacao, e possivel mudar o balanco entre o numero maximo de unidades de fita e o numero de numero de dispositivo secundario para cada unidade. A alocacao padrao permite controlar 32 unidades de fita. Por exemplo, e possivel controlar ate 64 unidades com dois numeros secundarios para diferentes opcoes). Os dispositivos sao tipicamente criados por: mknod -m 666 /dev/st0 c 9 0 mknod -m 666 /dev/st0l c 9 32 mknod -m 666 /dev/st0m c 9 64 mknod -m 666 /dev/st0a c 9 96 mknod -m 666 /dev/nst0 c 9 128 mknod -m 666 /dev/nst0l c 9 160 mknod -m 666 /dev/nst0m c 9 192 mknod -m 666 /dev/nst0a c 9 224 Nao ha dispositivos de bloco correspondentes. The driver uses an internal buffer that has to be large enough to hold at least one tape block. Before Linux 2.1.121, the buffer is allocated as one contiguous block. This limits the block size to the largest contiguous block of memory the kernel allocator can provide. The limit is currently 128 kB for 32-bit architectures and 256 kB for 64-bit architectures. In newer kernels the driver allocates the buffer in several parts if necessary. By default, the maximum number of parts is 16. This means that the maximum block size is very large (2 MB if allocation of 16 blocks of 128 kB succeeds). The driver's internal buffer size is determined by a compile-time constant which can be overridden with a kernel startup option. In addition to this, the driver tries to allocate a larger temporary buffer at run time if necessary. However, run-time allocation of large contiguous blocks of memory may fail and it is advisable not to rely too much on dynamic buffer allocation before Linux 2.1.121 (this applies also to demand-loading the driver with kerneld or kmod). O controlador nao suporta especificamente qualquer marca ou modelo de unidade de fita. Depois que o sistema inicia, as opcoes do dispositivo de fita sao definidas pelo firmware da unidade. Por exemplo, se o 'firmware' seleciona o modo de blocagem fixa, a unidade de fita usara este modo. As opcoes podem ser alteradas com chamadas ioctl(2) explicitas e mantidas em efeito quando o dispositivo e fechado e reaberto. As opcoes definidas afetam, tanto os dispositivos com auto-rebobinamento, quanto os sem rebobinamento. Opcoes diferentes podem ser especificadas para dispositivos diferentes, dentro de um subgrupo de quatro. As opcoes fazem efeito quanto o dispositivo e aberto. Por exemplo, o administrador do sistema pode definir um dispositivo que grava em blocos fixos com uma certa blocagem e outro que grava em blocos variaveis (se a unidade suportar ambos os modos). O controlador suporta particoes se a unidade de fita suporta-las. (As particoes em fita nao tem nada ver com as particoes em disco. Uma fita particionada pode ser vista como varias fitas logicas.) O suporte a particoes tem que ser habilitado com um ioctl(2). A localizacao da fita e preservada em cada particao atraves das alteracoes na particao. A particao usada para operacoes subsequentes, e selecionada com um ioctl(2). A mudanca de particao e executada junto com a proxima operacao para evitar movimento desnecessario da fita. O numero maximo de particoes um uma fita e definido por uma constante durante a compilacao (originalmente quatro). O controlador contem um ioctl(2) que pode formatar uma fita com uma ou duas particoes. O dispositivo /dev/tape e geralmente criado como um vinculo simbolico ou fixo para o dispositivo de fita padrao no sistema. Starting from Linux 2.6.2, the driver exports in the sysfs directory /sys/class/scsi_tape the attached devices and some parameters assigned to the devices. Data transfer O controlador suporta operacoes nos modos de blocagem fixa e variavel (se suportado pela unidade). No modo de blocagem fixa a unidade grava blocos de tamanho especifico e o tamanho do bloco nao e dependente do contador de bytes gravados, usado pelas chamadas do sistema. No modo de blocagem variavel, um bloco e gravado para cada chamada de gravacao e o contador de bytes determina o tamanho do bloco. Observe que os blocos na fita, nao contem quaisquer informacoes sobre o mode de gravacao. Durante a leitura, o importante e usar comandos que aceitam o tamanho dos blocos gravados. In variable-block mode the read byte count does not have to match the tape block size exactly. If the byte count is larger than the next block on tape, the driver returns the data and the function returns the actual block size. If the block size is larger than the byte count, an error is returned. In fixed-block mode the read byte counts can be arbitrary if buffering is enabled, or a multiple of the tape block size if buffering is disabled. Before Linux 2.1.121 allow writes with arbitrary byte count if buffering is enabled. In all other cases (before Linux 2.1.121 with buffering disabled or newer kernel) the write byte count must be a multiple of the tape block size. In Linux 2.6, the driver tries to use direct transfers between the user buffer and the device. If this is not possible, the driver's internal buffer is used. The reasons for not using direct transfers include improper alignment of the user buffer (default is 512 bytes but this can be changed by the HBA driver), one or more pages of the user buffer not reachable by the SCSI adapter, and so on. Um marcador de arquivo e automaticamente gravado na fita se a ultima operacao na fita antes de fecha-la foi uma gravacao. Quando um marcador de arquivo e encontrado enquanto lendo, a seguinte e comcluido. Se houver dados no 'buffer' quando um marcador de arquivo e encontrado, estes dados serao retornados. A proxima leitura retornara zero bytes. A leitura seguinte retornara os dados do proximo arquivo. O fim dos dados gravados e sinalizado pelo retorno de zero bytes durante duas leituras consecutivas. A terceira leitura retornara um erro. Ioctls O controlador suporta tres requisitos ioctl(2). Os requisitos nao reconhecidos pelo controlador st sao passados para o controlador SCSI. As definicoes abaixo sao do /usr/include/linux/mtio.h: MTIOCTOP -- executa uma operacao de fita Este requisito leva um argumento do tipo (struct mtop *). Nem todos as unidades suportam todas as operacoes. O controlador retorna um erro EIO se a unidade rejeitar uma operacao. /* Structure for MTIOCTOP - mag tape op command: */ struct mtop { short mt_op; /* operations defined below */ int mt_count; /* how many of them */ }; Operacoes de fita magneticas para uso normal: MTBSF Retrocede espacos sobre mt_count marcadores de arquivos. MTBSFM Retrocede espacos sobre mt_count marcadores de arquivos. Reposiciona a fita no lado EOT ultimo marcador de arquivo. MTBSR Retrocede espacos sobre mt_count registros (blocos da fita). MTBSS Retrocede espacos sobre mt_count setmarks. MTCOMPRESSION Habilita compressao de dados se mt_count nao for zero e desabilita a compressao se mt_count e zero. Este comando usa o MODO page 15 suportado pela maioria das fitas DATs. MTEOM Vai para o final da midia gravada (para acrescentar arquivos). MTERASE Erase tape. With Linux 2.6, short erase (mark tape empty) is performed if the argument is zero. Otherwise, long erase (erase all) is done. MTFSF Avanca mt_count marcadores de arquivos. MTFSFM Avanca mt_count marcadores de arquivos. Reposiciona a fita no lado BOT do ultimo marcado de arquivo. MTFSR Avanca espacos sobre mt_count registro (blocos da fita). MTFSS Avanca espacos sobre mt_count setmarks. MTLOAD Executa o comando load SCSI. Um caso especial esta disponivel para alguns carregadores automaticos HP. Se mt_count e a constante MT_ST_HPLOADER_OFFSET mais um numero, o numero e enviando para a unidade controlar a carga automatica. MTLOCK Bloqueia a porta da unidade de fita. MTMKPART Format the tape into one or two partitions. If mt_count is positive, it gives the size of partition 1 and partition 0 contains the rest of the tape. If mt_count is zero, the tape is formatted into one partition. From Linux 4.6, a negative mt_count specifies the size of partition 0 and the rest of the tape contains partition 1. The physical ordering of partitions depends on the drive. This command is not allowed for a drive unless the partition support is enabled for the drive (see MT_ST_CAN_PARTITIONS below). MTNOP Nenhuma operacao--descarrega o 'buffer' do controlador. Ele pode ser usado antes de ler o estado com MTIOCGET. MTOFFL Rebobina a fita e coloca a unidade fora de linha. MTRESET Reinicia a unidade. MTRETEN Retensiona a fita. MTREW Rebobina. MTSEEK Posiciona no numero de bloco especificado em mt_count. Esta operacao requer uma unidade SCSI-2 que suporte o comando LOCATE (endereco de dispositivo especifico) ou uma unidade Tandberg-compativel SCSI-1 (Tandberg, Archive Viper, Wangtek, ... ). O numero do bloco devera ser aquele previamente retornado pelo MTIOCPOS se o endereco especifico do dispositivo foi usado. MTSETBLK Define o tamanho do bloco para o valor especificado em mt_count. Um tamanho de zero define o modo de bloco de tamanho variavel. MTSETDENSITY Define a densidade para o codigo em mt_count. O codigo de densidade suportado pela unidade pode ser encontrado na documentacao da unidade. MTSETPART A particao e alternada para mt_count. As particoes sao numeradas a partir de zero. Este comando nao e permitido em uma unidade, a menos que o suporte a particoes esteja habilitado (veja MT_ST_CAN_PARTITIONS abaixo). MTUNLOAD Executa o comando SCSI unload (nao ejeta a fita). MTUNLOCK Desbloqueia a porta da unidade de fita. MTWEOF Grava mt_count marcadores de arquivos. MTWSM Grava mt_count setmarks. Operacoes de Fita Magnetica para configurar opcoes de dispositivo (superusuario): MTSETDRVBUFFER Set various drive and driver options according to bits encoded in mt_count. These consist of the drive's buffering mode, a set of Boolean driver options, the buffer write threshold, defaults for the block size and density, and timeouts (only since Linux 2.1). A single operation can affect only one item in the list below (the Booleans counted as one item.) Um valor zero nos 4 bits de alta ordem sera usado para definir o modo de buferizacao da unidade de fita. Os modos de buferizacao sao: 0 A unidade nao informara o estado GOOD nos comandos de gravacao ate que os blocos de dados sejam gravados na midia. 1 A unidade informara o estado GOOD nos comandos de gravacao assim que todos os dados tenham sido transferidos do 'buffer' interno da unidade. 2 A unidade pode informar o estado GOOD nos comandos de gravacao assim que: (a) os dados foram transferido do 'buffer' interno da unidade e (b) todos os dados em 'buffer's de inicializadores diferentes foram gravados com sucesso para a midia. To control the write threshold the value in mt_count must include the constant MT_ST_WRITE_THRESHOLD bitwise ORed with a block count in the low 28 bits. The block count refers to 1024-byte blocks, not the physical block size on the tape. The threshold cannot exceed the driver's internal buffer size (see DESCRIPTION, above). To set and clear the Boolean options the value in mt_count must include one of the constants MT_ST_BOOLEANS, MT_ST_SETBOOLEANS, MT_ST_CLEARBOOLEANS, or MT_ST_DEFBOOLEANS bitwise ORed with whatever combination of the following options is desired. Using MT_ST_BOOLEANS the options can be set to the values defined in the corresponding bits. With MT_ST_SETBOOLEANS the options can be selectively set and with MT_ST_DEFBOOLEANS selectively cleared. As opcoes padroes para um dispositivo de fita podem ser definidas com MT_ST_DEFBOOLEANS. Um dispositivo de fita inativo (i.e., um dispositivo com numero menor 32 ou 160) e ativado quando as opcoes padroes para ele sao definidas na primeira vez. Um dispositivo ativado herda daquele ativado na inicializacao as opcoes nao definidas explicitamente. As opcoes Booleanas sao: MT_ST_BUFFER_WRITES (Padrao: true) Coloca no 'buffer' todas as operacoes de gravacao usando a blocagem fixa. Se esta opcao e false e a unidade usa um bloco de tamanho fixo, entao todas as operacoes de gravacao devem usar um multiplo do tamanho do bloco. Esta opcao deve ser definida como falsa para se obter uma gravacao confiavel em sistemas multi-volumes. MT_ST_ASYNC_WRITES (Padrao: true) Quando esta opcao e verdadejra, a operacao de gravacao retorna imediatamente sem esperar que os dados sejam transferidos para a unidade se os dados estao ajustados dentro do 'buffer' da unidade. O limite de gravacao determina quando o 'buffer' esta cheio mas depois um novo comando de escrita SCSI e usado. Quaisquer erros relatados pela unidade serao retidos ate a proxima operacao. Esta opcao deve ser definida como falsa para se obter uma gravacao confiavel em sistemas multi-volumes. MT_ST_READ_AHEAD (Padrao: true) Esta opcao faz o controlador prover leitura buferizada e leitura a frente em blocos fixos. Se esta opcao e false e a unidade usa um tamanho de bloco fixo, todas as operacoes de leitura devem ser multiplos do tamanho do bloco. MT_ST_TWO_FM (Padrao: false) Esta opcao modifica as caracteristicas do controlador quando um arquivo e fechado. A acao normal e gravar uma marca de arquivo simples. Se esta opcao e true o controlador gravara duas marcas de arquivo e um caracter de retrocesso sobre a ultima marca. Nota: Esta opcao nao pode ser true para unidades de fita QIC uma vez que elas nao podem sobrescrever a marca de arquivo. Estas unidades detetam o final dos dados gravados testando se a fita esta em branco. A maioria das unidades atuais tambem detetam o final dos dados gravados e o uso das duas marcas de arquivo sao necessaria apenas quando ha intercambio de fita com outros sistemas. MT_ST_DEBUGGING (Padrao: false) Esta opcao ativa varias mensagens de depuracao de erros do controlador (so tem efeito se o controlador foi compilado com DEBUG definido com valor diferente de zero). MT_ST_FAST_EOM (Padrao: false) This option causes the MTEOM operation to be sent directly to the drive, potentially speeding up the operation but causing the driver to lose track of the current file number normally returned by the MTIOCGET request. If MT_ST_FAST_EOM is false, the driver will respond to an MTEOM request by forward spacing over files. MT_ST_AUTO_LOCK (Padrao: false) When this option is true, the drive door is locked when the device file is opened and unlocked when it is closed. MT_ST_DEF_WRITES (Padrao: false) As opcoes da fita (tamanho do bloco, modo, compressao, etc.) pode variar quando muda-se de um dispositivo vinculado a uma unidade, para outro vinculado a mesma unidade dependendo de como os dispositivos estao definidos. Esta opcao define quando as mudancas sao forcadas pelo controlador atraves de comandos SCSI e quando a unidade auto-deteta que as capacidades sao confiaveis. Se esta opcao e false, o controlador envia os comandos SCSI imediatamente quando o dispositivo e alterado. Se a opcao e true, os comandos SCSI nao sao enviados ate que uma gravacao seja requisitada. Neste caso o firmware da unidade tem permissao para detetar a estrutura da fita durante a leitura e os comandos SCSI sao usados apenas para certificar-se que a fita e gravada de acordo com a especificacao correta. MT_ST_CAN_BSR (Padrao: false) When read-ahead is used, the tape must sometimes be spaced backward to the correct position when the device is closed and the SCSI command to space backward over records is used for this purpose. Some older drives can't process this command reliably and this option can be used to instruct the driver not to use the command. The end result is that, with read-ahead and fixed-block mode, the tape may not be correctly positioned within a file when the device is closed. With Linux 2.6, the default is true for drives supporting SCSI-3. MT_ST_NO_BLKLIMS (Padrao: false) Algumas unidades nao aceitam o comando SCSI READ BLOCK LIMITS. Se ele e usado, o controlador nao usa-o. A desvantagem e que o controlador nao pode checar antes de enviar os comandos se o tamanho de bloco selecionado e aceitavel pela unidade de fita. MT_ST_CAN_PARTITIONS (Padrao: false) Esta opcao habilita o suporte a varias particoes em uma fita. Ela aplica-se a todos os dispositivos vinculados a unidade. MT_ST_SCSI2LOGICAL (Padrao: false) Esta opcao instrui o controlador a usar o endereco logico de bloco definido no padrao SCSI-2 durante as operacoes de procura e ( com os comandos MTSEEK e MTIOCPOS e durante alteracoes na particao). Do contrario o endereco especifico do dispositivo e usado. E altamente recomendavel definir esta opcao se a unidade suporta os enderecos logicos, porque eles tambem contam as marcas de arquivo. Ha algumas unidades que so suportam o enderecamento logico de bloco. MT_ST_SYSV (Padrao: false) Quando esta opcao e habilitada, o dispositivo de fita usa a semantica do System V. Do contrario a do BSD e usada. A diferenca mais importante entre as semanticas e o que acontece quando um dispositivo usado para leitura e fechado: na semantica System V a fita e avancada para a proxima marca de arquivo se a mesma nao foi encontrada durante a utilizacao do dispositivo. Na semantica BSD a posicao da fita nao se altera. MT_ST_NO_BLKLIMS (Padrao: false) Enables immediate mode (i.e., don't wait for the command to finish) for some commands (e.g., rewind). An example: 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); O tamanho padrao do bloco para um dispositivo pode ser definido com MT_ST_DEF_BLKSIZE e a densidade padrao com MT_ST_DEFDENSITY. Uma operacao OU e executada entre os valores dos parametros e o codigo da operacao. With Linux 2.1.x and later, the timeout values can be set with the subcommand MT_ST_SET_TIMEOUT ORed with the timeout in seconds. The long timeout (used for rewinds and other commands that may take a long time) can be set with MT_ST_SET_LONG_TIMEOUT. The kernel defaults are very long to make sure that a successful command is not timed out with any drive. Because of this, the driver may seem stuck even if it is only waiting for the timeout. These commands can be used to set more practical values for a specific drive. The timeouts set for one device apply for all devices linked to the same drive. Starting from Linux 2.4.19 and Linux 2.5.43, the driver supports a status bit which indicates whether the drive requests cleaning. The method used by the drive to return cleaning information is set using the MT_ST_SEL_CLN subcommand. If the value is zero, the cleaning bit is always zero. If the value is one, the TapeAlert data defined in the SCSI-3 standard is used (not yet implemented). Values 2-17 are reserved. If the lowest eight bits are >= 18, bits from the extended sense data are used. The bits 9-16 specify a mask to select the bits to look at and the bits 17-23 specify the bit pattern to look for. If the bit pattern is zero, one or more bits under the mask indicate the cleaning request. If the pattern is nonzero, the pattern must match the masked sense data byte. MTIOCGET -- obtem o estado Esta requisicao leva um argumento do tipo (struct mtget *). /* structure for MTIOCGET - mag tape get status command */ struct mtget { long mt_type; long mt_resid; /* the following registers are device dependent */ long mt_dsreg; long mt_gstat; long mt_erreg; /* The next two fields are not always used */ daddr_t mt_fileno; daddr_t mt_blkno; }; mt_type Arquivo cabecalho define varios valores para mt_type, mas o controlador atual so informa os tipos genericos MT_ISSCSI (Fita SCSI-1 generica) e MT_ISSCSI (Fita SCSI-2 generica). mt_resid contem o numero da particao da fita atual. mt_dsreg reports the drive's current settings for block size (in the low 24 bits) and density (in the high 8 bits). These fields are defined by MT_ST_BLKSIZE_SHIFT, MT_ST_BLKSIZE_MASK, MT_ST_DENSITY_SHIFT, and MT_ST_DENSITY_MASK. mt_gstat da informacoes genericas do estado (independente do dispositivo). O arquivo cabecalho define macros para testar estes bits de estado: GMT_EOF(x) A fita esta posicionada apos a marca de arquivo (sempre false apos uma operacao MTSEEK). GMT_BOT(x) A fita esta posicionada no inicio do primeiro arquivo (sempre false apos uma operacao MTSEEK). GMT_EOT(x) Uma operacao da fita alcancou o final fisico da Fita. GMT_SM(x) A fita esta posicionada na setmark (sempre false apos uma operacao MTSEEK). GMT_EOD(x) A fita esta posicionada no final do dado gravado. GMT_WR_PROT(x) A unidade esta protegida contra gravacao. Para algumas unidades isto pode significar que a mesma nao suporta gravacao no tipo midia atual. GMT_ONLINE(x) O ultimo open(2) encontrou uma fita na unidade e pronta para operacao. GMT_D_6250(x) GMT_D_1600(x) GMT_D_800(x) Reporta informacoes de estado "genericas" sobre a densidade atual definida em 9-track enas para unidades de fita de 1/2". GMT_DR_OPEN(x) A unidade nao contem uma fita. GMT_IM_REP_EN(x) Modo de Informacao Imediata. Este bit e definido se nao ha garantias que os foram fisicamente gravados na fita quando a chamada de gravacao retorna. Ele e definido zero apenas quando o controlador nao buferiza os dados e a unidade esta definida para nao colocar os dados no 'buffer'. GMT_CLN(x) The drive has requested cleaning. Implemented since Linux 2.4.19 and Linux 2.5.43. mt_erreg O unico campo definido em mt_erreg e o contador de erros recuperados, nos 16 bits de baixa ordem (como definido por MT_ST_SOFTERR_SHIFT e MT_ST_SOFTERR_MASK). Devido a inconsistencias na forma como as unidades informam os erros recuperados, o contador frequentemente nao e mantido (a maioria das unidades nao informam por padrao erros de programas, mas isto pode ser alterado com o comando SCSI MODE SELECT). mt_fileno Informa o numero atual do arquivo (base-zero). Este valor e -1 quando o numero do arquivo e desconhecido (por exemplo, depois de MTBSS ou MTSEEK). mt_blkno Informa o numero de bloco (base-zero) do arquivo atual. Este valor e -1 quando o numero do bloco e desconhecido (por exemplo, depois de MTBSF, MTBSS, ou MTSEEK). MTIOCPOS obtem a posicao da fita This request takes an argument of type (struct mtpos *) and reports the drive's notion of the current tape block number, which is not the same as mt_blkno returned by MTIOCGET. This drive must be a SCSI-2 drive that supports the READ POSITION command (device-specific address) or a Tandberg-compatible SCSI-1 drive (Tandberg, Archive Viper, Wangtek, ... ). /* estrutura para MTIOCPOS - comando para obter a posicao da fita */ struct mtpos { long mt_blkno; /* numero do bloco atual */ }; VALOR DE RETORNO EACCES Tentando gravar ou apagar um fita com protecao a gravacao. (Este erro nao e detetado durante um open(2).) EBUSY O dispositivo ja esta em uso ou o controlador nao conseguiu alocar um 'buffer'. EFAULT Os parametros do comando apontam para memoria que nao pertencem ao processo chamado. EINVAL Um ioctl(2) tem um argumento ilegal ou o tamanho do bloco requisita e ilegal. EIO A operacao solicitada nao pode ser concluida. ENOMEM The byte count in read(2) is smaller than the next physical block on the tape. (Before Linux 2.2.18 and Linux 2.4.0 the extra bytes have been silently ignored.) ENOSPC Uma operacao de gravacao nao pode ser concluida porque a fita chegou no final fisico. ENOSYS ioctl(2) desconhecido. ENXIO Durante a abertura o dispositivo de fita nao existe. EOVERFLOW Tentou ler ou gravar um bloco de tamanho variavel que e maior do que o 'buffer' interno da unidade. EROFS Tentativa de abrir com O_WRONLY ou O_RDWR quando a fita na unidade esta protegida contra gravacao. ARQUIVOS /dev/st* Dispositivo de fita SCSI com auto-rebobinamento /dev/nst* Dispositivo de fita SCSI sem auto-rebobinamento NOTAS o When exchanging data between systems, both systems have to agree on the physical tape block size. The parameters of a drive after startup are often not the ones most operating systems use with these devices. Most systems use drives in variable-block mode if the drive supports that mode. This applies to most modern drives, including DATs, 8mm helical scan drives, DLTs, etc. It may be advisable to use these drives in variable-block mode also in Linux (i.e., use MTSETBLK or MTSETDEFBLK at system startup to set the mode), at least when exchanging data with a foreign system. The drawback of this is that a fairly large tape block size has to be used to get acceptable data transfer rates on the SCSI bus. o Muitos programas (por exemplo, tar(1)) permitem ao usuario especificar o fator de bloco na linha de comando. Note que isto determina o tamanho do bloco fisico na fita apenas no modo de bloco variavel. o Para poder usar unidades SCSI, o controlador SCSI basico, o controlador da placa SCSI e o controlador para fita SCSI deve ser compilado no Linux ou carregado como modulo. Se o controlador para fita SCSI nao estiver presente, a unidade e reconhecida, mas o suporte descrito nesta pagina nao esta disponivel. o O controlador grava as mensagens de erro no console/log. Os codigos escritos em algumas mensagens sao automaticamente traduzidos para texto se a exibicao das mensagens SCSI esta habilitada na compilacao do Linux. o The driver's internal buffering allows good throughput in fixed-block mode also with small read(2) and write(2) byte counts. With direct transfers this is not possible and may cause a surprise when moving to the 2.6 kernel. The solution is to tell the software to use larger transfers (often telling it to use larger blocks). If this is not possible, direct transfers can be disabled. VEJA TAMBEM mt(1) The file drivers/scsi/README.st or Documentation/scsi/st.txt (kernel >= 2.6) in the Linux kernel source tree contains the most recent information about the driver and its configuration possibilities TRADUCAO A traducao para portugues brasileiro desta pagina man foi criada por Fabio Henrique F. Silva e Carlos Augusto Horylka Esta traducao e uma documentacao livre; leia a Licenca Publica Geral GNU Versao 3 ou posterior para as condicoes de direitos autorais. Nenhuma responsabilidade e aceita. Se voce encontrar algum erro na traducao desta pagina de manual, envie um e-mail para a lista de discussao de tradutores . Linux man-pages 6.06 31 outubro 2023 st(4)