Author Archive

Uptime: Apollon: 33 dias

Uptime 33 Dias

Aewww \O/

33 dias de apollon funcionando!

Posted by Otávio Souza on Setembro 21st, 2008 No Comments

Instaladores de distribuições, uma geral!

Olá pessoas, depois de um tempo passado desde o ultimo post, “Como criar uma distribuição Linux”, muitas pessoas perguntaram como fazer isso no Debian, como criar também o instalador e tudo mais.

Por isso nesse post vou dar uma geral do funcionamento de geral dos dois tipos de instaladores, o para Live-CDs e o para CDs de pacotes.

Primeiro, o geral, o que é comum.

Um instalador deve perguntar ao usuário coisas simples, como, partição para se instalar, partição SWAP, nome de usuário para adicionar, senha do usuário root, instalar o gerenciador de boot na MBR e coisas afins ;)

Agora você se pergunta, eu tenho meu Live-CD, como devo fazer a instalação do mesmo?

Bom, basicamente você só precisa copiar a sua “/” do Live-CD todo pro HD, e configurar o boot, só isso, um ex para linux-live:

cd /

for dir in bin etc var usr opt root home srv media;

cp -Rp $dir /mnt/target

done

Basicamente é isso, ele vai copiar pasta por pasta e pronto, a copia é feita pasta por pasta porque não é recomendável se copiar tudo, ex: se você copiar o /mnt para o target, ele vai se copiar nele mesmo, entrando num Loop :D

O proc também, o sys, e por ai vai :D

Bom, alguns instaladores que é sempre bom se olhar o código são:

  1. Anaconda - O instalador do Fedora para o CD de Instalação
  2. Copier - O instalador do KinuX: http://svn.kinuxlinux.org/copier/trunk
  3. Debian-installer - O Instalador do Debian, dahhh :P

Abraços a todos && Tenham um bom dia :]

Posted by Otávio Souza on Setembro 21st, 2008 No Comments

Novo esquema de servidores - Compile Farm!

Pessoas, estou criando uma Compile Farm!

Para poder ajudar no KinuX, pois os bixinhos ficarão responsáveis por compilar todos os pacotes que forem mandados. Isso é claro, a versão i686, a futura x86_64 só quando tivermos um desses por aqui :P

Estamos aceitando doações de maquinas, pode ser qualquer maquina, sendo i686 está ótima!

Só precisamos dum HD, da Fonte, Processador, placa-mãe, memória e placa de rede, só isso! :)

Eu sei, pode parecer muito, mas é pq fica mais fácil para montarmos os servidores :D

Abraços a todos && Esperem noticias ;)

Posted by Otávio Souza on Agosto 13th, 2008 No Comments

Construindo um firewall básico com Iptables

Decidi fazer o artigo sobre Firewall com Iptables, mas como sempre, tenho muita sorte, mas muita sorte mesmo com o Google e decidi procurar antes algo sobre o assunto, pra ver em que pé estava a Internet, não deu outra, “Construindo um firewall básico com Iptables” no Google me retornou alguns sites, e um deles foi o VivaOLinux, com esse artigo aqui, ótimo por sinal, bem completo, ele fala tudo e mais um pouco, no artigo tem um link para outro, que explica a estrutura do Iptables.

Espero que aproveitem os artigos, eu recomendo ;)

Abraços

Posted by Otávio Souza on Agosto 9th, 2008 No Comments

Uma abordagem do SSH

Olá pessoas, depois de um bom tempo sem postar nada, estava falando com um amigo no mensageiro, e ele me perguntou quando eu ia postar algo, disse que quando tivesse assunto pra postar eu fazia isso, bom, sairam três assuntos da conversa :P

  1. Autenticação SQUID com OpenLDAP
  2. Uma abordagem do SSH
  3. Construindo um firewall básico com Iptables

Bem, escolhi por fazer o segundo artigo primeiro, depois, assim que reuinir as informações, crio os outros artigos :)

Vamos começar

O SSH (Secure Shell) é um protocolo/programa para poder acessar computadores remotamente, a conexão com a maquina é criptografada, permitindo assim um controle tranquilo.

