sexta-feira, 8 de agosto de 2008

Renomeando interfaces de rede com nameif no Linux

Um problema que geralmente acontece no Linux é a utilização de mais de uma placa de rede no mesmo computador e sendo estas de mesmo modelo/fabricante.

O Linux meio que se embaralha na hora de atribuir o nome das interfaces (ethX) e geralmente na hora do reboot ele acaba trocando os nomes da interfaces.

Para resolver este problema basta fazer um script para ser carregado na inicialização da rede.

O comando nameif serve para modificar o nome da interface de rede. Pode-se atribuir qualquer nome.

Deve-se criar dois arquivos de configuração na pasta /etc para ser utilizado junto com o nameif, o arquivo mactab-clean e o mactab.

O conteúdo do mactab-clean vai ser apenas para desassociar qualquer nome que possa ter sido dado as interfaces de rede e o mactab vai ter a nomeação na ordem correta das interfaces de rede.

Exemplo:

Tenho as seguintes placas de rede no meu computador:

Primeira placa de rede 3Com possui o MAC 00:00:00:00:00:00
Segunda placa de rede Realtek possui o MAC 11:11:11:11:11:11
Terceira placa de rede Via possui o MAC 22:22:22:22:22:22
Quero que a nomenclatura das placas obedeça a seguinte ordem:
Placa de rede Via -> eth0
Placa de rede 3Com -> eth1
Placa de rede Realtek -> eth2
Primeiro passo é criar o arquivo /etc/mactab-clean com o seguinte conteúdo:

teste0 22:22:22:22:22:22
teste1 00:00:00:00:00:00
teste2 11:11:11:11:11:11

Na primeira coluna pode colocar qualquer nome para atribuir as placas de rede menos eth pois está justamente limpando o eth para ser utilizado no próximo passo. Na segunda coluna, separada por tabulação, coloca-se os MACs das placas de rede.

Agora cria-se o arquivo /etc/mactab com o seguinte conteudo:

eth0 22:22:22:22:22:22
eth1 00:00:00:00:00:00
eth2 11:11:11:11:11:11

Segue a mesma formatação do primeiro arquivo que foi criado, mas nesse já vai estar associado o nome da interface ao MAC da mesma na ordem que quiser.

A parte de configuração está pronta. Agora deve-se chamar esses arquivos criados com o nameif na hora de carregar as configurações de rede. No Slackware o arquivo que inicia a rede fica em /etc/rc.d/rc.inet1, as outras distribuições devem ter algo parecido.

O comando nameif tem que ser a primeira coisa a ser executada nesse arquivo de inicialização da rede. Para não adicionar muitas linhas nesse arquivo, basta criar um scrit com o seguinte conteúdo:

#!/bin/bash
# Confirmando que as interfaces estão
# realmente desligadas
ifconfig eth0 down
ifconfig eth1 down
ifconfig eth2 down

# Limpando os nomes caso algum já
# tenha sido usado
nameif -c /etc/mactab-clean
sleep 2
# Atribuindo os nomes na ordem
# desejada
nameif -c /etc/mactab

Feito isso, salve o arquivo e de permissão de execução nele. Depois adicione o path completo do arquivo no script de inicialização da rede do seu Linux logo no inicio, antes de executar qualquer comando.

quarta-feira, 30 de julho de 2008

Limpando o Cache de memória no Linux

Bem galera, vai ai uma dica para limpar o cache de memória no Linux. Vale lembrar que essa funcionalidade só foi implementada no kernel 2.6.16 em diante.

Antes de executar o comando para limpar o cache, execute o comando sync para sincronizar o que está no disco com a memória.

Para realmente ver se terá resultado ou não, de o seguinte comando para visualizar quanto de cache está sendo consumido:

# free -m -t

Repare no valor da ultima coluna (cached).

Para limpar pagecache:

  • echo 1 > /proc/sys/vm/drop_caches
Para limpar dentries e inodes:
  • echo 2 > /proc/sys/vm/drop_caches
Para limpar tudo:
  • echo 3 > /proc/sys/vm/drop_caches
Eu só usei a terceira opção e funcionou muito bem!

quarta-feira, 18 de julho de 2007



