I tried to change "lp0" in this->{DATA}{DEVICE} to "/dev/usb/lp0", but nothing changed...
As I said, that value is only ever being used in an error message.
The purpose behind setting it was just to silence the warning...
I think that my usb adapter is not so compatible with Linux or maybe it's not a really usb to parallel port adapter...
Either that, or it isn't mapped to the I/O address 0x378 (which is
hardcoded in Device::ParallelPort::drv::linux::linux_opendev() ). The code in question is:
...
base = 0x378;
if (ioperm(base, LPSIZE, 1) < 0) {
fprintf(stderr, "%s: ioperm:%s ", devname, strerror(errno)
+);
RETVAL = -1;
} else {
RETVAL = base;
}
ioperm(2) can only fail with
EINVAL Invalid address(-range).
EPERM The calling process has insufficient privilege.
ENOMEM Out of memory.
EIO This call is not supported (on PowerPC).
In particular, no checks are being made that the address actually
maps to the intended hardware device.
You
might want to check your dmesg output — mine, for example,
says:
[ 61.718702] parport_pc 00:0b: reported by Plug and Play ACPI
[ 61.718797] parport0: PC-style at 0x378, irq 7 [PCSPP,TRISTATE]
[ 63.870838] lp0: using parport0 (interrupt-driven).
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.