Making a digital sender - need help please!
Hi everyone... Long time reader, first time poster!
I am working on a project for work, making use of a scanner and a linux box to create a digital sender, just like HP's one!
I'm sure the majority of you know what a digi sender is, but for the few uninitiated, it is basically a scanner with a network connection, so the scans are directly pumped out to a network store or an email - a kind of "groupware scanner" if you will!
Okay, I have a Linux box (distro centos 4.3) with a standard install, which is huuuge!!!
What I want to do is to compress this system (ie. recompile the kernel) with:
ide (er, to boot a CF card!)
scsi (for scsi scanners!)
usb (for scanners and a keypad!)
parport (for a 16x2 LCD!!)
Also need to add on the following:
samba-client (to connect into the network store)
samba-server (Add a hard disk and make this the store!)
imagemagick (to convert pnm bitmaps to versatile JPEG)
sane-backends (I'd like to add them all for versatility)
sane-frontends (just scanimage and scanadf
mutt (for sending image to email)
I think that covers the basis of what I need.
I have written a bash script that prompts for two answers:
Mode (1=Colour, 2=Grayscale, 3=B/W)
Size (1=100 DPI, 2=200 DPI, 3=300 DPI)
Once it has this info, it runs scanimage (eventually I will opt for another question Like (1=Flatbed for scanimage, 2=ADF for scanadf)
It then pipes out the raw PNM data to stdout and into imagemagik, where it converts and writes a file to disk. The file at the moment is automatically created from the system time and date of actual capture (ie It looks like Scanimage31082006160532.jpg)
Okay, once the file is created, it is sent off to the network destination, something like /media/network, which is a samba mount to a windows network store server which is either defined in /etc/fstab, or created on the fly in the bash script!
Display is by the 16x2 LCD (need driver for this) and input is by keypad, which may change to a small keyboard if I extend this to inputting onw filenames and specifying email address.
There will be a scsi2 u/w card installed and USB connectors for scanners. It would be cool to be able to run more than one scanner at a time... I have done this previously with two scsi scanners daisy chained off the scsi so possible!
So, you know how the system works!!
Now the questions.... Take a deep breath....
1) I said earlier that I want to recompile the kernel into a smaller one to fit onto a CF card. I have heard horror stories about writes to CF cards, which can render them useless after a short amount of time!! How do I install a kernel image and get it to boot in read only mode?
2) If the CF is going to be read only, the obvious questions are:
a) How do I mount my network drive if I cant change the script or edit fstab??
b) How can I get around having a swap file, as I dont want to write to the CF?
The obvious answer is to load the items to a ramdisk (actually two ramdisks - one for the CF linux kernel image and one for the temporary space where the scanner image is created. Once the image is created, it is copied to the network location and then deleted.)
So, how do I create two ramdisks at boot time and assign them to each purpose?
Anyway, that will be enough to be going on with!
For those interested, my items for this project so far are:
SFF motherboard with P3 1ghz
256mb ram (I think I may need to increase this if scanning an image to ram!)
CF to IDE module
1gb CF card
16x2 LCD with parallel port adapter (may change this to serial basic stamp)
USB keypad (may change this to small keyboard if sending to email / specifying filename - cant get far with just numbers!!)
Advansys 930 uw scsi card
2x HP scanjet 3p (I think! scsi with adf anyway!)
1x HP scanjet 7670a
1x HP scanjet 6270a
1x HP scanjet 2100c
Things to get:
Small form factor case with PSU and a small slot for the LCD. Probably something like a case with just one 5.25ins slot also needs 1x pci slot chassis for scsi card.
Thanks for taking the time to look at my project and hope someone has some answers for me!
Cheers,
Glenn.
|