domingo, novembro 21, 2010

Otimizando o desempenho do Linux: com o patch e sem o patch

Há alguns dias saiu uma noticia no phoronix o patch de 200 linhas que otimiza muito a velocidade do Linux em desktops. O tutorial para aplicação do patch você encontrará aqui. Confesso que ainda não testei tal solução, mas se faz tudo que promete, é uma ótima para nós sedentos por velocidade em nossos computadores.
Em seguida Lennart Poettering, um desenvolvedor da Red Hat, disse que uma modificação do /etc/rc.local e ~/.bashrc faria exatamente o mesmo, então segue o tutorial para aplicação do mesmo aqui.

Em dois ou três dias devo fazer uma avaliação a respeito da mudança e ganho real disso e provavelmente faça versões do tutorial desses outros blogueiros. Provavelmente voltadas para o Arch Linux, mas como minha internet anda um lixo nos ultimos meses, eu não prometo agilidade nisso. Mas para quem quiser começar...

quinta-feira, junho 03, 2010

Distribuições Linux

Depois de anos eu finalmente comprei um computador novo e resolvi me endividar em um notebook. Veio com o maldito Windows 7 mas claro que eu tinha que colocar uma distribuição Linux. Eu já tinha em mente duas, Ubuntu ou Arch Linux.
Durante muito tempo eu usei o Slackware. Mas como dava muito trabalho para ter tudo funcionando perfeitamente sempre, ele acabou caindo em desuso e passei a utilizar massivamente o Ubuntu. Pela sua instalação facilitada, grande quantidade de pacotes no repositorio, estabilidade - nada comparado ao slackware mas ainda assim estavel - e o grande numero de foruns e tutoriais facilmente encontrados na internet. Até aí tudo flores. Mas ao mesmo tempo eu sempre achei ele inchado, amarrado, pesadão, um elefantão. Isso sempre me irritou demais.
Foi ai que descobri o Arch Linux, uma destribuição leve, pacotes sempre atualizados, pre-compilado para i686, divertida de usar, não muito dificil de configurar, a comunidade também bem coesa e receptiva. Lindo né? Perfeito!
Há algum tempo venho usando o Arch em meu desktop e nunca tive muitos problema, bem problemas existiam, mas nao eram tão irritantes, mas nos ultimos tempos eu tenho tido falhas seguidas em alguns pacotes, travamentos bobos. E umas coisas anormais a nós usuarios de linux. E minha instalação tem só 2 semanas e está mais do que atualizada.
Acho que é hora de procurar por uma nova. Pensei seriamente em migrar para o Fedora, mas ainda acho o gerenciador de pacotes dele irritante. Cheguei a cogitar, sinceramente, migrar pro FreeBSD e abandonar Linux por um tempo, mas meu trabalho não me permite essa aventura. Debian eu acho tosco, simplesmente. Então estou entre o Gentoo, que nunca usei em toda minha vida, ou voltar a instalar o bom e velho slackware.
Alguem tem alguma sugestão? Se é que tem alguem lendo isso...

segunda-feira, maio 10, 2010

Editor Python - IDE

Muitos, assim como eu, devem ter passado muito tempo atras de uma boa IDE para seus códigos python. A maioria acaba optando por uma IDE pesada como Netbeans ou Eclipse, mesmo não usando todas as funcionalidades que elas oferecem, ou mesmo por não saber 'configurar' as outras.
É válido lembrar que no site PythonBrasil da há uma lista bem grande com IDEs e editores muito legais. Já usei alguns. Como o Netbeans, o Eclipse com Pydev ou editores não tão simples como o VIM ou Emacs ou mesmo o gedit. Eu hoje estou usando o Komodo Edit.
Confesso que é bem legal e parece ser promissor, principalmente em ambiente windows, já que não contamos com uma divesidade tão grande de editores para linguagens de programação como no próprio Linux. A única coisa que perdi uns cinco ou dez minutos foi como rodar o arquivo que estou editando com um simples toque de botão como é feito em Eclipse ou Delphi?
É bem fácil na verdade, depois que você fizer o download aqui faça o seguinte:
  1. Tools-> Run Command
  2. Run; %(python) %F e marque a opção 'Add to Toolbox'
  3. 'Toolbox'->%(python) %F -> Properties -> Key Binding -> New Key Sequence
  4. Pressione a sequencia de teclas que você deseja. Eu selecionei simplesmente F5
  5. Change->Ok
