No post anterior aprendemos como configurar um dispositivo utilizando uma porta serial. Agora vamos aprender como controlar a velocidade de uma porta serial usando o mesmo comando "setserial".
Lista de opções de velocidade para ser setada em uma porta serial:
spd_hi -> 56kb: quando a velocidade adequada para o dispositivo for de 38.4 kbps
spd_vhi -> 115kb: quando o solicitado for 38.4 kbps
spd_shi -> 230kb: quando o solicitado for 38.4 kbps
spd_warp -> 460kb: quando o solicitado for 38.4 kbps
spd_cust -> Usa um divisor diferente quando o solicitado for 38.4 kbps
spd_nomal -> 38.4 kb: quando o solicitado for 38.4 kbps
Com base nas informações acima, podemos configurar de acordo com a especificação da velocidade do periférico conectado a uma determinada serial a sua respectiva velocidade. Para isso utilizamos o comando:
# setserial /caminho_do_dispositivo/ velocidade.
Utilizando a porta serial do post anterior (ttyS2), podemos configurar a velocidade do dispositivo através do comando:
# setserial /dev/ttyS2 spd_normal
terça-feira, 10 de novembro de 2009
Configurando dispositivo serial (1.101.3)
Vamos tomar como exemplo um dispositivo tipo modem que precisa ser reconhecido em uma especifica porta serial pelo kernel. Logo, para configurarmos o modem ou qualquer outro dispositivo serial, precisamos identificar as informações de I/O e IRQ do dispositivos para configurarmos de acordo com a sua especificação. Podemos verificar essas informações através do comando: # lspci -v.
Para saber qual as portas seriais que estão em uso, utilize o seguinte comando: setserial -g caminho_do_dispositivo.
Ex.: setserial -g /dev/ttyS*
O comando acima irá exibir as informações de todas as portas tty
# setserial -g /dev/ttyS*
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3
/dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4
/dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3
Com essas informações, agora podemos configurar adequadamente o dispositivo em uma respectiva serial livre do kernel. Utilize uma porta serial disponível como por exemplo: /dev/ttyS2 ou /dev/ttyS3.
Agora sim podemos configurar o dispositivo corretamente. Para isso, vamos utilizar um comando que já utilizamos acima (setserial).
Ex.: setserial /dev/ttyS2 port 0x03e8 irq 4 autoconfig.
OBS.: Coloquei como exemplo um modem serial, pois na maioria das vezes os aplicativos que utilizam os recursos do modem, procuram o mesmo no path /dev/modem. Então, para evitar complicações futuras, devemos criar um link simbólico para a essa serial que acabamos de configurar.
Ex.: # ln -s /dev/ttyS2 /dev/modem
Para saber qual as portas seriais que estão em uso, utilize o seguinte comando: setserial -g caminho_do_dispositivo.
Ex.: setserial -g /dev/ttyS*
O comando acima irá exibir as informações de todas as portas tty
# setserial -g /dev/ttyS*
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3
/dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4
/dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3
Com essas informações, agora podemos configurar adequadamente o dispositivo em uma respectiva serial livre do kernel. Utilize uma porta serial disponível como por exemplo: /dev/ttyS2 ou /dev/ttyS3.
Agora sim podemos configurar o dispositivo corretamente. Para isso, vamos utilizar um comando que já utilizamos acima (setserial).
Ex.: setserial /dev/ttyS2 port 0x03e8 irq 4 autoconfig.
OBS.: Coloquei como exemplo um modem serial, pois na maioria das vezes os aplicativos que utilizam os recursos do modem, procuram o mesmo no path /dev/modem. Então, para evitar complicações futuras, devemos criar um link simbólico para a essa serial que acabamos de configurar.
Ex.: # ln -s /dev/ttyS2 /dev/modem
Atributos fundamentais da BIOS (1.101.1)
Para se configurar um hardware utilizando o shell, deve-se primeiramente ter uma noção dos utilitários de configuração de BIOS. Com esses conhecimentos podemos liberar/bloquear periféricos integrados ao computador, ativar proteção contra erros e configurar endereços I/O, IRQ e DMA.
I/O -> Endereço do dispositivo mapeado na memória do sistema. É através desse endereço que a CPU irá se comunicar com o dispositivo.
IRQ -> Requisição de interrupção do sistema através do dipositivo. O dispositivo envia um sinal de interrupção (IRQ) informando a CPU para parar a execução corrente para processar as instruções enviadas pelo dispositivo.
DMA -> Directory Memory Access, acesso direto a memória. Utilizando o canal DMA para acessar a leitura e escrita na memória sem a intervenção da CPU.
As informações amazenadas pelo Kernel com relação aos dispositivos se encontram no diretório /proc.
Ex.: /proc/dma, /proc/ioports, /proc/interrupts, /proc/pci, etc.
Para listar os componentes do computador utilizamos o comando lspci e para ter uma informação mais completa, incluindo dados do IRQ, DMA, I/O, utilize a opção -v.
Ex.: $ lspci -v
I/O -> Endereço do dispositivo mapeado na memória do sistema. É através desse endereço que a CPU irá se comunicar com o dispositivo.
IRQ -> Requisição de interrupção do sistema através do dipositivo. O dispositivo envia um sinal de interrupção (IRQ) informando a CPU para parar a execução corrente para processar as instruções enviadas pelo dispositivo.
DMA -> Directory Memory Access, acesso direto a memória. Utilizando o canal DMA para acessar a leitura e escrita na memória sem a intervenção da CPU.
As informações amazenadas pelo Kernel com relação aos dispositivos se encontram no diretório /proc.
Ex.: /proc/dma, /proc/ioports, /proc/interrupts, /proc/pci, etc.
Para listar os componentes do computador utilizamos o comando lspci e para ter uma informação mais completa, incluindo dados do IRQ, DMA, I/O, utilize a opção -v.
Ex.: $ lspci -v
quinta-feira, 5 de novembro de 2009
Como clonar uma maquina virtual no vmware server
Tive muito trabalho para deixar arquivado em algum lugar o modo como se clona uma VM (virtual machine) utilizando o VMware Server. Por este motivo, estou postando para que futuramente outras pessoas e eu mesmo possa consultar.
Como o meu trabalho atual é utilizar VM's em clusters e promover a alta disponibilidade em um serviço, eu preciso constantimente criar e instalar novas VM's.
Por isso, encontrei um modo de agilizar esse processo de criação de uma VM. Eu crio uma VM com todos os softwares basicos e necessário para as demais VM's, deixo essa VM como um template para as demais e vou fazendo cópia e modificando o arquivo .vmdk.
Os passos para a execução desse processo está abaixo:
1) Criar uma VM com todos os sofwares comuns para as demais VM's
2) Deixar essa VM como template, renomeie a pasta da VM. Ex.: tmp-vm-ubuntu
3) Faça uma cópia da VM template com o nome desejado. # cp tmp-vm-ubuntu vm-ubuntu-01
4) Modifique o arquivo .vmdk dentro da pasta que contém a nova VM. # vmware-vdiskmanager -n tmp-vm-ubuntu.vmdk vm-ubuntu-01.vmdk
5) Por ultimo, temos que renomear o arquivo de configuração da VM. # sed -i 's/tmp-vm-ubuntu.vmdk/vm-ubuntu-01.vmdk' vm-ubuntu-01
Obs.: Agora não preciso ficar realizando pesquisa para relembra algum passo esquecido.
Até o próximo post se Deus quiser.
Como o meu trabalho atual é utilizar VM's em clusters e promover a alta disponibilidade em um serviço, eu preciso constantimente criar e instalar novas VM's.
Por isso, encontrei um modo de agilizar esse processo de criação de uma VM. Eu crio uma VM com todos os softwares basicos e necessário para as demais VM's, deixo essa VM como um template para as demais e vou fazendo cópia e modificando o arquivo .vmdk.
Os passos para a execução desse processo está abaixo:
1) Criar uma VM com todos os sofwares comuns para as demais VM's
2) Deixar essa VM como template, renomeie a pasta da VM. Ex.: tmp-vm-ubuntu
3) Faça uma cópia da VM template com o nome desejado. # cp tmp-vm-ubuntu vm-ubuntu-01
4) Modifique o arquivo .vmdk dentro da pasta que contém a nova VM. # vmware-vdiskmanager -n tmp-vm-ubuntu.vmdk vm-ubuntu-01.vmdk
5) Por ultimo, temos que renomear o arquivo de configuração da VM. # sed -i 's/tmp-vm-ubuntu.vmdk/vm-ubuntu-01.vmdk' vm-ubuntu-01
Obs.: Agora não preciso ficar realizando pesquisa para relembra algum passo esquecido.
Até o próximo post se Deus quiser.
quarta-feira, 4 de novembro de 2009
Definição da palavra "Software Livre"
Para dar início a uma sequência de post no meu blog, nada mais justo falar do mundo OPENSOURCE (em português "sofware livre"). De acordo com a Free Software Foundation, "Software livre nada mais é que qualquer programa de computador que pode ser usado, copiado, estudado e redistribuído com algumas restrições. A liberdade de tais diretrizes é central ao conceito, o qual se opõe ao conceito de software proprietário, mas não ao software que é vendido almejando lucro." fonte: http://pt.wikipedia.org/wiki/Software_livre".
Com isso, chegamos a conclusão que sofware livre é qualquer software que podemos compartilhar com os amigos, distribuí-los pela internet sem termos que pagar ao para obter a licença do uso e termos a liberdade de instalarmos em quantas maquinas quisermos.
Um motivo que acarretou essa livre distribuição foi o fator fincanceiro das licenças e a impossibilidade de estudos das aplicações desenvolvidas.
Com isso, chegamos a conclusão que sofware livre é qualquer software que podemos compartilhar com os amigos, distribuí-los pela internet sem termos que pagar ao para obter a licença do uso e termos a liberdade de instalarmos em quantas maquinas quisermos.
Um motivo que acarretou essa livre distribuição foi o fator fincanceiro das licenças e a impossibilidade de estudos das aplicações desenvolvidas.
Marcadores:
licenças,
opensource,
software livre
Assinar:
Postagens (Atom)