Hi Lothar, Thanks for verifying the libusb big-endian and the "pragma pack" issues. I will have to make the big-endian fix libusb version dependant at configure time. I will try to get this in the next HPLIP release.
What version of Linux are you using for your ARM system? -dave > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf > Of Lothar Schmitt > Sent: Friday, November 10, 2006 12:56 AM > To: hplip-devel@lists.sourceforge.net > Subject: [HPLIP-Devel] HPLIP on ARM based systems (e.g. > unslung LinksysNSLU2) > > > Hi, > > just wanted to let you know that I would recommend slight > changes for next release of HPLIP to work properly on ARM / > XScale architectured systems like the Linksys NSLU2: > > 1. In source "io/hpiod/device.cpp" are several calls to macro > htole16 to make parameters for libusb call BigEndian. It > seems that this is not necessary anymore (at least with > libusb 0.1.10a and up). Otherwise the initialization funcs in > device.cpp will not work. Problem was already discovered > somewhere else in the mailing list(s). Certainly the "simple > remove" of macro might break other installations. So it is up > to you... > > 2. Very important is the fact that calls to "#pragma pack(1)" > are simply broken in certain gcc versions for ARM-systems. > (at least if you don't cross-compile". As certain other > gcc-version might have similar props with #pragma pack > statements I would recommend to use __attribute__ ((packed)) > direct on the various structs. e. g. > Io/hpiod/mlc.h > typedef struct > { > unsigned char hsid; /* host socket id */ > unsigned char psid; /* peripheral socket id */ > unsigned short length; /* packet length (includes header) */ > unsigned char credit; /* data packet credit, reserved if > command */ > unsigned char status; /* upper layer status */ > } __attribute__ ((packed)) MLCHeader; > > There are several other occurrences of #pragma pack(1) > statements on various other places. I changed that on version > 1.6.10 and hplip worked than completely on my Linksys NSLU2 > (printing, scanning with SANE etc.) > > If #pragma pack(1) statements are ignored by compiler the > behaviour during scanning / printing is undefined because > data replied by HP-device cannot be read by hplip. That leads > to DEVICE BUSY and DEVICE OUT OF PAPER states, depending on > communication done.... > > Using __attribute__ ((packed)) statement is even more ANSI-C-ish ;-) > > > Hope, that helps (cost me two days debugging ;-), > > Lothar Schmitt > > > > -------------------------------------------------------------- > ----------- > Using Tomcat but need to do more? Need to support web > services, security? Get stuff done quickly with > pre-integrated technology to make your job easier Download > IBM WebSphere Application Server v.1.0.1 based on Apache > Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057& dat=121642 _______________________________________________ HPLIP-Devel mailing list HPLIP-Devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/hplip-devel ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ HPLIP-Devel mailing list HPLIP-Devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/hplip-devel