Zdravím, snažím se vytvořit kernel modul a při jeho načítání skončím na tomto:
my_module: Unknown symbol irq_desc
Ve zdrojovém kódu modulu se to způsobují tyto řádky:
extern struct irq_desc irq_desc[NR_IRQS];
static inline struct irq_desc *irq_to_desc(unsigned int irq)
{
return (irq < nr_irqs) ? irq_desc + irq : NULL;
}
...
struct irq_desc *desc;
desc = irq_to_desc(IRQ_TC0);
Odhadoval bych, že to bude tím, že nemám přesně stejné zdrojové kódy jádra, jako ty, ze kterých je jádro zkompilováno. Dá se nějak zjistit z běžícího linuxu, jaké funkce, konstanty, proměnné atd. jsou dostupné pro kernel moduly?