O uso básico do SSH é “ssh nomedousuário@maquina”, com isso ele vai pedir a sua senha e vai executar o comando que está no servidor, ex: “/bin/bash”.

O servidor pode dar para você um shell completo (é claro, com as limitações do seu usuário), como pode dar um micro-shell, somente para que você execute alguns comandos.

Quando você muda a porta do servidor SSH (garantindo assim a segurança do mesmo), você deve usar o switch “-P porta”, ficando então com o comando desse jeito “ssh usuário@host -P porta”.

Certo, com isso você já pode ter um uso básico do SSH.

Mas, o SSH tem outras opções, chamadas Tunelamento e Proxy Reverso, com o Tunelamento você pode dar a saida dos dados por outro servidor.

Ex:

Servidor da Escola com Proxy bloqueando site xxx

Escola ->                        Servidor SSH externo                    -> Site XXX

No caso o que aconteceu foi, você se conectou com o site XXX pelo servidor SSH externo ao servidor da escola, passando por uma conexão criptografada, ao invés de passar pelo proxy.

Atenção, usem isso com cuidado, se a sua escola/instituição/empresa proibe é porque eles devem ter motivos para isso.

Mas afinal, como é que eu vou fazer os programas, como o Firefox, acessar a Web pelo SSH? Simples! Você usa um switch no SSH para poder criar um proxy Socks na sua maquina, assim é só configurar os navegadores para usarem esse proxy Socks

Comando: “ssh usuário@maquina -P porta -D portanamaquinalocal”

Depois é só configurar o navegador para usar proxy socks para aquela porta ;)

Vamos ao proxy reverso!

Situação:

Você esta querendo acessar o computador da sua casa, que está atrás de um router, que por azar do destino, não está routeado :(, e agora? Quem poderá nos salvar? Não, não é o chapolin colorado, é o Proxy Reverso mesmo!

Você faz o seguinte, com alguém na sua casa, você abre um servidor SSH nessa sua maquina que pode ser acessada pela Internet, e manda a pessoa em sua casa se conectar nela, usando o seguinte comando:

“ssh -LPortaDoSshNesseComputador:ComputadorExterno:PortaQueVocêQuerNoComputadorExterno root@ComputadorExterno”

Atenção: Só é possivel fazer isso como usuário root! Ou seja, a pessoa em sua casa tem que saber a senha do root no seu computador ;)

Depois de feito isso, é só você acessar no seu computador assim:

“ssh UsuárioDoComputadorDeCasa@127.0.0.1 -P PortaQueVocêDisse”

Nisso, para terminar a conexão, disconecte no seu computador e mande a pessoa em casa disconectar do seu computador.

Com isso, sejam felizes! O SSh é muito lindo!

Posted by Otávio Souza on Agosto 6th, 2008 6 Comments

Atualizado: Tutorial/Dicas: Usando gStreamer, QT4 e Python para criar um player

Olá pessoas, depois de muito tempo sem passar por aqui para postar nada, decidi postar um pequeno tutorial, ou uma série de dicas para que vocês tenham uma ideia de como usar gStreamer, QT4 e Python na criação de um player :)

Primeiro, o porque do uso do QT4? Simples, não gosto muito do GTK, prefiro QT, sou lunatiKo, dá nisso :P

Depois, o porque do gStreamer? gStreamer é mais prático para quem quer criar um player, tá tudo ali, instala meia-duzia de pacotes e teu sistema toca tudo. Além do mais, dá suporte a efeitos e coisas afins. Numa aplicação QT4 pura, é melhor usar só o gStreamer e não o Phonon

Agora vamos deixar de lorota e começar a codar :D

O gStreamer tem toda uma estrutura de Pipelines, sinks e coisas do gênero, mas para um simples player nos não precisamos nos preocupar tanto assim ;) Basta um simples elemento, chamado playbin, o playbin faz o trabalho de criar o decoder, o sink para a saida de som e tudo mais, tudo automaticamente :D

