Construindo o Kernel:
Vá para o diretório do source do kernel (/usr/src/linux) e modifique o arquivo
Makefile, para ajustar o campo EXTRAVERSION para algo que identifique o seu novo kernel.
Deve ficar parecido com este:
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 25
EXTRAVERSION = -ltsp-1
NAME = That's my new customized 2.6 LTSP kernel
Salve o arquivo e construa seu kernel.
É importante levar algumas coisas em consideração:
# make menuconfig
General Setup:
[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
Processor type and features:
Processor family (386)
Para operar em terminais virtuais (VMWare, Virtual Box, etc) é necessário ter o PAE habilitado. Para isso é importante desmarcar o suporte à memória alta (High Memory Support (off)) e então habilitar o PAE ([*]PAE (Physical Address Extension) Support) em Processor type and features. Senão, pode trabalhar com o High Memory Support (4GB) sem o suporte a PAE.
Device Drivers:
<M> Parallel port support
<M> PC-style hardware
<M> Multi-IO cards (parallel and serial)
[*] Block devices
<*> RAM block device support
Necessário para gerar o ramdisk onde vai ficar a estrutura inicial durante o boot do sistema.
[*] Network device support
Marcar todas as placas 10,100,1000 e 10000 Mbit como módulos para utilização com as placas mãe mais modernas.
Input device support
[*] Provide legacy /dev/psaux (opcional)
Talvez seja interessante marcar este item para manter compatibilidade com o sistema antigo do LTSP, senão todos os caminhos de mouse dos terminais deverão ser alterados para /dev/input/mouse0.
File systems:
<*> Ext3 journalling file system support
<*> Reiserfs support
<*> Kernel automounter version 4 support (also supports v3)
[*] Network File Systems
<*> NFS file system support
<*> NFS server support
Após marcar estes itens obrigatórios, faça todas as outras alterações que desejar ou tiver necessidade.
Depois que estiver satisfeito com as alterações, salve e saia da configuração do kernel.
# make && make modules_install
Veja que não é necessário instalar o kernel na máquina onde está sendo gerado, somente os módulos do mesmo. Posteriormente o LBE do LTSP vai utilizar esses módulos e gerar o initramfs que é o arquivo onde vai ser inicializado o sistema de arquivos no ramdisk.
Com o novo kernel compilado e os módulos instalados na máquina onde ele foi gerado, passamos então ao LBE para gerar o novo kernel com suporte a boot por PXE ou Syslinux, assim como a instalação do novo kernel no LTSP e no tftp.
Neste ponto nós não precisamos gerar o LTSP inteiro novamente, somente o suporte ao kernel.
Um ponto interessante é que o LBE não traz a estrutura interna do arquivo initramfs.gz. Ele até monta a estrutura de diretórios, mas não traz o Busybox instalado dentro da estrutura.
Para evitar que o LBE monte um initramfs.gz vazio e gere erros durante a inicialização, vamos antes pegar a estrutura de um kernel já existente e funcional do LTSP.