Доступ к параллельному порту с использованием Linux

в настоящее время я получаю доступ к параллельному порту следующим образом:

ioperm(data->baseaddr,5,1);
outb(0x00,data->controlport);
inb(data->statusport);

Большой недостаток: он требует привилегий root и работает только с реальным аппаратным обеспечением параллельного порта (означает, что преобразователи USB-2-LPT не поддерживаются).

Итак: есть ли другой способ чтения / записи данных с / на параллельный порт?

Спасибо!

2

Решение

Как вы упомянули, пользователь должен иметь права доступа к параллельному порту, чтобы исполняемый файл работал успешно. Как правило, только пользователи root имеют права доступа к портам, поэтому программа должна запускаться с привилегиями root. Однако должна быть возможность разрешить пользователям без полномочий root запускать исполняемый файл, выполнив следующие действия:

1) Сделать root владельцем исполняемого файла. Один из способов сделать это — скомпилировать программу от имени пользователя root.

2) Предоставьте пользователям, не являющимся пользователями, право на запуск программы, но при этом программа запускается с правами root при запуске пользователями без полномочий root. Вы можете настроить запуск программы с правами владельца (т. Е. С правами root), используя следующую команду (от имени root): chmod +s /name/of/executable

1

Другие решения


По вопросам рекламы [email protected]