O cabeçalho linux/kernel.h
que é usado para construções de módulo é o cabeçalho que é parte da fonte do kernel . Quando os módulos são criados na árvore de origem do kernel, essa é a versão usada.
Para construções de módulos externos, o processo de construção procura o cabeçalho em /lib/modules/$(uname -r)/build/include/linux/sched.h
. Esse arquivo é fornecido pelos pacotes de cabeçalho do kernel, por exemplo. nos derivados do Debian, o pacote linux-headers-$(uname -r)
.
O /usr/include/linux/kernel.h
é destinado aos processos do usuário, não aos módulos do kernel.
As macros printk
priority agora vivem em linux/printk.h
e linux/kern_levels.h
. Suponho que você esteja lendo o guia original , que é baseado na série 2.6 do kernel; Para kernels modernos, você deve ler o guia atualizado (atualmente para 4.15.2 ).