Estou fazendo uma distribuição mínima do Linux com o buildroot para aprender o desenvolvimento de módulos do kernel.
Se eu chamar um módulo mínimo hello.ko
(ou quase qualquer outro nome que eu tentei), tudo funciona bem.
No entanto, se eu usar exatamente o mesmo código, mas chamar o módulo workqueue.ko
, insmod workqueue.ko
falhar, o dmesg conterá:
workqueue: module is already loaded
e insmod
são enviados para stderr:
insmod: can't insert 'workqueue.ko': invalid argument
Ambos lsmod
e cat /proc/modules
estão vazios.
Isso é o repositório exato que gerou o problema.
Para referência, o código do módulo é:
#include <linux/module.h>
#include <linux/kernel.h>
MODULE_LICENSE("GPL");
int init_module(void)
{
printk(KERN_INFO "hello init\n");
return 0;
}
void cleanup_module(void)
{
printk(KERN_INFO "hello cleanup\n");
}
e a versão do kernel (padrão implícito por buildroot) é 4.9.