Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

[Tutorial] Criando seu próprio Kurumim personalizado

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    [Tutorial] Criando seu próprio Kurumim personalizado

    Pessoal, este tutorial é muito bom, foi fornecido por Marimoto no Site Guia do Hardware.net
    Este tutorial ensina vocês a criarem seu proprio Linux, baseando-se no Knoppix.
    para maiores informações veja no link
    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...


    O Knoppix é uma das distribuições mais bem sucedidas. Além de ser uma das distribuições mais populares, ele deu origem a um sem número de distribuições especializadas, que juntas possuem um número de usuários provavelmente maior do que qualquer outra distribuição.

    Isso foi possível pois, além de ser fácil de usar como um live-CD, o Knoppix pode ser personalizado, o que permite desenvolver novas distribuições e soluções. Você pode escolher entre começar a partir do Knoppix original ou usar o Kurumin (ou outra das muitas distribuições derivadas dele), corrigindo problemas, adicionando novos recursos ou personalizando o que quiser.

    O Kurumin mantém a detecção de hardware, possibilidade de personalização e outras características positivas do Knoppix original, adicionando diversos scripts, personalizações, drivers e ferramentas de configuração que tornam o sistema mais fácil e agradável de usar. Enquanto o Knoppix é um sucesso entre o público técnico, o Kurumin conseguiu crescer rapidamente entre os usuários finais, um terreno que até então parecia difícil de conquistar.

    Os exemplos deste capítulo se concentram na remasterização do Kurumin (que é, afinal, uma das soluções mais usadas aqui no Brasil), mas os mesmos passos podem ser usados em outras distribuições recentes, derivadas do Knoppix. É uma uma boa oportunidade de colocar em prática o que aprendemos até aqui.

    O Knoppix é uma distribuição baseada no Debian, que utiliza o módulo cloop para rodar a partir de uma imagem compactada. Além de dar boot diretamente através do CD, DVD ou pendrive, sem alterar os arquivos no HD, ele inclui uma série de utilitários, com destaque para o hwsetup, que se encarrega de detectar todo o hardware da máquina durante o boot.



    Não importa qual seja a configuração do PC: se os componentes forem compatíveis com a versão do Kernel usada, ele funciona sem nenhuma intervenção do usuário. Os scripts de inicialização podem ser editados, de forma a incluir suporte a componentes adicionais, que não sejam detectados pelo script padrão, ou executar funções adicionais diversas, como salvar as configurações em um pendrive ou num compartilhamento de rede.

    Além do Kurumin, existem hoje em dia algumas centenas de distribuições baseadas no Knoppix ou distribuições "netas", desenvolvidas a partir do Kurumin ou outra das distribuições "filhas". As vantagens em relação a outras distribuições são:

    1- Ele detecta e configura o hardware automaticamente, dispensando a configuração manual em cada máquina

    2- Além de ser usado como live-CD, ele pode ser instalado no HD, mantendo a configuração e a detecção de hardware feita durante o boot. O próprio instalador pode oferecer opções adicionais e fazer modificações onde necessário.

    3- Você pode instalar novos programas a partir dos repositórios do Debian, usando o apt-get, sem precisar manter pacotes ou um repositório externo.

    4- O conteúdo do CD é compactado, o que permite instalar quase 2 GB de programas num CD de 700 MB, mais do que suficiente para uma distribuição completa. Os mesmos passos descritos aqui podem ser usados caso seja necessário desenvolver um sistema maior, destinado a ser gravado em DVD, ou uma distribuição compacta, destinada a ser gravada em um mini-CD.

    5- É possível instalar drivers para softmodems e outros tipos de hardware não suportados por default, programas binários ou comerciais, e assim por diante. Você pode até mesmo usar o Wine para rodar alguns aplicativos Windows.
    Existem inúmeras aplicações para a idéia. Você pode criar uma distribuição padrão para ser instalada em todos os PCs da empresa e, ao mesmo tempo, usá-la como uma forma de introduzir o Linux aos funcionários, mantendo o Windows instalado no HD. É possível criar CDs bootáveis com softwares diversos para apresentar a seus clientes; criar CDs para aplicações específicas, como discos de recuperação, CDs com documentação, e assim por diante. Só depende da sua criatividade.

    Dentro da imagem do CD, você encontra apenas alguns arquivos pequenos, incluindo a página html exibida no final do boot, que variam de acordo com a distribuição. Dentro da pasta /KNOPPIX, vai o arquivo compactado com o sistema, que ocupa quase todo o espaço do CD.



    Este arquivo nada mais é do que uma imagem compactada da partição raiz do sistema. O módulo cloop "engana" o Kernel, fazendo-o pensar que está acessando uma partição EXT2 no HD, quando, na verdade, os dados dentro da imagem vão sendo descompactados de forma transparente, conforme são requisitados.

    Algumas pastas do sistema que precisam de suporte a escrita, como, por exemplo, os diretórios "/home" e "/var", são armazenadas num ramdisk de 2 MB criado no início do boot. Este ramdisk pode crescer conforme necessário, desde que exista memória suficiente. Como nem todo mundo tem 256 MB de RAM ou mais, o sistema usa partições Linux swap, ou arquivos de troca encontrados em partições Windows, caso exista um HD instalado. Na falta dele, o sistema roda inteiramente na memória RAM, lendo os arquivos a partir do CD.


    O módulo cloop foi originalmente desenvolvido por Andrew Morton, que é atualmente o mantenedor do Kernel 2.6. Na época ele achou que o módulo não serviria para nada interessante e o descartou. Algum tempo depois ele foi redescoberto pelo Klaus Knopper, que acabou o utilizando como um dos componentes base do Knoppix. É um bom exemplo sobre como as coisas funcionam dentro do open-source.

    Nas versões recentes, o ramdisk é usado também para armazenar as alterações feitas com a ajuda do UnionFS. O diretório raiz contém um conjunto de links que apontam para diretórios dentro da pasta "/UNIONFS", que é composta pela combinação do ramdisk (leitura e escrita) e da pasta "/KNOPPIX", onde é montada a imagem compactada do CD (somente leitura).

    Para gerar uma versão customizada, precisamos descompactar esta imagem numa pasta do HD, fazer as modificações desejadas, gerar uma nova imagem compactada e finalmente, gerar o novo arquivo .iso, que pode ser gravado no CD ou DVD.

    Para isso, você precisará de uma partição Linux com 2.5 GB de espaço livre (no caso do Kurumin) ou 3.5 GB caso esteja remasterizando o Knoppix ou outra distribuição com 700 MB. No caso das versões em DVD, é necessário um espaço proporcionalmente maior. Calcule um espaço 5 vezes maior que o tamanho do sistema original, pois a imagem descompactada ocupa 3 vezes mais espaço e vai ser necessário guardar também a nova imagem compactada e o arquivo .iso final.

    É necessário ter também uma partição Linux swap (ou um arquivo swap) de 1 GB, menos a quantidade de RAM do PC. Se você tem 512 MB de RAM, por exemplo, vai precisar de pelo menos mais 512 MB de swap. O problema neste caso é que o sistema usa a memória para armazenar a imagem compactada enquanto ela está sendo processada, copiando o arquivo para o HD apenas no final do processo.

    Note que a quantidade de memória varia de acordo com o tamanho da imagem gerada. Ao gerar uma imagem maior, destinada a ser gravada em DVD, você vai precisar de uma quantidade proporcional de memória ou swap.

    Todo o processo de remasterização pode ser feito a partir do próprio CD do Kurumin, ou da distribuição que está sendo modificada. Todas as ferramentas necessárias estão inclusas no próprio CD.

    Uma observação importante é que é preciso usar a mesma versão do módulo cloop instalada no sistema de desenvolvimento para fechar o arquivo compactado. Em outras palavras, se você está fazendo um remaster do Kurumin, com uma versão personalizada do Kernel 2.6.16, por exemplo, você vai precisar instalar a mesma imagem do Kernel numa instalação do Kurumin no HD e fechar o novo ISO usando esta instalação.

    Se você estiver rodando versões diferentes do Kernel, ou estiver usando outra distribuição, as versões do cloop serão diferentes e o novo CD simplesmente não vai dar boot.
    O primeiro passo é dar boot com o CD do Kurumin ou da distribuição em que vai trabalhar. Monte a partição que será usada para extrair o sistema. Você pode aproveitar também a partição de uma distribuição Linux já existente no HD, desde que ele possua espaço livre suficiente.

    Um detalhe importante é que (no Kurumin) você deve montar a partição via terminal e não usando os atalhos no desktop. Eles montam as partições adicionando o parâmetro "nodev", que impede que os scripts direcionem suas saídas para o "/dev/null", causando uma série de erros. Vou usar como exemplo a partição "/dev/hda6".


    # mount -t reiserfs /dev/hda6 /mnt/hda6

    O próximo passo é criar duas pastas, uma para abrigar a imagem descompactada e outra para guardar os arquivos que irão no CD (fora da imagem compactada), como os arquivos de boot e os manuais. Lembre-se de que os arquivos dentro da imagem compactada ficam acessíveis apenas dando boot pelo CD, enquanto os arquivos fora da imagem podem ser acessados a partir de qualquer sistema operacional, como se fosse um CD-ROM comum.

    Na época em que comecei a desenvolver o Kurumin, a única referência (embora bem resumido) era o "Knoppix how-to" do Eadz. Em homenagem, continuo até hoje usando os nomes de pastas indicados nele:


    # mkdir /mnt/hda6/knxmaster
    # mkdir /mnt/hda6/knxsource
    # mkdir /mnt/hda6/knxsource/KNOPPIX

    A pasta "knxmaster" é usada para armazenar uma cópia simples dos arquivos do CD, usada para gerar o ISO final. A pasta "knxsource/KNOPPIX" por sua vez armazena a cópia descompactada do sistema, onde fazemos as modificações.

    Comece fazendo a cópia completa dos arquivos do CD para dentro da pasta "knxmaster/". Ao dar boot pelo CD, os arquivos ficam disponíveis dentro da pasta "/cdrom":


    # cp -a /cdrom/* /mnt/hda6/knxmaster/

    Em seguida, vamos criar a imagem descompactada do sistema na pasta knxsource/KNOPPIX/. Para o comando abaixo você deve ter dado boot a partir do CD; ele nada mais é do que uma forma de copiar o sistema de arquivos montado durante o boot para a pasta indicada:


    # cp -Rp /KNOPPIX/* /mnt/hda6/knxsource/KNOPPIX/

    Esta etapa demora um pouco, pois além de ler os arquivos no CD, o processador tem o trabalho de descompactar tudo, como se estivesse instalando o sistema no HD. Terminada a cópia, você verá a árvore de diretórios do sistema dentro da pasta:



    Você deve estar se perguntando se o próximo passo será acessar a pasta e sair editando os arquivos de configuração e instalando aplicativos manualmente. Bem, isso até seria possível para alguém sem muito o que fazer, mas existe uma forma muito mais fácil de trabalhar dentro da pasta de desenvolvimento, utilizando o comando "chroot". Ele permite transformar a pasta no diretório raiz do sistema, de modo que você possa instalar programas, instalar e remover pacotes e até mesmo abrir o KDE e sair alterando suas configurações. Tudo o que você fizer dentro da janela do chroot alterará seu novo CD bootável. Para ativá-lo, use o comando:


    # chroot /mnt/hda6/knxsource/KNOPPIX/
    (como root)

    A partir daí, a pasta passa a ser vista pelo sistema como se fosse o diretório raiz, fazendo com que todos os comandos sejam executados dentro do seu sistema de desenvolvimento:



    Antes de começar a trabalhar, monte o diretório /proc dentro do chroot. Sem isso a funcionalidade será limitada e você receberá erros diversos ao instalar programas:


    # mount -t proc /proc proc

    Nas versões recentes, que utilizam o udev (usado a partir do Kurumin 6.0), é necessário montar também a pasta "/sys" e o "/dev/pts". Sem os dois, você não conseguirá carregar o modo gráfico, como explico adiante:


    # mount -t sysfs sys /sys
    # mount -t devpts /dev/pts /dev/pts


    Para acessar a internet de dentro do chroot e assim poder usar o apt-get para instalar programas, edite o arquivo "/etc/resolv.conf", colocando os endereços dos servidores DNS usados na sua rede, como em:


    nameserver 200.199.201.23
    nameserver 200.177.250.138

    A partir daí, você pode instalar novos pacotes via apt-get, como se fosse um sistema instalado. Se precisar instalar pacotes manualmente, copie os arquivos para dentro de uma pasta no diretório e instale usando o comando "dpkg -i". No Kurumin, por exemplo, uso a pasta "/knxsource/KNOPPIX/packages/", que é vista como "/packages" dentro do chroot.

    Inicialmente, o chroot permite usar apenas comandos de modo texto. Você pode editar arquivos manualmente usando editores de modo texto, como o mcedit e o vi e usar o apt-get, mas não tem como usar ferramentas gráficas ou mudar configurações no centro de controle do KDE, por exemplo.

    É possível carregar o modo gráfico de dentro do chroot, configurando a variável DISPLAY do sistema para que seja usado um servidor X externo. Isso permite carregar o KDE ou outros ambientes gráficos, útil principalmente quando você precisar alterar as opções visuais do sistema, editar o menu do KDE ou alterar a configuração dos aplicativos.

    É até possível fazer isso via linha de comando (eu faço Piscando editando os arquivos de configuração do KDE (que vão dentro da pasta ".kde/", no home) mas é muito mais simples através do Kcontrol.

    Existem duas opções aqui. Você pode abrir um segunda seção do X, ou usar o Xnest (a opção mais simples, porém mais precária), que abre uma instância do X dentro de uma janela.

    Para abrir o servidor X "real", use o comando:


    # X -dpi 75 :1

    Isso abrirá um X "pelado", com a tela cinza e o cursor do mouse. Volte para o X principal pressionando "Ctrl+Alt+F7" e retorne para ele pressionando "Ctrl+Alt+F8".

    Para abrir o Xnest, use (neste caso com seu login de usuário, não o root), os comandos:


    $ xhost +
    $ Xnest :1

    Em ambos os casos, você terá aberta uma segunda seção do X (:1), que podemos usar de dentro do chroot. Note que, para usar o Xnest, você precisa instalar o pacote "xnest" via apt-get.

    Existem algumas considerações antes de continuar. Inicialmente, você está logado como root dentro do chroot. Ao alterar as configurações do sistema (configurações visuais, menu, programas que serão carregados na abertura do KDE, etc.) precisamos fazer isso como o usuário usado por padrão no sistema, "knoppix" no Knoppix ou "kurumin" no Kurumin.

    As configurações padrão vão inicialmente na pasta "/etc/skel". O conteúdo é copiado para a pasta home durante o boot, criando a pasta "/home/kurumin" ou "/home/knoppix". Precisamos refazer esse processo artificialmente, de forma a carregar o ambiente gráfico (e com o usuário certo Piscando a partir do chroot.

    Comece (ainda como root) copiando os arquivos para a pasta home do usuário desejado. Vou usar como exemplo o usuário kurumin. Lembre-se de que tudo isso é feito dentro da janela do chroot:


    # cd /home
    # cp -R /etc/skel kurumin
    # chown -R kurumin.kurumin kurumin/
    # rm -rf /var/tmp/*

    Agora logue-se como o usuário kurumin (ainda dentro do chroot) e abra o KDE na instância extra do X que abrimos anteriormente:


    # su kurumin
    $ cd /home/kurumin/
    $ export DISPLAY=localhost:1
    $ startkde

    Isso abrirá o KDE dentro da segunda seção do X. Se precisar carregar outra interface, substitua o "startkde" pelo comando adequado.



    Ao usar o Xnest, é normal que sejam exibidas mensagens de erro diversas (no terminal) durante a abertura do KDE. Alguns aplicativos podem ser comportar de forma estranha, o que também é normal já que ele não oferece todos os recursos do servidor X "real". Pense nele como uma forma rápida de alterar as configurações do sistema que está sendo remasterizado e não como algo livre de falhas.

    Depois de alterar todas as configurações desejadas, feche o KDE pelo "Iniciar > Fechar Sessão > Finalizar sessão atual" e, de volta ao terminal do chroot, copie os arquivos modificados do "/home/kurumin" de volta para o "/etc/skel", sem se esquecer de restabelecer as permissões originais:


    $ exit
    # cd /home
    # cp -Rf kurumin/* /etc/skel/
    # chown -R root.root /etc/skel
    # rm -rf /home/kurumin
    Depois de fazer a primeira rodada de alterações, é hora de fechar a nova imagem e testar. Evite fazer muitas modificações de uma vez, pois assim fica mais difícil de detectar a origem dos problemas. O ideal é fazer algumas alterações, fechar uma nova imagem, testar, fazer mais algumas alterações, fechar outro, e assim por diante. Salve as imagens anteriores, elas podem ser usadas como pontos de recuperação. Com elas, você pode recuperar o sistema a partir de qualquer ponto, caso aconteça qualquer problema estranho que não consiga resolver sozinho.

    Caso, mais adiante, você faça alguma alteração que quebre o sistema, basta dar boot com o último CD gerado, deletar o conteúdo da pasta "/knxsource/KNOPPIX" e extrair a imagem novamente. Você terá seu sistema de volta da forma como estava quando gravou o CD.

    Para fazer os testes, você tem duas opções: gravar os CDs e dar boot num segundo micro ou usar uma máquina virtual, configurada para usar o arquivo .iso gerado como CD-ROM (a melhor opção se você tem apenas um PC). Evite gravar as imagens em CD-RW para testar, pois eles apresentam muitos erros de leitura, que podem levar a problemas estranhos no sistema, causados por falta de arquivos. Eles podem fazer você perder muito tempo procurando por problemas que na verdade são causados pela mídia. Use CD-R normais, ou use diretamente os arquivos .iso dentro da VM.

    Ao fechar as imagens, comece limpando o cache de pacotes do apt-get dentro do chroot. O apt conserva uma cópia de todos os pacotes baixados, o que desperdiça bastante espaço.


    # apt-get clean


    Você pode também deletar a base de dados dos pacotes disponíveis (que é gerada ao rodar o "apt-get update"), reduzindo o tamanho da imagem final em quase 10 MB:


    # rm -f /var/lib/apt/lists/*
    (não delete a pasta "/var/lib/apt/lists/partial", apenas os arquivos)

    Outro comando útil, que ajuda a liberar espaço é o "deborphan", que lista bibliotecas órfãs, que não são necessárias para nenhum programa instalado. Elas vão surgindo conforme você instala e remove programas.


    # deborphan

    Os pacotes listados por ele podem ser removidos com segurança usando o "apt-get remove".

    Delete também o histórico de comandos do root, que contém os comandos que você executou durante o processo de personalização; não existe necessidade de divulgá-los ao mundo. Aproveite para eliminar também o diretório .rr_moved:


    # rm -f /home/root/.bash_history
    # rm -rf /.rr_moved
X
Working...
X