29 de mar. de 2010

Customizando e atualizando o Slax

Começando do começo
Primeiramente, depois de baixarmos a imagem ISO do Slax, vamos montá-la ou gravar num CD, no meu caso eu a montei para começar a customização com o comando:

# mount -t iso9660 -o loop slax-6.1.2.iso /mnt/tmp/

Em seguida criaremos um diretório /SlaxCustom com o comando mkdir -p /SlaxCustom e copiaremos o conteúdo da ISO para este diretório.

# cp -pRfv /mnt/tmp/* /SlaxCustom/

Feito isso podemos começar.

O menu de iniciação do Slax
As versões superiores a 6.0.x possuem um menu de iniciação ao invés do prompt de boot, eu particularmente prefiro o velho prompt, onde poderia passar parâmetros de iniciação ao kernel, tais como desabilitar ACPI para algumas máquinas problemáticas, alterar a resolução de vídeo no console, pois o modo texto default é quase ilegível, dependendo do que vamos fazer, quebrando linhas etc.

Use o seu editor preferido e vamos editar o arquivo /SlaxCustom/boot/slax.cfg.

Para habilitar o prompt: 0 desabilitado, 1 habilitado

PROMPT 1

Para alterar o tempo de exibição do prompt antes de ingressar no menu de iniciação (em décimos de segundo), 100 serão 10 segundos, 50 5 segundos e assim por diante:

TIMEOUT 50

Logo abaixo existem os parâmetros para definir as medidas do menu, não recomendo alterá-las sem estudar suas características para não deformar o menu.

Em seguida temos os itens do menu de iniciação com a seguinte sintaxe:

LABEL xconf
MENU LABEL Slax Graphics mode (KDE)
KERNEL /boot/vmlinuz
APPEND initrd=/boot/initrd.gz ramdisk_size=6666 root=/dev/ram0 rw autoexec=xconf;telinit~4 changes=/slax/
TEXT HELP
    More about currently selected:

    Run Slax the best way we can.
    Try to autoconfigure graphics
    card and use the maximum
    allowed resolution
ENDTEXT

Atentem para os parâmetros de APPEND, neste ponto é que passamos parâmetros para o kernel.

O parâmetro telinit~4 por exemplo instrui o sistema a iniciar com o runlevel 4, ou seja, iniciando o X durante o boot.

Caso desejemos por exemplo o modo texto 1024x768x256, a linha de APPEND ficaria assim:

APPEND initrd=/boot/initrd.gz ramdisk_size=6666 root=/dev/ram0 rw changes=/slax/ vga=775

Notem que não há especificação do parâmetro telinit~4, então ele assumirá o runlevel default do Slax, que é o 3 (modo texto multiusuário).

Se desejar criar entradas de menu basta acrescentar seções como acima. Ex.:

LABEL 1024768
MENU LABEL Text 1024x768
KERNEL /boot/vmlinuz
APPEND initrd=/boot/initrd.gz ramdisk_size=6666 root=/dev/ram0 rw changes=/slax/ vga=775
TEXT HELP
   More about currently selected:

   Run Slax in textmode 1024x768
   and start on runlevel 3,
   command prompt only
ENDTEXT

========================================
Instalando, desinstalando e atualizando pacotes e módulos do Slax
Há duas maneiras de instalar pacotes no Slax, a primeira é criando módulos a partir de pacotes do Slackware, vejamos como funciona.

No diretório /SlaxCustom/slax/tools se encontram os scripts e programas utilitários para manipularmos o Slax, vejamos o que cada um faz.

lzm2dir
Como o próprio nome sugere, "lzm to dir", ele descompacta os arquivos lzm, que são os módulos do Slax. Sua sintaxe é:

./lzm2dir /SlaxCustom/slax/base/001-core.lzm /SlaxRootDir/

No exemplo acima criamos primeiro um diretório:

# mkdir -p /SlaxRootDir

E em seguida descompactamos o módulo 001-core.lzm, que corresponde ao diretório raiz do Slax, bem como todos os aplicativos de console. Citei este especificamente por que mais adiante vamos ver a segunda forma de instalar e atualizar pacotes.

Digamos que você deseje instalar o Tighvnc por exemplo como um módulo. Baixamos o pacote de um mirror:

# wget http://ftp.belnet.be/packages/slackware/slackware-current/extra/tightvnc/tightvnc-1.3.10-i486-1.txz

Em seguida vamos transformá-lo em um módulo do Slax com a ferramenta txz2lzm.

# ./txz2lzm tightvnc-1.3.10-i486-1.txz /SlaxCustom/slax/base/txz 009-tightvnc.lzm

Atentem para dois detalhes importantes, o primeiro é o diretório da árvore do Slax onde ele é instalado, no caso o /SlaxCustom/slax/base. Os módulos instalados neste diretório são instalados por default no sistema de arquivos do Slax, caso queira deixar o pacote presente na árvore do Slax, porém sem ser instalado, basta direcioná-lo para o diretório /SlaxCustom/slax/modules.

Quando o módulo neste caso pode ser ativado ou desativado com os utilitários activate e deactivate, o outro detalhe é o número que precede o nome que daremos ao pacote, ele determina a ordem em que ele será ativado no sistema, então temos 001 para o sistema raiz, 002 para o xorg e assim por diante. A extensão .lzm é obrigatória em ambos os casos.

A segunda maneira é efetuar a instalação diretamente na raiz da árvore do Slax e é muito parecida com a instalação e atualização de pacotes convencionais do Slackware. Vejamos como funciona este método.

Primeiramente devemos descompactar o sistema raiz como mencionamos anteriormente:

# ./lzm2dir /SlaxCustom/slax/base/001-core.lzm /SlaxRootDir/

Feito isso podemos instalar pacotes diretamente nesta árvore. Ex.:

Baixamos o pacote de:
http://ftp.belnet.be/packages/slackware/slackware-current/slackware/ap/slackpkg-2.80.2-noarch-3.tgz

Agora basta instalá-lo:

# installpkg --root /SlaxRootDir slackpkg-2.80.2-noarch-3.tgz

Citei este exemplo porque podemos depois disso fazer um chroot e atualizar o Slax normalmente pelo Slackpkg, como faríamos com o Slackware. Ex.:

# chroot /SlaxRootDir
# slackpkg upgrade pkgtools
# slackpkg install iproute2

Acrescentando arquivos à árvore do Slax
Se você desejar incluir tanto com o fim de acrescentar como de sobrescrever arquivos na árvore do Slax, basta acrescentar os arquivos com o path completo no diretório /SlaxRootDir/rootcopy/. Ex:

# cp -pRfv --parents /etc/dhcpd.conf /SlaxCustom/slax/rootcopy/

No caso o arquivo /etc/dhcpd.conf será acrescentado no respectivo path após o Slax iniciado.

Recriando a ISO bootável modificada do Slax
Após serem feitas as alterações desejadas, vamos a criação da imagem ISO bootável do Slax. No diretório /SlaxCustom/slax há o script make_iso.sh, basta executá-lo com a seguinte sintaxe:

# ./make_iso.sh /SeuDiretorio/NomeDaSuaImagem_Slax.iso

Pronto! Agora é apenas gravar seu live CD do Slax customizado.

Bom trabalho para todos!

Um comentário: