systemd, kmod e os device nodes estáticos
Apesar da maioria dos módulos criarem seus device nodes automaticamente (devtmpfs), alguns ainda precisam ser criados manualmente. Até o systemd 205, era o systemd-udevd que lia o arquivo
Na versão 14, o kmod, sucessor das ferramentas da suíte module-init-tools, ganhou o comando
Então, a partir do systemd 206, o novo serviço kmod-static-nodes.service encarrega-se de rodar bem cedo no boot, antes de systemd-tmpfiles-setup-dev.service, para criar
kmod-static-nodes.service tem algumas restrições para rodar: se não for possível criar device nodes (ConditionCapability), o serviço não é iniciado, o que evita erros rodando em containers; usando o especificador
A primeira restrição foi adicionada no systemd 207. A segunda no 208. Na versão 15, o kmod já havia sido modificado para gerar um aviso ao invés de erro no caso do arquivo não existir (incomum, mas possível).
No kmod,
/lib/modules/$(uname -r)/modules.devname
, gerado pelos pacotes das distribuições com o comando depmod
, e criava-os.Na versão 14, o kmod, sucessor das ferramentas da suíte module-init-tools, ganhou o comando
static-nodes
, que é capaz de exportar a informação no formato do systemd-tmpfiles.Então, a partir do systemd 206, o novo serviço kmod-static-nodes.service encarrega-se de rodar bem cedo no boot, antes de systemd-tmpfiles-setup-dev.service, para criar
/run/tmpfiles.d/kmod.conf
(/run é volátil) com a lista dos device nodes coletada de modules.devname
, que é usada pelo segundo serviço.kmod-static-nodes.service tem algumas restrições para rodar: se não for possível criar device nodes (ConditionCapability), o serviço não é iniciado, o que evita erros rodando em containers; usando o especificador
%v
(systemd ≥ 206), se o arquivo modules.devname
não existir (ConditionPathExists), o serviço também não é executado.A primeira restrição foi adicionada no systemd 207. A segunda no 208. Na versão 15, o kmod já havia sido modificado para gerar um aviso ao invés de erro no caso do arquivo não existir (incomum, mas possível).
No kmod,
depmod
, insmod
, lsmod
, modinfo
, modprobe
, rmmod
, são links para o binário /usr/bin/kmod
. De acordo com o link pelo qual for chamado, o programa se comporta como as ferramentas antigas.
Comentários
Postar um comentário