Arquivo da categoria: No mundo do Linux

Experiências vividas usando Linux.

Desventuras na instalação do TensorFlow com suporte a GPU

A missão: instalar o TensorFlow incluindo suporte a GPU com Cuda

A máquina: Dell Inspiron 15 5557, com NVidia GeForce 930M

A plataforma: Linux Ubuntu Xenial Xerus 16.04

O mapa da mina: Homepage de Setup e Download do Tensor Flow

https://www.tensorflow.org/versions/r0.9/get_started/os_setup.html

O primeiro passo para prover o suporte à GPU seria  a instalação do NVidia Toolkit e do cuDNN.

O site do TensorFlow recomenda a instalação do toolkit versão 7.5 e cuDNN 4.

A instalação do toolkit NVidia foi tranquila, já que os pacotes já estão nos repositórios tradicionais do Xenial Xerus. Portanto, obviamente optei por não compilar o fonte do toolkit.

sudo apt-get install nvidia-cuda-toolkit

Já com o cuDNN é outra história. A versão 5, já disponível no site da NVidia, possui pacotes .DEB para download e instalação (tem que cadastrar uma conta e querem que você responda um questionário… chaaatoooo!)

Já para a versão 4 (requerida pelo TensorFlow segundo o site de configuração e download)  exige download e descompactação em pasta específica, ou seja, mais enjoada.

Feitas estas instalações iniciais, usei os pacotes PIP disponibilizados pelo próprio site de download do TensorFlow, com suporte à GPU.

A instalação PIP transcorre normalmente e, após usa instalação, é possível importar o TensorFlow no Python sem problemas (vida  longa ao PIP!)

Porém, quando executamos o código de teste convolutional.py (veja site acima do TensorFlow), surge o erro: CUDA_ERROR_MISALIGNED_ADDRESS

Após alguma pesquisa nos fóruns pertinentes, aparentemente a solução seria compilar tudo da fonte.

O problema adicional é que o fonte do TensorFlow parte do pressuposto que o toolkit NVidia foi instalado numa tal pasta /usr/local/cuda e, mesmo que você altere esse caminho, o arquivo configure chama vários outros com dependências de path difíceis de serem corrigidas caso você tenha instalado seu NVidia toolkit a partir do repositório.

Não estou muito a fim de compilar na unha o código do NVidia Toolkit, já que a solução via repositório é sempre mais “clean” e conta com a vantagem das atualizações automáticas.

Fiquei um pouco frustrada, mas acabei instalando os pacotes PIP do TensorFlow SEM O SUPORTE À GPU.

Tudo funcionou perfeitamente, incluindo o código de teste convolutional.py (veja link do TensorFlow acima). Sem a ajuda da GPU, esse código ocupa 100% da CPU (4 núcleos), jogando a temperatura do processador nas alturas durante mais de 15 minutos.

Por ora vai bastar para mim, mas espero que os pacotes PIP do TensorFlow em breve seja compatível com este tipo de configuração de máquina/plataforma. No mínimo, os caras podiam retrabalhar o script de configuração da compilação do fonte, prevendo a instalação de toolkit e cuDNN via repositório.

Mission not accomplished 😦

Tem dias que a gente perde…

 

 

 

 

 

Anúncios

Ubuntu – Acessando arquivos do Android como um pendrive

Para copiar as fotos de meu celular, eu adoro poder simplesmente conectar meu cabo USB do smartphone ao computador e meu sistema operacional simplesmente reconhecê-lo como um pendrive.

Para conseguir isso usando o Ubuntu, a receita é simples:

  • Instale a versão mais recente do pacote libgphoto. Utilize, por exemplo, o terminal de comando “sudo apt-get install libgphoto”. Aperte a tecla TAB para que o sistema mostre qual a versão disponível para instalação no seu repositório. Por exemplo, no meu sistema esta é a versão libgphoto2-6. Alternativamente use um instalador de pacotes como o Synaptic ou o Ubuntu Software Center e faça uma busca por libgphoto. Este pacote garantirá que o protocolo PTP (Picture Transfer Protocol) esteja ativo na sua máquina.
  • Conecte o smartphone com sistema operacional Android via cabo USB ao seu computador e garanta que as opções de conexão USB no seu celular estejam configuradas “Camera (PTP)” como na imagem abaixo. E pronto! Assim que conectar o cabo USB ao computador, o sistema operacional tipicamente abrirá automaticamente uma janela perguntando se deseja abrir suas fotos como uma pasta no gerenciador de arquivos ou utilizando um software de edição de fotos.

 

