Scripts de inicialização

Por:
Depois de instalado, o Kurumin passa a se comportar de forma semelhante a uma instalação do Debian, com os serviços iniciados através de links ou scripts nas pastas “/etc/rcS.d” e “/etc/rc5.d”.

Mas, ao rodar a partir do CD, um único script cuida de toda a configuração do sistema, o “/etc/init.d/knoppix-autoconfig“. Ele roda o “/usr/bin/hwsetup” (a ferramenta de detecção de hardware), executa o “/usr/sbin/mkxf86config” (que faz a
configuração do vídeo) e verifica os parâmetros passados durante o boot (como o “noacpi”, “bootfrom=”, “noscsi”, “xserver=vesa” etc.).

No final do script “/etc/init.d/knoppix-autoconfig”, vai o comando “/etc/init.d/kdm start” que inicia o carregamento do modo gráfico. Neste ponto é executado o script “/etc/X11/Xsession.d/45xsession”, que verifica os parâmetros de boot relacionados com o
ambiente gráfico (desktop=fluxbox ou desktop=gnome, por exemplo), copia o diretório “/etc/skel” para o “/home/kurumin”, criando o diretório home do usuário padrão do sistema e, por último, carrega o KDE ou outro ambiente gráfico escolhido.

No Knoppix original e em outras distribuições derivadas dele, o carregamento do modo gráfico não é disparado pela abertura do KDM, mas sim diretamente através de uma entrada no arquivo “/etc/inittab”. Na prática isso não faz muita diferença, pois o script
“/etc/X11/Xsession.d/45xsession” é executado da mesma forma.

A instalação do Kurumin é feita pelo script “/usr/local/bin/kurumin-install“, que copia os arquivos do sistema para a partição, define senhas e faz outras alterações necessárias.

Ao personalizar o sistema, é importante conhecer a função de cada um destes scripts, pois eles permitem modificar o comportamento do sistema durante o boot e fazê-lo executar funções adicionais. Vamos a alguns exemplos:

Quando você precisar fazer alguma alteração no processo inicial de boot, alterar o comportamento de uma das opções de boot ou criar uma nova (como o “kurumin union=” que adicionei no Kurumin 5.1), alterar a configuração padrão do teclado ou linguagem, ou
executar algum comando em especial durante o boot, altere o “/etc/init.d/knoppix-autoconfig”.

Por exemplo, esta é a seção do script que verifica se o parâmetro “kurumin noalsa” foi passado no boot e decide se executará ou não os comandos que detectam e ativam a placa de som:

if checkbootparam “noalsa”; then
echo “Abortando a detecção da placa de som, como solicitado no boot.”
else
if [ -n “$USE_ALSA” -a -x /etc/init.d/alsa-autoconfig ]; then
touch /tmp/modules.dep.temp
[ -n “$SOUND_DRIVER” ] && rmmod -r “$SOUND_DRIVER” >/dev/null 2>&1
case “$ALSA_CARD” in auto*) ALSA_CARD=””;; esac
ALSA_CARD=”$ALSA_CARD” /etc/init.d/alsa-autoconfig
[ ! -r /etc/modules.conf ] &&
ln -sf /KNOPPIX/etc/modules.conf /etc/modules.conf
fi
/etc/init.d/alsa start
# Unmuta o som
aumix -w 80 &; aumix -v 80 &; aumix -m 20 &; aumix -c 80 &; aumix -l 50 &
# Abre as permissões do som para outros usuários:
chmod 666 /dev/dsp
chmod 666 /dev/mixer
fi

Quando você precisa verificar ou alterar algo relacionado com a configuração do vídeo, com a cópia dos arquivos do “/etc/skel” para o “/home/kurumin” ou com as opções de boot que permitem especificar o gerenciador de janelas padrão (kurumin
desktop=fluxbox, kurumin desktop=gnome, etc.) procure no “/etc/X11/Xsession.d/45xsession”.

Este é um exemplo de configuração, a parte do script que verifica se foi dada alguma opção no boot para usar o fluxbox, gnome ou outro desktop e, caso contrário, carrega o KDE:

[ -f /etc/sysconfig/desktop ] && . /etc/sysconfig/desktop
export QDESKTOP=$(cat $HOME/.wmrc)
if [[ -n $QDESKTOP && $QDESKTOP != “default” ]]; then
DESKTOP=$QDESKTOP
else
# kde is the default
[ -z “$DESKTOP” ] && DESKTOP=”kde”
fi

Quando precisar alterar algo relacionado com o processo de instalação do sistema, como fazer com que ele se comporte de forma diferente depois de instalado, ou adicionar algum passo adicional na instalação, você pode modificar o instalador, que no caso do
Kurumin é o script “/usr/local/bin/kurumin-install”.