Quando for rodar seu programa ele aparecerá no output do Komodo Edit. Simples né? E melhor do que sobrecarregar seu sistema operacional com uma IDE que vc não usará todas as possiveis funcões disponiveis. Quando eu tiver tempo eu passo a configuração que fiz no meu Gedit para usar o Python porque o Komodo só to usando no windows mesmo já que não tenho gedit aqui...

terça-feira, abril 06, 2010

MD5SUM, Dialog em Python

Tive alguns momentos livres e resolvi implementar uma interface em Dialog para um md5sum feito em Python que andei fuçando. Para quem não sabe existe um módulo chamado python-dialog que é para criar interfaces em modo-texto, quem quiser saber mais a respeito dá uma olhada no blog do MrSantos.
Então... Abaixo segue o meu código... Confesso que faltam alguns ajustes mas dá pra usar...

Testem e vejam como funciona, quando eu tiver mais tempo eu edito esse post e encerro o outro...

segunda-feira, abril 05, 2010

FreeNAS – Network Attached Storage (parte 04) Configurações de disco e usuários

No decorrer desses posts a respeito de FreeNAS vimos onde, como instalá-lo e como configurar sua interface de rede de modo simples.
Nesse último post relacionado a configuração básica do FreeNAS veremos apenas algumas configurações básicas para que você possa usá-lo sem grandes problemas em sua rede. Você deve acessar remotamente o IP que você configurou pro seu FreeNAS através de seu navegador(recomendo usar qualquer navegador menos o IE, não é preconceito, é que o IE não presta mesmo) no meu caso http://192.168.0.1 então apacerá no navegador uma tela mais ou menos assim:
No primeiro acesso ao FreeNAS ele pedirá uma senha para você, uma autentificação. O usuário e senhas padrões: username admin, password freenas
A tela inicial deve se parecer com isso:
 Depois que você vir essa tela com as informações básicas de seu sistema então deveremos configurar os discos que serão usado para o armazenamento de seus arquivos(storage), clice em Disks -> Management e aparecerá a seguinte tela:

Pressione o simbolo de '+' que aparece à direita e configure cada um de seus discos. Conforme aparece na tela a seguir:

 
Adicione no botão 'add' e depois vá em 'Disks->Format' selecione o disco que será formatado e execute o comando conforme a tela seguinte:



Recomendo você formatar usando o sistema de arquivos UFS(Unix File System - comum ao FreeBSD). Após isso pronto é hora de Configurar os pontos de montagem, 'Disk->Mount Point', adicione o disco  que será montado usando o '+' que você tem na tela e conforme a tela a seguir configure-o:

 
Selecione o tipo de partição(Partition type), sistema de arquivo(File system), digite o ponto de montagem (Mount point) e uma descrição, depois é só adicionar(add) se tudo tiver sido feito corretamente aparecerá a seguinte tela com o Status 'OK':


Pronto, agora você terminou de fazer a configuração básica que será usada nos seus discos de armazenamento do seu NAS, o que precisa ser feito agora é a adição de um usuário para que você possa acessar esse armazenamento de rede como qualquer usuário e não apenas como root. Para tal vá em "Access -> Users and Groups" e crie pelo menos um grupo e um usuário, é preciso criar primeiro o grupo, conforme a tela:

 
Digite o nome do grupo e sua descrição e depois 'add' depois disso volte em usuário e adicione um novo usuário:


