Archive for the 'Dicas' category

Erro ao compilar o kernel 2.6.31: implicit declaration of function ‘_cpu_down’

16 de janeiro de 2010 12:58 pm · Tags: ,,,

Ao tentar compilar a versão 2.6.31 do kernel linux (com suporte ao Xen) obtive a seguinte mensagem de erro:

kernel/cpu.c: In function 'disable_nonboot_cpus':
kernel/cpu.c:394: error: implicit declaration of function '_cpu_down'
make[1]: *** [kernel/cpu.o] Error 1
make: *** [kernel] Error 2

Uma rápida pesquisa no google me revelou que o problema se encontrava na falta do suporte a hot-pluggable cpu’s. Este recurso permite que CPU’s possam ser ligadas/desligadas durante a execução da máquina, possibilitando a economia de energia e a própria inclusão de novas CPU’s em sistemas multi-processados.
Esse recurso já vem habilitado por padrão caso você esteja configurando o kernel pela primeira vez, mas no meu caso, copiei o arquivo .config de outro kernel que não tinha esse suporte habilitado.

A solução é simples e envolve executar novamente o configurador do kernel para habilitar a opção pertinente ou editar diretamente o arquivo .config, sendo mais aconselhável executar o o configurador (make menuconfig).

A opção que precisa ser habilitada é CONFIG_HOTPLUG_CPU e pode ser encontrada em:

Processor type and features --->
[*] Support for hot-pluggable CPUs

Pronto, agora é só executar o make novamente e aguardar o fim da compilação.

Referências

Usando kernel vanilla como domU no Xen

16 de dezembro de 2009 8:57 am · Tags: ,,,

O Xen é um dos paravirtualizadores mais famosos do mercado e seu uso está cada vez mais difundido a cada dia que se passa.

Configurar uma instalação básica do Xen nas principais distribuções não é muito difícil e no Gentoo não é diferente. Em geral o processo envolve instalar um kernel customizado no dom0 (a “máquina real”), e instalar os utilitários do Xen também no dom0. Se a CPU em questão tiver suporte a virtualização (flag  svm em arquitetura AMD, ou vmx em arquitetura Intel) é possível utilizar para os domU’s (as “máquinas virtuais”) qualquer versão de Kernel ou de Sistema Operacinal, não necessitando que o mesmo tenha sido previamente preparado (patch) para utilização sob o Xen.

Caso a CPU não tenha suporte a virtualização, é necessário utilizar um Sistema Operacinal ou Kernel devidamente adaptado, o que não costuma ser uma tarefa muito complicada visto que as principais distribuições já orefecem pacotes prontos. No Gentoo apenas é necessário compilar uma versão do mesmo kernel utilizado no dom0 porém com os devidos recursos que dão suporte a inicialização e execução do domU.

Até ai, tudo corre muito bem, sem muitos problemas, no entanto, quando é necessário utilizar uma versão específica de kernel para o domU é que o problema começa, principalmente se for necessário utillizar uma das versões mais recentes do kernel, visto que os patches de suporte ao Xen não costumam ser disponibilizados com a mesma frequência que novas versões do kernel.

Felizmente desde a versão 2.6.23 o kernel vanilla (padrão) do Linux conta com suporte nativo a virtualização, possibilitando que o mesmo seja iniciado como um domU sob o Xen. Para tanto é necessário habilitar no kernel as seguintes opções:

Show me more… »

IIS + Plesk + PHP e o mistério por trás do erro “502 – Bad Gateway”

13 de dezembro de 2009 8:18 pm · Tags: ,

Um certo cliente me pediu que desenvolvesse um pequeno script em PHP que fosse capaz de ler um documento do MS-Excel e inserir seus registros numa base mysql.
Usei uma classe bem conhecida para ler arquivos XLS e testei em meu servidor, um Gentoo Linux rodando Apache com PHP 5.
Ao executar o primeiro teste no servidor do cliente, um Windows 2003 Server, o script morreu ao atingir o tempo limite de exeução do PHP.
Modifiquei o script inserindo logo em seu início uma chamada para remover o limite de timeout: set_time_limit(0).
Tentei executar novamente o script e obtive meu primeiro contato com o erro:

“502 Bad Gateway
Web server received an invalid response while acting as a gateway or proxy server.”
Procurando no google encontrei um fórum que mencionava justamente um problema com o trio IIS + Plesk + PHP e a sugestão era de habilitar a extensão ISAPI na configuração do servidor WEB.
Por sorte o cliente tinha os dados de adminstração do servidor então segui os seguintes passos:
1 – Logar na interface Web do Plesk
2 – Entrar na configuração de domínios e escolher o domínio desejado
3 – Entrar em Setup
4 – Habilitar a opção “
5 – Salvar a configuração
Feito isso testei o script e tudo funcionou normalmente sem mais erros misteriosos do IIS.

E71 – Softwares Indispensáveis

10 de outubro de 2009 8:15 pm · Tags: ,,

O Nokia E71W (http://www.gsmarena.com/nokia_e71-2425.php) é mais que um celular , é um pequeno computador dotado de processador ARM11W de 369 MHz, com 128MB de memória RAM e teclado QWERTYW.
Com 110MB de memória interna e até 8GB em cartão microSDW (Transflash) numa unidade estrategicamente posicionada na sua lateral esquerda, o que possibilita a troca de cartão sem a necessidade de desligar o aparelho, armazenar documentos, música, vídeos e fotos não será um problema.

Se não bastasse todos esses recursos que deixam o meu primeiro PC (um Cyrix Cx5x86 de 120MHz com 8MB de RAM e HD de 1.2GB) no chinelo, o E71 conta ainda com recursos como Câmera de 3.2 Mega Pixels, receptor de Rádio AM/FM, GPSW, Push To TalkW (para as operadoras habilitadas), e se conecta com outros dispositivos e redes utilizando-se das principais tecnologias dentre elas WIFIW, BluetoothW, GPRSW / 3GW, IrDAW e USBW.

Em matéria de software o E71 não deixa a desejar. Voltado principalmente para os públicos corporativo e técnico, o aparelho sai de fábrica com uma grande variedade de aplicativos, dentre eles, Suíte Office, Cliente de VPNW (IPSecW), Cliente VOIPW, Navegador Web, Gerenciador de Arquivos, Sincronização via SyncMLW, entre outros. Além dos softwares pré-instalados, como todo bom smartphone é possivel encontrar internet à fora uma vasta gama de softwares, disponíveis para as plataformas S60W ou J2MEW.

Listo aqui alguns softwares que considero indispensáveis, separados por categoria.

Show me more… »

Código promocional Dreamhost ($50 de desconto)

15 de janeiro de 2008 9:10 am ·

Pensando em contratar serviço de web hosting? Então não perca tempo e procure a Dreamhost pois com certeza eles têm a melhor relação custo X benefício.

Tenho meu domínio hospedado com eles há cerca de 3 anos e não tenho do que reclamar. Muitos dos meus amigos também utilizam os serviços da Dreamhost.
É claro, não vou mentir que houve um período de cerca de 1 a 2 meses no último ano (se não me engano) em que as coisas lá ficaram problematicas, devido a grande quantidade de novos usuários, mas a política deles foi revista, os planos comerciais re-estruturados e o problema foi sanado.

Se a decisão for pela Dreamhost aproveite o código promocional FREE50BUCKS e garanta já $50 de desconto na assinatura.

Acertando o horário de verão no Gentoo

12 de outubro de 2007 6:17 pm · Tags:

Vi na TV que o horário de verão esse ano começa em data diferente só pra variar um pouquinho e portanto precisei atualizar meu arquivo de timezone.

Pesquisando na internet vi que existie um pacote para debian chamado tzdata e resolvi procurar algo parecido para Gentoo, mas infelizmente não tem.

Comecei então a procurar como alterar manualmente e cheguei até esse link onde peguei um arquivo de exemplo.

Com a ajuda da pagina de manual do comando zic criei o seguinte arquivo:

# vim /tmp/updatezone.zic

Rule    America 2007    only    -       Oct     14      00:00   1       D
Rule    America 2008    only    -       Feb     16      24:00   0       S
zone    America/Sao_Paulo       -3:00   America BRT

# zic /tmp/updatezone.zic

Pronto, é possivel confirmar as alterações com o comando zdump

# zdump -v America/Sao_Paulo
America/Sao_Paulo  Sun Oct 14 02:59:59 2007 UTC = Sat Oct 13 23:59:59 2007 BRT isdst=0
America/Sao_Paulo  Sun Oct 14 03:00:00 2007 UTC = Sun Oct 14 01:00:00 2007 BRT isdst=1
America/Sao_Paulo  Sun Feb 17 01:59:59 2008 UTC = Sat Feb 16 23:59:59 2008 BRT isdst=1
America/Sao_Paulo  Sun Feb 17 02:00:00 2008 UTC = Sat Feb 16 23:00:00 2008 BRT isdst=0

Simples e rápido, o relógio vai ser automaticamente alterado na madrugada do dia 14.

Palm OS – Aplicativos essenciais

24 de fevereiro de 2007 10:47 pm · Tags: ,,

Já há algum tempo sou proprietário de um Palm LifeDrive. Apesar de satisfeito não sou totalmente feliz com o aparelho devido as limitações e problemas que só o Palm OS pode proporcionar (acreditem em certas situações ele é mais problemático que o Windows). É claro que seguindo as recomendações da Palm de só utilizar os softwares originais e/ou recomendados por eles o nível de problemas cai para quase 0 (zero) mas quem consegue viver assim?

Apesar de tudo, o Palm OS é bem suportado pelo Software Livre e inclusive existem muitos aplicativos Livres para o sistema operacional da Palm.
No linux contamos com boas opções para manter o Palm sincronizado e também para integrar a transferência de dados entre aplicativos.

Show me more… »

Instalando Mysql 5 e Php 5 no Fedora Core 4

20 de fevereiro de 2007 12:51 am · Tags: ,,,

Recentemente um cliente precisou realizar uma atualização no seu servidor para atender as exigências de um sistema novo. A princípio a tarefa parecia ser simples, atualizar o Mysql e PHP para a versão 5 de ambos no Fedora Core 4.
Depois de pesquisar no google percebi que eu precisaria de um pouco mais do que “yum update && yum install mysql” para fazer as coisas funcionarem.

Show me more… »

Mysql – Error 1114 – Table is full

24 de novembro de 2006 11:15 am · Tags: ,,,

Recentemente instalei o Zabbix no servidor da minha rede para monitorar algumas máquinas, inclusive ele próprio. Ontem passei o dia configurando os itens a serem monitorados das minhas máquinas e tudo estava funcionando perfeitamente bem, com todos os gráficos sendo gerados e todas as estatísticas computadas.

Hoje ao chegar na empresa, fui direto ver a tela de gráficos que configurei e qual não foi minha surpresa ao verificar que os gráficos estavam todos em branco. Como por padrão o zabbix exibe o gráfico com período de 1 hora, alterei para 24 horas e pude notar que a última atualização no gráfico ocorreu ontem por volta das 23hrs, no entanto as estatísticas continuavam sendo coletadas. Seria esse um erro no serviço zabbix? Felizmente não existe nenhum problema com o Zabbix pelo que pude verificar ao reinicia-lo, no entanto continuo sem geração dos gráficos.

Alterei o nível de debug no arquivo zabbix-server.conf para 4 na linha com o parâmetro DebugLevel e reiniciei novamente o serviço. Dessa forma consegui verificar no log do servidor o problema que estava acontecendo:

# tail -f /var/log/zabbix/zabbix_server.log
013359:20061124:105552 Query::insert into trends \\
(clock,itemid,num,value_min,value_avg,value_max) values \\
(1164369600,17543,1,1041.594705,1041.594705,1041.594705)
013359:20061124:105552 Query failed:The table 'trends' is full [1114]

Table is full? Como isso pode acontecer? Como utilizo o Mysql para o Zabbix imaginei logo que o banco devia ter crescido demasiadamente e dessa forma teria enchido a partição /var. Uma rápida consulta ao espaço livre em disco (df) me mostrou que ainda existe muito espaço livre na partição /var então isso não pode ser um problema de espaço em disco para o Mysql.

Verifiquei que a tabela trends só tem cerca de 1 milhão de registros, o que não é muito pois já tive tabelas em algumas base de dados com muito mais do que essa quantidade de registros.
Resolvi tentar executar a query direto no mysql para ver o que acontecia

# mysql -p
Enter password:
Database changed

mysql> use zabbix
mysql> insert into trends (clock,itemid,num,value_min,value_avg,value_max) \\
values (1164369600,17539,1,112.790411,112.790411,112.790411);
ERROR 1114: The table 'trends' is full

Procurar no google por “mysql error 1114 table is full” não me retornou resultados satisfatórios então resolvi pesquisar no mysql mesmo a raiz do problema.
Imaginei que deveria existir alguma variável limitando o tamanho da tabela ou algo parecido. Com o comando show variables é possível verificar as variáveis atuais do mysql.
Como não existia nenhuma variável que aparentemente estivesse limitando o tamanho das tabelas, resolvi verificar as variáveis pertinentes ao tipo de tabela innodb uma vez que esse é o tipo das tabelas usadas pelo zabbix.

A variável que me pareceu mais passível de estar limitando o tamanho das tabelas foi a “innodb_data_file_path” cujo valor estava definido como ibdata1:10M:autoextend:max:128M (provavelmente o padrão do mysql), no entanto o nome da variável não indicava exatamente limitação de tamanho da tabela, mas de qualquer forma era bom verificar.

Procurando no google por esse valor achei um blog onde o autor do post relatava o mesmo problema que o meu com o zabbix e tableas do tipo innodb e coincidentemente a mesma distribuição Linux estava sendo usada: Gentoo.
Pelo que entendi o problema realmente estava na definição do tamanho máximo definido pro arquivo InnoDB (ibdata1). O autor do post indica o endereço http://www.browardphp.com/mysql_manual_en/manual_InnoDB.html onde a configuração do InnoDB é explicada.

De acordo com as especificações do site, alterei o parâmetro innodb_data_file_path para ibdata1:10M:autoextend, reiniciei o mysql e o zabbix, e pronto, o zabbix voltou a gerar os gráficos novamente.

# vi /etc/my/mysql.cnf

innodb_data_file_path = ibdata1:10M:autoextend

# /etc/init.d/mysql restart
# /etc/init.d/zabbix-server restart

Não esqueça de alterar novamente o nível de debug no arquivo zabbix-server.conf

Referências

Switch to our mobile site