Наиболее вероятный ответ: созданный узел procfs не имеет правильных прав доступа для пользователя.
При запуске от имени root он пропускает большую часть проверки прав доступа для узла, поэтому вы не получаете сообщение об ошибке (есть исключения; это общий случай).
в загружаемом модуле ядра, где он создает узел procfs (где-то в файле .c):
create_proc_entry(...)
Вам необходимо убедиться, что для второго параметра режим установлен что-то, что позволяет открывать для записи пользователям, отличным от root, для поддержки желаемой опции открытия; например 0666
делает файл доступным для всех пользователей как R / W.
Обычно узлы в procfs создаются с флагами 0444
(т. Е. R / O только для всех пользователей). Некоторые создаются в режиме 0644
(R / W для root, R / O для всех остальных пользователей), некоторые создаются с разрешениями 0400
(R / O для root, все остальные остаются в стороне).