CUPS and Foomatic fail with "Cannot allocate memory" on Arch Linux ARM

0

I'm trying to print to my Brother MFC-7820N via network printing on a Pogoplug with Arch Linux ARM installed on it. I'm using the BRScript3 CUPS driver that came in the distribution. When I try to print at 300 dpi, the print job processes forever but never returns an error or prints. When I switch to 600 dpi, the printer prints an error message and the CUPS log says this:

W [26/Nov/2013:22:00:06 -0600] [cups-driverd] Unable to execute "/usr/lib/cups/driver/foomatic": Cannot allocate memory
W [26/Nov/2013:22:00:06 -0600] [cups-driverd] Unable to execute "/usr/lib/cups/driver/gutenprint.5.2": Cannot allocate memory

The print job status within the CUPS web interface is "Filter failed."

Given that my system is a little embedded device, I might suspect the system doesn't have enough RAM to do the job, but about half the system memory (at least 55MB and sometimes quite a bit more) is free. Is it really a RAM issue? Is there any way to get around this issue? I don't have a swap drive since I'm running the system off of a USB flash drive.

UPDATE: The output of free is:

[root@alarm ~]# free
             total       used       free     shared    buffers     cached
Mem:        121924      50736      71188          0       9704      23568
-/+ buffers/cache:      17464     104460
Swap:            0          0          0

I know it is a bad idea, but I tried adding a swap image on the USB flash drive. That prevented the aforementioned error from occurring, but the device simply froze up.

Timothy R. Butler

Posted 2013-11-27T04:09:23.333

Reputation: 429

thanks @wingedsubmariner, I didn't know about overcommit_memory, that solved my problem with CUPS in a RPi. – gipi – 2015-08-12T20:03:18.760

About half should be ~256MB for that 512MB device. What is the output of free? It is the -/+ buffers/cache line that you want. – wingedsubmariner – 2013-11-27T04:44:13.483

Thanks, @wingedsubmariner. I've posted it above. This is a Series 4 device; it only has 128MB of RAM. – Timothy R. Butler – 2013-11-27T04:51:59.767

1Man, I think that was how much RAM my first Linux desktop had (well before CUPS!). That really does look like an out of memory issue. You could try setting up a swap, at least to test, or you could try turning on memory overcommit (run echo 1 > /proc/sys/vm/overcommit_memory). Note that with overcommit Linux will allow processes to ask for as much memory as they want but will start killing them when it runs out - this is likely to cause system instability. – wingedsubmariner – 2013-11-27T05:06:13.857

No answers