Простейшее «устройство», для которого вы можете написать аппаратный драйвер (если разработка аппаратного драйвера - ваша вещь) также может быть простым, как светодиод (я добавил кавычки, потому что технически светодиод не является устройством, но он все еще является частью оборудование), как предложил @PiBorg.
Другими вариантами выбора могут быть некоторые простые в интерфейсе устройства / компоненты, такие как фоторезисторы, пассивные инфракрасные датчики (сокращенно: PIR), датчики температуры, вентиляторы ПК (предпочтительно 4-проводный вентилятор, который позволяет не только контролировать, но и контролировать Об / мин), светодиодные точечные матрицы и тд. По сути, такие простые устройства позволят вам иметь минимум оборудования (чтобы вы могли увидеть и потрогать то, что вы на самом деле достигли), и в то же время вы можете узнать о многих темах, которые используются для гораздо более сложных устройств, где сложность проистекает главным образом из протокола, который они используют.
Помните также, что вам не нужно делать лишнюю милю, копаясь в модулях ядра. Конечно, если ты хочешь это сделать, тебя никто не остановит. :)
Вот пример сопряжения с пассивным инфракрасным датчиком (я собираюсь проверить его вскоре после того, как мой PIR будет доставлен: 3). Вы можете взять это и начать углубляться в мир ядра Linux, чтобы увидеть, как, например, вы можете создать драйвер ядра, который работает с PIR.