Digite nome(Name), nome completo(Full Name), Senha(Password) se você quiser e adicione o grupo que você cadastrou e como grupo adicional(additional group) coloque guest. Você pode deixar o "Home directory em branco se quiser acessar diretamente o ponto '/mnt' que contém todos os pontos de montagem do servidor.

No próximo post veremos como configurar os serviços básicos de compartilhamento como o CIFS-SMB(Samba) e NFS.

Veja os posts anteriores aqui:
FreeNAS - Network Attached Storage (parte01)
FreeNAS – Network Attached Storage (parte02) instalação
FreeNAS – Network Attached Storage (parte03) LAN interface e configuração de IP

terça-feira, março 23, 2010

FreeNAS – Network Attached Storage (parte03) LAN interface e configuração de IP


Depois de feita a instalação do FreeNAS no seu Cartão de Memória, HardDrive ou PenDrive, e o computador ter sido reiniciado, nós precisaremos inicializar o computador a partir desse dispositivo e configurar algumas coisas.

Depois que o computador foi reiniciado o seguinte menu aparecerá:

"Console setup"
"*********************"
1) Assign Interface
2) Set LAN IP address
3) Reset WebGUI password
4) Reset to factory defaults
5) Ping host
6) Shell
7) Shutdown system
8) PowerOff system


A configuração padrão do FreeNAS é usar o primeiro NIC (Network Interface Card) com o endereço IP 192.168.1.250.

  • Selecione 1 e pressione ‘Enter’ no nome de sua Ethernet Interface (em0 no meu caso, a sua pode ser diferente);

  • Press ‘Enter’ na Opção 1 (Interface), selecione ‘y’ e reset o PC;
(Esse reset é recomendado pelo m0n0wall, autor do FreeNAS, mas talvez seja possível ignorá-lo)
  • Depois que o computador for resetado e o menu aparecer outra vez, selecione a Opção ‘2’DHCP client. Senão, digite sua configuração para o endereço IP (192.168.0.1 and /24 no meu caso); e escolha se você usará ou não

  • Ainda no menu principal, selecione a Opção ‘5’ e ping outro dispositivo da sub-rede e tenha certeza se tudo esta funcionando bem (lembre que não é possível pingar um computador protegido por um FireWall). Desabilite o FireWall primeiro.
Nota: FreeBSD não usa nomes genericos para as interfaces de rede como o Linux (eth0 por exemplo). O nome da interface de rede dependerá do driver usado:

  • fxp0 : Para a primeiro Intel EtherExpress chipset NIC encontrado
  • fxp1 : Para o segungo Intel EtherExpress chipset NIC encontrado
  • bge0: Para o primeiro Broadcom BCM570XX Gigabit NIC encontrado
  • nve0: Para o primeiro nVidia nForce MCP chipset encontrado
  • etc…
Aviso: fwip0 é a porta firewire. Caso você veja fwip0 na sua lista, NÃO USE ISSO.

  • Taxas de transferência do FreeNAS são muito mais dependentes da velocidade da rede muito mais do que da velocidade da CPU e do desempenho da memória;
  • Se sua experiência de utilização do FreeNAS estiver muito lenta tente conectar o Desktop diretamente ao NAS através de um cabo crossover;
  • Configurações de velocidade e de Duplex podem então ser ajustadas e testadas quando tiver um computador diretamente conectado;

Caso qualquer coisa não esteja correta você pode sempre selecionar a opção "4) Reset to factory defaults" e reconfigurar tudo.

No próximo post veremos a configuração básica do NAS

segunda-feira, março 22, 2010

FreeNAS – Network Attached Storage (parte02) instalação


