Revista Do Linux
 
  
  
 

  CD do Mês
  Capa
  Entrevista
  Estudo de Caso
  Curso de Java
  Comunidade
  Internacional
  Especial
assinantes
 

Crie sua própria distribuição

Como personalizar o Knoppix e o Kurumin

O Knoppix é uma distribuição Linux baseada no Debian, que utiliza o módulo cloop para rodar a partir de uma imagem compactada gravada em um CD-ROM. Além de rodar diretamente do CD-ROM, sem alterar nada 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 o Linux, o Knoppix funciona e sem absolutamente qualquer intervenção do usuário.

A parte mais interessante de tudo isso é que você pode personalizar o CD do Knoppix, adicionando ou removendo programas, alterando as configurações ou o que mais for necessário para fazer uma distribuição Linux adaptada às suas necessidades.

As vantagens do Knoppix neste caso são:

  • Ele detecta e configura o hardware automaticamente, dispensando a configuração manual de cada máquina.
  • Ele já vem com um instalador (o knx-hdinstall) que permite instalá-lo no HD rapidamente, mantendo toda a configuração de hardware feita durante o boot.
  • É possível instalar qualquer um dos mais de 9.000 pacotes do Debian com um único comando.
  • O conteúdo do CD é compactado, o que permite instalar quase 2 GB de programas em um CD de 700 MB, o que é mais do que suficiente para um sistema completo.
  • É possível instalar drivers para softmodems, programas binários e comerciais. 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 apresentar 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.

    Estou, por exemplo, desenvolvendo um projeto de uma mini-distribuição, o Kurumin, que inclui o KDE 3, Adobe Acrobat Reader, Kword, visualizadores de imagem, Kmail, Gftp, Gaim e outros programas para uso em desktop, além de ferramentas de acesso remoto como o VNC e SSH. Tudo isso em uma imagem de disco com menos de 180 MB. Você pode baixar a versão mais recente no www.guiadohardware.net/linux/kurumin.

    Também é possível gravar o Kurumin num miniCD ou personalizá-lo para incluir outros programas, assim como na distribuição padrão do Knoppix. Você pode usar o próprio Kurumin para editar seu conteúdo, não é preciso sequer ter o Linux instalado, apenas algum espaço livre no HD.

    Existe mais gente desenvolvendo distribuições baseadas no Knoppix. Você pode ver anúncios de outros projetos em www.knoppix.net/docs/index.php/KnoppixProjects. O Kurumin é só um exemplo. As instruções abaixo são um misto das instruções do Knoppix Remastering How-to e minhas experiências pessoais e podem ser usadas tanto com o Knoppix original quanto com o Kurumin.

    Como o Knoppix funciona

    O CD do Knoppix contém apenas três diretórios: /Demos, /Talks e /KNOPPIX. Os dois primeiros contêm algumas músicas no formato Ogg Vorbis e apresentações, nada importante para o funcionamento do sistema. A pasta /KNOPPIX é a que nos interessa. Dentro dela, você encontrará as imagens dos disquetes de boot e um arquivo de quase 700 MB.

    Este arquivo é nada mais do que uma imagem compactada, da partição raiz do sistema. O módulo cloop incluído no Knoppix "engana" o kernel, fazendo-o pensar que está acessando uma partição ext2 no HD. Quando é preciso carregar um arquivo dentro da pasta /usr/bin, por exemplo, o módulo lê e descompacta o arquivo entregando os dados já mastigados para o kernel.

    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 durante a inicialização. Este ramdisk pode crescer conforme necessário, desde que haja memória suficiente. Como nem todo mundo tem 256 MB de RAM, o Knoppix utiliza partições Linux Swap, ou arquivos de troca encontrados em partições Windows caso tenha um HD instalado.

    Para gerar uma versão personalizada, precisamos descompactar a imagem numa pasta do HD, fazer as modificações desejadas, gerar uma nova imagem compactada e finalmente gerar o arquivo ISO que pode ser gravado no CD. Para isto, você vai precisar de:

  • Uma partição Linux com 3.5 GB de espaço livre (2 GB para a imagem descompactada, 700 MB para a nova imagem e mais 700 MB para o novo arquivo ISO). Para o Kurumin, os requisitos são bem menores, cerca de 1GB é suficiente.

  • Uma partição Linux Swap (ou um arquivo de swap). Calcule o tamanho como 1 GB menos a quantidade de memória RAM do PC. Se você tem 256 MB de RAM, por exemplo, vai precisar de mais 768 MB de swap. O problema, neste caso, é que o sistema usa a memória para armazenar a imagem compactada enquanto esta está sendo criada e só depois copia tudo para o HD. Uma imagem completa do Knoppix tem 700 MB e precisamos de um pouco mais de memória para o uso normal do sistema. Note que a quantidade de memória varia de acordo com o tamanho da imagem gerada: você vai precisar de menos memória se estiver editando uma imagem menor, como o Kurumin.

    Se você não tiver uma partição swap pode criar um arquivo temporário usando espaço livre em sua partição Linux. Para isso, basta usar os comandos abaixo (como root):

    # dd if=/dev/zero of=/mnt/hda1/swap bs=1024 count=1000000
    # mkswap /mnt/hda1/swap
    # swapon /mnt/hda1/swap
    

    Substitua o hdal pela sua partição Linux, caso seja diferente.

    Personalizando os arquivos do CD

    Você pode criar as partições necessárias usando um CD de instalação do Mandrake ou o cfdisk incluído no próprio Knoppix. Você pode aproveitar também a partição de uma distribuição Linux já existente no HD, desde que ela tenha espaço livre suficiente. Neste caso, não é possível utilizar uma partição Windows.

    Comece dando boot pelo CD do Knoppix. Pressione Ctrl+Alt+F2 para mudar para o console texto e use o comando passwd para definir uma senha de root. Volte para o modo gráfico pressionando Ctrl+Alt+F5. Abra um terminal e logue-se como root (su ).

    Comece montando sua partição de trabalho. Um detalhe importante é que você deve montar a partição usando o comando mount, e não os atalhos no desktop, já que 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. No terminal, digite:

    # mount /dev/hda1 /mnt/hda1

    Se a partição de trabalho for do tipo ReiserFS, adicione o parâmetro -t reiserfs ao comando acima (mount -t reiserfs). Se for do tipo Ext3, o parâmetro a ser adicionado é -t ext3.

    Agora você deve criar duas pastas, uma para abrigar a imagem descompactada e outra para guardar arquivos que irão no CD, fora da imagem. Lembre-se de que o que estiver dentro da imagem compactada só fica acessível após o boot pelo CD, enquanto que os arquivos fora da imagem podem ser acessados a partir de qualquer sistema operacional, como em um CD-ROM comum. Seguindo o How-to original:

    # mkdir /mnt/hda1/knxmaster
    # mkdir /mnt/hda1/knxsource
    # mkdir /mnt/hda1/knxsource/KNOPPIX
    

    Em seguida, copie todo o conteúdo do CD para o diretório knxmaster. Tanto faz copiar ou não o arquivo compactado; de qualquer forma, ele será substituído mais adiante. Vamos entender o que vai dentro do CD:

    O arquivo index.html encontrado no raiz do CD é a página web que é aberta automaticamente durante o boot. Você pode, por exemplo, incluir uma cópia off-line do seu site no CD. Assim, quando derem boot pelo CD, seus leitores verão seu site. Legal, não? Os arquivos autorun.bat e autorun.inf são responsáveis pela execução automática (autorun) do CD no Windows, que também abre a mesma página html. Você pode editar estes arquivos para que abram uma página diferente ou mesmo executem um programa que mostre uma tela de apresentação mais elaborada.

    Dentro da pasta Knoppix, você encontrará o arquivo background.gif que é o papel de parede usado no KDE. Você também pode substituí-lo por outra imagem de seu agrado. Os arquivos boot.img e boot.cat são necessários para tornar o CD bootável, não os apague. Por outro lado, os arquivos boot-en.img e boot-de.img são imagens opcionais que podem ser apagadas para liberar espaço, junto com as pastas /talks e /demos.

    Veja que estes arquivos estão "fora" da imagem do Knoppix. Eles podem ser lidos em qualquer sistema operacional. A alteração mais simples que você pode fazer é simplesmente substituir estes arquivos, criando um CD do Knoppix personalizado. Neste caso, você pode experimentar usar o Kurumin como base, já que ele deixa mais de 500 MB livres no CD para você colocar o que quiser. Você pode fazer um CD bootável com programas de recuperação, um CD com livros e outros tipos de documentação e assim por diante.

    Neste caso, você só precisa gerar outro ISO bootável: coloque os arquivos do diretório knxmaster na raiz do CD e aponte o arquivo boot.img como imagem de boot. Caso o programa peça por um catálogo de boot (boot catalog), aponte o arquivo boot.cat. Para gravar o CD no X-CD-Roast, selecione a opção Master Tracks, indique a pasta onde estão os arquivos do CD na opção Master Source e os arquivos boot.img e boot.cat na opção Boot Options.

    Se você prefere a linha de comando, pode usar o próprio Knoppix (ou Kurumin) para gerar a nova imagem. Acesse o diretório knxmaster e use o comando:

    $ mkisofs -pad -l -r -J -v -V "KNOPPIX" -b KNOPPIX/boot.img -c KNOPPIX/boot.cat -hide-rr-moved -o /algum_lugar/knoppix.iso /algum_lugar/knxmaster

    Substitua o /algum_lugar/knoppix.iso pelo diretório onde quer que a imagem ISO seja gerada e o /algum_lugar/knxmaster, pelo caminho completo até o diretório knxmaster no seu HD.

    O CD também pode ser gravado através do Windows. No Easy CD Creator, clique em Arquivo -> Novo Projeto de CD -> CD de inicialização. Na tela que surgir, escolha Emulação por disquete (1.44 MB), Usar um arquivo de imagem existente e aponte para o arquivo boot.iso na pasta do Knoppix.

    Criando seu sistema de desenvolvimento

    Ok, vamos então ao que interessa, que é alterar o sistema em si. O primeiro passo é descompactar a imagem dentro do diretório knxsource/KNOPPIX que criamos anteriormente.

    Substituia o hda1 pela partição de trabalho que estiver utilizando. Esta etapa demora um pouco, cerca de 35 minutos num Celeron 600 com um CD-ROM de 40x, por exemplo. Ao fim do processo, você verá que a árvore de diretórios do sistema ficará acessível dentro do diretório /mnt/hda1/knxsource/KNOPPIX.

    Você deve estar pensando que o próximo passo é acessar o diretório e sair editando os arquivos de configuração e instalando os programas manualmente, mas existe uma forma muito mais fácil de trabalhar dentro da pasta de desenvolvimento, utilizando o comando chroot. Ele permite transformar nossa pasta de trabalho no diretório raiz do sistema, de modo que você possa instalar programas, adicionar e remover pacotes e até mesmo abrir o KDE e alterar suas configurações. Tudo o que você fizer dentro da janela do chroot alterará seu novo CD bootável. Use o comando:

    # chroot /mnt/hda1/knxsource/KNOPPIX

    Antes de começar a trabalhar, monte o diretório /proc dentro do ambiente chroot. Sem isso, sua funcionalidade será limitada:

    # mount -t proc /proc proc

    Fazendo isso, você já terá acesso completo via linha de comando. O próximo passo é abrir também o modo gráfico para poder trabalhar mais confortavelmente. Isto pode ser feito usando o Xnest, um utilitário que permite abrir um servidor X dentro de outro. Ele permite que você abra o KDE do seu sistema de desenvolvimento dentro de uma janela no ambiente gráfico principal. Para isso, abra mais um terminal dentro do seu sistema host e use o comando:

    $ Xnest :1

    Isso abre uma janela com o segundo X. Por enquanto, temos só a tela cinza com o cursor do mouse. Volte para o terminal do chroot e use os comandos:

    # export DISPLAY=localhost:1
    # startkde &
    

    Bingo! O chroot carrega o KDE dentro da janela do Xnest e você pode começar a trabalhar com todos os aplicativos gráficos. Para acessar a Internet de dentro do ambiente chroot, você deve editar o arquivo /etc/resolv.conf, adicionando o endereço do servidor DNS do provedor. Exemplo:

    search home
    nameserver 200.177.250.10
    nameserver 200.176.2.10
    

    É agora que começa o nosso trabalho de personalização propriamente dito. Como disse, o Knoppix é baseado no Debian, o que permite a você instalar qualquer pacote .deb, além de, naturalmente, programas em código fonte e binários diversos.

    Um detalhe importante: Quando terminar de trabalhar dentro da janela do Xnest, volte para o terminal do chroot e use o comando abaixo para restabelecer as permissões de acesso do diretório /etc/skel e das chaves de autenticação dentro do diretório /var/tmp:

    # chown -R root.root /etc/skel
    # chown -R knoppix.knoppix /var/tmp/mcop-knoppix
    # chown -R knoppix.knoppix /var/tmp/ksocket-knoppix
    # chown -R knoppix.knoppix /var/tmp/kde-knoppix
    

    Caso contrário, você terá problemas com o carregamento do KDE depois de gravar o novo CD.

    Lembre-se de que dentro do ambiente chroot você pode criar novos usuários usando o comando adduser, como em: adduser jose. Para se logar como o usuário criado, basta usar um su jose e depois exit para voltar a ser root. Para alterar as senhas de root e do usuário Knoppix use o comando passwd.

    Removendo pacotes desnecessários

    Caso esteja trabalhando no Knoppix, antes de instalar qualquer coisa, você precisará remover alguns pacotes, pois o sistema ocupa quase todo o espaço do CD. A forma mais fácil de fazer isso é usar o kpackage, gerenciador de pacotes do KDE. Ele mostra uma lista dos pacotes instalados no sistema, e clicando sobre cada um, você tem acesso a uma janela com uma descrição e seu nível de prioridade:

  • Required - O pacote é um componente básico do sistema. Sem ele, o sistema pode não ser capaz de inicializar (sequer em modo texto) ou você pode perder alguma função essencial (que tal ficar sem o interpretador de comandos?). Ou seja, só remova algum pacote "required" se você souber exatamente o que ele faz e estiver certo de que não precisa dele.

  • Important - Não é essencial. O sistema pode rodar sem o pacote, mas ainda assim é necessário para alguma função básica. Existem relativamente poucos pacotes nesta categoria. Alguns exemplos são os sistemas de log, agendamento de tarefas (cron, at) e gerenciadores de boot.

  • Standard - Estes são os pacotes padrão do sistema. Esta categoria inclui, por exemplo, o XFree, o apt e o suporte a TCP/IP. Você pode usar o sistema sem alguns destes itens, mas sempre perdendo algum recurso importante.

  • Optional - Nesta categoria está a maior parte dos pacotes incluídos. Os pacotes opcionais são programas, bibliotecas e ferramentas de configuração que podem ser removidos com certa segurança. Lembre-se de que apesar, de pacotes nesta categoria não serem necessários para o sistema em si, podem ser necessários para outros programas. Se você remover o pacote kde-base, por exemplo, o KDE deixará de funcionar.

  • Extra - São pacotes que não fazem parte da instalação padrão do Debian. O Knoppix inclui muitos pacotes nesta categoria, utilitários diversos que podem quase sempre ser removidos com segurança.

    O próprio kpackage oferece um recurso de remoção de pacotes, mas eu recomendo que você utilize o apt-get, via terminal. Para isso, basta usar o comando apt-get remove, seguido do nome do pacote a ser removido, como em:

    # apt-get remove openoffice-de-en

    O apt-get possui um sistema de verificação de dependências muito elaborado que permite verificar exatamente quais outros pacotes dependem daquele que você está removendo. Se você tentar remover o pacote kde-base, por exemplo, ele retorna uma lista enorme de itens, informando que, junto com ele, você deve remover quase todos os pacotes do KDE. Com ele, fica muito mais difícil remover pacotes essenciais por acidente.

    O seu trabalho daqui pra frente é examinar a lista de pacotes fornecida pelo kpackage e ir eliminando alguns até que você consiga liberar espaço suficiente para instalar os programas e arquivos desejados. Lembre-se que o Knoppix utiliza um CD de 700 MB inteiro, com mais de 1250 pacotes. Se você pretende gravar sua distribuição em CDs de 650 MB ou pior, quer gerar uma mini-distribuição que caiba num miniCD de 190 MB, então existem muitos pacotes a remover. Veja alguns que podem ser removidos com segurança:

    openoffice-de-en - O OpenOffice ocupa mais de 200 MB e sequer inclui os dicionários pt_BR

    tetex-base - O Knoppix inclui um excelente suporte ao Tex (e variantes como o Latex), uma linguagem de formatação de textos muito usada no meio acadêmico. Porém, se você não escreve em Latex, pode liberar quase 100 MB removendo o tetex-base e seus dependentes.

    emacs21 - O Editor EMacs é um monstro sagrado, adorado por 11 entre 10 programadores do mundo, mas de pouca utilidade para os pobres mortais, que podem eliminá-lo, liberando quase 50 MB em seus CDs do Knoppix.

    vim - O vim é uma versão melhorada do editor vi, principal concorrente do Emacs e dono dos corações de muitos programadores. Mas, hoje em dia, quando você digita vi em um terminal acaba utilizando o Elvis ou outro editor mais compacto. Enfim, se você não pretende desenvolver nenhum aplicativo, tem a chance de liberar mais 12 MB.

    kde-18n-** - O Knoppix inclui pacotes de internacionalização do KDE para várias línguas, incluindo alemão, francês, dinamarquês, russo e japonês. Juntos estes pacotes ocupam quase 95 MB. Aproveite para depois baixar o kde-18n-pt_BR de um dos servidores FTP do projeto KDE. Ele tem apenas 4 MB e adiciona ao KDE o suporte ao português do Brasil.

    Os tamanhos aqui citados referem-se ao espaço ocupado pelos pacotes na imagem descompactada. O espaço realmente ocupado no CD do Knoppix é de aproximadamente um terço disto. Ou seja, removendo o pacote do OpenOffice, a imagem do Knoppix passa a ter aproximadamente 630 MB. Mesmo assim, removendo os pacotes acima, junto com os diretórios, você já estará liberando cerca de 180 MB no CD, suficiente para começar o seu trabalho.

    Lembre-se de que sempre existe a possibilidade de "começar de baixo", usando o Kurumin como base. Assim, você já começa o trabalho com bastante espaço livre e pode se concentrar na inclusão das ferramentas necessárias para o seu projeto.

    Instalando novos programas

    Após concluir a remoção dos pacotes desnecessários, chegou a hora de instalar os novos. Existem basicamente duas opções. A primeira é acessar o servidor FTP do Debian em ftp.debian.org (login anônimo) e baixar os pacotes desejados. A maioria está concentrada na pasta /pool. Você pode também utilizar pacotes dos CDs de uma versão recente do Debian.

    Baixe os pacotes e copie-os para alguma pasta dentro do seu diretório /knxsource/KNOPPIX e use o comando dpkg -i para instalá-los dentro do seu ambiente chroot. Para instalar um pacote chamado gftp_2.0.14-1_i386.deb, o comando seria:

    # dkpg -i gftp_2.0.14-1_i386.deb

    Caso o pacote tenha dependências, o dpkg lhe dará a lista dos pacotes que precisam ser instalados. Se você quiser forçar a instalação de um pacote, dispensando a checagem de dependências, use o comando dpkg -i -- force-all pacote.deb. Eu não recomendo forçar instalações de pacotes, pois na maioria dos casos o programa não vai funcionar.

    A segunda opção (mais prática) é usar o próprio apt-get. Ele baixa e instala pacotes automaticamente, de quebra checando e instalando também as dependências. A lista com os servidores onde o apt procura pacotes para instalar fica no arquivo /etc/apt/sources.list. Basta fornecer os endereços desejados, um por linha. O Knoppix já vem com este arquivo pré-configurado e, provavelmente, você não terá problemas.

    Antes de usar o apt-get, é preciso baixar as listas dos pacotes disponíveis, o que pode ser feito através do comando apt-get update. O processo demora um pouco, mas a partir daí você já pode instalar qualquer pacote com o comando apt-get install pacote, bastando saber o nome do pacote que você quer instalar. Não sabe o nome? Faça uma busca na lista de pacotes com: apt-cache search nome.

    Você pode ainda atualizar pacotes usando o apt-get upgrade pacote. Se executado sem um nome de pacote como argumento, este comando atualiza de uma vez todos os pacotes do sistema, com exceção dos que precisarem de pacotes não instalados para satisfazer suas dependências. Esta atualização mantém os arquivos de configuração e personalização do sistema

    Os pacotes .tar.gz com código fonte podem ser instalados da maneira usual. O Knoppix inclui um conjunto bastante completo de compiladores, e você não deverá ter problemas. É possível instalar também pacotes binários, como os do Phoenix, Freecraft, Macromedia Flash, o JRE da Sun, drivers para softmodems e assim por diante. Os compiladores não estão incluídos no Kurumin, de onde os removi para economizar espaço.

    A forma mais prática de instalar pacotes de código fonte no Kurumin é compilá-los usando o Knoppix, que contém as ferramentas necessárias. Basta usá-lo para dar os comandos ./configure e make no Knoppix, deixando para dar o make install no Kurumin.

    Gerando a nova imagem

    Ao remover muitos pacotes do sistema é normal que surjam muitos pacotes "órfãos", bibliotecas e arquivos que não são mais usados por nenhum programa e que servem apenas para ocupar espaço. Você pode localizar estas sobras facilmente usando o comando deborphan que retorna uma lista dos pacotes órfãos que podem ser seguramente removidos via apt-get. Isto vai liberar mais alguns megabytes.

    Você pode liberar mais cerca de 30 MB nas pastas /usr/src e /usr/share/doc. Elas contêm respectivamente código fonte do Kernel (necessário apenas se você pretende recompilá-lo) e arquivos de documentação.

    # rm -rf /usr/src/*
    # rm -rf /usr/share/doc/*
    

    Você pode liberar ainda mais espaço limpando o cache local de pacotes utilizado pelo apt-get:

    # apt-get clean

    Delete também o histórico de comandos do root. Este arquivo armazena os últimos comandos usados. Aproveite para eliminar também o diretório .rr_moved:

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

    Finalmente chegou a hora de sair do ambiente chroot e gerar a nova imagem. Comece desmontando o diretório /proc:

    # umount /proc

    Agora, pressione CTRL+D para sair do ambiente chroot. O próximo passo é gerar o novo arquivo compactado. Esta etapa demora um pouco, já que o sistema precisa compactar todo o diretório knxsource. Quanto menor a imagem, menos tempo é necessário, mais um estímulo para manter sua distribuição pequena.

    Antes de tentar gerar a imagem, use o comando free para verificar se a memória swap está ativada. Se necessário, formate novamente a partição swap e reative-a com os comandos mkswap /dev/hda2 e swapon /dev/hda2, substituindo o hda2 pela partição correta. Gere a imagem com o comando:

    # mkisofs -R -V "Meu_CD" -hide-rr-moved -pad /mnt/hda1/knxsource/KNOPPIX | /usr/bin/create_compressed_fs - 65536 > /mnt/hda1/knxmaster/KNOPPIX/KNOPPIX

    Não é necessário entender o comando para usá-lo, mas se você quer mais detalhes sobre o que faz cada opção, aqui vai:

    mkisofs - Este é o programa mais usado para gerar imagens no Linux, utilizado até pela maioria dos programas gráficos como o Xcdroast.

    -R - Ativa as extensões Rock-Ridge, que adicionam suporte a nomes longos no CD.

    -V "Meu_CD" - O nome do volume. Você pode substituir o texto entre aspas por qualquer outro nome.

    -hide-rr-moved - Esconde o diretório .rr_moved, caso seja encontrado. Apenas uma precaução.

    -pad - Para prevenir problemas de leitura, o tamanho total da imagem deve ser sempre um múltiplo de 32 KB. Este parâmetro verifica isso e adiciona alguns bytes zero no final da imagem para completar estes últimos 32 KB, se necessário.

    /mnt/hda1/knxsource/KNOPPIX - Este é o diretório fonte, onde está a imagem descompactada do sistema. Não se esqueça de substituir o hda1 pela partição correta.

    | /usr/bin/create_compressed_fs - 65536 - Este é o grande truque. Ele direciona toda a saída do comando para o programa create_compressed_fs incluído no CD do Knoppix. Ele se encarrega de compactar os dados.

    > /mnt/hda1/knxmaster/KNOPPIX/KNOPPIX - Este é o diretório destino, onde será gravada a imagem compactada. Novamente, substitua o hda1 pela partição correta.

    Depois de gerar a imagem, você notará que o seu micro ficou bastante lento, pois o processo consome toda a memória RAM disponível. Isso é normal; mova um pouco o mouse e clique nas janelas, que ele logo volta ao normal. Agora, falta apenas fechar a imagem ISO do CD:

    # cd /mnt/hda1/knxmaster
    # mkisofs -pad -l -r -J -v -V "Meu_CD" -b KNOPPIX/boot.img -c KNOPPIX/boot.cat -hide-rr-moved -o /mnt/hda1/novo.iso /mnt/hda2/knxmaster
    

    O /mnt/hda1/novo.iso é a localização e nome da imagem que será criada. Altere, se desejar.

    Ao contrário da geração da imagem compactada, a criação da imagem ISO é bem rápida, em geral, menos de dois minutos. Depende apenas da velocidade do seu HD. Assim que o processo for concluído, você pode gravar seu novo CD e ver se tudo está funcionando como desejado.

    Eu recomendo que, periodicamente, você feche a imagem e grave um novo CD, pois além de ajudar a detectar problemas, os CDs gravados servem como um ponto de recuperação. Caso mais adiante você faça alguma alteração que quebre o sistema e não saiba como reverter, basta dar boot com o último CD gerado, deletar o conteúdo do diretório /knxsource/KNOPPIX e extrair novamente a imagem. Você terá seu sistema de volta da forma como estava quando gravou o CD. Se não tiver discos sobrando, pode usar um disco CD-RW ou simplesmente arquivar as imagens ISO em uma pasta do HD e gravá-las, se necessário.

    Personalizando o KDE e outros programas

    O Knoppix armazena as preferências padrão do usuário Knoppix (o usuário padrão) no diretório /etc/skel. O conteúdo desta pasta é copiado para o diretório /ramdisk/home/knoppix durante o boot, e todas as alterações são perdidas quando o micro é desligado.

    Para estas preferências, é preciso ir direto ao ponto, editando diretamente os arquivos do diretório /etc/skel dentro do ambiente chroot. Navegando dentro dela, você vai encontrar pastas com as preferências do KDE e de vários outros programas. Não se esqueça de marcar a opção "marcar arquivos ocultos" no Konqueror.

    O problema é que esta edição manual dos arquivos é trabalhosa e nem todo mundo conhece todas as opções. Existe uma segunda opção, bem mais fácil, que é simplesmente dar boot, fazer todas as alterações necessárias e em seguida salvar as configurações num disquete, usando a ferramenta encontrada no submenu Knoppix, no "menu iniciar".

    Dentro do disquete, você encontrará dois arquivos: knoppix.sh e config.tbz. Ou seja, um arquivo compactado contendo as configurações e o script que as carrega durante o boot.

    Normalmente, você precisaria digitar knoppix floppyconfig na linha de opções no início do boot para utilizar as configurações do disquete. Mas, ao remasterizar seu CD, você tem a opção de copiar os dois arquivos para dentro da pasta /knxmaster/KNOPPIX, de modo que eles fiquem dentro da pasta KNOPPIX do CD. O Knoppix inclui um pequeno utilitário que se encarrega de automaticamente carregar estes arquivos durante o boot, sem que você precise fazer mais nada.

    Se mais adiante você quiser alterar as configurações, basta gerar outro disquete, substituir os arquivos na pasta /knxmaster/KNOPPIX e queimar outro CD.

    Entretanto, os arquivos knoppix.sh e config.tbz servem apenas para personalizar as configurações do CD. Ao instalar o sistema no HD, você vai notar que elas estarão bem diferentes, pois, neste caso, continuam valendo as opções do diretório /etc/skel.

    A melhor forma de personalizar estas configurações é abrir o ambiente chroot, logar-se como o usuário desejado, copiar as pastas do /etc/skel, rodar o KDE e alterar as configurações desejadas dentro da janela do Xnest e depois salvar as alterações. Comece (ainda como root) copiando os arquivos para a pasta /home do usuário desejado. Vou usar como exemplo o usuário knoppix:

    # cd /home
    # cp -R /etc/skel knoppix
    # chown -R knoppix.knoppix knoppix/
    

    Agora, logue-se como o usuário knoppix (ainda dentro do chroot) e abra o KDE na janela do Xnest:

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

    Depois de alterar todas as configurações desejadas, feche o KDE e, de volta ao terminal do ambiente chroot, copie os arquivos modificados de /home/knoppix de volta para /etc/skel, sem se esquecer de restabelecer as permissões:

    $ exit
    # cd /home
    # cp -Rf  knoppix/* /etc/skel/
    # chown -R root.root /etc/skel
    # rm -rf /home/knoppix
    

    Mudando o logo do boot

    Para finalizar a sua personalização, você pode alterar também o logo que aparece na tela de boot, onde você pode passar os parâmetros para o Kernel. Esta é uma imagem de 640x400 pixels e 16 cores, compactada no formato lss e incluída na imagem do disquete de boot do Knoppix. Para editá-la, você precisa inicialmente montar a imagem, comece copiando o arquivo boot.img para uma pasta qualquer do HD. Em seguida, monte-o com o comando:

    # mkdir /mnt/boot
    # mount -o loop boot.img /mnt/boot
    

    Acesse a pasta, e você poderá editar os arquivos do disquete livremente. Os arquivos que nos interessam são o logo.16 e o boot.msg. O logo.16 é a imagem propriamente dita enquanto o boot.msg contém a mensagem de texto exibida na borda da tela.

    Existem duas opções. Você pode usar um logo.16 de 640x480, que ocupará toda a tela sem deixar espaço para a mensagem de texto, ou usar um boot.16 de 640x400 (o padrão), o que lhe deixará com espaço para 4 linhas de texto, que você pode alterar editando o arquivo boot.msg em qualquer editor de textos. Para gerar o novo boot.16, comece criando a imagem no Gimp ou outro editor de imagens e salve-a no formato PNG.

    Agora você precisará de duas ferramentas para converter a imagem para o formato lss: o pngtopnm e o ppmtolss16. O Knoppix não inclui o segundo programa, mas você pode baixá-lo em www.trustix.net/pub/Trustix/trustix-1.2/i586/misc/src/trees/syslinux-1.62. É um script em Perl com apenas 7 kb, que também pode ser encontrado ainda em várias distribuições como, por exemplo, o Mandrake 9.0. Para converter a imagem, basta usar dois comandos:

    # pngtopnm imagem.png > imagem.pnm
    # ppmtolss16 < imagem.pnm > logo.16
    

    Copie o novo logo.16 para a pasta onde montou o disquete e, em seguida, desmonte-o com o comando umount/mnt/boot. Para testar a nova imagem não é preciso queimar outro CD, basta gravá-la num disquete de boot com o comando:

    # dd if=boot.img of=/dev/fd0

    Se ao invés disso você acabar com uma imagem desfocada, provavelmente o formato da imagem está incorreto. Lembre-se, existem apenas duas opções de formato: 640x400 ou 640x480, nem um pixel a mais, nem um pixel a menos. Existe um único formato suportado, o lss. Repita o procedimento e tente descobrir onde foi que errou.

    Lembre-se também de que o disquete possui pouco espaço vago para a imagem. Por isso, ela não pode ser muito colorida. Assim como o PNG, o formato de compressão do lss é baseado na variação de cores. Quanto mais detalhes, degradês, etc., maior fica o arquivo.

    Quando tudo estiver pronto, basta substituir o antigo boot.img no seu diretório de desenvolvimento pelo novo e queimar o novo CD.

    K-tools

    A partir do Kurumin RC-3, incluí alguns scripts simples que visam a simplificar um pouco o trabalho para quem remasteriza repetidamente a imagem e já está cansado de ficar digitando ou copiando todos os comandos. Eu os criei para meu próprio uso, mas, com alguma adaptação, eles podem servir pra você também.

    Veja os arquivos k-open, k-close e k-rebuild no diretório /usr/bin do Kurumin e edite-os para que se apliquem às suas necessidades. O k-open monta a partição de trabalho e coloca você dentro do ambiente chroot, o k-close roda os comandos para fechar a imagem ISO depois que você terminar, enquanto o k-rebuild automatiza a tarefa de apagar o diretório knxsource/KNOPPIX e reextrair a imagem do CD quando alguma coisa dá errado com sua última imagem.

    Instalação no HD

    O knx-hdinstall, responsável pela instalação do Knoppix no HD, é um script relativamente simples que pode ser encontrado na pasta /usr/local/bin da imagem descompactada. Você pode editá-lo facilmente, traduzindo as mensagens de texto e até mesmo alterando seus comandos. A partir da versão de 01/01/2003 do Knoppix, o knx-hdinstall passou a oferecer também a opção de formatar a partição destino em Ext3, ReiserFS e XFS, um grande avanço sobre as primeiras versões que suportavam apenas o Ext2. As mensagens exibidas estão sempre entre aspas, como aqui:

    M1="No swap partition chosen. The script will be terminated."

    Tudo o que você precisa fazer é substituir o texto. O Kurumin inclui uma versão adaptada e traduzida do knx-hdinstall que você pode usar como base para o seu projeto. Ao copiar o script, você deve sempre copiar o arquivo knx-templates correspondente, que pode ser encontrado na pasta /usr/local/lib. Se você tiver o cuidado de revisar os links no arquivo /etc/apt/sources.list, instalar novos programas depois de concluída a instalação no HD é extremamente simples, basta dar um apt-get update para atualizar a lista de pacotes disponíveis e, a partir daí, instalar o que quiser digitando apt-get install gimp, apt-get install mozilla, etc. O mais interessante é que, além de resolver automaticamente problemas de dependências, o apt-get já coloca automaticamente ícones para os programas instalados no "menu iniciar".

    Você pode criar uma distribuição pequena, que instale apenas os programas mais comuns, e deixar que os próprios usuários instalem outros programas desejados. Você pode escrever um pequeno guia, mostrando alguns programas disponíveis e os comandos de instalação correspondentes ou mesmo incluir alguns atalhos no iniciar: "instalar mozilla", "instalar gimp", etc.

    É mais ou menos esta a idéia usada no Lindows, que torna o sistema bem fácil de usar. O usuário acessa um diretório onde estão as descrições dos programas e pode instalar qualquer um simplesmente clicando um botão. A diferença é que o Click-and-Run do Lindows é um serviço comercial, que custa 70 dólares por ano, enquanto as instalações via apt-get não custam nada. Na verdade, o sistema do Lindows é baseado justamente no apt-get.

    Se você souber combinar todas as idéias que dei até aqui, será capaz de desenvolver vários tipos de soluções personalizadas. É um mercado de trabalho muito promissor.

    Importante

    Para que o comando abaixo funcione, você deve inicializar o sistema a partir do CD do Knoppix ou Kurumin, já que ele nada mais é do que uma forma de copiar o sistema de arquivos montado durante o boot para o diretório indicado.

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

    Informações complementares

    Estas são mais algumas dicas que fui descobrindo ao longo do tempo e que podem lhe poupar algumas boas horas de frustração.

    Como é o processo de inicialização do Knoppix?

    Depois de fazer a detecção do Hardware, o Knoppix copia os arquivos da pasta /etc/skel para os diretórios /ramdisk/home/root e /ramdisk/home/knoppix. Como você pode ver, os diretórios /home vão dentro do ramdisk, pois, caso contrário, não haveria permissão de escrita e os programas simplesmente não rodariam. O diretório /etc/skel armazena as configurações padrão, usadas inclusive para a instalação do sistema no HD. Ele é o ponto de partida para todas as alterações nas preferências dos usuários.

    Em seguida, o Knoppix carrega o gerenciador de janelas, que, por padrão, é o KDE. Você deve ter notado que ao dar boot direto do CD, o Knoppix abre o KDE direto, enquanto que, ao ser instalado no HD, ele passa a pedir login. O truque aqui é bem simples. Em qualquer dos casos, o Knoppix usa o KDM como gerenciador de login. Você pode configurá-lo no painel de controle do KDE, em Sistema > Gerenciador de Login. O que o Knoppix faz é usar duas configurações diferentes para o KDM. O CD usa o recurso de login automático para que você possa usar o sistema sem login. Ao contrário da crença popular, as contas root e knoppix possuem senhas, mas o sistema é configurado de uma forma tal que o usuário pode usá-lo sem precisar conhecê-las.

    Ao remasterizar o CD, você pode alterar as senhas e desabilitar o autologin para que o sistema peça login e senha durante o boot.

    Durante a instalação no HD, o arquivo de configuração é substituído. Você tem a chance de definir senhas para os usuários root e knoppix e passa a utilizar o sistema como uma distribuição Linux "normal". Você pode editar as configurações de modo que o autologin continue ativo depois da instalação no HD. Isso pode ser útil em sistemas destinados a usuários leigos, acostumados com o Windows 95/98, onde não é preciso fazer login.

    Como traduzir as mensagens do boot?

    O script de boot do Knoppix pode ser encontrado em /etc/init.d/knoppix-autoconfig. Apesar da sofisticação, este é um shell script comum, que pode ser facilmente editado. Para traduzir as mensagens, basta pesquisar dentro do arquivo por echo, que é a instrução para escrever na tela, e ir traduzindo mensagem por mensagem. Se souber o que está fazendo, pode também alterar o arquivo, carregando mais programas durante o boot ou fazendo melhorias diversas.

    Como permitir que os usuários instalem programas e plugins se não é possível alterar o conteúdo do CD?

    Realmente não é possível instalar programas no Knoppix/Kurumin sem remasterizar o CD. Mas, você pode permitir que os usuários instalem alguns aplicativos como, por exemplo, plugins para os navegadores criando alguns links para dentro do diretório home, que é montado dentro do ramdisk e, por isso possui, suporte a escrita.

    Por exemplo, incluí no Kurumin um pequeno utilitário que instala o suporte ao formato Shockwave Flash no Phoenix, baixando o pacote a partir do site da Macromedia. Para isso eu substituí o diretório plugins do Phoenix por um link apontando para uma pasta plugins dentro do diretório /home do usuário, que, por sua vez, está dentro do ramdisk. O programa instala o plugin dentro desta pasta no ramdisk. Quando é aberto, o Phoenix carrega os arquivos dentro da pasta plugins. Como ela agora é um link, ele acaba carregando os arquivos instalados no ramdisk.

    Para saber mais:
    www.guiadohardware.net


    Carlos E. Morimoto - morimoto@guiadohardware.net


  • A Revista do Linux é editada pela Conectiva S/A
    Todos os Direitos Reservados.

    Política de Privacidade
    Anuncie na Revista do Linux