Acompanhe nesse gráfico a evoluçao das distribuições Linux ao longo do tempo.

segunda-feira, 9 de julho de 2007

Compiz Fusion = Compiz + Beryl

Um video mostrando apenas uma amostra da fusão do Compiz com o Beryl

quinta-feira, 28 de junho de 2007

Segurança Patrimonial com o ZoneMinder

Introdução

Esse artigo vem a explicar a instalação e configuração do ZoneMinder, um sistema fantástico para monitoramento com câmeras de vigilância tanto locais (analógicas) quando pela rede (câmeras IP). O ZoneMinder da suporte até 32 câmeras analógicas, e tantas quantas seu hardware aguentar para câmeras IP.

Duas características muito interessante do ZoneMinder são os métodos de Monitoramento, como apenas monitorar, gravar, detectar movimentos, gravar ao detectar movimentos, etc e também o fato de gerar arquivos em diferente extensões (mpg, swf, avi, mov, etc) e armazena-los podendo utilizar qualquer programa para gravar-los em uma mídia e poder reproduzi-la posteriormente.

Usei como sistema base a distribuição Slackware 11 com o kernel 2.6.

Pré-requisitos

Instalar as seguintes CPANs:

  • Archive::Zip
  • Compress::Zlib
  • Date::Manip
  • DBD::mysql
  • DBI
  • IO::Stringy
  • MIME::Lite
  • MIME::Tools
  • MIME::Entity
  • LWP::UserAgent
  • PHP::Serialization
  • X10::ActiveHome
  • Module::Load

Baixe os seguintes pacotes do site http://www.linuxpackages.net

  • a52dec-0.7.4-i686-1jto.tgz
  • faad2-2.5p1-i486-1kjz.tgz
  • faac-1.25p1-i486-1kjz.tgz
  • lame-3.97-i686-1jto.tgz
  • xvidcore-1.1.2-i486-1kjz.tgz
  • x264-20070418-i486-1kjz.tgz
  • ffmpeg-20070419-i486-1kjz.tgz

Verifique se os seguintes pacotes estão instalados no Slackware, se não tiver isntale-os pelo slackpkg:

  • libogg
  • fontconfig
  • gnutls
  • xproto
  • renderproto
  • kbproto
  • libX11
  • libXau
  • libXdmcp
  • libXpm
  • libgcrypt
  • libgpg-error
  • libtheora
  • libvorbis
  • libxcb
  • libXrender
  • sdl

Estando tudo OK, instale usando o installpkg os tgzs que baixou anteriormente deixando o ffmpeg-20070419-i486-1kjz.tgz por último.

Tenha instalado e rodando o Apache, PHP e o MySQL.

Instalação

Baixe do site do http://www.zoneminder.com o tar.gz descompacte-o e entre na pasta src e edite o arquivo zm_mpeg.h e acrescente a seguinte linha #define INT64_C salve o arquivo. Depois edite o arquivo zm_mpeg.cpp na lina 281 e acrescente um & na frente de ofc deixando a linha desse jeito url_fclose(&ofc->pb); Volte para a pasta do ZoneMinder faça os paços a seguir:

# ./configure \
--prefix=/usr/local/zm \
--with-mysql=/usr/lib/mysql \
--with-webdir=/var/www/htdocs/zm \
--with-cgidir=/var/www/cgi-bin \
--with-ffmpeg=/usr \
--with-webuser=apache \
--with-webgroup=apache


Fiquem a vontade para alterar o configure.

# cd db
# mysql -u root -p


Logo abaixo cria-se o banco de dados e o usuário. deixei padrão, mas alterem pelo menos a senha!

mysql> \. zm_create.sql
mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON zm.* to zmuser@localhost IDENTIFIED BY 'zmpass';
mysql> flush privileges;
mysql> exit;

# cd ..
# make
# make install


Precisamos instalar um pacote chamado Cambozola, que serve para um determinado tipo de streaming do ZoneMinder. Baixe o Cambozola do site http://www.charliemouse.com/code/cambozola/ e para instala-lo basta descompacta-lo e copiar o arquivo que está dentro da pasta dist chamado cambozola.jar para a raiz da pasta da web do ZoneMinder. Depois mude a permissão dele para 777 e o dono do arquivo e o grupo para nobody.