Vejamos um pequeno código (Atenção, faça isso no interpretador python, afinal o gStreamer usa uma Thread para poder tocar tudo, portanto, o seu programa iria sair assim que chegasse no play :P

import gst

player = gst.Pipeline(’player’)

playbin = gst.element_factory_make(’playbin’)

player.add(playbin)

playbin.set_property(’uri’,'file:///home/…/minhamúsica.ogg’)

player.set_state(gst.STATE_PLAYING)

Viram que não é tão dificil não é :)

Agora analisemos o código:

import gst -> Importa o gStreamer

player = gst.Pipeline(’player’) -> Cria a pipeline

playbin = gst.element_factory_make(’playbin’) -> Cria o elemento playbin

player.add(playbin) -> Adiciona o playbin a pipeline do gStreamer

playbin.set_property(’uri’,'file:///home/…/minhamúsica.ogg’) -> Seta a propriedade uri do playbin para a localização do stream, isso pode ser um stream http, um arquivo local e por ai vai

player.set_state(gst.STATE_PLAYING) -> Muda o estado da pipeline, STATE_PLAYING começa a tocar, STATE_NULL para de tocar, STATE_PAUSED pausa o stream

Adivinhem só, se você colocar um stream de vídeo ai, ele vai mostrar o vídeo numa nova janela :D

Agora você se pergunta, como posso saber o fim do stream? Simples eu digo!

Usamos dbus e pygtk

Vejam só o código:

import gst, gtk

def mensagem(bus, message,player):

if message.type == gst.MESSAGE_EOS:

player.set_state(gst.STATE_NULL) # Vai para o stream na mensagem de fim-de-stream

player = gst.Pipeline(’player’)

bus = player.get_bus() # Pega o elemento do DBUS

bus.add_signal_watch() # Adiciona o watch de sinais

bus.enable_sync_message_emission() # Habilita a emissão de mensagens sync

bus.connect(’message’,message,player) #Conecta o sinal e passa como parametro opcional o player.

playbin = gst.element_factory_make(’playbin’)

player.add(playbin)

playbin.set_property(’uri’,'file:///home/…/minhamúsica.ogg’)

player.set_state(gst.STATE_PLAYING)

gtk.main() #Inicia o GTK para que o dbus funcione…

Isso dai já faz o player em si.

Depois desses códigos, vou deixar que vocês pesquisem um pouco :)

Vou dar logo uma dica, usem o QWidget.winId() (no Windows, int(QWidget.winId())), coloquem o gtk.main numa thread com QThread e criem um qt sinal para o “message” e o “sync-message::element”

 

Além disso, tenho um projeto de player aqui: http://svn.kinuxlinux.org/DJ, é chamado de DeeJay, as deps são gstreamer-python, pygtk, pyqt4 :D

Aproveitem

Links:

  • http://doc.trolltech.com
  • http://pygstdocs.berlios.de
  • http://pygtk.org

Posted by Otávio Souza on Julho 21st, 2008 4 Comments

Dica: KeyTouch

Olá pessoas, depois de um tempinho usando KDE4, procurei o jeitinho de colocar as teclas multimédias do teclado do Note pra funcionar ;)

Fui do velho jeito, mas descobri que o KMix não está mais com configurações de aumento de volume via teclas, o que me deixou fula, até ai blz, posso mandar o amaroK fazer isso, mas fico, só vou poder usar o amaroK para ouvir as coisas? E se for um vídeo? (Apesar de termos um Plasmoid para o amaroK exibir vídeos ;) )

Procurei um pouco (santo google!), e achei o que queria! O KeyTouch, com ele é possivel configurar diversos tipos de teclado multimédia, assim você não tem trabalho algum, é só dizer quais são as aplicações e cabum! Tudo funcionando, até mesmo um OSD para o volume ;)

Abraços e fica ai a dica :)

Posted by Otávio Souza on Junho 18th, 2008 No Comments

Linux como uma melhor opção - Palestra no CEFET-SE

Segue o slide da apresentação que fiz no CEFET-SE!

Quando tiver apresentado a outra, mando o vídeo do Youtube :)

Linux como uma melhor opção

Posted by Otávio Souza on Junho 18th, 2008 No Comments

Palestra sobre SL no CEFET-SE

Olá pessoas, como vocês sabem também sou palestrante :P

