Atualizações de novembro, 2016 Ativar/desativar aninhamento de comentários | Atalhos do Teclado

  • Fm4lloc 1:47 am em 11 de November de 2016 Link Permanente | Resposta
    Tags: snes   

    RODANDO JOGOS DE SUPER NINTENDO/SNES NO LINUX COM O SNES9X 

    Hoje é dia de nostalgia!

    Seguindo a informalidade característica de muitas publicações aqui no Blog, eis que apresento-lhes o caminho das pedras para jogar os clássicos pixelizados do Super Nintendo no Debian ou em outra distribuição qualquer através do emulador Snes9x-gtk.

    snes9x_mario

    INICIANDO OS TRABALHOS

    Acesse a página do Snes9x-gtk -> (https://code.google.com/archive/p/snes9x-gtk/downloads/e realize o download da ultima versão do emulador.

    DESCOMPACTAR

    $ tar -jxvf ./snes9x-1.53-gtk-81-*.tar.bz2
    

    RESOLVENDO DEPENDÊNCIAS (libpng14)

    Se você foi apressado e executou o emulador antes de ler esse passo, provavelmente foi surpreendido com a seguinte mensagem:

    ./snes9x-gtk: error while loading shared libraries: libpng14.so.14: cannot open shared object file: No such file or directory

    Ocorre que o Snes9x precisa da Libpng14 para funcionar, então será preciso compilar….

    Primeiramente faça o download do arquivo: libpng-1.4.14.tar.gz

    Agora execute a sequência mágica no terminal para construir e instalar a libpng14:

    $ tar -vzxf ./libpng-1.4.14.tar.gz && cd ./libpng-1.4.14
    $ ./configure --prefix=/opt/libpng-1.4.14
    $ make
    $ sudo make install
    

    CRIANDO UM LANÇADOR PARA O SNEX9X

    O Snes9x não enxerga o arquivo libpng14.so.14 em /opt/libpng-1.4.14, para resolver isso crie um script nominado de laucher.sh na pasta do Snex9x com o conteúdo abaixo:

    #!/bin/bash
    
    export LD_LIBRARY_PATH="/opt/libpng-1.4.14/lib"
    ./snes9x-gtk
    

    laucher_snes9x

    Pronto! É só conceder permissão de execução ao script com o comando infra e clicar sobre ele para inciar o emulador sem falhas.

    $ chmod +x laucher.sh
    

    JOGO ACELERADO?

    Se o jogo estiver muito acelerado entre options > sound e altere “sound driver” para ALSA ou SDL.
    Caso persista tente desmarcar a opção “synchronize with sound” (vai ficar uma bosta).
    Por algum motivo que desconheço essa opção de sincronização do áudio com o driver “OPEN SOUND SYSTEM” altera consideravelmente a velocidade do emulador, tornando tudo muito rápido e

    dEsCoNtrOlad0...
    Anúncios
     
  • Fm4lloc 3:37 pm em 11 de October de 2015 Link Permanente | Resposta
    Tags: cdi, dreamcast, , emulator, gdi, , reicast, , sega   

    Testando o Reicast – emulador de Sega Dreamcast no Linux 

    Nessa postagem vou explicar como compilar e instalar o emulador Reicast no Linux.

    Reicast não é o primeiro projeto open-source escrito para emular jogos de Dremcast, existe o Lxdream, sem atualização desde 2010. Na linha de código fechado o finado Chankast reinava no Windows em meados 2005. Contudo, nenhum deles permaneceu como referência na cena da emulação.

    A ascensão do Reicast não foi acidental, o projeto nasceu das mãos dos talentosos desenvolvedores do nullDC, considerado o melhor emulador de Sega Dremcast para Windows x86. Inclusive na página do nullDC contém uma nota informando que os novos trabalhos serão feitos no Reicast:

    Work is now done on reicast (https://github.com/reicast/reicast-emulator), and while nullDC is still a better choice for dreamcast emulation on windows/x86 reicast is where future development is. Come and help us!

    Isso me faz acreditar que grande parte do código base do nullDC vem sendo aproveitado no Reicast.

    O programa também recebe constantes commits no github, com suporte a diversas plataformas, inclusive Linux.

    Mas a postagem não é para contar histórias, quero mesmo é ensinar as etapas de compilação do emulador. Prepara o terminal!

    1. Resolver dependências:

    $ sudo apt-get install build-essential libasound2 libasound2-dev libegl1-mesa-dev libgles2-mesa-dev git
    

    2. Descarregar os arquivos-fonte:

    $ git clone https://github.com/reicast/reicast-emulator.git
    

    3. Entrar no diretório correto, construir e instalar:

    $ cd reicast-emulator/shell/linux/
    $ make
    $ sudo make install
    

    Está instalado! A escassa documentação pode ser lida usando o comando man reicast.

    4. Abra o terminal e rode o comando:

    $ reicast
    

    O programa ira abrir e fechar subitamente, retornara erros por falta de Bios/flash. Faço isso para ele criar os caminhos dos diretórios e arquivos de configuração automaticamente.

    Após essa primeira execução o arquivo emu.cfg será criado em: ~/.config/reicast/

    5.A próxima etapa é o download da Bios/Flash na página: http://www.freewebs.com/animated_site/dc_bios.bin
    http://www.freewebs.com/animated_site/dc_flash.bin

    Os arquivos dc_bios.bin e dc_flash.bin devem ser copiados para: ~/.local/share/reicast/data/

    Não me pergunte o motivo de elegerem tal pasta, estou apenas seguindo a documentação.

    6. Ok! A configuração do controle é através do comando reicast-joyconfig. Antes de executá-lo descarregue as dependências:

    $ sudo apt-get install python-pip python-dev
    $ sudo pip install evdev
    

    Plugue o controle no computador e execute:

    $ mkdir -p ~/.config/reicast/mappings/
    $ reicast-joyconfig -f ~/.config/reicast/mappings/controller_ps3.cfg
    

    Ele vai pedir a id do dispositivo, então informe.

    fm4lloc@debian:~$ reicast-joyconfig
    17: Sony PLAYSTATION(R)3 Controller (/dev/input/event17, usb-0000:00:13.0-1/input0)
    Please enter the device id: 17

    No meu caso a id do controle do ps3 conectado apareceu como 17, o seu pode apresentar outro.

    Siga respondendo se quer mapear (Y – sim ou N – não) determinado botão. Não mapeei o digital pad 2, os botões C, D e Z quando perguntado.

    Depois o mapeamento do controle abra o arquivo: ~/.config/reicast/emu.cfg e acrescente o caminho da configuração recém criada do controle e sua respectiva id editando a seguinte parte do documento:

    [input]
    evdev_device_id_1 = 17
    evdev_mapping_1 = /home/fm4lloc/.config/reicast/mappings/controller_ps3.cfg
    

    NOTA

    Enquanto usava reicast-joyconfig para configurar os botões do controle do Playstation 3, um erro ao tentar mapear o botão A me impedia de avançar.

    O erro foi:

    reicast-joyconfig.py 
    17: Sony PLAYSTATION(R)3 Controller (/dev/input/event17, usb-0000:00:13.0-1/input0)
    Please enter the device id: 17
    Using device 17...
    Name: Sony PLAYSTATION(R)3 Controller
    File: /dev/input/event17
    Phys: usb-0000:00:13.0-1/input0
    Do you want to map a button to exit the emulator [Y/n] n
    Do you want to map the A button? [Y/n] 
    Press the A button now...
    Traceback (most recent call last):
      File "/usr/local/bin/reicast-joyconfig", line 237, in <module>
        mapping = setup_device(dev_id)
      File "/usr/local/bin/reicast-joyconfig", line 147, in setup_device
        print_mapped_button("%s button" % button, event)
      File "/usr/local/bin/reicast-joyconfig", line 89, in print_mapped_button
        code_id = evdev.ecodes.BTN[event.code]
    KeyError: 302
    

    Solucionei comentado a linha do script /usr/local/bin/reicast-joyconfig:

    print_mapped_button("%s button" % button, event)
    

    Comente acrescentando o caractere # (jogo-da-velha) no começo da linha retrocitada.

    7. Hora de jogar.

    Eis o melhor momento! Adianto a lista de compatibilidade, disponível aqui -> Reicast_Compatibility_List – a lista não é exaustiva, uma massa grande de jogos não foram adicionados nela e funcionam, caso do Shenmue 1.

    Atualmente o reicast suporta imagens no formato .CDI e .GDI. O comando para executar o jogo é:

    $ reicast /caminho_do_jogo/jogo.gdi
    

    Para iniciar em tela cheia use a opção -config x11:fullscreen=1:

    $ reicast -config x11:fullscreen=1 /caminho_do_jogo/jogo.gdi
    

    ou edite o arquivo emu.cfg e atribua o valor 1 (um) para fullscreen. A resolução também é alterada no emu.cfg

    [x11]
    fullscreen = 1
    height = 480
    width = 640
    

    Imagens do emulador:

    Este slideshow necessita de JavaScript.

    A configuração da maquina usada:

    Debian 8.2 Jessie
    Operating System =  Linux debian 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u4 (2015-09-19) x86_64 GNU/Linux
    Physical RAM     =  3966 MB 
    CPU name         =  AMD Phenom(tm) II X4 955 Processor 
    CPU speed        =  3.193 ghz (4 logical threads) 
    Video Card       = GeForce GTX 460 1024gb – Driver proprietário da NVIDIA na versão 352.21
    
     
    • Fernando da Silva 2:19 am em 22 de fevereiro de 2016 Link Permanente | Resposta

      Obrigado pelo tutorial. Tenho algumas dúvidas:
      01 – toda vez que fecho o emualdor, ao abrir novamente, ele pedi para configurar a bios, como posso salvar a bios?
      02 – no meu fica na tela, botoes como se fosse para android, como posso retirar eles da tela?

  • Fm4lloc 3:40 am em 27 de January de 2015 Link Permanente | Resposta
    Tags: arcade, , , , qmc2   

    Compilando o QMC2 no Debian 

    INTRODUÇÃO

    QMC2 é um front-end gráfico para M.A.M.E (Multiple Arcade Machine Emulator), M.E.S.S (Multiple Emulator Super System) e U.M.E (Universal Machine Emulator) e derivados, sendo baseado em QT e licenciado sob a GPLv2.

    O programa fornece uma interface robusta para gerenciar ROMs, permitindo criar databases completas com sinopse, imagens, flayers, pré-visualização (snaphot) e vídeos sobre cada ROM da sua biblioteca. Também conta com ferramentas para auditar dumpagens e encontrar arquivos obsoletos ou inválidos.

    QMC2 é a melhor ferramenta do gênero disponível para Linux.

    img6

    O guia foi escrito embasado na versão 0.47 do QMC2 rodando sobre o Debian 7 64 bits.

    INSTALANDO O QMC2

    Existe a opção de baixar a versão estável das fontes direto do navegador ou usar Subversion para pegar o último lançamento do desenvolvedor, algo não recomendado, salvo se estiver tendo problemas com a versão estável.

    A página para downoad da versão estável é – http://sourceforge.net/projects/qmc2/

    Se precisar da lastest version use o Subversion e descarregue os arquivos-fonte.

    $ sudo apt-get install subversion
    $ mkdir ~/src; cd ~/src
    $ svn co https://svn.code.sf.net/p/qmc2/code/trunk qmc2-svn
    
    Atualiza a cópia local:
    $ cd ~/src/qmc2
    $ svn update
    
    Resolvendo dependências

    Instale-as direto do repositório:

    $ sudo apt-get install build-essential libqt4-dev libsdl-dev libphonon-dev libxmu-dev libqt4-sql-sqlite
    

    Não posso afirmar que serão apenas estas para você.

    O libqt4-sql-sqlite não é usado para compilação, serve para o QMC2 trabalhar normalmente e evitar isso:

    20:18:27.844: QtWarningMsg: QSqlQuery::prepare: database not open
    20:18:27.845: AVISO: falha ao carregar ‘id’ da base de dados do cache XML: consulta = ”, erro = ‘Driver not loaded Driver not loaded’
    
    Compilando

    Descompacte o pacote com os arquivos-fonte se tiver feito o download direto da página.

    $ tar -jxvf ./qmc2-0.47.tar.bz2
    

    Entre no diretório com os códigos-fonte e inicie a compilação:

    $ cd ./qmc
    $ make -j5
    

    Usei a opção -j5 para dividir o trabalho em 5 processos simultâneos e agilizar a compilação. A fórmula recomendada para compilar com esse parâmetro é pegar o número de núcleos do processador e somar 1. Não é assegurado o máximo de eficiência com essa receita, muitas vezes valores maiores podem proporcionar um desempenho melhor, porém manifestamente irrisório no caso de aplicativos pequenos como o nosso. Destarte, siga a regra: J = N + 1.

    A compilação retorna ao final:

    Build of QMC2 v0.47 complete 
    Target emulator: SDLMAME
    
    Instalando

    Use o comando:

    $ sudo make install
    

    Para facilitar futuras instalações e afastar o entediante trabalho de excluir os arquivos pertinentes ao QMC2 na unha, visto que o Makefile dele ainda não tem a opção uninstall, aconselho servi-se do Checkinstall e construir um pacote do tipo Debian a partir das fontes. Significa compilar tudo novamente.

    $ sudo apt-get install checkinstall
    $ sudo checkinstall -D --install=no --pkgarch=all
    

    Instalando o pacote gerado:

    $ sudo dpkg -i ./qmc2_20150123-1_all.deb
    
    INSTALANDO E CRIANDO UMA CONFIGURAÇÃO PARA O MAME

    $ sudo apt-get install mame
    

    Crie o arquivo meme.ini com a configuração default

    $ mkdir -p ~/.mame; cd ~/.mame
    $ mame -createconfig
    

    Abra o arquivo mame.ini recém-criado em ~/.mame/ e acrescente os caminhos das ROMs. Havendo mais de uma pasta de ROMs em locais diferentes separe elas usando o caractere “;” (ponto e vírgula). Exemplo:

    rompath    /media/Backup/Roms;/media/Backup/Neo-Geo
    
    EXECUTANDO O QMC2

    Na primeira vez que o QMC2 for iniciado será requisitado a localização das ROMs, executável SDLMAME etc. A única coisa que você deve adicionar é o caminho para o executável, normalmente /usr/games/mame. As demais configurações serão importadas do arquivo mame.ini configurado anteriormente.

    img

    Após iniciar:

    1 Entre no menu Ferramentas->Opções; selecione a aba “Emulador” e sua sub-aba “Configuração Global”.

    img2

    2 Clique sobre o botão “Importar de…”, depois “Selecionar Arquivo..”.

    3 Caminhe até a pasta ~/.mame e abra o arquivo mame.ini. A pasta ~/.mame não aparece como deve ter percebido, esta oculta. Para desocultar clique com o botão direito do mouse sobre a interface do selecionador de arquivos do QMC2 e ative a opção “Mostrar Ficheiros Escondidos”.

    img3

    4 Após importar a configuração clique em “OK”.

    5 Aperte Ctrl+R para recarregar a lista de ROMs. Isso apenas lista as ROMs disponíveis.

    6 Para verificar o estado dos jogos aperte Ctrl+1. O processo de verificação é demorado, porém vital para saber quais ROMs são reconhecidas e deverão funcionar no emulador.

    Os snapshots, artwork, ícones e afins são configurados em “Ferramentas->Opções…”; sub-aba “Arquivos / Diretórios” dentro da principal “Front end”.

    img4

    Para as imagens e ícones serem mostrados vá em “Verificar Imagens / Ícones…” (Ctrl+3 para abrir).

    img5

    Pronto. Só jogar e seguir aumentando sua base de dados. Os controles são configurados no MAME. Aperte a tecla TAB quando ele estiver rodando para acessa-las.

     
  • Fm4lloc 2:16 am em 20 de December de 2014 Link Permanente | Resposta
    Tags: , defy pro, firmware, flash, restaurar, restore, ,   

    Restaurando a ROM original do Motorola XT560 (Defy Pro) 

    O procedimento é relativamente rápido e fácil, basta ler com atenção e baixar a firmware correta.

    1. Instalar o RSD Lite 6.1.5 (As versões anteriores do RSD Lite não funcionaram corretamente):

    Download

    RSD Lite 6.1.5

    2. Fazer o download da firmware específica:

    Download

    Firmware XT560 Android 2.3.7 Vivo Brasil:
    mediafire – TNQ-0-166A-2013-A05-VIVO-Signed.zip

    Firmware XT560 Android 2.3.7 Rogers Canada:
    filefactory – TNQ-0-167A-1024-A05-Signed.zip

    3. Abra o RSD Lite e plugue o aparelho no computador. O programa deve exibir no campo status a mensagem “Connected…” como mostrado na imagem abaixo.

    flash_xt560_img1

    4. Clique sobre botão com “” 3 pontos e selecione a firmware baixada.

    flash_xt560_img2

    5. Clique sobre o botão “Start” e aguarde. O celular vai entrar em flash-mode e executar os procedimentos. É normal demorar para passar dos 71%.

    Jpeg

    flash_xt560_img4

    6. O aparelho será reiniciado automaticamente e entrará em uma tela verde após ser flasheado. Isso significa que tudo ocorreu bem.

    Jpeg

    7. Desconecte o aparelho do computador e pressione os botões “power + volume para cima” por alguns segundos e solte para que ele seja reiniciado e ligue normalmente.

    Jpeg

    Para fazer root no aparelho é só seguir este outro tutorial Obtendo acesso ROOT no Motorola Defy PRO XT560

     
    • julianolima 4:51 pm em 9 de fevereiro de 2015 Link Permanente | Resposta

      Amigo muito Grato pelo seu Tutorial, achei que nao ia dar certo Mas Consegui fazer meu Defy xt560 sair do Looping infinito com a Rom da Vivo. – Instalei esse app Roomtollmanager para trocar a Font do meu aparelho que ao pedir para reiniciar e instalar a nova fonte travou e Bricou o Sitema de meu Cel..

      Muito grato por Fornecer as Firmwares, estava quase jogando no lixo meu aparelho.

    • Juliano 11:59 pm em 9 de fevereiro de 2015 Link Permanente | Resposta

      PARABENS MEU CARO, CONSEGUI FAZER MEU DEFY XT560 VOLTAR A VIDA. – TINHA INSTALADO UM APP (ROMTOOLPRO) PARA TROCAR A FONT DE MEU APARELHO E AO BAIXAR A FONT, ESSE ROM TOOL ME PEDIU PARA FAZER O BACKUP DE MINHA FONT ORIGINAL DA MOTOROLA, QUE AO BAIXAR A FONT O APP ME PEDIU PARA REINICIAR O CEL……PRA MINHA SURPRESA NAO LIGOU MAIS, BRICOU EM LOOPING INFINITO NAO SAINDO MAIS DO LOGO DA MOTOROLA. MINHA ROM ERA RETAIL, ACHEI QUE NAO IA FUNCIONAR COM A DA VIVO DEU TUDO CERTO! ATE FIZ ROOT! QUEM TIVER O MESMO PROBLEMA COMO O MEU BAIXEM ESSA ROM DA VIVO E INSTALEM COM O RSD LITE NO SEU XT50 QUE ELE VOLTA DENOVO.

    • Karlos 1:40 pm em 2 de março de 2015 Link Permanente | Resposta

      Obrigado cara ..eu tinha apagado uns aqruivos do sistema com root ai nao quis pegar mais o cartao… agora sim tudo resolvido .. Obrigado.

    • alexandre 12:36 pm em 29 de março de 2015 Link Permanente | Resposta

      Amigo, faço o seu procedimento, mas:

      Não aparece a tela verde depois de flashear;
      Ao reiniciar, fica só na tela branca. Não consigo entrar na tela de boot com os botões pw+vol(-);

      Será que já era o aparelho?

    • joel 8:23 pm em 14 de abril de 2015 Link Permanente | Resposta

      Amigo o link ta quebrado da rom Firmware XT560 Android 2.3.7 Rogers Canada:

      • fm4lloc 8:29 pm em 17 de abril de 2015 Link Permanente | Resposta

        Não esta quebrado! acabei de entrar no link agora. É só clicar no botão “slow download” ao final da pagina do site e esperar o contador para que o botão “start download” apareça.

    • joel 3:14 pm em 4 de junho de 2015 Link Permanente | Resposta

      valeu amigo tava certo resovel meu poblema.

    • Juliano 10:39 am em 15 de junho de 2015 Link Permanente | Resposta

      Nao ta quebrado os links das Roms nao Joel, tente o Slow dowload se uma rom nao instalar tente a outra no meu cel flasheei as duas a Rogers e a da Vivo ambas funcionam perfeitamente!

    • Sise 7:38 pm em 8 de setembro de 2015 Link Permanente | Resposta

      Ola, deu mto certo já e a segunda fez que meu celular trava devido a falta de espeço da memoria que os aplicativos ocupa aff e segui passo a passo graças a Deus ele restaurou e voltou a funcionar! muitíssimo obrigada!

    • Fernando 9:29 am em 28 de janeiro de 2016 Link Permanente | Resposta

      Após o procedimento o google play da erro ao abrir e fecha.

    • Fernando 5:09 am em 6 de fevereiro de 2016 Link Permanente | Resposta

      Aki o problema é maior. Meu celular não entra no modo recovery nem a pau, tentei todas as formas, power+Vol -+Vol+, Power+Home+Vol+, e por ai adiante. Está em loop infinito, e o RSD lite não reconhece o celular, mas aparece como Motorola USB Modem no gerenciador de dispositivos. Tem alguma idéia do que pode ser feito???

    • donrapheal 5:54 am em 24 de maio de 2017 Link Permanente | Resposta

      thank you very much it worked

  • Fm4lloc 6:04 am em 3 de November de 2014 Link Permanente | Resposta
    Tags: 64 bits, amd, , , gtx, gtx 460, i386, , nvidia, pcsx2, playsation, sony, , x64   

    Instalando o pcsx2 no Debian 64bits 

    Nessa postagem vou mostrar como instalar o pcsx2, emulador de Playstation 2, no Debian Wheezy 64 bits.

    1. – Faça o download do pcsx2 na página: pcsx2

    2. – Descompactar o emulador

    $ tar -Jxf ./pcsx2-1.2.2-r5896-lnx.tar.xz
    

    3. Adicionar suporte à arquitetura i386 no dpkg.

    $ sudo dpkg --add-architecture i386
    $ sudo apt-get update
    

    4. Resolver as dependências ( lembrando que para instalar os pacotes libcg, libcggl e nvidia-cg-toolkit, será preciso habilitar o repositório non-free do Debian ):

    $ sudo apt-get install libcg:i386 libwxbase2.8-0:i386 libwxgtk2.8-0:i386 libportaudio2:i386 libsoundtouch0:i386 libegl1-mesa:i386 libsdl1.2debian:i386 lib32stdc++6 lib32bz2-1.0 libcggl:i386 libaio1:i386 nvidia-cg-toolkit:i386 libegl1-mesa:i386 ia32-libs ia32-libs-gtk

    5. Adquira o pacote contendo a Bios do Playsation 2 na página – Playstation 2 BIOS Pack; Descompacte o arquivo e mova o conteúdo da pasta “bios” para a do emulador.

    6. Inicie o script 'launch_pcsx2_linux.sh' encontrado na pasta do pcsx2.

    $ cd ~/pcsx2-1.2.2/
    $ ./launch_pcsx2_linux.sh
    

    Analise as linhas retornadas pelo pcsx2 e veja se possui alguma informação sobre dependências não satisfeitas. Se apresentar dependências, como por exemplo:

    $ ~/pcsx2-1.2.2$ ./launch_pcsx2_linux.sh 
    plugins/libGSdx-0.1.16.so: /usr/lib/i386-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by plugins/libGSdx-0.1.16.so)
    ERROR the plugin (plugins/libGSdx-0.1.16.so) miss some dependencies
    plugins/libGSdx-0.1.16.so: /usr/lib/i386-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by plugins/libGSdx-0.1.16.so)
            libEGL.so.1 => not found
     
    ERROR the plugin (plugins/libCDVDiso.so) miss some dependencies
            libbz2.so.1.0 => not found
     
    ERROR the plugin (plugins/libzzogl-0.4.0.so) miss some dependencies
            libCg.so => not found
        libCgGL.so => not found
        libwx_baseu-2.8.so.0 => not found
        libwx_gtk2u_core-2.8.so.0 => not found
        libwx_gtk2u_adv-2.8.so.0 => not found
     
    ERROR the plugin (plugins/libspu2x-2.0.0.so) miss some dependencies
            libportaudio.so.2 => not found
        libSoundTouch.so.0 => not found
        libwx_baseu-2.8.so.0 => not found
        libwx_gtk2u_core-2.8.so.0 => not found
        libwx_gtk2u_adv-2.8.so.0 => not found
     
    ./pcsx2: error while loading shared libraries: libwx_baseu-2.8.so.0: cannot open shared object file: No such file or directory
    

    a solução é utilizar a ferramenta apt-file para buscar arquivos dentro dos pacotes existentes no repositório do Debian. A instalação e utilização do apt-file se resume em:

    Instalá-lo:

    $ sudo apt-get install apt-file
    

    Prepará-lo:

    $ sudo apt-file update
    $ apt-file -a i386 update
    

    Buscar o arquivo:

    $ apt-file -a i386 search libportaudio.so.2
    

    Retorno:

    libportaudio2: /usr/lib/i386-linux-gnu/libportaudio.so.2 
    libportaudio2: /usr/lib/i386-linux-gnu/libportaudio.so.2.0.0 
    

    Fácil! Se a dependência for ‘libportaudio.so.2’ é só instalar o pacote ‘libportaudio2’ pelo apt-get ou aptitude.

    7. Após abrir o emulador siga configurando. O emulador não funcionou de primeira comigo, tive que atualizar o driver da GeForce GTX 460 para a versão 340.46.

    O retorno do emulador rodando após ser configurado:

    plugins/libGSdx-0.1.16.so: /usr/lib/i386-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by plugins/libGSdx-0.1.16.so)
    Interface is initializing.  Entering Pcsx2App::OnInit!
    Applying operating system default language...
    Loading language translation databases for 'Portuguese (Brazilian)' [pt_BR]
        pcsx2_Main not found -- translation dictionary may be incomplete.
        pcsx2_Iconized not found -- translation dictionary may be incomplete.
    SetLanguage: Requested translation is not implemented yet.
    Command line parsing...
    Command line parsed!
    (UserMode) Found portable install ini @ ~/pcsx2-1.2.2/portable.ini
     
    ZZOgl-PG:  Calling GSinit.
    ZZOgl-PG:  GSinit finished.
    ZZOgl-PG:  Calling GSopen2.
    ZZOgl-PG:  Capturing ZZOgl window.
    ZZOgl-PG:  glX-Version 1.4 with Direct Rendering
    ZZOgl-PG:  Supported Opengl version: 4.4.0 NVIDIA 340.46 on GPU: GeForce GTX 460/PCIe/SSE2. Vendor: NVIDIA Corporation
     
    ZZOgl-PG:  Maximum texture size is 16384 for Tex_2d and 16384 for Tex_NV.
    change vsync 0
    ZZOgl-PG:  Disabling MRT depth writing.
    ZZOgl-PG:  Use GL_RGBA32F for blockdata.
    ZZOgl-PG:  Fill bilinear blocks OK.!
    ZZOgl-PG:  Initialization successful.
    change vsync 0
    ZZOgl-PG:  Disabling MRT depth writing.
    ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
    ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
    ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
    ALSA lib pcm_dmix.c:957:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
    Cannot connect to server socket err = Arquivo ou diretório não encontrado
    Cannot connect to server request channel
    jack server is not running or cannot be started
    * SPU2-X: Enumerating PortAudio devices:
     *** Device 0: 'HDA ATI SB: ALC888 Analog (hw:0,0)' (ALSA)
     *** Device 1: 'HDA ATI SB: ALC888 Digital (hw:0,1)' (ALSA)
     *** Device 2: 'HDA NVidia: HDMI 0 (hw:1,3)' (ALSA)
     *** Device 3: 'HDA NVidia: HDMI 0 (hw:1,7)' (ALSA)
     *** Device 4: 'HDA NVidia: HDMI 0 (hw:1,8)' (ALSA)
     *** Device 5: 'HDA NVidia: HDMI 0 (hw:1,9)' (ALSA)
     *** Device 6: 'sysdefault' (ALSA)
     *** Device 7: 'front' (ALSA)
     *** Device 8: 'surround40' (ALSA)
     *** Device 9: 'surround41' (ALSA)
     *** Device 10: 'surround50' (ALSA)
     *** Device 11: 'surround51' (ALSA)
     *** Device 12: 'surround71' (ALSA)
     *** Device 13: 'iec958' (ALSA)
     *** Device 14: 'spdif' (ALSA)
     *** Device 15: 'default' (ALSA) (selected)
     *** Device 16: 'dmix' (ALSA)
    Decommitting host memory for virtual systems...
    Releasing host memory maps for virtual systems...
    

    O emulador respondeu muito bem aos jogos mais leves como “Crash bandicoot – The wrath of Cortex” , com media de 50fps no ajuste fino. Os jogos mais pesados não rodaram de modo satisfatório. O jogo “Tony Hawk’s Pro Skater 4” não executou com fluidez, manteve a media de 35~40fps com vários hacks habilitados, isso é quase jogável, mas a variação constante de FPS atrapalha muito. O áudio é um ponto forte do emulador, qualidade excelente, sem distorções ou cortes.

    Configuração da maquina:

    Operating System =  Linux 3.2.0-4-amd64 x86_64 
    Physical RAM     =  3966 MB 
    CPU name         =  AMD Phenom(tm) II X4 955 Processor 
    CPU speed        =  3.193 ghz (4 logical threads) 
    Video Card       = GeForce GTX 460 1024gb – Driver proprietário da NVIDIA na versão 340.46
    

    Algumas imagens do emulador.

    Este slideshow necessita de JavaScript.

     
    • Rafael 7:41 pm em 3 de agosto de 2015 Link Permanente | Resposta

      Opa! Excelente tuto!

      Realizei os procedimentos no Stretch, e apenas tive que baixar os seguintes pacotes do wheezy (pois não funcionavam ou não tinham as versões pra stretch):
      libwxbase2.8-0 libwxgtk2.8-0 libtiff4

    • kaed 3:21 pm em 22 de outubro de 2015 Link Permanente | Resposta

      Tentei adaptar para instalar no debian jessie, porém não tive sucesso!! Poderia atualizar o post ??

    • Diego 12:41 am em 2 de novembro de 2015 Link Permanente | Resposta

      Comigo não deu certo.

      Todas as dependências aparentemente estão instaladas, mas quando rodo o script ele encontra erros:

      ERROR the plugin (plugins/libCDVDnull.so) miss some dependencies
      libpangoxft-1.0.so.0 => not found

      ERROR the plugin (plugins/libonepad-1.1.0.so) miss some dependencies
      libpangoxft-1.0.so.0 => not found

      ERROR the plugin (plugins/libzzogl-0.4.0.so) miss some dependencies
      libpangoxft-1.0.so.0 => not found

      ERROR the plugin (plugins/libGSdx-0.1.16.so) miss some dependencies
      libpangoxft-1.0.so.0 => not found

      ERROR the plugin (plugins/libUSBnull-0.7.0.so) miss some dependencies
      libpangoxft-1.0.so.0 => not found

      ERROR the plugin (plugins/libCDVDiso.so) miss some dependencies
      libbz2.so.1.0 => not found

      ERROR the plugin (plugins/libFWnull-0.7.0.so) miss some dependencies
      libpangoxft-1.0.so.0 => not found

      ERROR the plugin (plugins/libdev9null-0.5.0.so) miss some dependencies
      libpangoxft-1.0.so.0 => not found

      ERROR the plugin (plugins/libspu2x-2.0.0.so) miss some dependencies
      libpangoxft-1.0.so.0 => not found

      • Fm4lloc 2:18 am em 3 de novembro de 2015 Link Permanente | Resposta

        Se está retornando isso, é porque realmente falta tais dependências.

        Siga o passo seis (6) para buscar o pacote correspondente a dependência, instalando posteriormente a sua versão 32bits. Se instalou correspondentes a versão 64bit, não ira funcionar.

        Para suprir a falta da libpangoxft-1.0.so.0 e libbz2.so.1.0 apresentadas no seu erro é só usar o comando:
        $ sudo apt-get install libpangoxft-1.0-0:i386 libbz2-1.0:i386

        Tem-se que especificar a opção i386 ao final do nome do pacote para descarregar o correto.

    • 4pr0p02 3:17 pm em 19 de setembro de 2016 Link Permanente | Resposta

      Segue vídeo da instalação do PCSX2 no Debian Jessie.

  • Fm4lloc 3:07 am em 18 de July de 2014 Link Permanente | Resposta
    Tags: codigos, computador antigo, configuração, conky, , gtk, , minimalista, openbox, thunar, tint2   

    Montando um ambiente minimalista com Debian Linux 

    1024x768_scrotINTRODUÇÃO

    Nesse texto explicarei como ajustar um ambiente minimalista e de alta performance com o Debian.
    Consegui um sistema altamente estável, leve e funcional, consumindo menos de 130M de RAM quando ocioso.

    Tive o cuidado de testar todos os passos e compartilhar as configurações usadas pelos principais programas.

    As dicas expostas podem ser ridiculamente fáceis ou extremamente complicadas para algumas pessoas, especialmente para as não habituadas ao Linux.

    O texto considera que o aventureiro tenha feito uma instalação limpa do Debian, sem ter selecionado a coleção de software indicada como Debian desktop evironment durante o procedimento; Os utilitários standard de sistema são aconselháveis.

    seleção de software debian

    SUPER USUÁRIO

    Antes de tentar algo configure o comando sudo. Considero perigoso ficar como root por muito tempo, tenho receio de assumir privilégios de super usuário e esquecer de abandona-los.

    # apt-get install sudo
    

    Descrição do pacote:

    Provide limited super user privileges to specific users Sudo is a program designed to allow a sysadmin to give limited root privileges to users and log root activity. The basic philosophy is to give as few privileges as possible but still allow people to get their work done.

    Após a instalação abra o visudo para editar o arquivo /etc/sudoers de forma segura. É só digitar visudo como root.

    # visudo
    

    Com o arquivo aberto adicione a seguinte linha:

    usuário ALL=(ALL:ALL) ALL
    

    Mude a palavra “usuário” pelo nome do utilizador, salve as modificações pressionando Ctrl+o; sair é Ctrl+x.

    É recomendado adicionar no local destacado para manter o layout do sudoers organizado.

    # User privilege specification
    root ALL=(ALL:ALL) ALL 
    --ADICIONAR AQUI--
    

    MEDO DA ESCURIDÃO

    thumb_6206_34

    Se um gerenciador de janelas não foi escolhido durante a instalação é provável que o sistema careça do Xorg e seus afins.

    Afinal, o que é o Xorg ?
    Também conhecido como Xserver, trata-se da implementação aberta do X window system version 11, vital para correr aplicações GUI (Graphical User Interface). O pacote traz um conjunto de ferramentas e bibliotecas responsáveis por desenhar as aplicações na tela, sejam elas feitas com GTK, Qt ou outra toolkit.

    Instalando:

    $ sudo apt-get install xorg
    

    GERENCIADOR DE JANELAS, ARQUIVOS E LOGIN.

    obmenu thunar icones fazenza 9752_large

    Execute:

    $ sudo apt-get install openbox obconf obmenu menu thunar thunar-archive-plugin slim
    
    openbox Gestor de janelas.
    obconf Utilitário gráfico para configurar as preferências do openbox.
    obmenu Ferramenta gráfica para editar menus do Openbox
    menu Gera e sincroniza menus de programas para todas as aplicações sensíveis a menu
    thunar Gerenciador de arquivos.
    thunar-archive-plugin Plugin de extração e criação de arquivos para o Thunar.
    slim Login manager

    Escreva startx para subir o modo gráfico ou reinicie o sistema com o comando “sudo shutdown -r now”.

    O primeiro contato com a área de trabalho pode chocar, é perceptível a crueza do sistema, não existe nada além do menu principal do Openbox. Mas calma, não é hora de desesperar, o esforço vai valer a pena.

    A falta de um sub-menu dinâmico abrigando atalhos para os softwares é perceptível, o menu padrão não é muito organizado. Tal contratempo pode ser resolvido com o openbox-menu (A fast and lightweight pipe-menu for Openbox).

    openbox-menu

    Obtendo os sources:

    $ wget https://mimarchlinux.googlecode.com/files/openbox-menu-0.3.6.7.tar.bz2
    

    Certamente você precisará resolver algumas dependências para gerar o binário:

    $ sudo apt-get install build-essential libgtk2.0-dev libmenu-cache1-dev
    

    Descompactando, compilando e instalando:

    $ tar -jxvf openbox-menu-0.3.6.7.tar.bz2
    $ cd openbox-menu-0.3.6.7
    $ make
    $ sudo make install
    

    É opcional, mas é possível construir um pacote Debian e facilitar futuras instalações:

    $ sudo apt-get install checkinstall
    $ sudo checkinstall -D --install=no --pkgarch=all
    $ sudo dpkg -i openbox-menu_0.3.6.7-1_all.deb
    

    Isso vai recompilar o programa.

    Depois da instalação crie um novo pipe-menu através do programa obmenu (instalado anteriormente), é só clicar sobre o botão add nele e escolher Pipemenu. O campo id deve ser preenchido com o valor “desktop-app-menu”, enquanto o campo execute recebe o comando “/usr/bin/openbox-menu /etc/xdg/menus/xfce-applications.menu”. Ambos sem aspas.

    Nada impede a inserção do novo pipe-menu diretamente no documento ~/.config/openbox/menu.xml:

    <menu id="desktop-app-menu" label="Applications" execute="/usr/bin/openbox-menu /etc/xdg/menus/xfce-applications.menu" />
    

    O Openbox deve ser reiniciado em caso de erro.

    BARRA DE TAREFAS, SYSTRAY, VOLUME E CONEXÕES DE REDE

    O sistema ainda não possui barra de tarefas e systray (área de notificação). Instale:

    $ sudo apt-get install tint2 trayer
    

    tint2:
    tint2-example

    Para deixar semelhante ao da imagem acima as linhas ulteriores deverão ser copiadas para ~/.config/tint2/tint2rc

    # Tint2 config file
    # Generated by tintwizard (http://code.google.com/p/tintwizard/)
    # For information on manually configuring tint2 see http://code.google.com/p/tint2/wiki/Configure
     
    # Background definitions
    # ID 1
    rounded = 0
    border_width = 0
    background_color = #000000 100
    border_color = #414140 100
     
    # ID 2
    rounded = 0
    border_width = 0
    background_color = #1F262E 100
    border_color = #232426 100
     
    # ID 3
    rounded = 0
    border_width = 0
    background_color = #000000 100
    border_color = #232426 1000
     
    # Panel
    panel_monitor = all
    panel_position = bottom center horizontal
    panel_size = 100% 26
    panel_margin = 0 0
    panel_padding = 7 0 7
    panel_dock = 0
    wm_menu = 0
    panel_layer = top
    panel_background_id = 1
     
    # Panel Autohide
    autohide = 0
    autohide_show_timeout = 0.3
    autohide_hide_timeout = 2
    autohide_height = 2
    strut_policy = follow_size
     
    # Taskbar
    taskbar_mode = single_desktop
    taskbar_padding = 2 3 2
    taskbar_background_id = 0
    taskbar_active_background_id = 0
     
    # Tasks
    urgent_nb_of_blink = 8
    task_icon = 1
    task_text = 1
    task_centered = 1
    task_maximum_size = 140 35
    task_padding = 6 2
    task_background_id = 3
    task_active_background_id = 2
    task_urgent_background_id = 2
    task_iconified_background_id = 3
    task_tooltip = 0
     
    # Task Icons
    task_icon_asb = 70 0 0
    task_active_icon_asb = 100 0 0
    task_urgent_icon_asb = 100 0 0
    task_iconified_icon_asb = 70 0 0
     
    # Fonts
    task_font = sans 10
    task_font_color = #FFFFFF 68
    task_active_font_color = #FFFFFF 83
    task_urgent_font_color = #FFFFFF 83
    task_iconified_font_color = #FFFFFF 68
    font_shadow = 0
     
    # System Tray
    systray = 1
    systray_padding = 0 4 5
    systray_sort = ascending
    systray_background_id = 0
    systray_icon_size = 16
    systray_icon_asb = 70 0 0
     
    # Clock
    time1_format = %H:%M
    time1_font = sans 10
    time2_format = %A %d %B
    time2_font = sans 8
    clock_font_color = #FFFFFF 74
    clock_padding = 1 0
    clock_background_id = 0
    clock_rclick_command = orage
     
    # Tooltips
    tooltip_padding = 2 2
    tooltip_show_timeout = 0.7
    tooltip_hide_timeout = 0.3
    tooltip_background_id = 1
    tooltip_font = sans 10
    tooltip_font_color = #000000 80
     
    # Mouse
    mouse_middle = none
    mouse_right = close
    mouse_scroll_up = toggle
    mouse_scroll_down = iconify
     
    # Battery
    #battery = 0
    #battery_low_status = 10
    #battery_low_cmd = notify-send "battery low"
    #battery_hide = 98
    #bat1_font = sans 8
    #bat2_font = sans 6
    #battery_font_color = #FFFFFF 74
    #battery_padding = 1 0
    #battery_background_id = 0
     
    # End of config
    

    Leia a documentação da tint2 AQUI.

    Penso que você também queira aplicações para controlar o volume e gerir as conexões de rede

    $ sudo apt-get install alsa-base volumeicon-alsa wicd-gtk
    

    Instalei tudo, mas a barra de tarefas não apareceu ?
    Calma. Não vai aparecer automaticamente, adiante ensino como resolver.

    FIXANDO OS APLICATIVOS PARA ABRIREM NA INICIALIZAÇÃO DO OPENBOX

    Antes de sair invocando tint2, trayer e volumeicon pelo terminal, saiba, existe a possibilidade de despertá-los junto ao Openbox.

    Durante o carregamento do Openbox é executado o script autostart.sh, nele é inserido comandos que correrão paralelamente ao carregamento sessão.

    Para editá-lo:

    $ nano ~/.config/openbox/autostart.sh
    

    O conteúdo depende da necessidade pessoal, todavia, esse serve de base:

    # thunar no modo daemon
    thunar --daemon &
    
    # barra de tarefas
    tint2 &&
    
    # systray
    trayer --expand true --transparent true --alpha 255 --edge bottom --align right --expand true --SetDockType true --widthtype request &&
    
    # controle de volume
    volumeicon &
    

    Dê permissão:

    $ chmod 755 ~/.config/openbox/autostart.sh
    

    A sessão deve ser reiniciada para surgir efeito. O comando “openbox –exit” forçaria a retomada para a tela de login, mas não é o mais recomendado. Você pode contemplar os novos ajustes executando o script manualmente.

    PAPEL DE PAREDE

    O plano de fundo é setado com o Nitrogen:

    $ sudo apt-get install nitrogen
    

    Abra utilitário gráfico e escolha o papel de parede.

    A fim de exibir a imagem durante a inicialização acrescente no começo do seu script ~/.config/openbox/autostart.sh:

    nitrogen --restore &
    

    ATALHOS DE TECLADO

    Os atalhos vão dentro de ~/.config/openbox/rc.xml

    Exemplo para abrir o Thunar pressionando Alt+F

    <keybind key="A-F">
    	<action name="execute">
    		<execute>thunar</execute>
    	</action>
    </keybind>
    

    PERSONALIZANDO O SISTEMA COM TEMAS GTK, ÍCONES, CURSORES E FONTES.

    Os temas e cursores baixados manualmente devem ficar na pasta ~/.themes, os ícones na ~/.icons, enquanto as fontes vão para ~/.fonts

    Comece as personalizações com os utilitários:

    $ sudo apt-get install lxappearance gtk2-engines
    
    lxappearance Ferramenta para auxiliar na customização das GTK+ themes, ícones, fontes, cursor, esquema de cor. lxappearance
    gtk2-engines Este pacote contém o motor (“engine”) que se esconde por trás dos temas para GTK+ e aplicações Gnome. Ele redefine o modo como as widgets do GTK+ são desenhadas. O pacote inclui os seguintes motores: Clearlooks, Crux, High contrast, Industrial, LighthouseBlue, Metal, Mist, Redmond95, ThinIce.

    NA UNHA

    O lxappearance fornece uma GUI muito intuitiva para customizar o Desktop, mas acredito que a configuração manual contribui para o conhecimento do fuçador.

    Segue o esquema para as configurações manuais:

    No terminal:

    $ touch ~/.gtkrc-2.0
    $ touch ~/.gtkrc-2.0.mine
    

    O meu ~/.gtkrc-2.0 guarda as linhas:

    include "/home/fm4lloc/.themes/Bridge/gtk-2.0/gtkrc"
    include "/home/fm4lloc/.gtkrc-2.0.mine"
    

    Mude os caminhos para as correspondências equivalentes no seu computador.

    A substituição dos ícones e fontes limita-se em tecer dentro do ~/.gtkrc-2.0.mine uma estrutura próxima de:

    style "Sans"
    {
    	font_name = "Sans 13"
    }
    widget_class "*" style "Sans" 
    
    gtk-font-name = "Sans 12"
    gtk-icon-sizes = "panel-menu=16,16:panel=16,16:gtk-button=13,13"
    gtk-fallback-icon-theme = "Faenza"
    gtk-icon-theme-name = "Faenza-Darkest"
    gtk-toolbar-style   = GTK_TOOLBAR_ICONS	#Only icons
    gtk-toolbar-style   = GTK_TOOLBAR_TEXT	#Only text
    gtk-toolbar-style   = GTK_TOOLBAR_BOTH	#Both icons and text; default, used if nothing is specified.
    gtk-toolbar-style   = GTK_TOOLBAR_BOTH_HORIZ	#Icons and text next to the icons
    

    Faça as modificações necessárias. O pacote de ícones usado no exemplo é o Faenza, o nome colocado nos campos pertinentes aos ícones é o mesmo das respectivas pastas situadas em ~/.icons.

    Exemplo:
    ~/.icons/Faenza
    ~/.icons/Faenza-Darkest

    Você não terá muita dificuldade, a sintaxe do documento é instrutiva.

    Para mudar o tema dos cursores abra o documento .Xresources

    $ nano ~/.Xresources
    

    E escreva nele:

    Xcursor.theme: DMZ-White
    Xcursor.size:  16
    

    O tema do cursor definido no exemplo faz parte do pacote dmz-cursor-theme.

    Para pesquisar outros estilos de cursor presentes na maquina:

    $ find /usr/share/icons -type d -iname "*cursors*"
    $ find ~/.icons -type d -iname "*cursors*"
    

    Exemplo de saída:
    /usr/share/icons/Adwaita/cursors
    /usr/share/icons/DMZ-White/cursors
    /usr/share/icons/DMZ-Black/cursors

    DESLIGAR, REINICIAR E HIBERNAR COM OBSHUTDOWN

    Não gosto de desligar o computador escrevendo shutdown ou halt, prefiro encerrar as sessões usando o obshutdown, ele mostra uma tela limpa e intuitiva para apagar a maquina.

    obshutdown-scrot

    Infelizmente ele não existe no repositório estável, será preciso compila-lo.

    As dependências:

    $ sudo apt-get install libgtk2.0-dev git automake autoconf
    

    Obtenha os sources e deixe o processador com o trabalho duro.

    $ git clone https://github.com/panjandrum/obshutdown.git
    $ cd obshutdown
    $ ./configure
    $ make
    $ sudo make install
    

    Lembrando, para criar um .deb:

    $ sudo checkinstall -D --install=no --pkgarch=all
    $ sudo dpkg -i obshutdown_0.1-rc1-1_all.deb
    

    Copie a configuração default para $HOME:

    $ mkdir -p ~/.config/obshutdown/
    $ cp /usr/local/share/obshutdown/example.rc ~/.config/obshutdown/obshutdown.rc
    

    A configuração do meu Obshutdown com os botões em português:

    #
    # Openbox shutdown dialog
    # This is example obshutdown rc file
    # Copy this file to ~/.obshutdown.rc and customise
    #
     
    [general]
    version =        0.1-rc1
    verbose =        false
    default_action = shutdown
    composite =      false
    theme =          oxygen
    buttons =        cancel logout shutdown restart
    #buttons =        cancel logout shutdown restart suspend hibernate
     
    [actions]
    logout =         openbox --exit
    shutdown =       dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
    restart =        dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
    lock =
    switch =
    suspend =        dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
    hibernate =      dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate
    custom = 
     
    [shortcuts]
    logout =         l
    shutdown =       s
    restart =        r
    lock =
    switch =
    suspend =        u
    hibernate =      h
    custom = 
     
    [labels]
    cancel =         CANCELAR
    logout =         LOGOUT
    restart =        RESETAR
    shutdown =       DESLIGAR
    lock =           TRAVAR
    switch =         TROCAR USUARIO
    suspend =        SUSPENDER
    hibernate =      HIBERNAR
    

    Não esqueça de incluir o obshutdown ao menu do openbox.

    MONITOR DE SISTEMA

    Quando se pensa em monitor de sistema altamente configurável, a palavra que galga na cabeça dos usuários Linux é a conky.

    $ sudo apt-get install conky
    

    Conky é um caso a parte no texto, não vou me aprofundar nele, a página dos desenvolvedores fornece vários tutoriais de como configurá-lo. Porém, como é de praxe, disponibilizarei o meu:

    conkyshot

    Salvar o conteúdo para ~/.conkyrc

    # Minimalist conkyrc
    # used font
    #---------------------------------------------------------------------#
    # PF Tempesta Seven	=> http://www.dafont.com/pf-tempesta-seven.font
    #---------------------------------------------------------------------#
    
    #avoid flicker
    double_buffer yes
    
    #own window to run simultanious 2 or more conkys
    own_window  yes
    own_window_transparent true
    own_window_type normal
    own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
    
    # Contour
    draw_outline no
    
    # Shades
    draw_shades no
    default_shade_color 000000
    
    # Position
    gap_y 10
    gap_x 10
    
    # Alignment
    alignment top_left
    # alignment botton_left
    
    # Interval
    update_interval 2
    
    # Colors
    default_color FFFFFF
    color1 1793D1
    color2 535353
    color3 F0F0F0
    color4 D9D9D9
    color5 1793D1
    
    # Font
    use_xft yes
    xftfont PF Tempesta Seven:pixelsize=8
    
    # Text alpha when using Xft
    #xftalpha 0.10
    
    # to prevent window from moving
    use_spacer none
    minimum_size 1024 0
    
    TEXT
    ${color2}CPU1: ${color3}${cpu cpu1}% \
    ${color2}CPU2: ${color3}${cpu cpu2}% \
    ${color2}CPU1: ${color3}${cpu cpu2}% \
    ${color2}CPU4: ${color3}${cpu cpu4}% ${color5} | \
    ${color2}Ram: ${color3}${mem}/${memmax} ${color5} | \
    ${color2}Swap: ${color3}${swapperc}% ${color5} | \
    ${color2}Home: ${color3}${fs_free_perc /home}% ${color4}free ${color5} | \
    ${color2}Root: ${color3}${fs_free_perc /root}% ${color4}free ${color5} | \
    ${color2}Eth0: ${color4}DOWN ${color3}${downspeed eth0} ${color4}UP ${color3}${upspeed eth0} ${color5} | \
    ${color2}Uptime: ${color3}${uptime}${color5} | \
    ${color2}Top: ${color3} ${top name 1}${top cpu 1}${top mem 1}
    

    Pesquise mais sobre o conky e conheça as possibilidades.

    OS INDISPENSÁVEIS

    Para fechar, coloco os aplicativos que considero fundamentais para ter no sistema:

    $ sudo apt-get install sakura volumeicon-alsa wicd-gtk evince mirage gmrun geany scrot file-roller brasero audacious vlc galculator transmission-gtk nitrogen iceweasel iceweasel-l10n-pt-br icedove icedove-l10n-pt-br xscreensaver ntfs-config gimp inkscape
    
    sakura Emulador de terminal decente
    volumeicon-alsa Indicador de volume
    wicd-gtk Gestor de Redes
    evince Leitor de PDF
    mirage Visualizador de imagem
    gmrun Lançador de aplicativo
    geany Editor de texto/IDE
    scrot Capturador de tela
    file-roller Manipulador de arquivos compactados
    brasero Gravador de CD/DVD
    audacious Player MP3
    vlc Player multimédia, ideal para assistir vídeos
    galculator Calculadora
    transmission-gtk Cliente Torrent
    nitrogen Gerenciador de papéis de parede
    iceweasel Navegador
    iceweasel-l10n-pt-br Linguagem português para o iceweasel
    icedove Cliente de e-mail
    icedove-l10n-pt-br Linguagem português para o icedove
    xscreensaver Protetor e travador de tela
    ntfs-config Utilitário gráfico para montar partições NTFS
    gimp Editor de imagens
    inkscape Editor vetorial
    Simples escaneador de documentos simple-scan

    Libre Office em português

    $ sudo apt-get install libreoffice libreoffice-l10-pt-br libreoffice-gtk
    
     
    • Vulto 1:06 pm em 15 de março de 2016 Link Permanente | Resposta

      Excelente tutorial.
      Me fez conhecer mais do Debian e acabei de fazer minha instalação.
      Acabei tendo várias ideias depois disso.
      Valeu

  • Fm4lloc 1:34 am em 16 de June de 2014 Link Permanente | Resposta
    Tags: , estavel, game, jogo, libc6,   

    Atualizando a libc6 no Debian wheezy (7.5) 

    Usar a versão estável do Debian é garantia de ter um sistema amadurecido e com pacotes confiáveis. Contudo, tal benefício não agrada todos, existem pessoas que sentem-se incomodadas em trabalhar com versões antigas dos programas, o que não vejo como problema.

    Mesmo com tal posicionamento sobre eventuais updates, reconheço, as vezes precisamos usar aplicativos novos e atualizados como libc6 e Steam.

    A Steam é uma plataforma usada para o download de jogos digitais, indisponível no repositório stable. O pacote presente na página oficial do projeto também não funciona corretamente no Debian Whezzy, pois exige uma versão da libc6 desencontrada no repositório em questão.

    É possível resolver o problema assim:

    [1] Adicione o repositório do Debian sid em sua sources.list:

    # Debian sid
    deb http://ftp.debian.org/debian sid main
    

    [2] Faça o update dos repositórios e atualize a libc6:

    $ sudo apt-get update
    $ sudo apt-get -t sid install libc6 libc6-dev libc6-dbg
    

    Isso funcionou bem aqui, não quebrou o sistema nem causou incompatibilidades..

    Observe quais pacotes estão sendo atualizados e removidos, se apresentar algo sem ligação direta ao nome libc6 é recomendado cancelar a atualização.

    [3] Remova o repositório do Debian Sid e dê um update novamente nos repositórios.

    Veja como ficou as versões após as atualizações:

    ii  libc6:amd64      2.19-1  amd64  Embedded GNU C Library: Shared libraries
    ii  libc6:i386       2.19-1  i386   Embedded GNU C Library: Shared libraries
    ii  libc6-dbg:amd64  2.19-1  amd64  Embedded GNU C Library: detached debugging symbols
    ii  libc6-dev:amd64  2.19-1  amd64  Embedded GNU C Library: Development Libraries and Header Files
    ii  libc6-i386       2.19-1  amd64  Embedded GNU C Library: 32-bit shared libraries for AMD64
    ii  libc6-i686:i386  2.19-1  i386   Embedded GNU C Library: Shared libraries [i686 optimized]
    
     
  • Fm4lloc 4:34 am em 6 de January de 2014 Link Permanente | Resposta
    Tags: artigo, , , exemplos, expressão regular, expression, , open source, regex, regexp, regular, tutorial   

    Usando expressões regulares em C 

    O presente artigo procura explicar o uso de expressões regulares em conjunto com a linguagem C, desmistificando funções e ensinando a extrair o máximo delas. Adianto que a leitura não é recomendado para elite programmers ou iniciantes, mas pessoas com conhecimento prévio em expressões regulares.

    Definir regras e encontrar padrões demandam códigos extensos e de difícil manutenção. As expressões regulares aparecem é nesse cenário, facilitando e transformando o raciocínio lógico do programador em uma composição de símbolos recheada de significados.

    É normal que programadores novatos ou pessoas que tiveram os primeiros contatos com expressões regulares em Perl, Python ou até mesmo PHP, sejam assombradas quando escultam o termo regex e C na mesma frase. Ocorre que as linguagens destacas anteriormente, com exceção de C, além de serem interpretadas, nasceram prontas para trabalhar com o melhor que concerne a expressões regulares.

     

    O PRIMEIRO CÓDIGO

    O código ulterior compila a expressão e testa se a string casa com um padrão.

    #include <stdio.h>
    #include <regex.h>
    
    /*
     *  Written by: fm4lloc <fm4lloc@gmail.com>
     *
     *  This program is free software; you can redistribute it and/or modify
     *  it under the terms of the GNU General Public License as published by
     *  the Free Software Foundation; either version 2 of the License, or
     *  (at your option) any later version.
     *
     */
    
    int main ()
    {
    	regex_t preg;
    	reg_errcode_t err;
    	const char regex[]  = "^(([^:/?#]+):)?"       \
    						  "(//([^/?#]*))?"        \
    						  "([^?#]*)(\\?([^#]*))?" \
    						  "(#(.*))?"; 
    
    	const char string[]	= "https://fm4lloc.wordpress.com/";
    
    	if ( ( err = regcomp (&preg, regex, REG_EXTENDED|REG_NOSUB) ) != REG_NOERROR)
    		return err;
    
    	if ( (err = regexec (&preg, string, 0 , NULL, 0 ) ) != REG_NOERROR )
    		printf ("No match!");
    	else
    		printf ("Match!");
    
    	regfree (&preg);
    	return 0;
    }
    

    A função regcomp () compila a expressão.
    Esta é a declaração de regcomp ():

    int regcomp(regex_t *preg, const char *regex, int cflags);
    

    *preg é um ponteiro para pattern buffer, ele aponta para o bloco de memória contento o padrão de pesquisa preparado por regcomp () através dos parâmetros fornecidos.

    *regex aponta para um vetor de char contento a expressão regular, enquanto cflags é utilizado para determinar o tipo de compilação através de flags.

    As flags são:

    REG_EXTENDED Usa o padrão POSIX Expressão Regulares Estendidas na interpretação da regex. Quando ela é usada os metacaracteres não precisam ser escapados com a barra invertida (\) para serem identificados. O escape é usado apenas para transformar metacaractere em literal.
    O uso da flag permite isso:

    ^(a.*)$

    Quando omitida, a expressão é tratada através do padrão POSIX Expressões Regulares Básicas. Esse padrão necessita do uso de barras invertidas para a identificação dos metacaracteres.

    ^\\(a.*\\)$

    Recomendo estes links para aprofundar no tema:
    Link1
    Link2

    REG_ICASE Não diferencia letras maiúsculas de minúsculas.
    REG_NOSUB Ignora suporte aos parâmetros nmatch e pmatch usados pela função regexec().Esta flag é fixada quando se deseja apenas testar a entrada de dados com um padrão sem coletar informações adicionais.
    REG_NEWLINE Trata a entrada de dados com várias linhas individualmente.
    Exemplo:

    char string[] = “Olá\nMundo”;
    
    const char regex[] = "^O(.*)$";
    

    Como a entrada possui quebra de linha, a palavra “Olá” e “Mundo” são tratadas individualmente.

    Se omitida, a entrada será tratada como um todo, resultando em “Olá\\nMundo”.

    Voltando a explicação do código, a função regexec() avalia e busca os dados correspondentes a expressão.

    A declaração é:

    int regexec(const regex_t *preg, const char *string,
    		size_t nmatch, regmatch_t pmatch[], int eflags);
    
    *preg Ponteiro para pattern buffer.
    *string Ponteiro para os dados de entrada.
    nmatch Número de matchs, isto é, quantidade casada.
    *pmach[] Ponteiro para um array de regmatch_t.
    eflags
    REG_NOTBOL Ignora o metacaractere circunflexo ‘^’ (inicio de linha).
    REG_NOTEOL Ignora o metacaractere cifrão ‘$’ (final da linha)

    A estrutura de *pmach[] guarda em seus elementos informações sobre o casamento.

    A declaração de regmatch_t em regex.h é:

    typedef struct
    {
    	/* Posição do primeiro byte da sub-string casada
    	 */
    	regoff_t rm_so;
    
    	/* Posição do último byte da sub-string casada
    	 */
    	regoff_t rm_eo;
    } regmatch_t;
    

    A última função presente no código em analise é regfree (), que liberar o pattern buffer.

    Declaração:

    void regfree(regex_t *preg);
    

     

    EXIBINDO AS SUB-STRINGS ENCONTRADAS

    Leia os comentários para entender o código, recomento que compile e faça alterações se achar valido.

    #include <stdio.h>
    #include <stdlib.h>
    #include <regex.h>
    
    /*
     *  Written by: fm4lloc <fm4lloc@gmail.com>
     *
     *  This program is free software; you can redistribute it and/or modify
     *  it under the terms of the GNU General Public License as published by
     *  the Free Software Foundation; either version 3 of the License, or
     *  (at your option) any later version.
     *
     */
    
    int main ()
    {
    	regex_t preg;
    	reg_errcode_t err;
    	regmatch_t *pmatch = NULL;
    	size_t nmatch, i;
    
    	const char regex[]  =	"^(([^:/?#]+):)?"       \
    							"(//([^/?#]*))?"        \
    							"([^?#]*)(\\?([^#]*))?" \
    							"(#(.*))?";
    
    	const char string[]	= "https://fm4lloc.wordpress.com/";
    
    	if( ( err = regcomp (&preg, regex, REG_EXTENDED) ) != REG_NOERROR)
    		return err;
    
    	/*
    	 * Pega o número de matchs e aloca uma lista de regmatch_t.
    	 * ======================================================================
    	 * Soma-se 1 para obter a quantidade total de matchs, pois a
    	 * contagem inicia em zero.
    	 *
    	 * Os elementos contidos em pmatch[0] guardam a posição do primeiro
    	 * e último byte da string, os demais registros correspondem
    	 * aos grupos representados pelo metacaratere (parênteses).
    	 *
    	 * Cada sub-string é capturada por um grupo.
    	 */
    	nmatch = preg.re_nsub + 1;
    
    	/* aloca pmatch */
    	pmatch = (regmatch_t *) malloc (sizeof(regmatch_t) * nmatch);
    
    	if ( (err = regexec (&preg, string, nmatch , pmatch, 0 ) ) != REG_NOERROR )
    	{
    		free (pmatch);
    		return err;
    	}
    
    	/* mostra as sub-strings */
    	for(i = 0; i < nmatch; i++)
    	{
    		printf ("pmatch[%ld] (%d : %d)\t=> %.*s\n",
    			i,
    			pmatch[i].rm_so,pmatch[i].rm_eo,
    			pmatch[i].rm_eo - pmatch[i].rm_so,
    			string + pmatch[i].rm_so);
    	}
    
    	free (pmatch);
    	regfree (&preg);
    	return 0;
    }
    

    Retorno:

    pmatch[0] (0 : 29) => https://fm4lloc.wordpress.com/
    pmatch[1] (0 : 5) => http:
    pmatch[2] (0 : 4) => http
    pmatch[3] (5 : 28) => //fm4lloc.wordpress.com
    pmatch[4] (7 : 28) => fm4lloc.wordpress.com
    pmatch[5] (28 : 29) => /
    pmatch[6] (-1 : -1) =>
    pmatch[7] (-1 : -1) =>
    pmatch[8] (-1 : -1) =>
    pmatch[9] (-1 : -1) =>

    As sub-strings inexistentes recebem (-1, -1).

    Grupos:

    ^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?
    _12____________3__4__________5_______6__7________8_9____
    

     

    ENCONTRANDO NA STRING TODAS AS OCORRÊNCIAS DO PADRÃO.

    No começo do artigo comentei que Perl nasceu pronto para trabalhar com o melhor que concerne a expressões regulares, não mentei, vou provar no próximo código.

    Para encontrar todas as ocorrências do padrão em Perl:

    #!/usr/bin/perl
    
    use warnings;
    use strict;
    
    my $string	=	"1991/04;".
    				"1992/12;".
    				"1992/05;".
    				"1994/03;".
    				"1995/09;";
    
    for ($string =~ m/([0-9]+)\/([0-9]+)/g)
    {
    	print "$_\n";
    }
    
    Saída
    1991
    04
    1992
    12
    1992
    05
    1994
    03
    1995
    09

    Tudo é simplificado, bastou o uso da opção “g” ao final da expressão. Em C as coisas ficam um pouco mais complexas.

    A mesma ideia em C:

    #include <stdio.h>
    #include <stdlib.h>
    #include <regex.h>
    #include <string.h>
    /*
     *  Written by: fm4lloc <fm4lloc@gmail.com>
     *
     *  This program is free software; you can redistribute it and/or modify
     *  it under the terms of the GNU General Public License as published by
     *  the Free Software Foundation; either version 2 of the License, or
     *  (at your option) any later version.
     *
     */
    
    int main ()
    {
    	regex_t preg;
    	reg_errcode_t err;
    	regmatch_t *pmatch = NULL;
    	size_t	offset = 0, nmatch, i, j;
    
    	const char regex[]  =	"([0-9]+)/([0-9]+)";
    
    	const char string[]	=	"1991/04;" \
    							"1992/12;" \
    							"1992/05;" \
    							"1994/03;" \
    							"1995/09;";
    
    	if( ( err = regcomp (&preg, regex, REG_EXTENDED) ) != REG_NOERROR)
    		return err;
    
    	nmatch = preg.re_nsub + 1;
    	/*
    	 * Define o modo de impressão das sub-strings.
    	 * Só imprime sub-strings do índice zero se não
    	 * existir grupos.
    	 */
    	if (nmatch == 1)
    		j = 0;
    	else
    		j = 1;
    
    	pmatch = (regmatch_t *) malloc (sizeof(regmatch_t) * nmatch);
    
    	/* Tenta casar enquanto não for retornado erro.
    	 *
    	 * O endereço de string é incrementado com offset para evitar
    	 * buscas no mesmo trecho.
    	 */
    	while ((err = regexec (&preg, string + offset,
    		nmatch ,pmatch, 0 )) == REG_NOERROR)
    	{
    		/* mostra as sub-strings.
    		 */
    		for(i = j; i < nmatch; i++)
    			printf ("%.*s\n", pmatch[i].rm_eo - pmatch[i].rm_so,
    				string + pmatch[i].rm_so + offset);
    
    		/* offset: variável auxiliar – usada para pular fragmentos já
    		 * analisados.
    		 *
    		 * Ela recebe o valor referente a posição
    		 * do último byte do pedaço casado anteriormente.
    		 */
    		if (pmatch[0].rm_eo)
    			offset += pmatch[0].rm_eo;
    		else
    			break;
    	}
    
    	free (pmatch);
    	regfree (&preg);
    
    	return 0;
    }
    

    Os códigos escritos no artigo são feitos para facilitar o entendimento, podem ser otimizados ao extremo.

    Exemplo com outras expressões e strings:

    Exemplo 1:

    Regex “^([0-9]+)/([0-9]+);$”
    String “1991/04;\n” \
    “1992/12;\n” \
    “1992/05;\n” \
    “1994/03;\n” \
    “1995/09;\n”;
    regcomp() flags REG_EXTENDED | REG_NEWLINE
    Saída 1991
    04
    1992
    12
    1992
    05
    1994
    03
    1995
    09

    Exemplo 2:

    regex “^[0-9]+/[0-9]+;”
    string “1991/04;” \
    “1992/12;” \
    “1992/05;” \
    “1994/03;” \
    “1995/09;”;
    regcomp() flags REG_EXTENDED
    Saída 1991/04;
    1992/12;
    1992/05;
    1994/03;
    1995/09;

    Exemplo 3:

    regex “^[0-9]+/[0-9]+;”
    string “1991/04;\n” \
    “1992/12;\n” \
    “1992/05;\n” \
    “1994/03;\n” \
    “1995/09;\n”;
    regcomp() flags REG_EXTENDED
    Saída 1991/04;\n

     

    EXIBINDO ERROS

    As funções regcomp () e regexec () retornam um inteiro indicando o ocorrido ao final de cada execução, o retorno é chamado de error code e é declarado no header regex.h assim:

    typedef enum
    {
    #if defined _XOPEN_SOURCE || defined __USE_XOPEN2K
      REG_ENOSYS = -1,	/* This will never happen for this implementation.  */
    #endif
    
      REG_NOERROR = 0,	/* Success.  */
      REG_NOMATCH,		/* Didn't find a match (for regexec).  */
    
      /* POSIX regcomp return error codes.  (In the order listed in the
         standard.)  */
      REG_BADPAT,		/* Invalid pattern.  */
      REG_ECOLLATE,		/* Inalid collating element.  */
      REG_ECTYPE,		/* Invalid character class name.  */
      REG_EESCAPE,		/* Trailing backslash.  */
      REG_ESUBREG,		/* Invalid back reference.  */
      REG_EBRACK,		/* Unmatched left bracket.  */
      REG_EPAREN,		/* Parenthesis imbalance.  */
      REG_EBRACE,		/* Unmatched \{.  */
      REG_BADBR,		/* Invalid contents of \{\}.  */
      REG_ERANGE,		/* Invalid range end.  */
      REG_ESPACE,		/* Ran out of memory.  */
      REG_BADRPT,		/* No preceding re for repetition op.  */
    
      /* Error codes we've added.  */
      REG_EEND,		/* Premature end.  */
      REG_ESIZE,		/* Compiled pattern bigger than 2^16 bytes.  */
      REG_ERPAREN		/* Unmatched ) or \); not returned from regcomp.  */
    } reg_errcode_t;
    

    Pequena rotina que exibe a mensagem correspondente ao error code.

    Observe, regerror () aparece duas vezes na rotina, na primeira ela é chamada para determinar o comprimento da mensagem, enquanto na segunda é invocada com o intuito de copiar a mensagem para *errbuff.

    /*
     *  Written by: fm4lloc <fm4lloc@gmail.com>
     *
     *  This program is free software; you can redistribute it and/or modify
     *  it under the terms of the GNU General Public License as published by
     *  the Free Software Foundation; either version 3 of the License, or
     *  (at your option) any later version.
     *
     */
    
    void c_regerror (reg_errcode_t err, const regex_t *preg)
    {
    	size_t errbuf_size;
    	char *errbuf = NULL;
    
    	errbuf_size  = regerror (err, preg, NULL, 0);
    	errbuf = (char *) calloc (errbuf_size, sizeof(char));
    
    	regerror (err, preg, errbuf, errbuf_size);
    
    	fprintf (stderr, "%s\n", errbuf);
    	free (errbuf);
    }
    

    Declaração de regerror ():

    size_t regerror(int errcode, const regex_t *preg, char *errbuf,
                           size_t errbuf_size);
    
    errcode O error code retornado por regcomp () ou regexec ()
    *preg Aponta para o pattern buffer
    *errbuf Ponteiro para a mensagem de erro
    errbuf_size Número de bytes que serão copiados para *errbuff
     
  • Fm4lloc 1:04 am em 21 de December de 2013 Link Permanente | Resposta
    Tags: , defy, motorola, ,   

    Obtendo acesso ROOT no Motorola Defy PRO XT560 

    O procedimento foi executado no Motorola DEFY PRO XT560 rodando a versão 2.3.7 do Android. Caso queira restaurar a rom original siga esse outro tutorial – Restaurando a ROM original do Motorola XT560 (Defy Pro)

    UPDATE:

    Esse tutorial já não é a melhor opção para conseguir acesso root no Motorola defy pro (xt560). Se você deseja fazer isso de uma maneira mais fácil é recomendado fazer o download da versão 2.2 ou superior do SuperOneClick (DOWNLOAD), instalar os drivers da Motorola presente no pacote Motorola Motoluxe Root.rar postado logo abaixo e seguir os passos [2] e [4].

    Se isso não funcionar para você é só acompanhar o tutorial desde o passo [1].

    NOTA:

    O SuperOneClick usa exploits para dar acesso root, é normal que alguns antivírus não permitam a execução do programa no computador. Sendo assim, é necessário desabilitar o antivírus antes de roda-lo.

    Segue o link do pacote Motorola Motoluxe Root.rar contendo os arquivos necessários: DOWNLOAD

    Os arquivos utilizados são :

    1. Drivers para windows (Motohelper_2_0_53_driver_5_2_0_012027.zip);
    2. Software Update Tool (SUTLR_v1.7.5.zip);
    3. SuperOneClick (super_one_click_112520.rar);
    4. FXX_PR3_NV.xml

    [1] Após baixar os arquivos instale os drivers e o aplicativo Software Update Tool.

    [2] Ative o modo Depuração USB do XT560 acessando: Configurações > Aplicativos > Desenvolvimento. Depois de ativar plugue o aparelho no computador.

    device-2014-05-31-153759

    [3] Inicie o Update Tool, carregue o arquivo “FXX_PR3_NV.xml”, depois clique no botão avançar e aguarde processo terminar. O processo é relativamente rápido e exibe uma mensagem de sucesso ao final.

    [4] Abra SuperOneClick como administrador clicando sobre o executável com o botão direito do mouse e escolha a opção abrir como administrador. Clique sobre o botão root e aguarde o processo terminar.

    SuperOneClick é responsável por adicionar o binário su na pasta /system/bin do aparelho, além de instalar o Superuser.apk.

    Desconecte o aparelho do computador, reinicie o celular e verifique se o Superuser está instalado.

    Pronto!

    device-2014-05-31-154340

    device-2014-05-31-153848

    É importante ressaltar que o modo Depuração USB deve permanecer ativo para que seja possível invocar superpoderes, quando desativado o Superuser não trabalha corretamente.

    Referência : http://www.androidgadgematic.com/2012/08/how-to-root-motorola-motoluxe-237.html

     
    • patrick 5:44 pm em 24 de julho de 2014 Link Permanente | Resposta

      Muito bom!

    • jao ribeiro 11:48 pm em 23 de agosto de 2016 Link Permanente | Resposta

      Depois de fazer o root como deve acontecer a retirada dos aplicativos indesejados.

      • Fm4lloc 4:03 pm em 25 de agosto de 2016 Link Permanente | Resposta

        É só baixar o link2sd direto da Play Store e usá-lo para remover os aplicativos indesejados ou ainda movê-los para o cartão-sd caso queira.

c
escrever novo post
j
post seguinte/ comentário seguinte
k
post anterior/comentário anterior
r
Resposta
e
Editar
o
mostrar/esconder comentários
t
voltar ao topo
l
vá para login
h
mostrar/ocultar ajuda
shift + esc
Cancelar