Файлы в sysfs и procfs являются интерфейсами к ядру. Чтение и запись в эти файлы вызывает код драйвера в ядре. Если вы получаете сообщение об ошибке «отказано в доступе» (EACCESS ), это происходит из-за прав доступа к файлу. Но если вы получаете ошибку, такую как «недопустимый аргумент» (EINVAL ), это означает, что драйвер отправил этот ответ.
Самая очевидная причина «недопустимого аргумента» заключается в том, что вы пытаетесь записать недопустимое значение. Например, запись чего-либо, не являющегося числом, для изменения числового параметра или запись числа, выходящего за пределы допустимого диапазона.
Учитывая, что чтение возвращает строку
, на тот момент на вашей машине драйвер думал, что ваше оборудование не поддерживает эту функцию. Поскольку раньше это работало, это указывает либо на ошибку в драйвере, либо на аппаратный сбой.
Вы указали, что теперь он снова работает. Так что это была временная проблема, которую исправила перезагрузка. Остальная часть моего ответа - это совет для людей, которые только что столкнулись с подобной проблемой.
Если вы недавно обновили ядро, попробуйте вернуться к предыдущей версии.
Поскольку проблема заключается в ядре или, по крайней мере, между ядром и оборудованием, вам нужно покопаться в журналах ядра, чтобы найти дополнительную информацию. В достаточно новой системе с systemd запустите sudo journalctl -k
, чтобы просмотреть журналы ядра. Кроме того, посмотрите /var/log/kern*
, который включает старые сохраненные журналы.
Поиск правильного сообщения журнала может быть затруднен. Если вы можете найти приблизительное время начала работы, поищите сообщения журнала примерно в это время. Попробуйте получить доступ к файлу в /sys
сейчас, это может генерировать или не генерировать новое сообщение журнала каждый раз в зависимости от того, как работает драйвер.
Если у вас произошел какой-либо аппаратный сбой и вы перезагрузились,некоторые микропрограммы (, работающие на одном из вспомогательных чипов компьютера ), могут по-прежнему иметь неверные данные. Чтобы полностью сбросить все микропрограммы до состояния питания -, необходимо полностью отключить питание системы. На ноутбуке иногда даже необходимо полностью отключить питание (вытащить вилку из сети и аккумулятор, потом вставить обратно ).