Debian e o kernel.

Posso instalar e compilar um kernel sem alguma configuração específica para o Debian?
Sim. Mas você terá que entender a política do Debian em relação aos cabeçalhos.
As bibliotecas C do Debian são construídas com as versões estáveis mais recentes dos cabeçalhos do kernel.
Por exemplo, a versão Debian-1.2 usava a versão 5.4.13 dos cabeçalhos. Esta prática contrasta com os pacotes fonte do kernel Linux, distribuídos em todos os sites de FTP, que usam até mesmo as mais recentes versões dos cabeçalhos. Os cabeçalhos do kernel, distribuídos com os fontes do kernel, estão localizados em /usr/include/linux/include/.
Se você precisa compilar um programa com os cabeçalhos do kernel que são mais atuais do que aqueles providos por libc6-dev, então você terá que adicionar -I/usr/src/linux/include/ na sua linha de comando quando estiver compilando. Isto veio em um ponto, por exemplo, com o empacotamento do "automounter daemon" (amd). Quando novos kernels mudaram algo em relação ao tratamento interno a NFS, o amd precisou saber sobre eles. Isto necessitou a inclusão dos mais recentes cabeçalhos do kernel.

Que ferramentas o Debian oferece para a construção de kernels personalizados?
Usuários que desejarem (ou precisarem) construir um kernel personalizado são incentivados a baixar o pacote kernel-package. Este pacote contém os scripts para construir o pacote do kernel, e oferece a capacidade de criar um pacote imagem do kernel somente rodando o comando

make-kpkg kernel_image

no diretório de mais alto nível dos fontes do kernel. Ajuda é obtida executando o comando

make-kpkg --help

e através da página de manual make-kpkg 1.
Usuários devem baixar separadamente o código fonte do kernel mais recente (ou de seu kernel preferido) do seu repositório Linux favorito, a menos que um pacote kernel-source-versão esteja disponível (onde "version" significa a versão do kernel).
Instruções detalhadas sobre o uso do pacote kernel-package são dadas no arquivo /usr/share/doc/kernel-package/README.gz. Resumidamente, a pessoa deve:
Desempacotar os fontes do kernel, e dar cd para o diretório recém-criado.
Modificar a configuração do kernel usando um destes comandos:
make config (para uma interface tty uma-linha-de-cada-vez).
make menuconfig (para uma interface de menus baseada em ncurses). Observe que, para usar esta opção, o pacote libncurses5-dev deve estar instalado.
make xconfig (para uma interface X11). Usar esta opção requer que os pacotes relevantes ao X e ao Tcl/Tk sejam instalados.
Qualquer dos passos acima gera um novo .config no diretório do fonte do kernel.
Execute o comando: make-kpkg -rev Custom.N kernel_image, onde N é um número de revisão designado pelo usuário. O novo arquivo Debian assim formado teria revisão Custom.1, por exemplo, kernel-image-2.2.14_Custom.1_i386.deb para o kernel Linux 2.2.14.
Instale o pacote criado.
Rode dpkg --install /usr/src/kernel-image-VVV_Custom.N.deb para instalar o kernel propriamente dito. O script de instalação irá:
executar o boot loader, LILO (se estiver instalado),
instalar o kernel personalizado em /boot/vmlinuz_VVV-Custom.N, e configurar as ligações simbólicas apropriadas ao kernel mais recente.
sugerir ao usuário que crie um disquete de inicialização. Este disquete conterá apenas o kernel. Veja Como faço um disquete de inicialização personalizado?.
Para usar um boot loader secundário como o grub ou loadlin, copie essa imagem para outros lugares (por exemplo, para /boot/grub ou para uma partição MS-DOS).

Como faço um disquete de inicialização personalizado?
Essa tarefa é muito facilitada pelo pacote Debian boot-floppies, normalmente encontrado na seção admin do repositório FTP do Debian. Scripts de shell desse pacote produzem disquetes de inicialização no formato SYSLINUX. Esses disquetes são formatados como MS-DOS cujos MBRs foram alterados para inicializarem o Linux diretamente (ou qualquer outro sistema operacional que tenha sido definido no arquivo syslinux.cfg do disquete). Outros scripts desse pacote produzem discos root de emergência e podem até reproduzir os "base disks" (os discos do sistema básico).
Você achará mais informações sobre isto no arquivo /usr/doc/boot-floppies/README após instalar o pacote boot-floppies.

Que ferramentas especiais o Debian oferece para lidar com módulos?
O pacote Debian modconf fornece um script shell (/usr/sbin/modconf) que pode ser usado para personalizar a configuração dos módulos. Este script apresenta uma interface baseada em menus, requisitando ao usuário detalhes sobre os drivers de dispositivos carregáveis de seu sistema. As respostas são usadas para personalizar o arquivo /etc/modules.conf que lista "aliases" (apelidos), e outros argumentos (que devem ser usados em conjunto com vários módulos) através de arquivos em /etc/modules (que lista os módulos que devem ser carregados na hora do boot).
Como os (novos) arquivos Configure.help, que agora estão disponíveis para auxiliar a construção de kernels personalizados, o pacote modconf vem com uma série de arquivos de ajuda (em /usr/lib/modules_help/) que fornecem informações detalhadas sobre os argumentos apropriados para cada um dos módulos.

Posso desinstalar um kernel antigo de forma segura? Como?
Sim. O script kernel-image-NNN.prerm verifica se o kernel que você está usando atualmente é o mesmo que você está querendo desinstalar. Portanto, você pode remover pacotes de kernel indesejáveis usando este comando:

dpkg --purge --force-remove-essential kernel-image-NNN

(claro, substitua "NNN" com sua versão de kernel e número de revisão)