USBsettings.png

 

Problema com WiFi no Ubuntu 16.04

Atualização 15/07/2016: meu WiFi parou de funcionar após o último update do 16.04. Eu já tinha executado o procedimento abaixo e achei que dessa vez o problema era outro. Após alguns dias pesquisando sem sucesso, entendi que o último update atualizou o pacote linux-firmware. Resumindo, tive que executar novamente o procedimento abaixo e tudo voltou a funcionar. Espera-se que em breve os repositórios do Ubuntu reflitam as modificações implementadas na versão não-oficial de drivers.


Após a instalação do Ubuntu 16.04 num Dell Inspiron 5557 o WiFi não funcionou automaticamente.

Se você está passando por problema semelhante, o primeiro passo é checar o modelo de sua placa wireless. Isso pode ser feito pelo comando:

lshw -C network

No meu caso a placa é:

description: Wireless interface
product: QCA6174 802.11ac Wireless Network Adapter
vendor: Qualcomm Atheros

Se essa não é sua placa, os comandos abaixo não servirão para você, ainda que a solução possa lhe servir de inspiração.

O problema com a placa QCA6174 já é conhecido na comunidade e uma busca no Google com o nome da placa e problemas de conexão retornará alguns posts envolvendo a instalação de um firmware não-oficial ainda não disponível nos repositórios.

Segue abaixo a sequência de comandos que deve ser executada. Note que, para que esta solução funcione, você deverá estar conectado à Internet (provavelmente, via cabo). É necessário reiniciar o computador após o procedimento.

Se você está enfrentando o mesmo problema, espero que a dica sirva para você também.


sudo mkdir -p /lib/firmware/ath10k/QCA6174/hw3.0/