Se até aqui não houve nenhum erro, o ZoneMinder já está funcionando no seu http://localhost/zm

Configuração

Na primeira tela do ZoneMinder do lado superior direito, você pode alterar as opções do ZoneMinder. Abaixo segue as principais opções e seus valores.

Aba Path

ZM_PATH_ZMS = /cgi-bin/zms

Aba Web

ZM_WEB_RESIZE_CONSOLE = false

Aba Config

ZM_CAPTURES_PER_FRAME = 2 (Usando cameras analógicas, com placas com mais de um chip)

Aba Image

ZM_CAM_STREAM = auto
ZM_STREAM_METHOD = jpeg (Usando o Cambozola)
ou
ZM_STREAM_METHOD = mpeg (Usando o Flash)
ZM_MPEG_LIVE_FORMAT = asf (usando o Cambozola)
ZM_MPEG_REPLAY_FORMAT = asf (Usando o Cambozola)
ou
ZM_MPEG_LIVE_FORMAT = swf (Usando o Flash)
ZM_MPEG_REPLAY_FORMAT = swf (Usando o Flash)

ZM_OPT_CAMBOZOLA = true (Usando o Cambozola)
ZM_FFMPEG_FORMATS = Acrescentar o swf no final
ZM_OPT_MPEG = ffmpeg
ZM_PATH_FFMPEG = /usr/bin/ffmpeg

Aba Network

ZM_OPT_REMOTE_CAMERAS = true (Usando Cameras IP)
ZM_NETCAM_REGEXPS = false
ZM_HTTP_VERSION = 1.0

Existem outras opções, mas perceba que do lado de cada opção tem um (?) onde se tem a explicação de cada opção.

Placa de captura (Bt878)

Na minha experiência tenho 2 servidores rodando com o ZoneMinder configurado em um para câmeras IP e outra para câmeras analógicas. No primeiro servidor tenho 6 câmeras IP rodando e no segundo 22 câmeras locais rodando.

Utilizo no segundo servidor duas placas com chips Conexant baseados no Bt878 chamada Kodicom 4400R que da suporte cada uma a 16 câmeras e utiliza o drive bttv do kernel do Linux.

Placa Pico 2000 (4 câmeras)

Acrescentar a seguinte linha no modprobe.conf ou acrescente-a no arquivo /etc/modprobe.d/bttv:

options bttv gbuffers=16 card=77

Não esquecer de dar um ENTER no final da linha para dar uma quebra de linha

Placa Kodicom 4400R (16 Câmeras)

Para 1 placa, acrescentar a seguinte linha no modprobe.conf ou acrescente-a no arquivo /etc/modprobe.d/bttv:

options bttv gbuffers=16 card=133,132,133,133

Para 2 placas, acrescentar a seguinte linha no modprobe.conf ou acrescente-a no arquivo /etc/modprobe.d/bttv:

options bttv gbuffers=32 card=133,132,133,133,133,132,133,133

Não esquecer de dar um ENTER no final da linha para dar uma quebra de linha

Browser (Navegador)

Recomendo e muito a utilização do Mozilla Firefox. Porém "funciona" em qualquer navegador.

No caso do FireFox tem que modificar dois parâmetros para que funcione corretamente a exibição de todas as câmeras em uma janela só (conhecida como Montagem no ZoneMinder). Entre no about:config e edite os seguintes parâmetros:

network.http.max-connections-per-server de 8 para 32
network.http.max-persistent-connections-per-server de 2 para 32


Adicionando a câmera

Clique em Add New Monitor

Aba General

NAME = Nome para a câmera
SOURCE TYPE = Local (câmeras analógicas) ou Remote (câmeras IP)
FUNCTION = Monitor (exibe as imagens das câmeras), Modect (aciona o sensor de movimento e gera Alarmes), Record (grava o tempo todo a imagem das câmeras) e Modect (grava apenas quando acionado o sensor de movimento)

Aba Source

