Estou começando a me desenvolver em um sistema Linux embutido e estou tentando descobrir qual é a melhor maneira de gerenciar meu trabalho. Atualmente estou usando o buildroot para construir uma imagem baseada no defconfig de vendedores, mas gostaria de fazer isso fazendo alterações no kernel, customizando o u-boot, gravando drivers, adicionando aplicativos, etc.
Qual é a melhor maneira de gerenciar esse fluxo de trabalho? Devo bifurcar o kernel, o uboot, etc e acompanhar todas as minhas alterações no meu próprio repositório git? Apenas acompanhe os arquivos que eu mudo? Trabalhe inteiramente com patches?