Устройство, на котором вы вызываете ioctl, может содержать некоторый код, который проверяет возможности перед выполнением запрошенного вами действия. Установка разрешений для специального файла на 777 будет недостаточной в этом случае. Если вы хотите найти источник драйвера, который поддерживает данное устройство, вы можете найти что-то вроде следующего, чтобы выяснить, какие возможности действительно требуются.
if (! capable (CAP_SYS_ADMIN))
return -EPERM;
Возможно, вы захотите прочитать о возможностях или просто запустить свое приложение от имени пользователя root, как предлагали другие.
Справочная страница Linux по возможностям