Ele é uma evolução do “knx-hdinstall”, o antigo instalador do Knoppix. Atualmente o Knoppix utiliza um novo instalador, que faz um “live-install”, fazendo com que a instalação no HD se comporte da mesma forma que do CD, com o procedimento de detecção de
hardware feito a cada boot. É uma idéia diferente de instalação, com alguns pontos positivos e outros negativos.

As versões recentes do Kanotix introduziram um instalador gráfico, com uma interface mais bonita e várias mudanças, que acabou sendo incorporado ao Knoppix como instalador alternativo. Como pode ver, existem outras opções de instaladores, que você pode
utilizar na sua personalização.

Como comentei no início deste capítulo, você pode incluir funções adicionais para detectar componentes que não sejam automaticamente ativados pelos scripts padrão. Isto é importante em muitas situações, pois é comum que empresas possuam lotes de
impressoras, placas de vídeo ou outros componentes que precisem de alguma configuração adicional para funcionarem. Ao invés de fazer as modificações máquina por máquina, é mais eficiente escrever um script que as faça automaticamente durante o boot do
CD.

Você pode encontrar alguns exemplos de funções diversas que uso no Kurumin no arquivo “/usr/local/bin/hwsetup-kurumin“, executado no final do boot, através do comando incluído no final do arquivo “/etc/init.d/knoppix-autoconfig”.

Este arquivo não é muito longo, pois normalmente as entradas antigas vão sendo removidas com o tempo, conforme vão sendo usadas novas versões do hwsetup, com suporte aos novos componentes.

Uma forma simples de detectar componentes durante o boot é através da saída do comando “lspci”. Veja um trecho da identificação que não mude de um modelo de placa para outra e filtre usando um pipe e o grep, de forma a carregar o módulo apropriado caso a
entrada seja encontrada. Estes são dois exemplos que usei no Kurumin 5.1 para detectar placas CMI 8738 e a placa de som virtual usada pelo VMware:

cmi=`lspci | grep “CM8738″`
if [ -n “$cmi” ]; then
/sbin/modprobe snd-cmipci
fi

ensonic=`lspci | grep “Ensoniq ES1371″`
if [ -n “$ensonic” ]; then
/sbin/modprobe snd-ens1371
fi

No caso de placas de vídeo, é necessário fazer alterações no arquivo “/etc/X11/xorg.conf”, modificando a linha com o driver usado. No caso de placas com suporte 3D, é muitas vezes necessário também carregar um módulo de Kernel.

A detecção do vídeo é feita pelo script “/usr/sbin/mkxf86config“. Ele detecta a placa de vídeo, monitor e outras informações necessárias e gera o arquivo de configuração do vídeo. Quando ele não conhece a identificação de uma determinada
placa de vídeo, é normal que ele use o driver “vesa” que é um driver genérico, que possui um baixo desempenho.

Você pode incluir funções no final do script para detectar a placa usando a saída do lspci e substituir a linha com o driver usando o sed. Este é um exemplo que usei para detectar as placas Intel Extreme, usadas no HP NX6110 e outros notebooks. Colocado
no final do arquivo, ele troca o driver de “vesa” para “i810” quando a placa é detectada. Se o driver já estiver correto, ele não faz nada:

# Detecta as Intel Extreme
# (mais adiante, o próprio script renomeia o arquivo para xorg.conf)
vidintel=`lspci | grep “Intel Corp. Mobile Graphics”`
vidintel2=`lspci | grep “Intel Corporation Mobile”`
vidintel3=`lspci | grep “915GM/GMS”`
if [ -n “$vidintel” -o -n “$vidintel2” -o -n “$vidintel3” ]; then
sed -e ‘s/vesa/i810/g’ /etc/X11/XF86Config-4 > /etc/X11/XF86Config-4.1
rm -f /etc/X11/XF86Config-4; mv /etc/X11/XF86Config-4.1 /etc/X11/XF86Config-4
fi

Em alguns casos, detalhes aparentemente simples podem fazer você perder um bom tempo. Um problema que tive nas versões recentes do Kurumin foi com relação com medidor de bateria do KDE. Você configura se ele deve ser ativado ou não durante o boot através
da opção “Controle de energia > Bateria do Laptop” dentro do Painel de Controle do KDE e a configuração é salva no arquivo “.kde/share/config/kcmlaptoprc” (dentro do home).

O problema é que ele só é útil em notebooks. Se você simplesmente o deixar ativo na configuração, ele vai ser aberto sempre, mesmo em desktops, onde ele não tenha serventia alguma.

