El pr_*() las funciones son las mismas que las simples printk() , pero con el KERN_xxx nivel de registro ya incluido.
El dev_*() las funciones son las mismas que las pr_*() correspondientes funciones, sino también imprimir información de identificación sobre el struct device .
Si su mensaje está relacionado con algún dispositivo (que suele ser el caso de los controladores), debe usar dev_*() .Por ejemplo, en un controlador USB:
struct usb_device *usb_dev;
dev_info(&usb_dev->dev, "hello\n");
struct usb_interface *usb_intf;
dev_info(&usb_intf->dev, "hello\n");
o en un controlador PCI:
struct pci_dev *pci;
dev_info(&pci->dev, "hello\n");
dev_* las funciones son similares a pr_* , pero también imprime información sobre el dispositivo (struct device ), se les pasa como primer argumento. Esta información puede ayudar a filtrar el registro del sistema para mensajes pertenecientes a dispositivos concretos.
Entonces, puedes usar dev_* función en lugar de pr_* siempre que el mensaje sea aplicable a un dispositivo concreto (y tenga un destripador).