Meu sabor pessoal para o desenvolvimento do kernel Linux é o Debian. Agora, para seus pontos:
-
Como você provavelmente adivinhou, o Ubuntu não traz nada de novo ao kernel, afaik, além do que já está disponível no Debian. Por exemplo, make_kpkg é um feito do Debian. e não o Ubuntu. Aqui estão alguns links para você começar as tarefas comuns de desenvolvimento do Linux Kernel no Debian:
-
A maneira mais fácil de depurar o kernel é usando o QEMU e o gdb. Alguns links para você começar:
No entanto, você deve estar ciente de que esse método não é viável para determinados cenários, como depuração de problemas de hardware específicos e outros, para os quais seria melhor usar depuração serial física e hardware real. Para isso você pode usar o KGDB (ele também funciona com o ethernet). O KDB também é uma boa escolha. Ah, e a propósito, tanto o KGDB quanto o KDB foram mesclados no Kernel do Linux. Mais sobre esses dois aqui . Outro método interessante, que funciona maravilhosamente para problemas não relacionados a hardware, é usar o User-mode Linux Kernel . Executar o Kernel no modo de usuário como qualquer outro processo permite depurá-lo como qualquer outro programa ( exemplos ). Mais informações sobre o Linux no modo de usuário aqui . A UML faz parte do Linux Kernel desde o 2.6.0, assim você pode construir qualquer versão oficial do kernel acima no modo UML por seguindo estes passos .
-
Veja 2. Infelizmente não há melhor aqui, já que cada ferramenta / método tem seus prós e contras.
Espero que isso ajude você a iniciar sua jornada maluca no desenvolvimento do kernel do Linux.