¿Cómo crear un nodo de dispositivo a partir del código init_module de un módulo de kernel de Linux?

Estoy escribiendo un módulo para el kernel de Linux y quiero crear algunos nodos de dispositivo en la función de inicio

int init_module(void)
{
    Major = register_chrdev(0, DEVICE_NAME, &fops);
 // Now I want to create device nodes with the returned major number
}

También quiero que el núcleo asigne un número menor para mi primer nodo, y luego asignaré yo mismo los números menores de los otros nodos.

¿Cómo puedo hacer esto en el código? No quiero crear dispositivos desde el shell usando mknod