Image with printer support

PJvG
Hello I'm working on a project where I have to send print commands to a USB
printer (HP Deskjet D2660) from a Mini2440 ARM9.

I was wondering if anyone here knows about a Linux image with printer
utilities/support which I can download somewhere or find on the CD? I've
been searching for days but with no luck.

Would it else be better if I made the image myself? I've tried that too, by
trying to cross compile CUPS and HPLIP, but I keep getting issues and
errors while trying to cross compile. Configure seems to go fine, but make
always gives errors.

I really need guidance on this. I've only been working with Linux since
November last year, so I still have lots to learn.

PJvG
I think I successfully cross compiled CUPS. I did a configure, make and
make install without getting errors. I had to remove man and doc
directories from the makefile though. And it seemed very important to use
chown to get ownership of everything. 
And also, I couldn't do make install without putting sudo in front of it.

Now I'm going to try to cross compile HPLIP.

When that's successful too, I'll try to get it on my mini2440.

PJvG
Considering I only need the driver for the HP Deskjet D2660 printer,
couldn't I just copy said driver to the mini2440?

PJvG
I think I'm going to try to cross compile the drivers with Buildroot.
Hopefully that will get me somewhere..

More info on what I found out and what I'm going to do now:
http://www.friendlyarm.net/forum/topic/439?lang=en#2880

If everything else fails I'll try to look into a printer that has better
support for Embedded Linux.

Regards,
 PJvG

PJvG
Hello again!

I don't know if anyone is reading this but I'm sure it might help someone
someday again..

I wanted to share with you that I have been able to cross compile HPIJS
with Buildroot.

First of all I followed the Buildroot usage documentation located here:
http://buildroot.uclibc.org/buildroot.html

After having obtained Buildroot I added the HPLIP package by following the
tutorial "Makefile for autotools-based packages" in the Buildroot
documentation. (It's located under "Adding new packages to Buildroot")

These are the steps I took:

First cd to the package directory in your buildroot directory
.../buildroot-2010.02/package/
Make directory hplip with "mkdir hplip" and enter it with "cd hplip"
Create a file named Config.in with "touch Config.in"
Edit the file with "gedit Config.in"
Don't have to be much, these are my contents of the file:

config BR2_PACKAGE_HPLIP
        bool "hplip"
        help
   HP Linux imaging and printing. Print, scan and fax drivers for Linux.

   http://hplipopensource.com/

Next go back to the package directory ("cd ..") and edit the Config.in in
that directory.
Simply add this line: source "package/hplip/Config.in"
This is where I placed it:
...
66. source "package/gamin/Config.in"
67. source "package/hplip/Config.in"
68. source "package/icu/Config.in"
...

Now go back to the hplip directory ("cd hplip")
Do "touch hplip.mk" and "gedit hplip.mk"
These are my contents of the file hplip.mk: (I configured it for hpijs
only. --build, --host, --target and --prefix all are unneeded because they
are being taken care off by Buildroot)

################################################################################


#
# hplip
#
################################################################################


HPLIP_VERSION:=3.10.2
HPLIP_SOURCE:=hplip-$(HPLIP_VERSION).tar.gz
HPLIP_SITE:=http://prdownloads.sourceforge.net/hplip/
HPLIP_INSTALL_STAGING = YES
HPLIP_INSTALL_TARGET = YES
HPLIP_CONF_OPT = --enable-shared --disable-network-build
--enable-hpijs-only-build --enable-hpijs-install
--enable-foomatic-ppd-install
HPLIP_DEPENDENCIES =

$(eval $(call AUTOTARGETS,package,hplip))

After making these files go back to the buildroot directory with "cd
../..". (You should be in .../buildroot-2010.02/ again now)
Run "make menuconfig"
As you can see the HPLIP package should be available now.
Choose the target architecture (in my case arm920t) and other options.
Choose the packages you want in your root file system (probably going to be
at least cups and perhaps jpeg and png libraries.. I'm not sure what
precisely is needed for hplip)

Don't choose hplip just yet!! Else make will fail! because Buildroot wants
some of hplip's dependencies to be made after hplip. (I suppose this could
be fixed by assigning the right dependencies in the hplip.mk file after
this line: "HPLIP_DEPENDENCIES = ")

After you're done with "make menuconfig" simply run "make".
You'll see the toolchain and the libraries for your root file system will
compile... For my project this takes about 2 hours, so best is to take a
coffee or something while you let your build system run.

When your system is done with make run "make menuconfig" again, this time
choose the hplip package, exit the menuconfig.
Run "make" again, this will only take a few minutes now.

I managed to get no errors on this. So this should do the trick to cross
compile HPLIP with Buildroot. ;)

I'm still struggling with actually getting my cross compiled root file
system on my embedded computer. I will notify you when I've done that
successfully and when I managed to print from the embedded system.

Thanks,
 PJvG

Allen
I am trying to create PDF files using a Mini2440 ARM9.  I am about to
embark on cross compiling CUPS-pdf.  Were you able to cross compile CUPS? 
What about the line printer deamon - is lpd functioning for you? Any hints
you could provide would be appreciated.

PJvG
Hello Allen,
I was successful in cross compiling CUPS manually as well as with
Buildroot.
However, I did not configure with the option for pdf on, for I had no use
of it.
I haven't had the chance to test lpd yet, I had planned to do that later
this week.

Regards,
 PJvG

Allen
Hello PJvG,

Thanks so much for this feedback.  Let me know how it goes with lpd if you
ever get around to it. 

Thanks, 
Allen

PJvG
Hi Allen,

I managed to get a working root file systems with cups and hplip libraries
on the Mini2440. However, I'm having problems with getting the cups
scheduler to run..

Also trying to do lpd simply returns something like "connection to
127.0.0.1 refused". I can't remember the exact message..

I think I should look more in how to configure cups. It might be better for
me to experiment with cups on a PC, instead of doing it directly on an
embedded platform.

Thanks,
 PJvG

PJvG
Hello anyone who's reading this.

I came to tell you the project I've been working on isn't an Embedded Linux
project anymore. The people I'm working for have let me know it was taking
too long with Linux, so now they want me to use Windows.
I won't be using the Mini2440 FriendlyARM Embedded Computer anymore,
instead I'm going to use a laptop with Windows 7.

I enjoyed working with the Mini2440, it's a nice thing.. too bad I had only
two months to play with it. Maybe in the future I'll get to do more with
it. :)

Regards,
 PJvG

Allen
Good luck!

Harsha
Hi PJvG,
I am a newbie to linux. I am trying to cross compile CUPS to ARM9
architecture. I am using Freescale imx25pdk and ltib to cross build. The
CUPS seems to be building fine. But on the target board when i try to
configure cups by editing cupsd.conf file I find that the paths mentioned
in the file for socket listening are the ones on the development host. That
is instead of /usr/var/run/cups/cups.sock it was
/home/ltib/ltib/tmp/opt/freescale/rootfs/arm/usr/var/run/cups/cups.sock.
I also noticed that when i type "cups-config --datadir" in the command line
it gives the path
/home/ltib/ltib/tmp/cups//opt/freescale/rootfs/arm//usr/share/cups and when
i do lpinfo -v it says
lpinfo: cups-deviced failed to execute.

I believe all these problems are because of the wrong paths being taken
while building. Please help me if you happen to know the solution to these
problems. I don,t know where i am going wrong.

Thank you.

parvathi
i am trying to cross compile CUPS for arm, but i am getting error like 
Generating localization strings...
./genstrings: 1: Syntax error: word unexpected (expecting ")")
make[1]: *** [genstrings] Error 2
make: *** [all] Error 1

i dont know how to solve this, please anyone help me, how to solve this...

PANKAJ CHITGUPKAR
Hi Parvathi,

For arm, we have a readymade package for cups. its
"cups_1.2.12-r2.1_armv5te.ipk". So no need to cross compile. Just download
and install it on ur board. Let me know if it works for you at
pankajcambure@gmail.com.

All the best

Pankaj C

Martin
Hi PJvG,

I would like to know if you finally suceeded in compiling CUPS and printing
from your ARM.

I am trying to cross compile CUPS for an ARM Cortex A9, running Debian
And since a lot of people seem to have trouble doing this i'd like to know
if we are not trying something we can't achieve.

We are trying to do this because we want to install and configure a printer
on our board, we only have the .PPD file, everything is working fine with
CUPS on our x86 architecture under ubuntu, but the final project will be on
ARM, do you think that cross compiling CUPS for our ARM is possible or do
you see an other easier solution, giving that we are 2 students, from
engineering school involved in the project. The final aim in only to print
a given image and not to use all the functionality of the printer.

Best regards.