Todos os nós de dispositivos criados em /lib/udev/devices
serão copiados em /dev/
no início do sistema:
DESCRIPTION
udevd listens to kernel uevents. For every event, udevd
executes matching instructions specified in udev rules. See
udev(7).
On startup the content of the directory /lib/udev/devices is
copied to /dev. If kernel modules specify static device
nodes, these nodes are created even wihtout a corresponding
kernel device, to allow on-demand loading of kernel modules.
Matching permissions specified in udev rules are applied to
these static device nodes.
Mas se você quiser tornar algo mais conveniente para seus usuários, há duas abordagens que você pode seguir:
-
Você pode modificar o código do driver para criar um nó de dispositivo:
drivers/base/core.c::device_add(struct device *dev)
permite que você crie nós de dispositivo se o campostruct device
devt
for diferente de zero:if (MAJOR(dev->devt)) { error = device_create_file(dev, &devt_attr); if (error) goto ueventattrError; error = device_create_sys_dev_entry(dev); if (error) goto devtattrError; devtmpfs_create_node(dev); }
Como isso funcionará somente se você escolher um major / menor estático, talvez não seja o melhor caminho a seguir, mas toda a documentação menciona esses "nós de dispositivos estáticos" com bastante frequência, então talvez ainda haja algum espaço para fazer nós de dispositivos estáticos.
-
Você pode fornecer regras do udev para seus dispositivos; Daniel Drake escreveu um belo tutorial que você pode achar mais esclarecedor do que a documentação oficial do
udev(7)
.