Questão Configurar módulos embutidos no linux cross-compilado


Eu estou nos estágios iniciais de usar um compilador cruzado (ELDK) para construir um sistema Linux embarcado a partir da origem do kernel. O Kernel é construído com sucesso com make ARCH=powerpc CROSS_COMPILE=powerpc-linux- 44x/virtex5_defconfig e make ARCH=powerpc CROSS_COMPILE=powerpc-linux- uImage.

Eu gostaria de incluir módulos embutidos neste estágio compilados em minha máquina host. eu corro

make ARCH=powerpc CROSS_COMPILE=powerpc-linux- modules
make ARCH=powerpc CROSS_COMPILE=powerpc-linux- INSTALL_MOD_PATH=/opt/eldk-5.8/powerpc-4xx modules_install

e veja que os módulos padrão incluídos no kernal são construídos e instalados no diretório especificado.

Minha pergunta é como definir quais módulos são criados e instalados com esses dois últimos comandos? Eu gostaria de excluir alguns dos módulos padrão e incluir módulos adicionais que de código-fonte separado, como coreutils.

Obrigado por qualquer ajuda que você possa fornecer.


0


origem


Você precisa ler o kernel README arquivo no código-fonte no procedimento de compilação, ou seja, make menuconfig. FYI o ARCH e CROSS_COMPILE símbolos podem ser definidos como variáveis ​​de ambiente de shell para que você não precise digitá-los em cada make comando (ou seja, export ARCH=powerpc). - sawdust


Respostas:


Continuando com uma resposta sobre esta questão, para o bem da posteridade, ajudar outras pessoas que poderiam ser tão ignorantes quanto eu na época.

De fato, como a serragem comentou, adicionar módulos e drivers embutidos pode ser configurado via make menuconfig. Muitos pacotes têm a opção de serem configurados como built-in (para o binário do kernel) ou um módulo. No primeiro caso, não haveria necessidade de enviá-los para um sistema de arquivos raiz via make modules_install.

Os drivers personalizados podem ser adicionados à árvore do Kernel incluindo a origem em uma pasta relevante e, em seguida, atualizando KConfig e Makefile que governa essa pasta, seguindo o exemplo dos pacotes internos.


0