* Разработка драйверов Linux * Есть ли способ выставить дополнительные настройки через sysfs, используя инфраструктуру IIO?
Драйвер, который я разрабатываю, имеет ряд настроек, которые я хочу, чтобы пользователь мог изменять, которые не вписываются в структуру IIO. Например, использование перечисления IIO_CHAN_INFO_SAMP_FREQ в моей функции чтения предоставляет переменную в / sys/bus/iio/devices/iio:device0/ с именем "in_voltage_sampling_frequency", которая позволяет пользователю изменять частоту на ходу. Я также хотел бы иметь возможность проходить в разных режимах (строка) через аналогичный механизм. Как бы я это сделал? Не похоже, что интерфейс IIO поддерживает вызовы ioctl.
2 ответа
Нашел решение.
Я использовал атрибут устройства sysfs, как показано здесь:
https://www.kernel.org/doc/Documentation/driver-model/device.txt
Другим решением этой проблемы может быть использование module_param
который регистрирует параметры, которые можно установить во время загрузки через modprobe / insmod и во время выполнения через sysfs:
int myint = 3;
module_param(myint, int, 0);
Для получения дополнительной информации см.: https://www.tldp.org/LDP/lkmpg/2.6/html/x323.html