Você já se deparou com a mensagem abaixo ao tentar iniciar o mysql pelo shell?
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
No meu caso o problema era simples de resolver, o HD simplesmente estava cheio... bastou apagar alguns arquivos de log e backup que existiam e não eram mais necessários para liberar espaço no HD e tudo voltou ao normal depois de um reboot.
Mostrando postagens com marcador linux. Mostrar todas as postagens
Mostrando postagens com marcador linux. Mostrar todas as postagens
quarta-feira, 9 de novembro de 2011
sexta-feira, 28 de outubro de 2011
Tether USB com Android (2.3) e [K]Ubuntu 11.10
Realizar tethering com o celular em um notebook as vezes é essencial, o Android oferece 2 formas de fazer isso, uma delas é criando um Hotspot 3G, que na minha opinião é a melhor, o problema dela é que se você está em um local que não tem uma tomada pra ficar carregando o celular você poderá ser surpreendido com a falta de bateria, já que se optar pela carga da bateria através do cabo USB enquanto utiliza o Hotspot 3G criado pelo celular ele muito provavelmente vai gastar a bateria mais do que está conseguindo carregar, já que o cabo USB transfere apenas 50% da energia que se o celular estivesse sendo carregado na tomada.
Então a segunda opção é fazer tethering através do próprio cabo USB e é bem simples. No Windows muito provavelmente você precisaria baixar alguns drivers para conseguir esse acesso, mas no Linux basicamente o que você vai precisar é apenas configurar o celular, então siga os passos abaixo para habilitar a conexão no celular:
1) Acesse Menu->Configurações->Aplicativos->Desenvolvimento e habilite a opção 'Depuração USB'
2) Conecte o cabo USB no seu notebook
3) Acesse Menu->Configurações->Redesem fio e outras->Vínculo e habilite a opção 'Vínculo USB'
Com isso você já deve estar navegando normalmente.
Pra mim a grande vantagem no tethering via USB é a redução do consumo de energia no celular e consequentemente ele esquentar menos. Tenho um smartphone com teclado físico e ele já estragou por superaquecer, acabou "soltando" o teclado justamente onde fica a antena wifi que "pega fogo" ao ser usada quando se cria o Hotspot 3G.
Então a segunda opção é fazer tethering através do próprio cabo USB e é bem simples. No Windows muito provavelmente você precisaria baixar alguns drivers para conseguir esse acesso, mas no Linux basicamente o que você vai precisar é apenas configurar o celular, então siga os passos abaixo para habilitar a conexão no celular:
1) Acesse Menu->Configurações->Aplicativos->Desenvolvimento e habilite a opção 'Depuração USB'
2) Conecte o cabo USB no seu notebook
3) Acesse Menu->Configurações->Redesem fio e outras->Vínculo e habilite a opção 'Vínculo USB'
Com isso você já deve estar navegando normalmente.
Pra mim a grande vantagem no tethering via USB é a redução do consumo de energia no celular e consequentemente ele esquentar menos. Tenho um smartphone com teclado físico e ele já estragou por superaquecer, acabou "soltando" o teclado justamente onde fica a antena wifi que "pega fogo" ao ser usada quando se cria o Hotspot 3G.
quinta-feira, 20 de outubro de 2011
Ubuntu / Kubuntu 11.10 + placa wireless broadcom
Deixa eu adivinhar, você usava feliz e contente a sua placa de rede wireless no Ubuntu/Kubuntu 11.04 seguindo a dica Travando versão do driver da placa wifi Broadcom e agora fez a atualização para a versão 11.10 e parou de funcionar não é? Infelizmente (ou felizmente...) você não está sozinho....
Mas não se desespere, a minha voltou a funcionar, com alguns poréns, mas voltou....
Aparentemente esse é um problema apenas quando se faz a atualização, li muito na net e parece que todos que fizeram uma instalação limpa não passaram por isso.
Apenas para deixarmos claro algumas coisas, não sei se a solução servirá para a sua placa, pra minha foi a única forma que encontrei, então para ter certeza veja a versão da que está instalada no seu notebook e compare com o meu:
je@je:~$ sudo lshw -C network
[sudo] password for je:
*-network
description: Wireless interface
product: BCM4311 802.11b/g WLAN
vendor: Broadcom Corporation
physical id: 0
bus info: pci@0000:03:00.0
logical name: eth1
version: 01
serial: 00:19:7e:78:55:f2
width: 32 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=wl0 driverversion=5.60.48.36 ip=192.168.1.109 latency=0 multicast=yes wireless=IEEE 802.11bg
resources: irq:17 memory:84400000-84403fff
Ou seja, a minha placa é uma BCM4311 (droga!!!!) e o driver atualmente utilizado é o 5.60.48.36.
O problema:
Fiz a atualização do 11.04 para o 11.10, atualizei tudo, inclusive o driver da placa na esperança deste problema já ter sido resolvido e quando dei o primeiro boot... bingo!!! A minha placa wireless não funcionava mais... grande novidade...
As tentativas que não funcionaram:
1) Segui a dica de voltar a versão antiga do driver, nada...
2) Atualizei novamente para a última versão do driver e segui a dica do próprio site da Broadcom que indica fazer uma espécie de patch para correção do problema em kernel 3 ou superiores, nada... mas pelo menos essa me deu uma ideia de como resolver o problema, claro, o problema está com a versão do driver nesse Kernel!!! Até esse momento eu não fazia a menor ideia do porque não funcionava.
3) Trocentas outras tentativas...
Então qual foi a brilhante ideia? Usar o 11.10 com o Kernel antigo haaaargggg!!!! Mas fazer o que????
Então pra fazer isso siga a seguinte dica:
Mudar a opção default de boot no grub
Neste caso, como eu ainda tinha o Kernel antigo instalado mesmo depois da atualização, apenas setei no Grub que eu quero fazer o boot utilizando o Kernel antigo.... WTF!!!!
E claro, nem pense em usar o driver novo da placa, mantenha o mesmo 5.60.48.36 da dica Travando versão do driver da placa wifi Broadcom.
Não muito legal né? Mas funciona. E por favor, se alguém tem alguma dica de como fazer funcionar no Kernel 3 coloca nos comentários aí, vamos nos ajudar.
Juro, na próxima fez que eu for comprar um notebook e vier com essa placa eu jogo ele na parede...
Mas não se desespere, a minha voltou a funcionar, com alguns poréns, mas voltou....
Aparentemente esse é um problema apenas quando se faz a atualização, li muito na net e parece que todos que fizeram uma instalação limpa não passaram por isso.
Apenas para deixarmos claro algumas coisas, não sei se a solução servirá para a sua placa, pra minha foi a única forma que encontrei, então para ter certeza veja a versão da que está instalada no seu notebook e compare com o meu:
je@je:~$ sudo lshw -C network
[sudo] password for je:
*-network
description: Wireless interface
product: BCM4311 802.11b/g WLAN
vendor: Broadcom Corporation
physical id: 0
bus info: pci@0000:03:00.0
logical name: eth1
version: 01
serial: 00:19:7e:78:55:f2
width: 32 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=wl0 driverversion=5.60.48.36 ip=192.168.1.109 latency=0 multicast=yes wireless=IEEE 802.11bg
resources: irq:17 memory:84400000-84403fff
Ou seja, a minha placa é uma BCM4311 (droga!!!!) e o driver atualmente utilizado é o 5.60.48.36.
O problema:
Fiz a atualização do 11.04 para o 11.10, atualizei tudo, inclusive o driver da placa na esperança deste problema já ter sido resolvido e quando dei o primeiro boot... bingo!!! A minha placa wireless não funcionava mais... grande novidade...
As tentativas que não funcionaram:
1) Segui a dica de voltar a versão antiga do driver, nada...
2) Atualizei novamente para a última versão do driver e segui a dica do próprio site da Broadcom que indica fazer uma espécie de patch para correção do problema em kernel 3 ou superiores, nada... mas pelo menos essa me deu uma ideia de como resolver o problema, claro, o problema está com a versão do driver nesse Kernel!!! Até esse momento eu não fazia a menor ideia do porque não funcionava.
3) Trocentas outras tentativas...
Então qual foi a brilhante ideia? Usar o 11.10 com o Kernel antigo haaaargggg!!!! Mas fazer o que????
Então pra fazer isso siga a seguinte dica:
Mudar a opção default de boot no grub
Neste caso, como eu ainda tinha o Kernel antigo instalado mesmo depois da atualização, apenas setei no Grub que eu quero fazer o boot utilizando o Kernel antigo.... WTF!!!!
E claro, nem pense em usar o driver novo da placa, mantenha o mesmo 5.60.48.36 da dica Travando versão do driver da placa wifi Broadcom.
Não muito legal né? Mas funciona. E por favor, se alguém tem alguma dica de como fazer funcionar no Kernel 3 coloca nos comentários aí, vamos nos ajudar.
Juro, na próxima fez que eu for comprar um notebook e vier com essa placa eu jogo ele na parede...
Lazarus crosscompiler Linux -> Windows (can't find unit system)
Ao tentar compilar um programa para a plataforma Windows você recebe a mensagem abaixo?
Can't find unit system used by...
Continua com o problema mesmo depois de ter seguido a dica abaixo?
Compilando um programa para windows no Linux
O problema ocorre porque no Free Pascal Compiler deve existir uma versão de cada unit compilada para cada sistema operacional de destino que será utilizado, no meu caso até existe mas na versão do FPC diferente da que eu uso no Linux e por isso no momento da compilação o Lazarus acaba buscando no path errado essas units, a única forma que eu consegui contornar o problema sem muito esforço foi alterando o path diretamente no arquivo de configurações do FPC, mas faço isso apenas no caso do Windows. Veja abaixo como contornar o problema.
1) Edite o arquivo /etc/fpc.cfg (você vai precisar editar com um editor de textos da sua preferência e com privilégios de super usuário, o sudo).
2) Procure pelo texto searchpath, você deve encontrar algo parecido com isso:
# searchpath for units and other system dependent things
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/*
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/rtl
#-Fu~/fpc/packages/base/*/units/;~/fpc/fcl/units/;~/fpc/rtl/units/
Can't find unit system used by...
Continua com o problema mesmo depois de ter seguido a dica abaixo?
Compilando um programa para windows no Linux
O problema ocorre porque no Free Pascal Compiler deve existir uma versão de cada unit compilada para cada sistema operacional de destino que será utilizado, no meu caso até existe mas na versão do FPC diferente da que eu uso no Linux e por isso no momento da compilação o Lazarus acaba buscando no path errado essas units, a única forma que eu consegui contornar o problema sem muito esforço foi alterando o path diretamente no arquivo de configurações do FPC, mas faço isso apenas no caso do Windows. Veja abaixo como contornar o problema.
1) Edite o arquivo /etc/fpc.cfg (você vai precisar editar com um editor de textos da sua preferência e com privilégios de super usuário, o sudo).
2) Procure pelo texto searchpath, você deve encontrar algo parecido com isso:
# searchpath for units and other system dependent things
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/*
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/rtl
#-Fu~/fpc/packages/base/*/units/;~/fpc/fcl/units/;~/fpc/rtl/units/
Perceba que o que deve estar errado é justamente a variável $fpcversion, no meu caso ao tentar compilar para Windows o Lazarus está usando a última versão que eu tenho, que é a 2.4.4 e as minhas units estão compiladas apenas para a versão 2.4.2, como eu sei disso? Simples, verifique o seu diretório /usr/lib/fpc e veja as versões que você tem disponíveis, no meu caso aparecem 2 diretórios, veja abaixo:
je@je:/usr/lib/fpc$ ls -l
total 8
drwxr-xr-x 3 root root 4096 2011-10-17 16:40 2.4.2
drwxr-xr-x 6 root root 4096 2011-10-17 16:41 2.4.4
E se eu tentar localizar a unit compilada system.ppu veja o que aparece:
je@je:/usr/lib/fpc$ locate system.ppu
/usr/lib/fpc/2.4.2/units/i386-win32/rtl/system.ppu
/usr/lib/fpc/2.4.4/units/i386-linux/rtl/system.ppu
Ou seja, a minha system.ppu (e muito provavelmente todas as outras) está compilada para Win32 no FPC 2.4.2 e no FPC para Linux na 2.4.4.
Agora que já deu pra identificar bem o problema a solução é bem simples.
3) No arquivo /etc/fpc.cfg que você já abriu e encontrou o searchpath, faça a seguinte alteração, substitua todo aquele texto mostrado no passo 2 pelo seguinte:
# searchpath for units and other system dependent things
#IFDEF win32
-Fu/usr/lib/fpc/2.4.2/units/$fpctarget
-Fu/usr/lib/fpc/2.4.2/units/$fpctarget/*
-Fu/usr/lib/fpc/2.4.2/units/$fpctarget/rtl
-XPfpc-i386-win32-
-FD/usr/bin
#ELSE linux
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/*
-Fu/usr/lib/fpc/$fpcversion/units/$fpctarget/rtl
#-Fu~/fpc/packages/base/*/units/;~/fpc/fcl/units/;~/fpc/rtl/units/
#ENDIF
Note que o que eu fiz foi apenas uma seleção, ou seja, caso esteja sendo compilado para Win32 a versão do FPC utilizada será a 2.4.2 (hardcode) e caso esteja sendo compilado para Linux vai pegar automaticamente a última versão instalada através da variável $fpcversion.
É isso, agora se você ainda estava com o Lazarus aberto, feche e abra novamente para que ele carregue essas configurações na sua inicialização.
Creio que existem outras formas para resolver o problema e a mais correta seria recompilar as units para a última versão do FPC, mas essa creio que seja a mais rápida de resolver o problema e sem muita dor de cabeça.
sábado, 27 de agosto de 2011
Compilando um programa para Windows no Linux
Estou usando Linux desde 2006, mas sempre existe alguns projetos em que não se pode fugir do Windows e pra isso eu sempre dependia de uma máquina virtual pra poder desenvolver, o que requer muito processamento e consequentemente uma máquina boa, ou depender do micro dos outros já que eu não cai na história de instalar o Linux em dual boot, se eu tivesse feito isso provavelmente até hoje eu estaria escolhendo entre um ou outro na hora do boot...
Bom, durante os meus muitos anos de usuário do Windows, a minha ide padrão foi o Delphi, então não foi por acaso que acabei caindo no Lazarus, a compatibilidade é grande mas não é 100%, não espere pegar um projeto grande feito em Delphi e migra-lo para o Lazarus sem ter problemas, mas a história do post não é bem essa, o que eu pretendia fazer e consegui é criar um novo projeto na minha máquina Linux e compilar o código gerando binários para o próprio Linux e para o Windows.
Então vamos aos pré-requisitos que já devem estar instalados:
1) Sistema Linux (dããhhh), atualmente estou usando o Kubuntu 11.04
2) Lazarus v0.9.30
3) FPC 2.4.2
4) FPC CROSSWIN32 2.4.2
Você pode baixar os arquivos de instalação aqui.
Faça a instalação dos pacotes baixados, se você não sabe como, faça uma busca no Mr.Google que você vai encontrar vários links ensinando como fazer.
Depois de tudo instalado, abra um terminal e acesse o diretório de instalação do Free Pascal Compiler, por default é o /usr/lib/fpc/2.4.2 e digite o comando abaixo:
sudo make OS_TARGET=win32
Feito isso agora basta criar o seu projeto normalmente no Lazarus e selecionar o sistema operacional de destino que deverá compilar para criar o binário.
As telas a seguir mostram as opções:
1) Selecione Project -> Project Options...
Nesta tela escolha em 'Compiler Options' o sistema operacional na opção 'LCL Widget Type (various)'
2) Ainda nesta tela agora escolha em 'Code generation' o sistema operacional na opção 'Target OS (-T)'
Clique no botão Ok e acesse a opção do menu principal 'Run->Build', se você fez tudo certo será criado um arquivo .exe com o nome do seu projeto no diretório onde o projeto foi salvo.
É só isso!!!
Bom, durante os meus muitos anos de usuário do Windows, a minha ide padrão foi o Delphi, então não foi por acaso que acabei caindo no Lazarus, a compatibilidade é grande mas não é 100%, não espere pegar um projeto grande feito em Delphi e migra-lo para o Lazarus sem ter problemas, mas a história do post não é bem essa, o que eu pretendia fazer e consegui é criar um novo projeto na minha máquina Linux e compilar o código gerando binários para o próprio Linux e para o Windows.
Então vamos aos pré-requisitos que já devem estar instalados:
1) Sistema Linux (dããhhh), atualmente estou usando o Kubuntu 11.04
2) Lazarus v0.9.30
3) FPC 2.4.2
4) FPC CROSSWIN32 2.4.2
Você pode baixar os arquivos de instalação aqui.
Faça a instalação dos pacotes baixados, se você não sabe como, faça uma busca no Mr.Google que você vai encontrar vários links ensinando como fazer.
Depois de tudo instalado, abra um terminal e acesse o diretório de instalação do Free Pascal Compiler, por default é o /usr/lib/fpc/2.4.2 e digite o comando abaixo:
sudo make OS_TARGET=win32
Feito isso agora basta criar o seu projeto normalmente no Lazarus e selecionar o sistema operacional de destino que deverá compilar para criar o binário.
As telas a seguir mostram as opções:
1) Selecione Project -> Project Options...
Nesta tela escolha em 'Compiler Options' o sistema operacional na opção 'LCL Widget Type (various)'
2) Ainda nesta tela agora escolha em 'Code generation' o sistema operacional na opção 'Target OS (-T)'
Clique no botão Ok e acesse a opção do menu principal 'Run->Build', se você fez tudo certo será criado um arquivo .exe com o nome do seu projeto no diretório onde o projeto foi salvo.
É só isso!!!
Marcadores:
crosscompiler,
Lazarus,
linux,
windows
Assinar:
Postagens (Atom)

