Я работаю на аппаратном устройстве, где мне нужно выполнить некоторые операции GPIO.
В начале моей программы я вызываю iopl(3)
. Исполняемый файл не принадлежит root
, но имеет установленные возможности - cap_sys_rawio+eip
. Хотя это работает в большинстве случаев
иногда процесс завершается неудачно с:
iopl: Operation not permitted
Способность недостаточна? Я не могу запустить программу как root
.
Устройство работает Ubuntu 14.04.2
. dmesg
/ syslogs
не дают
любые намеки!
Подробнее:
Начало моего main
имеет это:
if (iopl(3) != 0) {
perror("iopl");
assert(!"Failed to set privilege!");
}
Хотя это работает в большинстве случаев, иногда на аппаратной платформе
(На базе Intel Atom), это не получается при perror
печати iopl: Operation not permitted
.