helio.loureiro.eng.br
  • Home
  • Unix
  • Linux
  • Blog
  • Python
  • Programação
  • Tudo
  • Suécia
  1. You are here:  
  2. Home

Os artigos mais lidos de 2025

  • Configurando o grafana alloy pra monitorar VMs
  • Configurando traefik com ssh
  • Configurando o teclado Keychron C3 no Linux
  • Acessos de robôs nos logs web
  • Parâmetros de compilação pra Go!

Home

Aula de computação

Details
Written by: Helio Loureiro
Category: Blog
Published: November 20, 2009
Hits: 7037

Aula de computação é assim: tem gente que nunca aprende. E felizmente tem sempre 1 que sabe mais que o professor :-)

Fonte: http://www.flickr.com/photos/slayerx/3635627339/

Placa 3G Sony Ericsson PC300

Details
Written by: Helio Loureiro
Category: Linux
Published: July 31, 2009
Hits: 9058

Finalmente tive a oportunidade de pegar uma das placas 3G, com chip da Claro. Uma das vantagens da migração do FreeBSD pro Linux é justamente a facilidade no reconhecimento de novos hardwares. A placa foi identificada de imediato pelo meu OpenSuse 11:


usb usb7: configuration #1 chosen from 1 choice hub 7-0:1.0: USB hub found hub 7-0:1.0: 1 port detected 
usb usb7: New USB device found, idVendor=1d6b, idProduct=0001 
usb usb7: New USB device strings: Mfr=3, Product=2, SerialNumber=1 
usb usb7: Product: OHCI Host Controller 
usb usb7: Manufacturer: Linux 2.6.25.20-0.4-default ohci_hcd 
usb usb7: SerialNumber: 0000:03:00.1 
usb 6-1: new full speed USB device using ohci_hcd and address 2 
usb 6-1: configuration #2 chosen from 1 choice 
usb 6-1: New USB device found, idVendor=0fce, idProduct=d0b2 
usb 6-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 
usb 6-1: Product: Sony Ericsson PC300 
usb 6-1: Manufacturer: Sony Ericsson 
usb 6-1: SerialNumber: 3579310101884440 
cdc_acm 6-1:2.1: ttyACM0: USB ACM device 
cdc_acm 6-1:2.3: ttyACM1: USB ACM device 
usbcore: registered new interface driver cdc_acm 
drivers/usb/class/cdc-acm.c: v0.25:USB Abstract Control Model driver for USB modems and ISDN adapters 
usb0: register 'cdc_ether' at usb-0000:03:00.0-1, CDC Ethernet Device, 02:80:37:0a:03:00 
usbcore: registered new interface driver cdc_ether 
usb0: no IPv6 routers present

O driver cdc_acm foi carregado automaticamente.

Para fazer a discagem, instalei o aplicativo wvdial, velho companheiro dos tempos de modem discado, à 14400 bps. Utilizando o wvdialconf, a placa 3G é automagicamente identificada:


Editing `/etc/wvdial.conf'.

Scanning your serial ports for a modem.

Modem Port Scan<*1>: S0   S1
ttyS2<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud
ttyS2<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 115200 baud
ttyS2<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up.
Modem Port Scan<*1>: S3
ttyS4: No such device or address
Modem Port Scan<*1>: S4
ttyS5: No such device or address
Modem Port Scan<*1>: S5
ttyS6: No such device or address
Modem Port Scan<*1>: S6
ttyS7: No such device or address
Modem Port Scan<*1>: S7
WvModem<*1>: Cannot get information for serial port.
ttyACM0<*1>: ATQ0 V1 E1 -- OK
ttyACM0<*1>: ATQ0 V1 E1 Z -- OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1; -- OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1; &D2; -- OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1; &D2; +FCLASS=0 -- OK
ttyACM0<*1>: Modem Identifier: ATI -- PC300
ttyACM0<*1>: Speed 4800: AT -- OK
ttyACM0<*1>: Speed 9600: AT -- OK
ttyACM0<*1>: Speed 19200: AT -- OK
ttyACM0<*1>: Speed 38400: AT -- OK
ttyACM0<*1>: Speed 57600: AT -- OK
ttyACM0<*1>: Speed 115200: AT -- OK
ttyACM0<*1>: Speed 230400: AT -- OK
ttyACM0<*1>: Speed 460800: AT -- OK
ttyACM0<*1>: Max speed is 460800; that should be safe.
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1; &D2; +FCLASS=0 -- OK
WvModem<*1>: Cannot get information for serial port.
ttyACM1<*1>: ATQ0 V1 E1 -- OK
ttyACM1<*1>: ATQ0 V1 E1 Z -- OK
ttyACM1<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyACM1<*1>: ATQ0 V1 E1 S0=0 &C1; -- OK
ttyACM1<*1>: ATQ0 V1 E1 S0=0 &C1; &D2; -- OK
ttyACM1<*1>: ATQ0 V1 E1 S0=0 &C1; &D2; +FCLASS=0 -- OK
ttyACM1<*1>: Modem Identifier: ATI -- PC300
ttyACM1<*1>: Speed 4800: AT -- OK
ttyACM1<*1>: Speed 9600: AT -- OK
ttyACM1<*1>: Speed 19200: AT -- OK
ttyACM1<*1>: Speed 38400: AT -- OK
ttyACM1<*1>: Speed 57600: AT -- OK
ttyACM1<*1>: Speed 115200: AT -- OK
ttyACM1<*1>: Speed 230400: AT -- OK
ttyACM1<*1>: Speed 460800: AT -- OK
ttyACM1<*1>: Max speed is 460800; that should be safe.
ttyACM1<*1>: ATQ0 V1 E1 S0=0 &C1; &D2; +FCLASS=0 -- OK

Found an USB modem on /dev/ttyACM0.
Modem configuration written to /etc/wvdial.conf.
ttyACM0: Speed 460800; init "ATQ0 V1 E1 S0=0 &C1; &D2; +FCLASS=0"
ttyACM1: Speed 460800; init "ATQ0 V1 E1 S0=0 &C1; &D2; +FCLASS=0"


Esperava ver mais velocidade, mas 460k já é melhor que nada. Infelizmente a configuração padrão não funcionou de jeito nenhum. Vasculhando google afora, encontrei o link de configuração para outro tipo de modem, o E-226:

http://www.vivaolinux.com.br/artigo/Modem-Huawei-E226-Claro-3G/?pagina=2
 

Adaptei a mesma para o PC300, como mostra meu /etc/wvdial.conf abaixo:


[Dialer Defaults]
Carrier Check = off
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1; &D2; +FCLASS=0
Password = claro
Ask Password = 0
Check Def Route = 1
Phone = *99***1#
Idle Seconds = 0
Modem Type = Analog Modem
Stupid Mode = 1
Compuserve = 0
Baud = 460800
Auto DNS = off
Dial Command = ATDT
Modem = /dev/ttyACM0
ISDN = 0
Username = claro

[Dialer claro3g]
Stupid Mode = on
Password = claro
Auto Reconnect = off
Username = claro
Phone = *99***1#

Também precisei editar o arquivo /etc/ppp/peers/wvdial para desabilitar as opções de compressão:


plugin passwordfd.so
noauth
name wvdial
debug
kdebug 9
record /tmp/pppd.dump
noccp
novj
novjccomp

Com isso consegui a conexão via 3G, bastando digitar wvdial.

--> WvDial: Internet dialer version 1.60
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1; &D2; +FCLASS=0
ATQ0 V1 E1 S0=0 &C1; &D2; +FCLASS=0
OK
--> Modem initialized.
--> Sending: ATDT*99***1#
--> Waiting for carrier.
ATDT*99***1#
~[7f]}#@!}!}!} }9}#}%B#}%}(}"}'}"}"}&} } } } }%}&n;>}/qzY~
CONNECT
--> Carrier detected.  Starting PPP immediately.
--> Starting pppd at Fri Jul 31 21:34:15 2009
--> Pid of pppd: 14211
--> Using interface ppp0
--> Authentication (CHAP) started
--> Authentication (CHAP) successful
--> local  IP address 189.94.168.217
--> remote IP address 10.64.64.64
--> Script /etc/ppp/ip-up run successful
--> Default route Ok.
--> Nameserver (DNS) Ok.
--> Connected... Press Ctrl-C to disconnect

Não é muito rápido, mas ajuda muito em locais sem opção de Internet, como quando estou dentro do site de clientes.

Porque RTFM faz falta...

Details
Written by: Helio Loureiro
Category: Blog
Published: July 10, 2009
Hits: 7295

Identidade mantida em sigilo...

(15:29:18) JR: helião....tá por ai?
(15:57:28) helio: to
(15:57:29) helio: diga
(15:58:36) JR: então cara...continua a mesma merda...não consigo escrever no disco ntfs...
(16:02:44) JR: não sei mais o que fazer...
(16:05:43) helio: vc olhou a manpage?
(16:06:00) JR: manpage?
(16:06:37) helio: RTFM
(16:06:46) JR: o que é isso?
(16:07:06) helio: man ntfs-3g
(16:07:19) JR: ah tah
(16:07:20) JR: hehe

Migrando para OpenSuse

Details
Written by: Helio Loureiro
Category: Linux
Published: July 10, 2009
Hits: 9607

Depois de mais de 3 anos rodando exclusivamente FreeBSD em meu laptop (sempre na versão RELEASE), finalmente resolvi voltar ao universo Linux. Nada contra os BSDs, especialmente o FreeBSD, mas era isso ou usar Windão, e Vista ainda por cima. Preferi ficar com o Suse, ou melhor, OpenSuse.

Realmente a instalação é bem facilitada. Comecei com o release 10.3, compatível com a versão do Enterprise Suse em uso na empresa, mas vi que o OpenSuse 11.1 também pode ser usado sem problemas (sempre a revelia do depto. de TI).

Filesystems criptografados, hibernação e uso da webcam no skype foram algumas das melhorias conseguidas com Linux. VirtualBox também está funcionando perfeitamente, o que me permite instalar o FreeBSD em uma máquina virtual.

Em semelhança ao Debian/Ubuntu, Suse/OpenSuse utilizam o aplicativo "zypper" para manter e atualizar o sistema. Bem inferior ao sistema do apt-get, mas ainda assim superior ao RPM por si só. Fui levado a versões não funcionais do xorg várias vezes por conta do uso do zypper. Fora que o sistema se perde quando proxy é habilitado ou desabilitado depois do sistema já em funcionamento. Nem o Yast ajuda muito nesse ponto.

O maior problema que passei, ou melhor, ainda passo, é em relação ao Xorg. O upgrade para o release 11.1 fez com que a interface gráfica ficasse tão lenta que era quase impossível sua utilização. glxgears mostrava por volta de 10, até menos, fps. Pelos links abaixo, foi possível ver que é um problema devido a mudança de arquitetura no xorg, da antiga XAA para EXA, causando vários problemas com chipsets Intel, inclusive o 945GM, que tenho no laptop.

  • https://bugzilla.novell.com/show_bug.cgi?id=469638
  • https://bugs.freedesktop.org/show_bug.cgi?id=21682
  • https://bugs.launchpad.net/xserver-xorg-video-intel/+bug/177492

Seguindo as dicas do link, consegui melhorar a performance adicionando "INTEL_BATCH=1" no /etc/environment, e modificando o "/etc/X11/xorg.conf" da seguinte forma:


Section "Device" 
    BoardName "945 GM" 
    Driver "intel" 
    Identifier "Device[0]" 
    Screen 0 
    VendorName "Intel" 
    Option "AccelMethod" "EXA" 
    Option "MigrationHeuristic" "greedy" 
    Option "DRI" "True" 
    Option "ExaNoComposite" "false" 
    Option "monitor-LVDS" "Monitor[0]" 
EndSection

Ainda inclui um script para forçar a configuração do registradores do placa de vídeo:

echo "base=0xe0000000 size=0x10000000 type=write-combining" >> /proc/mtrr 

Sendo 0xe0000000o endereçamento da placa de vídeo, que pode ser visto com "lspci -v". Com isso consegui uma performance melhor, como mostra a saída do glxgears:


5630 frames in 5.0 seconds = 1125.839 FPS 
5623 frames in 5.0 seconds = 1124.464 FPS 
5608 frames in 5.0 seconds = 1121.535 FPS 
5598 frames in 5.0 seconds = 1119.583 FPS 
5611 frames in 5.0 seconds = 1121.975 FPS 
5633 frames in 5.0 seconds = 1126.477 FPS 
5631 frames in 5.0 seconds = 1126.196 FPS 
5580 frames in 5.0 seconds = 1115.859 FPS 
5633 frames in 5.0 seconds = 1126.471 FPS 
5519 frames in 5.0 seconds = 1103.767 FPS 
5525 frames in 5.0 seconds = 1104.990 FPS 
5514 frames in 5.0 seconds = 1102.650 FPS 
5468 frames in 5.0 seconds = 1093.563 FPS 
5413 frames in 5.0 seconds = 1082.578 FPS 
5363 frames in 5.0 seconds = 1072.389 FPS 
5516 frames in 5.0 seconds = 1103.187 FPS 
5559 frames in 5.0 seconds = 1111.795 FPS

Infelizmente, após o sistema voltar da hibernação, o problema se repete, mas provavelmente deve depender de alguma atualização do próprio xorg. Enquanto isso, longa vida ao OpenSuse!

Recovered...

Details
Written by: Helio Loureiro
Category: Mambo
Published: July 04, 2009
Hits: 6628

Depois de um período fora do ar, consegui arranjar um tempo para recuperar o site.

Fiz várias coisas que gostaria de ter descrito, mas... o importante é estar de volta (ainda que com alguns erros).

Back online!

Sun T5240 - máquina de gente grande

Details
Written by: Helio Loureiro
Category: Solaris
Published: June 07, 2009
Hits: 9025

Uma das vantagens de trabalhar em empresas multinacionais (incluindo gigantes da área de telecomunicações) é a possibilidade de brincar com máquinas de gente grande. T5240 da Sun é uma delas: 98 GB de RAM, 64 CPUs... Só roda Solaris 10, e da versão 10/08 (setembro de 2008) em diante.


T5240, No Keyboard 
Copyright 2008 Sun Microsystems, Inc. All rights reserved. 
OpenBoot 4.30.0, 98080 MB memory available, Serial #00112233. 
Ethernet address 0:21:28:cc:bb:aa, Host ID: 01234567.

Alguns desses gigantes será a base de dados de assinantes pré-pago (uns 3 milhões). Dois para redundância. Outro, um sistema de administração de VPN, para telefonia. Nada relacionado com VPN criptográfica, com túneis, etc de redes de computadores.

Script para gerar MAC randômico

Details
Written by: Helio Loureiro
Category: Shell Scripts
Published: April 21, 2009
Hits: 9229

 Por motivos bizarros e nada claros para ninguém, resolveram fazer alguma "regra de segurança" na empresa para bloquear as máquina que não estejam rodando Windows Vista. Não que eu seja o único fora do padrão, mas existem os consultores externos que, assim como eu, são lembrados dessa limitação de tempos em tempos.

Como resolvi não perder mais tempo com isso, ou ficar bloqueado durante horário de trabalho sem aviso, e não migrar pro "Vista", resolvi fazer um script que altera meu MAC address da placa de rede a cada boot.

Fiz uma função em shell para poder ser utilizado em qualquer Unix, mas estou rodando em bash e não testei seu funcionamento em /bin/sh e /bin/ksh.


make_mac() { 
   mac="" 
   for blk in 0 1 2 3 4 5 
      do 
      for id in 0 1 
         do 
         macid=`jot -r 1 0 15` 
         case $macid in 
            10) macid="a";; 
            11) macid="b";; 
            12) macid="c";; 
            13) macid="d";; 
            14) macid="e";; 
            15) macid="f";; 
         esac mac="$mac$macid" 
      done 
      mac="$mac:" 
   done 
   mac=`echo $mac | sed 's/:$//'` 
   if [ ! $mac ]; then 
      echo "Failed to generate MAC" 
      exit 1 
   else 
      echo "$mac"
   fi 
}

Para utilizar, basta fazer uma chamada como no código abaixo (já adaptado pra Linux e FreeBSD):


mymac=`make_mac` 
echo "Using MAC ADDR: $mymac" 
case `uname -s` in
   FreeBSD) INTF="bge0" 
                  ifconfig $INTF lladdr $mymac ;; 
   Linux) INTF="eth0" 
             ifconfig $INTF hw ether $mymac ;; 
   *) echo "Operating System not supported" 
       exit 1 
esac

BSD is Dying (é, tá morrendo)

Details
Written by: Helio Loureiro
Category: FreeBSD
Published: April 21, 2009
Hits: 10818

FreeBSDA alegria do homem é realmente fugaz. Só o fato de olhar meu site e ver que não foi hackeado (SIC) novamente já me deixa feliz.

Assistindo alguns vídeos de umas palestras, encontrei por acaso o vídeo abaixo. Desconsiderando o título (BSD está morrendo), é uma palestra muito legal e engraçada. Infelizmente totalmente em inglês e sem legendas. Mas não se acanhe: eu também não entendi boa parte do que foi dito! Mas dá pra acompanhar bem a idéia pelos slides.

Itrade

Details
Written by: Helio Loureiro
Category: Ferramentas
Published: April 12, 2009
Hits: 10292

Nunca postei sobre o assunto aqui, mas já faz algum tempo que tenho estudado investimentos em bolsa de valores. Ou trading, como também é conhecido.

Com o carrossel dos mercados atualmente, alguns devem achar loucura investir em algo como ações. Realmente é. E exige estudo, paciência e disciplina. Essa última a mais difícil para mim (e a grande maioria dos investidores). E tenho gostado de estar investindo em bolsa mais pela parte do esforço intelectual que pelos ganhos recebidos, tanto que até agora não recebi nada que vale-se o tempo dedicado. Mas é um bom hobbie intelectual.

Como fiel usuário de Linux/FreeBSD e outras alternativas não-windows, é difícil encontrar um aplicativo bom para análise de mercado. Na mundo Windows, existe o "MetaStock". Realmente um software profissional, mas totalmente pra Windows (sem versões em Java). Existem alguns relatos de sucesso utilizando o MetaStock através do Wine, mas isso está longe de ser o que eu busco: um software nativo para Linux/FreeBSD.

Estava então utilizando o Aiotrade , um software escrito em Java. Atende muito das necessidades de um trader, como buscar as informações dos valores de ações via Yahoo (onde é possível buscar os índices do Bovespa), gráficos diário, semanal e mensal, indicadores como bandas de Bollinger, SAR, média, etc. Infelizmente alguns gráficos não são legíveis e o uso de Java acaba com toda a memória do sistema depois de algum tempo de uso. Fora isso, seu desenvolvimento parou em 2006.

Dando uma procurada na Internet nesse fim de semana, encontrei um Blog interessante:

http://www.wcardia.com.br/2007/10/10/aplicativos-para-acompanhamento-e-analise-de-acoes-da-bovespa-no-linux/

Além das ferramentas que já conhecia, algumas em modo texto (Venice) ou quase isso, encontrei algumas novas. A que mais chamou minha atenção foi o Itrade.

 

Itrade é um programa escrito em Python, utilizando wxPython (ou wxWindows) para melhorar o visual da interface. Enquanto o Aiotrade está fora do meu alcançe para melhorar ou manter, o Itrade já acena com mais simpatia. No momento baixei os fontes (ou executável, uma vez que é escrito em Python) e estou brigando pra fazer funcionar:


helio@musashi:itrade$ python itrade.py 
iTrade(alpha) - 0.4.6 
Nausicaa2 - (official) (r836) 
Psyco is not running (library not found) 
User Configuration : usrdata/usrconfig.txt 
XLRD package (http://www.lexicon.net/sjmachin/xlrd.htm) not installed. 
wxPython Selected : 2.8-gtk2-unicode 
/usr/local/lib/python2.5/site-packages/wx-2.8-gtk2-unicode/wx/_core.py:14240: 
UserWarning: wxPython/wxWidgets release number mismatch warnings.warn("wxPython/wxWidgets release number mismatch") 
Traceback (most recent call last): 
 File "itrade.py", line 221, in  main() File "itrade.py", line 202, in main import itrade_wxmain 
 File "/tmp/itrade/itrade_wxmain.py", line 57, in  from itrade_wxbook import iTradeMainWindow 
 File "/tmp/itrade/itrade_wxbook.py", line 59, in  from itrade_wxquote import open_
     iTradeQuote,addInMatrix_iTradeQuote,removeFromMatrix_iTradeQuote 
 File "/tmp/itrade/itrade_wxquote.py", line 63, in  
     from myfinance import candlestick, plot_day_summary2, candlestick2, index_bar, volume_overlay2, plot_day_summary3 
 File "/usr/local/lib/python2.5/site-packages/wxaddons/__init__.py", line 180, in import_hook return 
     builtin_import(name, globals, locals, fromlist) 
 File "/tmp/itrade/myfinance.py", line 24, in  from matplotlib.transforms import Value, zero, one, \ 
      ImportError: cannot import name Value

Infelizmente descobri que uma das dependências, Matplotlib, teve uma atualização de API, o que está fazendo gerar o erro acima. Estou vendo o que é possível fazer, mas mesmo assim esse projeto mostra-se como promissor. E com as frequentes quedas da bolsa, acho que os problemas de biblioteca e dependências não afetarão minha performance tanto assim.

Hacked!

Details
Written by: Helio Loureiro
Category: Security
Published: March 22, 2009
Hits: 8015

Vírus, spammers, cavalos de tróia, etc. Os caminhos da Internet são cheios de bestas mitológicas, tão devastadores quanto os das epopéias gregas. Arrasando tudo a sua frente, sem dó, sem misericórdia.

E finalmente chegou meu dia de saborear tal destino. Conseguiram invadir esse site e fazer um "defacement", ou em bom português, desfigurar o site.

Como já dizia o dito popular: "em casa de ferreiro, o espeto é de pau". O site é baseado no CMS Mambo Server, de onde o Joomla surgiu. Como uso o Mambo desde 2005 (o primeiro post tem data de "Apr 27, 2005 at 12:06 PM"), por sugestão do meu caro amigo Eduardo Maçan que também o utilizava na época, nunca me incomodei em atualizar muito ou migrar pra outra plataforma. Comecei com a versão 4.5.0, mas tinha atualizado para 4.5.1, quando fiz a "cara" verdinha do site. A mudança foi justamente por motivo de segurança.

E agora, finalmente, fui atacado com sucesso. O ataque foi através do uso de um script chamado Fx29PHPBot. Não achei muita informação sobre o mesmo, mas deve estar baseado em algum sql injection ou coisa do tipo. Isso deixou alguns arquivos extras no servidor:

 fx29id2.txt fx29bot.txt fx.php

além do próprio index.php, que foi sobrescrito.

Como o sistema é hospedado e não tenho acesso aos logs... só me restou buscar um backup do site, e carregar em read-only, até descobrir como o ataque ocorreu e, o mais importante, como impedir. Agora posso voltar a postar, utilizando a última versão do Mambo server, 4.6.2. O upgrade foi meio traumático, mas aparentemente com sucesso.

Estatística de tráfego no Netgear WGR614 v7

Details
Written by: Helio Loureiro
Category: Novos Produtos
Published: February 06, 2009
Hits: 6937

Na minha última viagem ao exterior, mais de 1 ano atrás, bem antes de qualquer palavra parecida com "crise" surgir na mídia, adquiri um Wireless router WGR614 v7 da Netgear.

Funciona a contento, como a grande maioria dos produtos desse tipo, mas tem um grande ponto negativo: a falta de interfaces telnet e snmp para comandos e monitoramento.

Como precisava ter uma idéia do meu tráfego de rede, resolvi fazer um script para ser usando com o MRTG. Escrito em perl, precisa do navegador via texto "lynx" para buscar os dados:


#! /usr/bin/perl
# WGR614v7_traffic.pl
# by Helio Loureiro
### Variables
$login = "admin";
$password = "admin";
$netgear = "192.168.1.1";
$option = $ARGV[0];
###
if ($option !~ m/WAN|LAN|WLAN/) {
print "Use: $0 [WAN|LAN|WLAN]\n";
exit 1;
}
### Using a command at this moment
$location = "http://".$netgear."/RST_stattbl.htm";
$cmd = "lynx -source -auth ".$login.":".$password." ".$location. " 2> /dev/null";
open(CMD, "$cmd|") or die "Impossible to connect in $netgear: $!\n";
$check = 0;
$idx = 0;
@NETGEAR ;
$description;
while ($line = ) {
if ($line =~ m/description/) {
$description = $line;
$description =~ s/.*=//;
$description =~ s/\"|>//g;
chomp $description;
}
# to ignore lines not related
if ($line =~ m/$option/) {
$check++;
}
next if (! $check);
last if ( $line =~ m/<\/tr>/ );
chomp($line);
# removing html tags
$line =~ s/<\/.*//;
$line =~ s/.*>//;
# removing blank lines
next if ($line !~ m/\w|\d/);
$NETGEAR[$idx] = $line;
$idx++;
}
$description .= " ".$NETGEAR[0]."/".$NETGEAR[1];
print $NETGEAR[2]."\n";
print $NETGEAR[3]."\n";
print $NETGEAR[-1]."\n";
print $description."\n";

O programa, chamado "WGR614v7_traffic.pl", exige como argumento as opções WAN, LAN ou WLAN.

Para o MRTG, adicione uma entrada como:


Target[wan]: `/home/helio/bin/WGR614v7_traffic.pl WAN`
 MaxBytes[wan]: 1000000
 Title[wan]: WAN packets traffic at WGR614v7
 PageTop[wan]:

<h1>WAN packets traffic at WGR614v7</h1>
<table>
<tbody>
<tr>
<td>System:</td>
<td>WGR614v7</td>
</tr>
<tr>
<td>Maintainer:</td>
<td>Helio Loureiro</td>
</tr>
<tr>
<td>Interface:</td>
<td>wan traffic</td>
</tr>
<tr>
<td>IP:</td>
<td>none</td>
</tr>
<tr>
<td>Max wan traffic:</td>
<td>2 Mbps</td>
</tr>
</tbody>
</table>

 YLegend[wan]: Packets/sec 
 ShortLegend[wan]: Pkts

Infelizmente o dados fornecido está em packets/second. Como não tenho a mínima idéia de qual packet size está sendo usado... fica um dado meio perdido. Também notei, via MRTG, que os dados não são tão precisos assim: as entrada e saída tem quase os mesmos valores, o que não dever ser verdade. Mas ao menos tenho alguma idéia do meu tráfego.

ls: /mnt/ext2: Bad file descriptor

Details
Written by: Helio Loureiro
Category: FreeBSD
Published: January 15, 2009
Hits: 9960

FreeBSD laptop Essa foi a mensagem que recebi tentando acessar meu disco externo. Retrocedendo um pouco e adicionando a explicação.

No meu HD externo, de 160 GB (já falei dele anteriormente), tenho instalado Ubuntu. Ou tinha. Instalei via Qemu num host FreeBSD. Mas funcionava perfeitamente utilizando boot via USB. Estava testando uns aplicativos quando notei que a versão era 7.4, da época de quando instalei (e comprei o HD), e que por isso os aplicativos não funcionavam. Seguindo um passo-a-passo moroso, atualizei para o o 7.10 e depois para o 8.10. Ao terminar o upgrade para 8.10, nem testei com boot via USB, já voltei ao FreeBSD, com a pretensão de utilizar o mesmo via qemu. Ao acessar o disco... falha... utilizei o fsck.ext2 do FreeBSD, mas acho que foi a pior coisa que fiz: perdi a partição raiz (/) e alguns dados do /home. Tentei recuperar, mas... no fim reinstalei o Ubuntu 8.10.

Disco externo Dessa vez aguardei o final da instalação (fiz via qemu) e dei um boot via USB para verificar. O sistema rodou perfeitamente ajustado (melhor até que o FreeBSD), o que me fez voltar a pensar em voltar a usar Linux no meu laptop. Ao reiniciar no FreeBSD, tive uma surpresa tentando montar a partição ext3 que foi formatada durante a instalação, justamente a raiz (/). O erro foi o descrito acima:


ls: /mnt/ext2: Bad file descriptor

Verifiquei as outras partições ext3 e... todas funcionando perfeitamente no FreeBSD (por funcionando, entenda como fsck.ext3 e mount_ext2 na partição). Uma busca no google não mostrou muitos resultados úteis, mas dentro do site do FreeBSD, encontrei alguns usuários com o mesmo problema:

  • Re: Mounting ext3fs partition
  • Re: ext2 inode size patch - RE: PR kern/124621

Aparentemente um problema relacionado ao "inode size", que era anteriormente formatado como 128, mas passou a utilizar 256 e até 128.

Felizmente esse último link, além de apresentar uma solução, mostrou uma dica para buscar no sistemas de bug do FreeBSD (PR kern/124621). Encontrei o referido problema, ainda como "open", e a mesma solução do último link, via patch. Tentei a sugestão do responsável pelo ticket, que era atualizar a e2fsprogs. Depois apelei para o patch. E inclui minha contribuição. Pequena, irrisória, até mesmo ridícula, mas foi minha primeira contribuição ao projeto... Developers do kernel, aguardem que aqui vou eu :-)

O link do registro de minha proeza:

http://www.freebsd.org/cgi/query-pr.cgi?pr=124621&cat=

Linux em Palm Tungsten E

Details
Written by: Helio Loureiro
Category: Linux
Published: January 13, 2009
Hits: 8904

 

 Estava buscando atualizações para meu Palm Tungsten E quando encontrei o link abaixo, que mostra o mesmo rodando Linux.

Muito legal, mas pouco informativo, pois somente mostra em funcionamento, mas não traz muita informação de como fazer isso. Uma rápida busca no google forneceu outro link interessante: Palm Tungsten E rodando Linux, no Guia do Hardware. Infelizmente também muito desatualizado, uma vez que o link onde o a imagem bootável está não se encontra mais lá (a imagem, não o link).

Ainda seguindo o tutorial do Guia do Hardware, baixei a versão do Familia-PDA para HP6300. Agora falta acertar o garux para boot. Eu já tinha testado anteriormente, mas só consegui apagar meus arquivos do Palm, seguido de um kernel panic. Vamos ver se consigo mais sucesso dessa vez...

  • Freebsd 7.1-RELEASED
  • Começando 2009 com SMS
  • Python fun!
  • Discurso de Steve Jobs em Stanford
  • SPAM via MSN - parte 2

Page 31 of 38

  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

Estatísticas

  • Users 2
  • Articles 490
  • Articles View Hits 3587327

Imagem aleatória