Se escolher LOCAL:
DEVICE PATH = /dev/video0 ou /dev/video1 ou /dev/video2 ou ...
DEVICE CHANNEL = Canal que vai variar de acordo com a quantidade de cameras
DEVICE FORMAT = PAL ou NTSC (geralmente NTSC)
CAPTURE WIDTH (pixels) = 320 (geralmente, depende da câmera)
CAPTURE HEIGHT (pixels) = 240 (geralmente, depende da câmera)

Se escolher REMOTE:
REMOTE HOST NAME = IP da camera IP
REMOTE HOST PORT = 80 (pode mudar de acordo com a câmera
REMOTE HOST PATH = video.cgi (no caso da minha câmera TrendNet)
REMOTE IMAGE COLORS = 24 bits
CAPTURE WIDTH (pixels) = 320 (geralmente, depende da câmera)
CAPTURE HEIGHT (pixels) = 240 (geralmente, depende da câmera)

Considerações Finais e Referências

O ZoneMinder é um sistema fantástico e serve para aplicações básicas (monitoramento residencial) ou até mesmo para aplicações empresárias (Bancos, Supermercados, etc).

No requisito hardware percebi que quanto maior é a quantidade câmeras maior a quantidade de memória (diretamente proporcional). No meu servidor com 22 câmeras só ficou legal com 2 GB de RAM.

Segue alguns sites que TÊM que ser visitado para implementar o ZoneMinder:

Documentação ZoneMinder:
http://www.zoneminder.com/fileadmin/downloads/README.html

Fórum ZoneMinder (IMPORTANTE):
http://www.zoneminder.com/forums/

Placas de Captura:
http://www.zoneminder.com/forums/viewtopic.php?t=8766&highlight=modprobe+conf+kodcon
http://www.linuxtv.org/v4lwiki/index.php/Kodicom_4400R
http://www.zoneminder.com/wiki/index.php/Kodicom_4400r

quarta-feira, 27 de junho de 2007

MSN Online (Windows Live Messenger)

Utilize o MSN (Windows Live Messenger) direto pelo seu navegador sem ter que instalar nada!!!! Segue a lista de sites que disponibilizam este serviço:

http://www.meebo.com.br/
http://webmessenger.msn.com/
http://www.ebuddy.com/
http://www.iloveim.com/
http://www.msn2go.com/
http://www7.messengerfx.com/

terça-feira, 26 de junho de 2007

Otimizando uso de memória RAM do Firefox

O Firefox é um excelente navegador porém consome muita memória.

Seguindo um passo a passo simples você conseguirá economizar bastante memória e não perderá muito desempenho.

Entre no Firefox e digite na barra de endereço about:config
Feito isso, clique com o botão direito do mouse na tela que abriu e depois vai em New -> Boolean
Irá abrir uma caixa para inserir o nome da propriedade, coloque config.trim_on_minimize, clique em OK e depois escolha True


Está feito. Feche e abra o Firefox novamente e faça os seus testes. No Linux utilize o comando top antes e depois da alteração e verá que a economia é de no mínimo 100 MB.

sábado, 7 de abril de 2007

Linux no Palm

Um site muito interessante que aborda a instalação do linux em palms... vale conferir!

http://www.hackndev.com/

sexta-feira, 30 de março de 2007

Remover Virus do Windows com um pendrive

Uma matéria muito interessante de como instalar um linux no pendrive e apartir dele dar boot na maquina e reparar uma partição windows, vale a pena conferir!!

http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=6160&pagina=1

quarta-feira, 13 de setembro de 2006

Postfix + MySQL + Uebimiau

Segue o link para configurar o Postfix + MySQL

http://www.comofazer.net/wiki/index.php/Computadores:Postfix


Segue o link para configuração do Uebimiau:

http://www.nautilus.com.br/~rei/material/artigos/apache2-php4-uebimiau.html


Resolvendo o problema do Header no Uebimiau:

inc/inc.php

Troque...

Header("Expires: Wed, 11 Nov 1998 11:11:11 GMT\r\n".
"Cache-Control: no-cache\r\n".
"Cache-Control: must-revalidate");

Por...

Header("Expires: Wed, 11 Nov 1998 11:11:11 GMT\r\n");
Header("Cache-Control: no-cache\r\n");
Header("Cache-Control: must-revalidate\r\n");