Uma forma que encontrei para tornar a detecção mais inteligente, fazendo com que ele seja habilitado apenas em notebooks, foi incluir uma função dentro do arquivo “/etc/X11/Xsession.d/45xsession” (que, como vimos, é o responsável pela abertura do X e
carregamento do KDE), que verifica se o módulo “battery” está ativo (indício que o sistema está rodando num notebook, com bateria) e altera o arquivo de configuração, desativando o medidor de bateria quando necessário:

bateria=`lsmod | grep battery`
if [ -z $bateria ]; then
cd /ramdisk/home/kurumin/.kde/share/config/
sed -e ‘s/Enable=true/Enable=false/g’ kcmlaptoprc > kcmlaptoprc2
rm -f kcmlaptoprc; mv kcmlaptoprc2 /kcmlaptoprc
fi

Em alguns casos mais específicos, você pode precisar incluir novas opções de boot.

Mudando a lingua padrão e traduzindo as mensagens de boot

Hoje em dia, quase todos os programas que usamos no dia-a-dia incluem suporte a internacionalização.

No caso do KDE, as traduções para todos os aplicativos base são agrupadas nos pacotes “kde-i18n”, como em “kde-i18n-ptbr” ou “kde-i18n-es” (espanhol), que podem ser instalados via apt-get. Os pacotes não conflitam entre si, de forma que você pode manter
vários deles instalados e definir qual será a língua padrão dentro do Kcontrol, junto com a configuração do teclado e outros detalhes.

O suporte a inglês norte-americano vem instalado por padrão e é usado quando configurado, ou quando nenhum outro pacote de internacionalização estiver instalado.

Os demais programas, são configurados através do pacote “locales“. Neste caso, cada programa inclui diretamente as traduções disponíveis e você determina qual será utilizada por padrão e quais outras ficarão instaladas. As demais podem
ser removidas automaticamente usando o comando “localepurge“, o que economiza um bocado de espaço.

Para alterar a configuração do locales, use o comando:

# dpkg-reconfigure locales

Para remover os arquivos de internacionalização que não estão sendo usados, execute o:

# localepurge

Além dos aplicativos, existem também as mensagens do sistema, exibidas durante o boot quando o sistema roda a partir do CD-ROM.

Para traduzi-las, você precisa ir diretamente nos dois scripts executados durante o boot, o “linuxrc“, que fica dentro da imagem compactada de boot (o arquivo “boot/isolinux/minirt26.gz”) e o arquivo “/etc/init.d/knoppix-autoconfig”,
dentro da imagem principal.

Para chegar ao “linuxrc”, acesse a pasta “/mnt/hda6/knxmaster/boot/isolinux”. Descompacte o arquivo minirt26.gz, crie uma pasta temporária e monte-a dentro da pasta. O “linuxrc” fica logo no diretório raiz. Ao terminar, faça o processo inverso,
desmontando e compactando a imagem novamente:

# cd /mnt/hda6/knxmaster/boot/isolinux/
# gunzip minirt26.gz
# mkdir tmp/
# mount -o loop minirt26.gz tmp/
# kedit tmp/linuxrc
# umount tmp/
# gzip minirt26

Para traduzir as mensagens nos dois arquivos, pesquise dentro do arquivo por “echo”, usado para escrever a grande maioria das mensagens exibidas na tela.

Mudando o usuário padrão

O usuário padrão do Knoppix é o “knoppix”, que foi trocado pelo usuário “kurumin” nas versões recentes do Kurumin.

Os passos básicos para trocar o usuário padrão do sistema ao remasterizar o CD são:

1. Edite o arquivo “/etc/passwd”, troque o “kurumin” e o “home/kurumin” pelo nome e o diretório home do novo usuário

2. Edite o arquivo “/etc/shadow” e novamente troque o “kurumin” pelo novo usuário. Este é o arquivo de senhas, que pode ser visto e editado apenas pelo root.

3. Troque o login também no “/etc/sudoers”, que é o arquivo com a configuração do sudo.

4. É preciso trocar o nome do usuário também no arquivo “/etc/kde3/kdm/kdmrc” (para manter o autologin do KDE) e no arquivo /etc/X11/Xsession.d/45xsession.

5. Não se esqueça de mudar todas as ocorrências do login no arquivo “/etc/group” e no arquivo “linuxrc”, dentro da imagem compactada carregada durante a etapa inicial do boot (o arquivo “boot/isolinux/minirt.gz”, que vimos a pouco). Existem também
referencias a serem trocadas no script “/etc/init.d/knoppix-autoconfig”

Estas alterações trocam o usuário no sistema, mas falta também fazer as modificações no “/usr/local/bin/kurumin-install”, que é o instalador, assim como em mais alguns scripts dos ícones mágicos. Use o kfind para localizar os arquivos que precisam ser
modificados com mais facilidade, procurando por linhas que contenham a string “kurumin”.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X