Esse tutorial assume que o computador onde será instalado o FreeNAS é capaz de inicializar a partir de um CD e que possui um HD (também pode ser um pendrive) e que exista um ou mais HDs para o armazenamento.

  • Faça o download da ISO do FreeNAS em um dos links do post anterior e grave a imagem em um CD-ROM;
  • Coloque o CD do FreeNas na badeja e inicialize o computador a partir dele (não coloque sua pendrive agora, coloque-a apenas quando vir o console menu, caso contrário o LiveCD irá escrever suas configurações na raiz de sua pendrive e isso levará a sua instalação a falha);
  • Espere até que o menu de instalação do FreeNAS apareça na tela;
  • Se você quiser instalar o FreeNAS em uma pendrive então a coloque agora, o FreeNAS irá exibir informações do novo dispositivo na tela, pressione 'Enter' para voltar ao console menu;
  • Selecione a opção 9 para instalar o FreeNAS no seu HD ou em sua pendrive

"Console setup"
"*********************"
1) Assign Interface
2) Set LAN IP address
3) Reset WebGUI password
4) Reset to factory defaults
5) Ping host
6) Shell
7) Reboot system
8) Shutdown system
9) Install/Upgrade to hard drive/flash device, etc.


  • Você pode optar por uma instalação com apenas um HD (opção 2 ou 3), que irá particionar o HD onde a primeira partição será o Sistema Operacional e a segunda será a área de armazenamento de dados(DATA)

"Install"
"*********************"
1) Install 'embedded' OS on HDD/Flash/USB
2) Install 'embedded' OS on HDD/Flash/USB + DATA + SWAP partition
3) Install 'full' OS on HDD + DATA + SWAP partition
4) upgrade 'embedded' OS from CDROM
5) Upgrade 'full' OS from CDROM
6) Upgrade and convert 'full' OS to 'embedded'


Caso você selecione a opção 1:
FreeNAS 'embedded' installer for Flash device or HDD.
- Create 1 partition for OS image
- Uses a RAM disk to limit read/write access to the device
Warning: There will be some limitations:
1. This will erase ALL partition and data on the destination disk
2. You can't use your destination disk for sharing data
Installing on USB key is the preferred way:
It saves you an IDE or SCSI channel for more hard drives.


Essa opção instalará FreeNAS em um drive dedicado ao Sistema Operacional (esse drive não poderá ser usado como armazenamento). Essa é a opção recomendada no caso de estar usando um Cartão de Memória ou uma pendrive.
  • Selecione o drive de CD onde se encontra o FreeNAS (acd0, por exemplo, se você tiver apenas um ATA CDROM drive).
  • Selecione o HDD onde será instalado e inicializado o FreeNAS (da0, por exemplo, se você estiver instalando em uma pendrive).
Se você selecionar 2 ou 3: Isso irá instalar o FreeNAS em uma partição do disco e o resto do disco será formatado em UFS para ser usado como armazenamento (DADOS).
  • Selecione o drive de CD onde se encontra o FreeNAS (acd0, por exemplo, se você tiver apenas um ATA CDROM drive).
  • Selecione o HDD onde será instalado e inicializado o FreeNAS (ad0, por exemplo, se você quer instalar no HD master no ATA channel 1).
Em ambos os casos, uma vez FreeNAS está instalado, siga as instruções, remova o CD e quando o menu aparecer novamente
  • Pressione ESC ou selecione 'Exit' e volte para o menu principal;
  • Selecione 7 para reiniciar o computador;
Use as opções "4 ou 5 ou 6 Upgrade an existing release from CDROM” apenas para fazer um upgrade de uma versão existente instalada

Aviso # Instalando o FreeNAS em qualquer disco, este será formatado. # Sempre faça um backup de suas configurações antes de qualquer atualização. # Se o FreeNAS é o servidor principal (CIFS) em sua rede, após a atualização você deve reiniciar seus clientes.

OBS1: Se você tiver instalado em uma pendrive: Tenha certeza que a BIOS de seu computador esta configurada para iniciar através da USB (USB hard drive) – algumas BIOS não dão suporte a isso (“USB FDD” ou “USB ZIP” podem ser testadas).

Depois da primeira inicialização:
  • Verifique se a opção 9 do menu não esta mais presente: Se essa opção estiver presente, você ainda esta inicializando o sistema através do CDROM;
OBS2:
FreeNAS usa FreeBSD como Sistema Operacional base, e o FreeBSD não é um Linux!!!! Os discos no FreeBSD são nomeados da seguinte forma:

  • /dev/ad0 : É o primeiro ATA hard drive no ATA channel 1;
  • /dev/ad1 : É o segundo ATA hard drive no ATA channel 1;
  • /dev/ad2 : É o primeiro ATA hard drive no ATA channel 2;
  • /dev/acd0: É o primeiro ATA CD/DVD drive detectado;
  • /dev/da0: É o primeiro SCSI hard drive. PenDrive device no FreeBSD usa um SCSI driver, então esse nome também pode simbolizar o seu PenDrive;
  • /dev/da0p1: O 'p' representa uma partição do tipo EFI/GPT, e o '1' representa a primeira partição desse dispositivo. Esse é o novo padrão a partir da versão 0,684;
  • /dev/da0s1: O 's' representa o tipo de partição da antiga norma. Para qualquer outro sistema de arquivos UFS que você deve procurar uma partição "Type S";
  • /dev/raid5/RAIDname: 'RAID' é apenas o array de devices;
  • /dev/raid5/RAIDp1: este é o sistema de arquivos no dispositivo RAID;

Aviso Final: FreeNAS é um sistema operacional "standalone" e uma aplicação NAS. Instalando FreeNAS você estará apagando qualquer dado existente no disco de inicialização. Os arquivos existentes serão eliminados como parte do processo de instalação. O processo de instalação do FreeNAS não suporta dual-boot.

No próximo tutorial veremos como configurar o sistema instalado...

sexta-feira, março 19, 2010

FreeNAS - Network Attached Storage (parte01)


Vamos ver como criar um NAS(network-attached storage) usando FreeNAS, mostrarei os passos necessários em alguns posts. Porém neste apresentarei apenas as informações básicas do sistema.

FreeNAS é um sistema embarcado open source baseado no FreeBSD que implementa um NAS(Network-Attached Storage). FreeNAS pode ser instalado em pendrive, flash, HD ou inicializado pelo CD.

Sistema Base:

Hardware Requirements:
  • Computador com no mininmo 128Mb de RAM, um CD-ROM driver ou ainda:
    • Floppy Disk (para configuração do sistema) e um ou mais Hard Drives (como storage)
    • USB bootavel ou flash(64Mb minimo) e um ou mais Hard Drives (como storage)
    • Hard Drive bootavel e ou mais Hard Drives (como storage)
    • Hard Drive bootavel0(que será particionado entre FreeNAS e Dados)
  • Ou uma máquina virtual como VMware/QEMU, configurado como será descrito.

Network Protocols supported:

Serviços Extras:

Hard drive/Gerencia do dispositivo:

  • ZFS
  • Software RAID 0,1,5 e combinações(1+0,1+1, etc…)
  • Criptografia de Disco (usando cartão de aceleração de criptografia se presente)
  • Filesystem: UFS, Ext2/3, FAT, NTFS
  • Partição: MBR e GPT
  • iSCSI initiator

Network:

  • 802.1q vlan tagging
  • Wireless
  • link aggregation
  • Wake On Lan

Monitoramento

Download:

FreeNAS AMD64 ISO - FreeNAS-amd64-LiveCD-0.7.1.5065.iso
FreeNAS AMD64 IMG - FreeNAS-amd64-embedded-0.7.1.5065.img
FreeNAS i386 ISO - FreeNAS-i386-LiveCD-0.7.1.5024.iso
FreeNAS i386 IMG - FreeNAS-i386-embedded-0.7.1.5024.img

Faça o download e no próximo post começaremos a instalação e no último a configuração de fato.

quinta-feira, março 11, 2010

