Я следовал руководству по программированию ядра Linux здесь: http://www.tldp.org/LDP/lkmpg/2.6/html/index.html
Я попал в раздел, посвященный "драйверам символьных устройств", и пока я его получилскомпилировать, он не будет работать в описанном случае:
"Вызывается, когда процесс записывает в файл dev: echo" hi "> / dev / chardev"
Я пробовал несколько консолей Linuxтакие команды, как:
echo "hi"> sudo / dev / chardev /
и
sudo sh -c 'printf "hi"> sudo / dev / chardev /'
Я запускаю свой код на Raspberry Pi 3 B +
Когда я запускаю первую команду, я ничего не получу взамен, и ничего не добавляется в / var / logs / messages
Когда я запускаю вторую команду, я получаю: sh: printf: Ошибка ввода-вывода
Полный код по адресу: http://www.tldp.org/LDP/lkmpg/2.6/html/x569.html
Я изменил код с помощью моегофрагмент ниже.
/*
* Called when a process writes to dev file: echo "hi" > /dev/chardev
*/
static ssize_t
device_write(struct file *filp, const char *buff, size_t len, loff_t * off)
{
printk(KERN_INFO "%s\n", buff);
return -EINVAL;
}
Я ожидаю, что когда я использую echo "hi"> sudo / dev / chardev, в моих / var / logs / messages появится строка, в которойmply говорит "привет".