sudo rm /lib/firmware/ath10k/QCA6174/hw3.0/* 2> /dev/null

sudo wget -O /lib/firmware/ath10k/QCA6174/hw3.0/board.bin https://github.com/FireWalkerX/ath10k-firmware/blob/7e56cbb94182a2fdab110cf5bfeded8fd1d44d30/QCA6174/hw3.0/board-2.bin?raw=true

sudo wget -O /lib/firmware/ath10k/QCA6174/hw3.0/firmware-4.bin https://github.com/FireWalkerX/ath10k-firmware/blob/7e56cbb94182a2fdab110cf5bfeded8fd1d44d30/QCA6174/hw3.0/firmware-4.bin_WLAN.RM.2.0-00180-QCARMSWPZ-1?raw=true

sudo chmod +x /lib/firmware/ath10k/QCA6174/hw3.0/*


A solução está descrita no post #22 do seguinte link:

https://bugs.launchpad.net/ubuntu/+source/linux-firmware/+bug/1520343?comments=all

Guia Rápido de como fazer o Root do Samsung S4 GT-I9515L no Linux

Este guia é rápido e é para você que não aguenta mais cair em links de vídeo do Youtube.

Que fique claro: para que se dê acesso ao Root de seu celular, é necessário regravar a memória flash que vem gravada de fábrica. Portanto, valem os avisos de sempre: você provavelmente vai perder sua garantia, se algo de errado acontecer no meio do processo seu celular pode ficar inutilizado e, obviamente, essa escolha é sua e a responsabilidade é sua também.
Confira o modelo do celular (GT-I9515L), faça backup e só faça os procedimentos aqui descritos quando o celular estiver com a bateria carregada, com um cabo USB bom e um computador com conectores USB confiáveis.

Este é o preço da liberdade de se configurar um celular que é seu!

Passo 1) É necessário fazer o download da imagem (ROM) que você carregará na memória. Testei algumas e a que funcionou tranquilamente foi essa: CF-Auto-Root-jfvelte-jfvelteub-gti9515l.zip

Estamos falando de um Root realizado no Linux então existem algumas peculiaridades.

O arquivo da imagem vem compactado. Descompacte o arquivo numa pasta qualquer. Dentro da pasta você encontrará o Odin, aplicativo comumente utilizado para fazer o root em máquinas Windows,  e um arquivo: CF-Auto-Root-jfvelte-jfvelteub-gti9515l.tar.md5

Minha sugestão é: renomeie o arquivo com extensão *.md5 para simplesmente CF-Auto-Root-jfvelte-jfvelteub-gti9515l.tar

Descompacte este arquivo tar e obtenha dois arquivos de imagem:

recovery.img e cache.img.ext4

Passo 2) Instale o Heimdall, colega do Odin que mora no Linux (aproveite aprenda um pouco de mitologia na Wikipedia). Use o Synaptic ou terminal: sudo apt-get install heimdall

Passo 3) Conecte seu celular ao computador via cabo USB. Desligue seu celular. Coloque ele no modo debug ligando-o, apertando ao mesmo tempo as teclas: VOLUME PARA BAIXO + HOME (botão central abaixo da tela)+ POWER ON (botão de ligar o celular). Quando aparecer uma tela alertando-te novamente sobre os perigos de realizar qualquer procedimento deste tipo no celular, aperte VOLUME PARA CIMA. Uma mensagem indicando que o celular está pronto para download de uma nova flash irá aparecer.

Passo 4) Abra um terminal de comandos, navegue até o diretório onde estão os arquivos recovery.img e cache.img.ext4 e digite o comando:

sudo heimdall flash --RECOVERY recovery.img --CACHE cache.img.ext4 --no-reboot

Se tudo estiver no caminho certo, você verá uma barra de progresso azul no celular e nenhuma mensagem de erro. O celular não irá reinicializar porque nós mandamos ele não fazer isso na opção –no-reboot.

Passo 5) Quando tiver certeza que a transferência foi realizada com sucesso, desligue o celular. Religue o celular colocando-o no modo Recovery. Aperte simultaneamente VOLUME PARA CIMA + HOME + POWER ON. Você verá o logo da Samsung e no cantinho superior esquerdo da tela algumas letras azuis indicando que você está entrando no Recovery mode. Algumas mensagens em inglês aparecerão indicando que o script de root está sendo executado. Com um pouco de sorte, após este script executar seu telefone irá inicializar normalmente e aparecerão algumas mensagens no Android dizendo que seu celular está sendo atualizado.

Passo 6) Se tudo correu bem até aqui, pronto!, você já possui acesso de root no seu celular sem ter perdido nada no seu celular. Confira se o aplicativo SuperSu foi instalado. Existem aplicativos no Google Play que testam se o aparelho está com acesso root.

Não vivo de fazer root de celular e só quebrei um galho para o sobrinho de 10 anos que queria colocar uma animação do Batman quando ligasse o celular. Por isso, não conseguirei dar conta de resolver dúvidas e problemas em relação ao procedimento. Sugiro que deixem suas dúvidas nos comentários. Sempre aparece uma boa alma para responder… Até!

Falha para acessar HD externo no Linux Ubuntu

Você “pluga” seu HD externo ou seu pendrive no computador e aparece uma mensagem como a tela abaixo:

hddmounterror

A causa muito provavelmente é que você usou seu HD/pendrive numa máquina Windows e ela não ejetou o dispositivo adequadamente.

Fique tranquilo, a solução é simples.

Utilize o ntfsfix para reparar o estrago que o Windows fez.

Digite numa tela de terminal o comando:

sudo ntfsfix <endereço do dispositivo>

Utilizando como exemplo a imagem acima, minha linha de comando seria:

sudo ntfsfix /dev/sdc1

Caso retorne a mensagem “Command not found”, instale o pacote ntfs-3g.

sudo apt-get install ntfs-3g

Upgrade CMake on (X)Ubuntu 14.04 Thrusty Tahr before compiling OpenCV 3

I’ve spent a whole weekend trying to compile the new OpenCV 3 version on my Xubuntu 14.04 Thrusty Tahr machine for use also with Python. I was very intrigued by the behavior described here and then I decided to start a fresh new Linux installation to understand better what was happening.

The main symptom was, with all the dev packages of Python installed (check them before you read this post -> libpython2.7-dev or libpython3.4-dev), the CMake configuration output shows the message:

Found PythonInterp: /usr/bin/python2.7 (found suitable version "2.7.6", minimum required is "2.7")
Could NOT find PythonLibs (missing: PYTHON_INCLUDE_DIRS) (found suitable exact version "2.7.6")
Found PythonInterp: /usr/bin/python3.4 (found suitable version "3.4", minimum required is "3.4")
Could NOT find PythonLibs (missing: PYTHON_LIBRARIES) (Required is exact version "3.4.0")

The current version of CMake available on the Ubuntu repositories is 2.8. However, some posts inspired me to upgrade CMake.

I’ve decided  to add the following PPA to my set of repositories:

https://launchpad.net/~george-edison55/+archive/ubuntu/cmake-3.x

The version of CMake at the PPA today is 3.2.

And (finally!!!) the problem was solved, and the compilation ran smoothly…

Possible BUG when compiling OpenCV 3.0 with TBB enabled?

Update: Check here a different approach to the problem reported in this post.

If you are trying to compile OpenCV 3.0 on (X)Ubuntu 14.04 and are facing problems, for example, to make the Python modules installed this post is just a warning. I couldn’t find many references regarding this problem on Internet. I have spent a whole day trying to understand why I was not able to compile OpenCV 3.0 with the Python modules. I thought that the problem was with my Python libraries installation but this BUG report called my attention, and voilá: I have disabled my WITH_TBB compilation option and everything is fine!

I have always compiled previous versions of OpenCV installing from Synaptic the libtbb-dev library. This time, however, I realized that with WITH_TBB option enabled, I got the following output from the CMake configure process:

Found PythonInterp: /usr/bin/python2.7 (found suitable version "2.7.6", minimum required is "2.7")
Could NOT find PythonLibs (missing: PYTHON_INCLUDE_DIRS) (found suitable exact version "2.7.6")
Found PythonInterp: /usr/bin/python3.4 (found suitable version "3.4", minimum required is "3.4")
Could NOT find PythonLibs (missing: PYTHON_LIBRARIES) (Required is exact version "3.4.0")

Which results in:

  OpenCV modules:
    To be built:                 hal cudev core cudaarithm flann imgproc ml video cudabgsegm cudafilters cudaimgproc cudawarping imgcodecs photo shape videoio cudacodec highgui objdetect ts features2d calib3d cudafeatures2d cudalegacy cudaobjdetect cudaoptflow cudastereo java stitching superres videostab
    Disabled:                    world
    Disabled by dependency:      -
    Unavailable:                 python2 python3 viz

WEIRDLY, with WITH_TBB option DISABLED I get the following messages:

Found PythonInterp: /usr/bin/python2.7 (found suitable version "2.7.6", minimum required is "2.7") 
Found PythonInterp: /usr/bin/python3.4 (found suitable version "3.4", minimum required is "3.4") 
Could NOT find PythonLibs (missing:  PYTHON_INCLUDE_DIRS) (found suitable exact version "3.4.0")

Which results in:

  OpenCV modules:
    To be built:                 hal cudev core cudaarithm flann imgproc ml video cudabgsegm cudafilters cudaimgproc cudawarping imgcodecs photo shape videoio cudacodec highgui objdetect ts features2d calib3d cudafeatures2d cudalegacy cudaobjdetect cudaoptflow cudastereo java stitching superres videostab python2
    Disabled:                    world
    Disabled by dependency:      -
    Unavailable:                 python3 viz

THEN, I have decided to enable the option BUILD_TBB option which downloads and build TBB from source. The version downloaded was tbb41_20130116oss_src.tgz and everything ran smoothly!!!

I really hope that this post avoid your frustration and time spent with stupidity.