Estou configurando um sistema embarcado que é construído usando o projeto Yocto. Isso gera um sistema de arquivos raiz, kernel, u-boot, etc. Tenho um script de instalação que executo a partir de um cartão SD que configura o eMMC na placa com partições, copia no rootfs, uboot, etc. sistema quando inicializo a partir do eMMC.
O problema que estou tendo é com o driver ethernet. Não está instalado no sistema por padrão. O script de instalação copia /lib/modules/4.14.98-imx8mq+gea48c83/kernel/drivers/net/ethernet/freescale/fec.ko
e eu posso fazer login via serial e carregá-lo manualmente com insmod
, e isso funciona bem. Mas não tenho certeza de como fazê-lo carregar automaticamente.
O Systemd procura /etc/modules-load.d/
listas de módulos para carregar, mas esse processo parece usar modprobe e não insmod. O sistema modprobe realmente não sabe sobre o driver ethernet porque eu não executei o depmod nele. Mas não consigo executar o depmod do instalador porque ele o instalaria na instalação do meu cartão SD, não no eMMC.
Qual é a minha melhor abordagem aqui? Preciso encontrar alguma maneira de executar o depmod durante a instalação? Talvez isso possa ser feito com chroot?
Ou existe uma boa maneira de fazer meu módulo carregar automaticamente sem usar o sistema depmod/modprobe?
Qualquer insight aqui seria muito apreciado.