Então, convido todos vocês ao micro-evento no CEFET-SE no dia 18/06 às 9:00 no Mini-Auditório 1 (Ao lado da DEN)

E para aqueles que não podem, na sexta feira à noite, às 7:00 no Auditório Engenheiro Pedro Bras.

Lembrando, isso é tudo dentro do CEFET-SE

O micro-evento vai ser promovido pelo MSLC-SE, estamos cogitando a possibilidade de termos certificados para os participantes ;)

UPDATE: Não tivemos a palestra da sexta, pois numa sexta, noite, com feriado já chegando, só tínhamos 17 pessoas no CEFET todo, isso pq estavam fazendo prova =\

Abraços!

Posted by Otávio Souza on Junho 6th, 2008 No Comments

Como criar uma distribuição Linux?

Olá pessoas, muitos de vocês devem se perguntar, como é que se cria uma distribuição Linux? Bom, não tem receita certa, tudo vai do seu nível de conhecimento e do seu nível de paciência e preocupação com o seu usuário ;)

Mas, vou dar aqui o que eu uso/usei na criação do KinuX Linux <http://kinuxlinux.org> (atualmente passando por um período de decisões =\)

Podemos criar uma distribuição Linux de duas maneiras, uma delas é do modo mais “fácil”, o modo em que você se baseia em outra distribuição e o jeito mais “difícil”, o jeito em que você cria tudo do zero Oo, isso é possível? É, é possível =)

Quando você cria uma distribuição você tem que pensar em alguns aspectos, algumas coisas que vão definir o rumo da sua distribuição, seja o sucesso total ou o fracasso eminente ;)

Vamos lá

  • Tipo de usuários: Iniciantes? Medianos? Avançados?
  • Você tem tempo para desenvolver a distro: Sim? Não?
  • Quer fazer uma distribuição baseada em outra ou em nada: Sim? Não (Veja que se sua distribuição não for baseada em outra, você terá que criar todos os pacotes, tudo que o usuário precisa e até mais um pouco)?
  • Você tem um servidor para disponibilizar a distribuição: Sim? Não?
  • No seu servidor você tem limite de banda?
  • Será que você precisa criar a distribuição toda? Não seria possível criar somente um projeto para fazer as suas personalizações?

Com esses pontos respondidos, você já está apto a continuar o projeto ou não =)

Agora vamos a mais um ponto!

  • Sua distribuição vai ser em LiveCD ou em InstallCD?

Se ela for em LiveCD, você vai criar os scripts para inicialização da mesma ou vai utilizar um projeto?

Se for em InstallCD você vai criar o seu instalador ou vai utilizar um projeto?

Depois de decidido estas coisas, não tenho mais nada a fazer ;)

Os passos para a construção da distro são:

  • Sistema base instalado (Kernel, utilidades e tudo mais)
  • Configura os serviços como HAL, DBUS, UDEV e por ai vai
  • Instalar um servidor X e utiliza um script de detecção de hardware para auto-configurar o Xorg.conf
  • Instalar o ambiente(s) de desktop para que o usuário interaja
  • Escolher as aplicações de acordo com o seu ambiente de desktop
  • Configurar o desktop
  • Configurar o sistema em si, /etc/motd, /etc/hosts.allow e por ai vai ;)
  • Copiar as configurações do usuário para /etc/skel, assim todo usuário adicionado vai ter essas configurações
  • Reiniciar e ver se ainda funciona
  • Empacotar tudo!

Cabou-se, espero que tenham uma boa criação de distro =), abraço!

Links:

  • Linux-Live: http://linux-live.org - Projeto para criação de LiveCD gênerico
  • Slax : http://slax.linux-live.org - Projeto de demonstração do Linux-Live, baseado no Slackware
  • Debian: http://debian.org - Procura por debian-installer (anna) e seu pacote =)
  • Archie - http://archie.dotsrc.org/ - Criação de Live-CDs do Arch
  • Anaconda - http://fedoraproject.org - Procura pelo anaconda
  • LinuxFromScratch - http://www.linuxfromscratch.org

Posted by Otávio Souza on Junho 1st, 2008 4 Comments