Вы ядро строите на той же системе?
Обычно то где строят ядро не использует бизибокс.
Очень важный вопрос: Вы ядро строить можете?
Для ядра 2.6 мои ссылки не годятся там нет дерева устройств. Я же написал для ядра больше 3.
К тому же никаких определений в файле устройства (что было до дерева устройств) делать не надо.
Надо от первой ошибки начать.
irqNumber = gpio_to_irq(gpioButton);
Возврашает ошибку 6 по ссылке, что я вам дал это (ENXIO)
это
http://elixir.free-electrons.com/linux/v3..../asm/gpio.h#L43static inline int gpio_to_irq(unsigned int gpio)
{
return __gpio_to_irq(gpio);
}
вызывает
int __gpio_to_irq(unsigned gpio)
{
struct gpio_chip *chip;
chip = gpio_to_chip(gpio);
return chip->to_irq ? chip->to_irq(chip, gpio - chip->base) : -ENXIO;
}
использует
/* caller holds gpio_lock *OR* gpio is marked as requested */
struct gpio_chip *gpio_to_chip(unsigned gpio)
{
return gpio_desc[gpio].chip;
}
В вашем ядре gpio_desc[gpio].chip->to_irq для используемого вами gpio установлено на NULL.
Дальше дергаться бессмысленно.
Надо починить сначала это.
Найдите в вашем ядре код должен быть похожим на то, что я нашел на бесплатных электронах (free-electrons).