Задать вопрос
@smithana

Как узнать MINOR номер устройства в современном linux в режиме ядра?

Добрый день,

n-лет назад написал драйвер для кастомного устройства под тогдашние версии ядер Linux.
Сегодня потребовалось сдуть с него пыль и запустить этот драйвер на свежем Linux (Ubuntu 16).

Но при компиляции возникла ошибка:
struct file has no member f_dentry

Он ругается на строку, где я узнаю minor номер устройства:
minor = MINOR(filp->f_dentry->d_inode->i_rdev);
(filp это struct file *filp)

Подскажите пожалуйста, как теперь коректно доставать minor номер устройства?

Спасибо
  • Вопрос задан
  • 285 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
filp->f_path.dentry->d_inode->i_rdev вместо filp->f_dentry->d_inode->i_rdev
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
icCE
@icCE
youtube.com/channel/UC66N_jRyZiotlmV95QPBZfA
C появились подсистемы /sys и /udev, номера большинства устройств присваиваются динамически во время загрузки. Думаю надо посмотреть в сторону udev и как он получает номера устройств.
Сам я не разраб но надеюсь ссылки помогут или натолкнут на нужные мысли.

https://superuser.com/questions/686774/what-proble...
https://unix.stackexchange.com/questions/104836/ho...
https://unix.stackexchange.com/questions/315186/ho...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы