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

Reply via email to