A página de manual do udev menciona em vários lugares que certas opções de regras podem ser usadas para invocar comandos 'integrados', que aparentemente estão embutidos no próprio programa udev. No entanto, não consegui encontrar nenhuma documentação de referência que explique claramente quais recursos internos do udev estão disponíveis; o que fazem e como são usados.
Já pesquisei na web sem muito sucesso. Alguém sabe se existe uma referência em qualquer lugar que forneça detalhes sobre esses comandos internos?
Se você apenas executar
udevadm test-builtin
sem argumentos, ele listará os comandos internos junto com uma breve descrição de cada um deles:Infelizmente, como você notou, o uso de built-ins é explicado apenas brevemente no manual.
Um exemplo prático pode ser encontrado no arquivo
50-udev-default.rules
disponível em seu sistema (em/lib/udev/rules.d/
) que contém coisas como:Infelizmente, esta informação está faltando nas páginas de manual e mesmo sabendo como lê-las (veja abaixo) você terá problemas ao tentar encontrar essa informação.
No entanto, a beleza do código aberto depende de ter o poder de ler as fontes. Se você der uma olhada no
udev-builtin.c
arquivo fonte dentro desystemd
/udev
repository e tiver conhecimento básico da linguagem C , você encontrará o seguinte trecho de código: Uma estrutura que mapeia todos os tipos internos existentes.Isso
struct
contém todos os tipos internos e mapeia os arquivos de origem dependendo do tipo. Exemplo:udev-builtin-kmod.c
- Um carregador de Módulo Kernel.udev-builtin-keyboard.c
- Um manipulador de teclado.udev-builtin-usb_id.c
- Um manipulador USB que definirá o tipo de usb e inicializará o dispositivo.Relacionado:
Não tenho certeza, se você não encontrar nada melhor, talvez tente explorar quais builtins estão disponíveis diretamente na fonte: procure por arquivos começando por "udev-builtin"
https://github.com/systemd/systemd/tree/master/src/udev