В /dev есть parport0 и lp0
Когда я пытаюсь что-то писать в parport0 никаких ошибок не возникает, однако в порт ничего не выводится (диодик не горит).
Когда пишу в lp0 под root, например так:
Код: Выделить всё
#include "fcntl.h"
#include "unistd.h"
main()
{
int descriptor = open ("/dev/lp0", O_RDWR);
unsigned short int data;
if(descriptor<0)
return;
data=255;
write (descriptor,&data, 1);
sleep(3);
data=0;
write (descriptor,&data, 1);
close(descriptor);
}
Светодиодик загорается, но при этом программа почему-то виснет на первой функции write().
Пр этом dmesg выдаёт
Код: Выделить всё
parport0: PC-style at 0x378 (0x778), irq 7, dma 3 [PCSPP,TRISTATE,COMPAT,ECP,DMA]
lp0: using parport0 (interrupt-driven).
parport0: BUSY timeout (-4) in compat_write_block_pio
parport0: FIFO is stuck
parport0: BUSY timeout (1) in compat_write_block_pio
parport0: BUSY timeout (-4) in compat_write_block_pio
Через outb() всё работает.
Дистрибутив - Mandriva 2008.1, ядро 2.6.24.7
Может кто подскажет как с этим справиться?