Configurando o MPD no Archlinux com Sonata
Eu acredito que assim como uma grande maioria das pessoas que gostam de ouvir músicas no computador eu também sofro sofria em manter um player aberto ali na tray pedindo para ser clicado e ficava me perguntando qual a próxima vez que eu iria apertar next pra ele tocar.
Procurando um pouco (não tanto quanto eu pensava porque eu já tinha uma “idéia” de qual programa usar, porém ainda não tinha “tomado coragem” para procourar como configurar o mesmo) terminei achando um jeito fácil de manipular as músicas e deixá-las tocando em background sem influênciar nada. Nem mesmo se o X estivesse ou não ligado. E de quebra ainda ganhei um servidor para ouvir música de onde eu estiver no planeta (mas não vou extender esse artigo à essas configurações).
O milagroso programa se chama MPD (Music Player Daemon) isso mesmo, uma daemon para tocar as músicas de acordo com sua playlist criada antecipadamente. O melhor de toda a história é que, assim como a grande maioria das daemons criadas para o Linux o MPD também tem vários clientes gráficos pra manipulá-lo.
Vou escrever aqui os passos que segui para instalação e configuração do MPD com o cliente Sonata que escolhi porque é feito em gtk (só uso o mesmo pra manipulação de playlists e por músicas para tocar).
01 - Instalando os pacotes nescessários:
# pacman -S mpd sonata
02 - Criando os arquivos de configuração:
O arquivo principal para configuração do mpd é o /etc/mpd.conf e, quando instalamos o MDP, já vem um arquivo de configuração exemplo (/etc/mpd.conf.example), então podemos usar o mesmo de base:
# cp /etc/mpd.conf.example /etc/mpd.conf
# vi /etc/mpd.conf
Agora com nosso arquivo de configuração já quase pronto podemos fazer as edições finais:
Descomente a linha:
#music_directory “path_to_yoru_music_collection”
E a edit por exemplo para:
music_directory “~/.mpd”
Nessa pasta é onde colocaremos todos os links simbólicos para as pastas onde realmente estão nosssas músicas. Ficando por exemplo assim:
$ cd ~/.mpd
$ ln -s ~/mp3 mp3
Depois de adicionar todas as patas (somente as raízes) como links simbólicos dentro da pasta ~/.mpd, então podemos criar nosso banco de dados:
# mpd –create-db
O script de criação irá adicionar todas as músicas que estão linkadas simbolicamente dentro da pasta ~/.mpd.
03 - Subindo a daemon e chamando o Sonata:
# /etc/rc.d/mpd start
$ sonata &
Após o Sonata estar aberto, ele se conectará automaticamente ao MPD, vá na aba Library, escolha quais arquivos (serão listados os links simbólicos como pastas) quer adiconar à playlist, botão direito com eles selecionados e ADD, logo após, vá na aba current (playlist das músicas que estão/irão tocando/tocar) e clique duas vezes em qualquer arquivo para começar.
Você também pode apertar com o botão direito na playlist e escolher as opções Repeat e Random para ele ficar tocando aleatóriamente(Random) todas as músicas da sua playlist repetidamente(Repeat).
Depois de começar a tocar você pode escolher se fica ou não com o Sonata aberto na tray, eu preferi fechar o meu e, independente disso, o MPD fica tocando as músicas em background, mesmo eu desligando o X. Perfeito não?
Até a próxima.
Bug na ataulização da libgpm do Arch Linux
Bem, depois de um tempo afastado (motivos de força mair me fizeram sair do Archlinux e ir para algumas outras distros tentar a vida), e pelo menos motivo, quando voltei ao Archlinux, percebi que havia algumas modificações nos pacotes durante a instalação, e depois da mesma (instalação) ocorreram alguns bugs, um deles é recente e como não sei se ainda foi arrumado e aconteceu com mais pesosas, vou postar aqui.
O bug é um problema que ocorre durante a atualização da libgpm, e já vi bastante gente o “resolvendo” simplesmente colocando ela na blacklist dos pacotes à serem atualizados.
Porém entrando no canal oficial de suporte percebi que já haviam enfrentado o mesmo problema de uma maneira bem simples e de melhor resultado: reinstalando o pacote (mas sem reinstalar todas as dependencias), ficando assim o comando do nosso velho amigo pacman:
# pacman -Rd gpm && pacman -S gpm
Depois de executar esse comando o pacman vai simplesmente remover e instalar novamente o pacote já atualizado que estará funcionando normalmente.
Configurando cpufreq no Archlinux
Oi denovo. Talvez essa dica, para algumas, pessoas possa ser encarada como um “economizador de energia”, porém eu estou usando o cpufreq aqui no meu computador por motivos de preservar não só a energia, mas também o cpu.
Antigamente (desde antes de eu usar “duh”) quando era aberto algum site contendo animações em flash (muitos hoje em dia) o cpu simplesmente enlouquecia, ficava com overloading demais (não me pessam para explicar o motivo), desde então procurei sobre algumas soluções, a primeira foi utilizar o firefox(GTK) ao invés do opera(QT) como browser para sites com flash, mas mesmo assim, ainda havia alguns que eu pude notar que ainda faziam o mesmo overloading (principalmente aqueles com propaganda em flash).
Sendo assim, como eu NÃO queria usar nenhum anti-não-sei-o-que-lá-plugin resolvi o problema com o cpufreq, cuja configuração é bem fácil, sem complicações e rápida, só precisamos atentar para os módulos a serem subidos e qual o nosso processador.
Primeiramente há uma vertente do cpufreq para a família de processadores AMD que se chama powerNOW, como eu possuo um processador da família intel, logo vou configurar o cpufreq para o mesmo, então vamos lá:
1 - Download das DAEMONS:
Como há pacotes dentro do repositório oficial do Archlinux para as duas daemons qeu vamos utilizar, este processo se torna bastante simples através do gerenciador de pacotes pacman;
# pamcan -Sy cpufreqd
# pacman -Sy cpufrequtils
2 - Upando os módulos necessários:
Para que o cpufreq trabalhe corretamente, precisamos subir alguns módulos, são eles:
# modprobe acpi
# modprobe acpi_cpufreq
# modprobe cpufreq_stats
# modprobe cpufreq_powersave
# modprobe cpufreq_conservative
# modprobe cpufreq_ondemand
# modprobe cpufreq_userspace
Nota: powersaver, conservative e ondemand são exatamente os governors que temos para escolher.
3 - Verificando e configurando quais freqüências seu processador pode utilizar:
Para verificar as freqüências disponíveis para o seu processador utilize:
$ cpufreq-info
Atente para as seguintes linhas:
hardware limits: 2.40 GHz - 3.00 GHz
available frequency steps: 3.00 GHz, 2.40 GHz
available cpufreq governors: userspace, ondemand, conservative, powersave, performance
Como você pode notar, eu tenho que setar minhas configurações de acordo com a resposta do cpufreq, logo vamos editar o arquivo de configuração do mesmo:
# vi /etc/conf.d/cpufreq
governor=”ondemand”
min_freq=”2.4GHz”
max_freq=”3GHz”
Aqui, setei as variáveis min_freq e max_feq de acordo com a reposta do cpufreq-info, como citado anteriormente, também setei o governor como ondemand, pois eu quero que o processador trabalhe de acordo com a necessidade.
Caso você esteja usando um notebook, pode setar em powernow, ou ondemand, sendo a primeira para economizar energia.
4 - Subindo as DAEMONS necessárias:
# /etc/rc.d/cpufreq
# /etc/rc.d/cpufreqd
Pronto, agora é só aproveitar.
5 - Configurando o arquivo de inicialização do Archlinux (rc.conf)
Só para maior comodidade, vamos configurar o arquivo de inicialização, teremos que alterar doias arrays, o de MODULES e o de DAEMONS:
# vi /etc/rc.conf
MODULES=(e100 mii slhc acpi acpi_cpufreq cpufreq_stats cpufreq_powersave cpufreq_conservative cpufreq_ondemand cpufreq_userspace snd-mixer-oss snd-pcm-oss snd-page-alloc snd-pcm snd-timer snd snd-hda-intel soundcore)
DAEMONS=(syslog-ng cpufreq cpufreqd dbus hal network !autofs !netfs !crond adsl sshd dnsmasq upnpd alsa fam firewall kdm)
Nota: Atente que há vários outros módulos subidos, porém terminei colando minhas arrays por motivo de ordem de chamada, configure o seu de acordo com o demonstrado acima.
Bom, é isso aí, tenho notado que não há mais overloading, e como estou usando simplesmente 600MHz abaixo da freqüência normal do meu computador, não notei tanta queda de processamento, mesmo assim, caso eu precise de mais, o cpufreq mesmo se encarrega de aumentar o mesmo.
Espero que aproveitem, até mais.
Pós instalação do Archlinux para Servidores
Quando eu comecei esse blog eu fiquei pensando sobre o que escrever, e na realidade vi que existem poucas coisas que realmente são necessárias, uma delas (que era pra ser o primeiro post) era o de montar um servidor caseiro com usando a distribuição Archlinux, sendo que o mesmo só tivesse uma única placa de rede :)
Neste post eu vou desconsiderar que quem terminou de instalar o Arch em seu computador tenha feito alguma modificação na instalação padrão do mesmo (ou seja base full com as configurações que ele sugere).
1 - Configurando a internet
Considerei para os determinados fins que minha rede seria totalmente colocada no switch ou seja, meu modem e os demais computadores estão todos ligados no switch, assim como o meu servidor Archlinux. Sendo assim podemos começar a configurar a internet no servidor:
# pppoe-setup
Aqui você precisará ler um pouco de inglês para seguir as instruções, ele irá pedir:
a. Seu usuário (usuário da adsl)
b. Seu servidor dns (caso seja automático, simplesmente escreva “server” sem as aspas e tecle )
c. Sua senha (senha do usuário adsl)
d. Método do Firewall, aqui escolha 2 (MASQUERADE)
Depois de terminar de configurar seu discador simplesmente poderá discar com pppoe-start.
Obs: É de suma importância que você ligue o modem antes de todos os computadores espetados no switch, sendo o servidor Arclinux o seguinte, e somente depois que o mesmo estiver inteiramente ligado (e bootado), você poderá terminar de upar sua rede (sem ordem necessária).
Bom, levando em consideração que você obteve sucesso na conexão:
# ping [qualquer host]
Obs: Estou usando [ ] para indicar que pode ser qualquer host, porém precisará informar um host (ex: ping www.archlinux-br.org)
Agora que sua conexão já foi verificada (o ping retornou normalmente) poderemos então atualizar o nosso sistema:
# pacman -Syu
Entre com “y” como resposta para todas as perguntas e espere que o pacman atualize seu servidor. Logo após reinicie a máquina:
# reboot
2 - Adicionando o primeiro usuário
Bom, até aqui nenhum segredo, simplesmente conectamos o nosso servidor na internet e fizemos com que ele se atualizasse toda a base de pacotes. Vamos então configurar então o nosso primeiro usuário:
# adduser
Novamente será apresentado um dialog interativo, siga os passos.
3 - Configurando o teclado
No meu caso uso Brasil-ABNT2, creio que todos estejam usando o mesmo:
# loadkeys /usr/share/Kbd/Keymaps/i386/qwerty/br-abnt2
4 - Configurando o nosso sistema para que fique em português
Obs: O pacman ainda que em seu funcionamento rotineiro esteja com o locale (configurações locais) funcionando perfeitamente, contém um bug (até quando eu estive fazendo esse artigo) que se você executar os comandos:
# pacman -Sc
ou
# pacman -Scc
Ele exibirá se você tem certeza que deseja deletar o cache, simplesmente escolhendo “s”, como informado, ele ignora, pois não tem o locale neste caso, logo se for escolher remover o cache do pacman, entre com a reposta em inglês, no caso “y”.
Configurações de regiões:
# vi /etc/locale.gen
Remova o comentário das linhas:
pt_BR.UTF-8 UTF-8
pt_BR ISO-8859-1
Salve o arquivo (no caso do vi :wq), e execute o comando:
# locale-gen
Ele irá gerar todas as configurações para que seu sistema esteja em pt-br. Edite o arquivo principal de configuração do sistema:
# vi /etc/rc.conf
Editem as seguintes linhas para que fiquem assim:
locale = “pt_BR.UTF8″ (UTF-8)
timezone = “Sao_Paulo/America”
hostname = “”
keymap=”br-abnt2″
Obs: Todas as aspas deverão ser usadas, e em por convenção eu uso como opção, ou seja, seria alguma coisa opicional, ou então como precinar seria apertar a tecla enter. Ou seja, em hostname, por exemplo entre com “archlinux”.
Agora reiniciaremos o computador:
# reboot
Bom, temos o computador com o sistema base atualizado e configurado para a nossa lingua, com o teclado funcionando também (muitos utilizam a configuração do teclado na instalação do sistemas, mas se você também for apressado igual eu, esqueceu de configurar :-))
4 - Configurando acesso remoto seguro
Vamos começar a instalar os programas para compartilhar a internet, antes de mais nada vamos instalar o openssh (para suporte remoto, e configurar o mesmo para que não seja tão “vulnerável” quanto a configuração padrão)
# pacman -Sy openssh
# vi /etc/ssh/sshd_config
Descomente e mude a linha:
Port 22 p/ Port x (sendo x o número que você escolher, simplesmente interprete que precisaremos mudar a porta padrão, para evitar os bots que ficam escaneando os computadores, e precisaremos mais tarde, lembrar da mesma porta para podermos fazer acesso remoto em nosso servidor).
Descomente também:
LoginGraceTime 1m
PermitRootLogin no
StrictModes yes
MaxAuthTries 2
MaxStartupes 5:80:10
PermitTunnel no
Salve e Feche. Com essas configurações (as opções são autoexplicativas) temos como fazer acesso remoto em nosso servidor sem precisar nos preocuparmos com os scan bots, vamos editar então mais algumas opções:
#vi /etc/hosts.deny
Comente a linha:
ALL:ALL:DENY
5 - Roteando a internet com o DnsMasq
Pronto, agora já estamos com o nosso acesso remoto devidamente configurado. Seguiremos então para compartilhar a internet entre os outros computadores da rede:
# pacman -Sy dnsmasq
O pacman vai instalar o dnsmasq que usaremos como servidor proxy e dns.
# vi /etc/dnsmasq.conf
Vamos descomentar as linhas:
domain-needed
bogus-priv
filterwin2k
interface=eth0
Primeira dhcp range (existem mais de uma linha de dhcp range no arquivo de configuração, descomente a primeira)
Salve e feche o arquivo, então editemos o outro:
# vi /etc/sysclt.conf
net.ipv4.ip_forwared=1
kernel.syssrq=1
tcp_syncookies=1
Salve e feche também este arquivo, então teremos nossa internet sendo compartilhada, mas ainda não acabou, eu ainda vou configurar o firewall e realizar algumas modificações para que seu servidor seje totalmente automático, bastando somente ligá-lo para que o mesmo já esteja compartilhando a internet automaticamente.
6 - Instalando o firewall
Finalmente estamos quase terminando o servidor, só falta cuidar um pouco da parte de segurança do mesmo. Vamos então instalar um firewall.
# pacman -Sy iptables
# iptables-save
# vi /etc/ppp/firewall-masq
No arquivo de configuração do firewall, comente a seguinte linhas:
iptables -t filter -P INPUT DROP
Depois em baixo da linha “iptables -t filter -F adicione a seguinte linha:
iptables -t filter -P FORWARD ACCEPT
Comente também as seguintes linhas e seus respectivos grupos:
Allow incoming SSH
Log & Deny the rest of the privileged ports
Log & Deny NFS
Log & Deny X11
Log & Deny XFS
Deny TCP connection attempts
Pronto, seu firewall está configurado. Vamos então instalar mais alguns serviços, (igd e upnp).
7 - Instalando e configurando o servidor UPNP
Primeiramente, quando escrevi este artigo não se encontravam os dois pacotes nos repositórios community, porém estavam os 2 no aur, logo vamos fazer o download dos mesmos:
# wget http://aur.archlinux.org/packages/Linuxigd/Linuxigd.tar.gz
# wget http://aur.archlinux.org/packages/Libupnp/Libupnp.tar.gz
O processo de instalação no Archlinux sem o pacman também se dá de maneira bem simples, basta descompactar o pacote, gerar o .pkg (binário) e usar o pacman (ops) para instalar:
# tar -zxvf Libupnp.tar.gz
# cd Libupnp
# makepkg
# pacman -U Libupnp.pkg (o pacote gerado pelo makepkg)
# tar -zxvf Linuxigd.tar.gz
# cd Linuxigd
# makepkg
# pacman -U Linuxigd.pkg (o pacote gerado pelo makepkg)
Agora com os 2 pacotes instalados, vamos então startar a daemon upnpd
# /etc/rc.d/upnpd start
Pronto, servido upnp rodando :)
8 - Configurando arquivo de inicialização (parte de DAEMONS)
# vi /etc/rc.conf
Deixe a lista de Daemons assim:
(sys-log network !netfs !crond adsl sshd dnsmasq upnp)
Agora só precisamos reiniciar o computador vuala, servidor upado e compartilhando a internet até com direito à upnp.
Espero que tenham gostado, até o próximo post.
Montando um Ambiente de Desenvolvimento Python / Django no Archlinux
Aloha geral!
Quem diria, um pouco de correria e deixei o blog um de lado, nada de complicações nas instlações do Archlinux, nada legal sobre o que postar…
Acredito que com o passar do tempo meus posts terminem sendo cada vez menos “necessários” por assim dizer…
Há mais ou menos um mes, isso mesmo um mes… comecei a criar interesse por um framework web escrito em Python, cujo nome é Django… Desde então juntando material e estudando, estudando e tentando aprender alguma coisa, quando no final resolvi ajudar o pessoal do www.djangobrasil.org e fui instalar as coisas necessárias no meu Arch.
Foi quando eu vi que no repositório, assim como eu também faria, só tinha a versão stable do Django (que enquanto este artigo foi escrito, encontrava-se na versão 0.96) e para rodar o site do djangobrasil eu precisaria instalar a versão 0.97.
Tudo bem, fui começar a ler a documentação e achei bem simples, a parte da instlação à qual iria fazer seria sem o Apache e o modpython, pois eu ainda estaria só brincando e poderia usar o servidor que vem junto com o Django. Então fui até o www.djangobrasil.org e cliquei no Guia de Instalação (http://www.djangobrasil.org/documentacao/instalar/) foi então que, seguindo ao pé da letra para isntalar a versão 0.97 (lembra-se que a 0.96 já estava no pacman?) eu me deparei com o problema de que não conseguia instalar seguindo o tutorial.
Bom, como as tentativas/erros e bastante (digo bastante porque foi bastante memso) persistência, consegui instalar o django, sem utilizar o setup.py (para quem já leu o tutorial oficial de instalação, sabe do que estou falando), e então que, resolvi criar este pequeno artigo de como montar um ambiente de desenvolvimento Python/Django no seu Archilinux, espero que com o passar do tempo os blogs da comunidade aumentem e terminem fazendo mais tutoriais de instalação.
Então, sem mais demora, vamos ao processo de instalação:
1 - Instalando e configurando o Subversion:
Como está descrito no site do projeto (www.djangoproject.com) o Django está hospedado em um servidor Subversion, logo precisaremos dele para manipular baixar o Django. Instalando assim no Arch:
# pacman -S subversion
Graças ao bom e velho Pacman esse nosso trabalho fica bem fácil… Agora precisaremos de um pouco de configuração, isso fica à quesito de cada um, porém como o meu interesse era ajudar o projeto djangobrasil, eu resolvi configurar o meu Subversion como eles indicam na página de contribuição do projeto (http://code.google.com/p/djangobrasil/wiki/Contribuindo) vamos então supor que você terminou de instalar o seu subversion e gerar/editar o arquivo de configuração:
$ svn help
$ vi ~/.subversion/config
Vou colar só os pedaços que eu editei:
[miscellany]
global-ignores = *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store *.pyc *.pyo *.project *.pydevproject
enable-auto-props = yes
[auto-props]
*.py = svn:eol-style=native
*.html = snv:eol-style=native
*.css = svn:eol-style=native
*.xml = svn:eol-style=native
*.json = svn:eol-style=native
*.c = svn:eol-style=native
*.cpp = svn:eol-style=native
*.h = svn:eol-style=native
*.sh = svn:eol-style=native;svn:executable
*.txt = svn:eol-style=native
*.png = svn:mime-type=image/png
*.jpg = svn:mime-type=image/jpeg
Makefile = svn:eol-style=native
As outras linhas eu simplesmente deixei como estavam (comentadas).
Agora com o nosso subversion devidamente instalado e configurado, podemos então começar a baixar o que nos interessa, voltando ao Guia de instalação:
2 - Instalando o Python 2.5
# pacman -S python
Isso mesmo, com o pacman facilitando a nossa vida todos os Archeiros simplesmente só tem o trabalho de ver o mesmo baixando e instalando tudo automaticamente.
3 - Instalando e configurando um banco de dados:
Nesta parte fica a par de quem vai instalar o banco, como eu estou só começando no django então eu escolhi instalar o bom e velho conhecido de aplicações pequenas (sqlite), temos então a versão 3 no pacman também, logo:
# pacman -S sqlite3
4 - Baixando e instalando o django-trunk a partir do repositório Subversion:
Aqui, assim como no item acima podemos colocar a pasta do projeto em qualquer lugar no nosso sistema, como eu tive em mente de que na realidade, não deixa de ser uma cópia de trabalho do projeto django, resolvi coloca-lo na minha home mesmo.
$ cd
$ svn co http://code.djangoproject.com/svn/django/trunk django-trunk
O subversion irá baixar o django inteiro para nós, simplesmente precisamos esperar equanto o mesmo é baixado.
Vamos então instalar ele sem a necessidade de utilizar (isso mesmo, como eu creio que mais pra frente será feita a versão oficial do django a 0.97, então poderei baixar a partir do pacman, enquanto isso não acontece eu simplesmente evitei de instalar pelo arquivo setup.py por pura e simplesmente paranóia). Vamos então simplesmente linkar (diferente do modo de como eu vi no Guia de instalação) a pasta django de dentro de django-trunk (/home/user/django-trunk/django), para onde foi instalado o nosso Python (/usr/lib/python2.5/site-packages), ficando o comando assim:
# mkdir /usr/lib/python2.5/site-packages
# ln -s /home/usr/django-trunk/django /usr/lib/python2.5/site-packages/django
Pronto agora é só abrirmos o python para testar:
$ python
$ >> import django
Se não retornar nenhum erro, é porque tudo ocorreu como esperado.
5 - IDE
Aqui fica aquele velho ditado, sempre usando o editor de texto de qual gostamos, como eu termino usando o bom e velho emacs (com o python-mode), não tenho porque divulgar o mesmo.. e causar algum flamewar com os VI users… Então instale os que vocês quiserem.
Espero que tenha ajudado aos Archers que querem começar a desenvolver em Django a instalar a versão trunk, não tem complicação nenhuma, só a de que no Guia de instlaação da página oficial está considerando que você esteja usando Ubuntu/Debian.
Obrigado, e até a próxima.
About
Leandro Pincini:
Quase formado Tecnólogo em Processamento de Dados pela Faculdade de Tecnologia (FATEC) de Taquaritinga. Sim, estou naquela faze chata de final de curso em que temos que escrever nossas monografias.
Áreas de interesse:
Arch Linux, Programação (Java, Python, Ruby), Tecnologia.