首先,内核编译时将General setup -> IRQ subsystem -> Support sparse irq numbering选项disable
然后在/kernel/irq/irqdesc.c文件中找到函数 int __init early_irq_init(void),进行如下修改。
EXPORT_SYMBOL(irq_desc);
int __init early_irq_init(void)
{
int count, i, node = first_online_node;
OK,再编译一下试试!
运行,OK通过,该问题解决,不过这个问题在linux-2.6.20上是没有的!
PS:gcc的版本不能太高,否则会有稀奇古怪的错误!4.5.2一下应该是没有问题的