Mini2440 e Micro2440 - Servidor TFTP

O servidor tftp assim como o NFS servirá para transferir alguns arquivos para o seu Mini2440 ou micro2440, a configuração dele é tão simples quanto a do NFS, porém esse não é um serviço que ficará sempre habilitado, não recomendo deixá-lo habilitado a cada vez que o PC ligar, então talvez seja interessante você criar um pequeno script para iniciar o serviço sempre que você achar necessário.

Pronto agora você tem um servidor TFTP para usar junto a sua placa e enviar os arquivos necessários a ela. Coloque os arquivos na pasta /var/lib/tftpboot/ para que o u-boot possa baixar os arquivos que enviaremos mais tarde corretamente.

Mini2440 e Micro2440 - Servidor NFS

Você precisará de um servidor NFS para fazer algumas coisas, transferir alguns arquivos para o sua placa de desenvolvimento.

Pronto, você já pode tentar acessar seu compartilhamento NFS. Caso algo não funcione verifique seus arquivos de configuração.

Mini2440 e Micro2440 - Pacotes necessários.

Comprei uma placa Mini2440 há um tempo mas nunca tive muito tempo para mexer nela, ela veio com um gerenciador de boot chamado SUPERVIVI e com um Linux que imagino ser uma versão da própria FriendlyARM e com interface gráfica baseada em QT.

Tentei usá-la durante algum tempo mas a interface gráfica adorava dar umas travadas absurdas, não sei porque, mas acontecia constantemente, eu pensei que conseguiria configurar tudo que desejava já nesse modelo que vinha na placa, mas com os constantes travamentos percebi que seria necessário uma grande alteração minha.

Então comecei a pesquisar como colocar uma versão de Linux melhor, mais robusta, ou simplesmente mais estável, eu já me contentaria com a estabilidade. Confesso que até o momento ainda não consegui configurar o que é necessário para que o Mini2440 que tenho funcione bem mas posso ir mostrando o pouco que evolui até o presente momento. Logo que comecei tive os três primeiros dias completamente infernais. Pensei sinceramente em desistir. Mas o bom humor voltou. Então vamos ao que interessa.

Antes de realmente formatar e pensar em mudar absolutamente tudo vamos definir qual será nosso ambiente de desenvolvimento.

Apesar de eu ser um usuário Arch Linux ando um tanto revoltado com o bug de gerencia de memória dessa distro então optei por usar o Fedora Core 12. Você precisará dos seguintes pacotes:
  • git =>1.6.3.3
  • bitbake =>1.8.18
  • bison
  • flex
  • e2fsprogs
  • m4
  • curl
  • ncurses libraries and development headers
  • zlib development libraries and headers
  • cvs
  • subversion
  • unzip
  • bzip2 and its development libraries and headers
  • libusb
  • libusb-dev
Necessário instalar também:
  • Servidor NFS
  • Servidor TFTP
  • Compilador ARM
E recomendo também instalar "Development Tools":
Veremos nos posts a seguir como instalar tudo isso e configurar. Depois de termos feito essas configurações faremos o mal com o dispositivo.

segunda-feira, março 01, 2010

Porta serial e Python

Há um tempo venho fazendo alguns experimentos com Python e algumas libs dessa linguagem no minimo interessante e como faz um tempo que não posto absolutamente nada aqui resolvi colocar alguns rascunhos de scripts que andei brincando ultimamente.
Primeiro você precisará fazer a instalação da biblioteca pyserial, para tal use o script abaixo: Esse script é apenas um loopback da porta serial feito usando a lib pyserial

Para que esse programa funcione você precisa ter um loopback plugado na sua porta serial. Então escreveremos os seguinte código em um script ou no próprio terminal Python.
Pronto. Agora você tem um programa para testar sua porta serial através de um loopback feito em Python e sem toda a complicação de C/C++. Se vocês tiverem tempo podem dar uma boa olhada na documentação da Pyserial.