|
Página seguinte
Página anterior
Índice
Um porta de E/S é uma forma de obter e enviar dados de/para um computador. Há muitos tipos de postas de E/S como portas seriais, paralelas, controlados de dispositivos de disco, placas Ethernet, etc.. Nós assumiremos que as portas seriais utilizarão modems e terminais que serão denominados dispositivos seriais. Cada porta serial deve ter um endereço de E/S e uma interrupção (IRQ). Há quatro portas seriais correspondentes a COM1 - COM4:
ttyS0 (COM1) endereço 0x3f8 IRQ 4
ttyS1 (COM2) endereço 0x2f8 IRQ 3
ttyS2 (COM3) endereço 0x3e8 IRQ 4
ttyS3 (COM4) endereço 0x2e8 IRQ 3
Caso o Linux não detecte qualquer porta serial ao ser inicializado, esteja seguro de que o suporte serial está habilitado e compilado no kernel do sistema. Neste documento, referencio COM1 como ttyS0 , COM2 como ttyS1 , COM3 como ttyS2 e COM4 como ttyS3 . Note que, por padrão, estes dispositivos são sobrepostos pelos valores de IRQs. Não se pode usar todas as portas na configuração original, devendo-se então serem definidos outras IRQs. Veja a seção
Posso Usar Mais de Duas Portas Seriais?
para configuração das interrupções.
Em algumas instalações, dois dispositivos extras podem ser criados,
/dev/modem para o modem e /dev/mouse para o mouse. Ambos são ligações simbólicas para os devidos dispositivos no diretório /dev especificado durante a instalação (a menos que se tenha um mouse de barramento quando então o /dev/mouse apontará para o dispositivo do mouse).
Tem havido alguma discussão sobre o mérito do /dev/mouse e
/dev/modem . Desencorajo fortemente o uso dessas ligações. Em particular, caso se esteja planejando usar o modem para discagem, pode-se ter alguns problemas com arquivos de reserva de recursos caso se utilize o /dev/modem . Use-os caso deseje, mas esteja seguro de estar apontando para o dispositivo correto. De qualquer forma, caso se altere ou se remova a ligação, algumas aplicações (minicom por exemplo) podem necessitar de reconfiguração.
Cada dispositivos ttyS tem um dispositivo cua correspondente. Houve alguma discussão sobre a abolição do cua, então o melhor é usar o ttyS. As principais diferenças entre cua e ttyS é que um simples comando "open" (sem certos parâmetros) em um programa de aplicação, fará com que cua abra a porta mesmo que os sinais de controle (como DCD) digam para não fazê-lo. Já stty pode ser configurado para verificar os sinais de controle do modem. Uma porta ttyS pode recusar-se a abrir a porta nestes casos, porém pode ser forçado para tal caso sejam fornecidos certos parâmetros para o comando "open".
Além disso uma porta ttyS pode fazer tudo que uma porta cua faça. Exceto que um comando de abertura forçada resulta em um comando de leitura em um programa que se comportará de uma forma singular que pode ser evitada ao se adicionar alguns comandos extras. Eliminar cua pode trazer ao Linux maior compatibilidade com o padrão Posix e evita certos problemas com arquivos de reserva de recursos.
/dev/ttyS0 maior 4, menor 64 /dev/cua0 maior 5, menor 64
/dev/ttyS1 maior 4, menor 65 /dev/cua1 maior 5, menor 65
/dev/ttyS2 maior 4, menor 66 /dev/cua2 maior 5, menor 66
/dev/ttyS3 maior 4, menor 67 /dev/cua3 maior 5, menor 67
Note que todas as distribuições devem com estes dispositivos corretamente configurados (a menos que cua seja abolido). Pode-se verificar a configuração através do comando:
linux% ls -l /dev/cua*
linux% ls -l /dev/ttyS*
Criando Dispositivos em /dev
Caso não se tenha o dispositivo, será necessário criá-lo com o comando
mknod . Por exemplo suponhamos que seja necessário criar os dispositivos para ttyS0 :
linux# mknod -m 666 /dev/cua0 c 5 64
linux# mknod -m 666 /dev/ttyS0 c 4 64
Pode-se usar também o programa MAKEDEV que reside no diretório /dev , o qual simplifica a geração de dispositivos. Por exemplo, caso se necessite de um dispositivo para ttyS0 deve-se digitar:
linux# cd /dev
linux# ./MAKEDEV ttyS0
Isso possibilita a criação de dispositivos para dispositivos de entrada e saída e deve ter as permissões corretas configuradas.
Os dispositivos usados por uma placa multiserial dependem do tipo de placa disponível. Algumas destas estão listadas em detalhes em rc.serial ou
em 0setserial o qual acompanha o pacote setserial . Recomendo fortemente o uso da versão mais atualizada do setserial caso se esteja utilizando placas multiseriais. Provavelmente será necessário criar estes dispositivos. Para tanto pode-se usar o comando mknod ou o programa MAKEDEV . Dispositivos para placas multiseriais são criados através da fórmula ``64 + número da porta''. Logo, caso se deseje criar dispositivos para ttyS17 deve-se digitar:
linux# mknod -m 666 /dev/cua17 c 5 81
linux# mknod -m 666 /dev/ttyS17 c 4 81
Note que ``64 + 17 = 81''. Usando o programa MAKEDEV deve-se digitar:
linux# cd /dev
linux# ./MAKEDEV ttyS17
Nota: o manual SIIG para a lista IO1812 para COM5-COM8 está incorreto. Eles devem ser COM5=0x250, COM6=0x258, COM7=0x260 e COM8=0x268.
Nota: o Registro de Status de Interrupção da Digi PC/8 está em 0x140.
Nota: para a AST Fourport, deve-se especificar skip_test em rc.serial .
Leia a informação que acompanha o programa de controle. Estas placas utilizam programas especiais e não os padrões. Esta informação varia dependendo do hardware.
Página seguinte
Página anterior
Índice
|